[发明专利]基于BP网络的软件工时估算方法有效
申请号: | 201310357514.8 | 申请日: | 2013-08-16 |
公开(公告)号: | CN103400189A | 公开(公告)日: | 2013-11-20 |
发明(设计)人: | 李天翼;熊维军;李玉星;朱江;李炜炜 | 申请(专利权)人: | 成都市知用科技有限公司 |
主分类号: | G06N3/08 | 分类号: | G06N3/08 |
代理公司: | 成都高远知识产权代理事务所(普通合伙) 51222 | 代理人: | 李高峡;全学荣 |
地址: | 610000 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开一种基于BP网络的软件工时估算方法,BP网络采用四层结构,将软件项目工作量分解为基本工作量后作为BP网络的输入层,通过训练样本对BP网络进行训练以达到连接权值的合理设置,在各连接权值确定后,就可通过该BP网络对未来软件项目进行工时估算;本发明能合理估算软件项目的工时,智能化程度高。 | ||
搜索关键词: | 基于 bp 网络 软件 工时 估算 方法 | ||
【主权项】:
1.一种基于BP网络的软件工时估算方法,其特征在于包含以下过程:1)建立软件工作量的BP网络模式库(a)所述BP网络的网络拓扑结构选择,所述BP网络采用四层结构,即输入层、第一隐含层、第二隐含层、输出层;(b)将软件项目按照基本工作内容进行分解,得到各个基本工作内容的工作量;将各基本工作内容的工作量按照预定的顺序组成一个矢量(x1,x2,...,xn),并在该矢量前加上一个值为1的分量,得到矢量x=(1,x1,...,xn)作为BP网络的输入层;通过下述计算,得到所述第一隐含层的输出![]()
x j ( 1 ) = f 1 ( Σ i = 0 n w ij x i ) - - - ( 1 ) ]]>f 1 ( x ) = 1 1 + e - x - - - ( 2 ) ]]> 式中,i,j=0,1,…,n,wij为输入层到第一隐含层的连接权值,f1(x)为将
赋值为1,得到矢量
作为第二隐含层的输入,通过下述计算,得到所述第二隐含层的输出![]()
x k ( 2 ) = f 2 ( Σ j = 0 n 1 w jk ( 1 ) x j ( 1 ) ) - - - ( 3 ) ]]>f 2 ( x ) = 1 1 + e - x - - - ( 4 ) ]]> 式中,k=0,1,…,n1,
为第一隐含层到第二隐含层的连接权值将
赋值为1,得到矢量
作为输出层的输入,通过下述计算,得到所述输出层的输出y=(y1,y2,...,ym),y l = f 3 ( Σ k = 0 n 2 w kl ( 2 ) x k ( 2 ) ) - - - ( 5 ) ]]>f 3 ( x ) = 1 , if 1 1 + e - x ≥ 0.5 0 , if 1 1 + e - x < 0.5 - - - ( 6 ) ]]> 式中,l=0,1,…,n2,
为第二隐含层到输出层的连接权值y代表了一串长度为m的二进制数,将该二进制数转换为十进制数,得到对该软件项目的工时估计量;2)将收集到的已完成的各个软件项目作为真实样本数据,对所述BP网络施行反向传播训练,来迭代调整各层的连接权值,使其逐步趋向合理并最终逼近真实情况,从而确定各层的连接权值wij、
具体包含以下过程:(c)从所述真实样本数据中提取2个矢量,一个矢量是xi=(1,x1,...,xn),矢量中的分量x1,x2,...,xn对应项目在每一基本工作内容上的工作量,另一个矢量是ti=(t1,t2,...,tm)对应项目实际所耗工时,所述矢量ti=(t1,t2,...,tm)是所耗工时转换成的二进制数序列;(d)对于单个训练样本xj和tj,网络的实际输出yj与期望输出tj之间的方差为
对于N个样本,则总的方差为
定义如下:ϵ j = ϵ ( W , x j , t j ) = 1 2 | | t j - y j | | 2 = 1 2 Σ l = 1 m ( t jl - y jl ) 2 - - - ( 7 ) ]]>E T = Σ j = 1 N ϵ j = 1 2 Σ j = 1 N Σ l = 1 m ( t jl - y jl ) 2 - - - ( 8 ) ]]> 采用梯度下降法迭代调整各个连接权值wij、
使得ET向零的方向逼近,所述梯度下降法的各个连接权值wij、
由下述给出:w kl ( 2 ) ( s + 1 ) = w kl ( 2 ) ( s ) + η Σ r = 1 N δ rkl x rk ( 2 ) - - - ( 11 ) ]]>w jk ( 1 ) ( s + 1 ) = w jk ( 1 ) ( s ) + η Σ r = 1 N δ rjk x rj ( 1 ) - - - ( 12 ) ]]>w ij ( s + 1 ) = w ij ( s ) + η Σ r = 1 N δ rij x ri - - - ( 13 ) ]]> 式中s代表迭代次数;(e)对于N个真实样本数据,得到2个集合{xj}j=1,2,...,N和{tj}j=1,2,...,N,确定一个较小的数λ,对网络各层连接设置初始的权值。于是训练过程由下述两个步骤反复交替进行,直到网络实际输出与期望输出的总误差ET小于λ为止:(e1)对集合{xj}j=1,2,...,N中每一样本数据xr,将其作为网络的输入,依照网络当前连接权值,按照式(2)、(3)、(4)计算每一隐含层神经元输出值
和
(这里r为样本序号,i为神经元在所处层的排列序号,上标的1和2分别表示第一和第二隐含层)及输出矢量yr,对所有样本的输出矢量{yj}j=1,2,...,N,结合样本数据{tj}j=1,2,...,N,按照式(7)、(8)计算ET,如果ET<λ,则训练过程结束,当前网络的连接权值作为最终的权值;如果ET≥λ,则执行第2步骤;(e2)由(e1)得到的矢量集合{yj}j=1,2,...,N,结合样本数据{tj}j=1,2,...,N,在网络当前连接按照从输出层到输入层的方向分别按式(16)、(20)、(21)调整各层的连接权值,然后转(e1)。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都市知用科技有限公司,未经成都市知用科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310357514.8/,转载请声明来源钻瓜专利网。
- 上一篇:上加热的带内锅的煮粥器
- 下一篇:一种用于数控裁剪机再覆盖膜的链轮零件