CN112131089B - 软件缺陷预测的方法、分类器、计算机设备及存储介质 - Google Patents
软件缺陷预测的方法、分类器、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112131089B CN112131089B CN202011048727.9A CN202011048727A CN112131089B CN 112131089 B CN112131089 B CN 112131089B CN 202011048727 A CN202011048727 A CN 202011048727A CN 112131089 B CN112131089 B CN 112131089B
- Authority
- CN
- China
- Prior art keywords
- firefly
- defect prediction
- software
- formula
- software defect
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于缺陷预测技术领域,公开了一种软件缺陷预测的方法、分类器、计算机设备及存储介质,收集提取软件代码的特征数据,并利用数据处理公式对收集的数据进行预处理;构建软件缺陷预测模型,并利用缺陷预测公式计算预测精度;采用改进的萤火虫算法优化软件缺陷预测模型;将缺陷预测公式作为适应度函数,在训练数据集及测试数据集中分别获得最佳缺陷预测精度值;利用优化的软件缺陷预测模型进行软件缺陷预测。本发明将萤火虫种群分成三组,每组在搜索最优解的过程中扮演不同的角色,并按照不同的移动策略进行学习,以平衡算法的勘探能力和探索能力。将改进的萤火虫算法应用在软件缺陷预测上,提高了预测精度,降低了计算成本。
Description
技术领域
本发明属于缺陷预测技术领域,尤其涉及一种软件缺陷预测的方法、分类器、计算机设备及存储介质。
背景技术
目前,软件缺陷测试背景,软件缺陷预测被大多数软件工程师用来估计软件中最容易产生缺陷的组件。为了建立软件缺陷预测模型,许多经典算法被用来作为软件缺陷预测的分类器,如逻辑回归、决策表、支持向量机、贝叶斯网络。此外,软件缺陷预测还采用了一些智能优化算法来提高预测精度,包括经典的粒子群优化算法、差分进化算法、人工蜜蜂算法、蚁群优化算法、萤火虫算法,脑风暴优化算法。
萤火虫算法背景,萤火虫算法是最重要的群体智能优化算法之一。由于其较强全局搜索和密集的局部搜索能力,它获得了广泛的实际应用。近年来,萤火虫算法已被用于优化软件工作量估算模型。然而,很少有研究将萤火虫算法应用于软件缺陷预测。萤火虫算法在寻找最优解的过程中存在着许多不必要的行动,降低了求解效率。因此,很多改进的萤火虫算法被提出,它们分别从参数层面、策略层面、混合算法层面进行改进。但是对于较好的萤火虫移动方法很少有人研究。
通过上述分析,现有技术存在的问题及缺陷为:现有软件缺陷预测方法预测精度不高,且计算成本高。
解决以上问题及缺陷的难度为:
现有萤火虫算法普遍存在计算冗余,并容易陷入局部搜索,导致计算效率及软件预测精度都比较低。如何降低冗余,并提高预测精度成为一直以来的技术难题,本文提出的新技术在一定程度上提高了预测效率及其精度。
解决以上问题及缺陷的意义为:
软件组件的缺陷与其的发展、维护成本和客户的满意度有着重要关系。一个好的软件缺陷技术帮助并促使其发展,而且降低软件的维护成本,并有效的提高客户的满意度有着非常积极的意义。
发明内容
针对现有技术存在的问题,本发明提供了一种软件缺陷预测的方法、分类器、计算机设备及存储介质,具体涉及一种基于改进萤火虫算法优化软件缺陷预测的方法。
本发明是这样实现的,一种基于改进萤火虫算法优化软件缺陷预测的方法,所述基于改进萤火虫算法优化软件缺陷预测的方法包括:
步骤一,收集提取软件代码的特征数据,并利用数据处理公式对收集的数据进行预处理;
步骤二,构建软件缺陷预测模型,并利用缺陷预测公式计算预测精度;
步骤三,采用改进的萤火虫算法优化软件缺陷预测模型;将缺陷预测公式作为适应度函数,在训练数据集及测试数据集中分别获得最佳缺陷预测精度值;
步骤四,利用优化的软件缺陷预测模型进行软件缺陷预测。
进一步,步骤一中,所述数据处理公式如下:
其中,x表示数据的长度,xmin、xmax表示所有数据长度中最大值和最小值。
进一步,步骤二中,所述缺陷预测公式如下:
其中,k表示模块编号,f1,f2,…,fk按预测缺陷数的递增顺序列出,ni表示模块i的实际缺陷数,n=n1+n2+…+nk表示缺陷总数。
进一步,步骤三中,所述改进的萤火虫算法包括:
(1)计算萤火虫种群的平均适应度值:
P=(Light(1)+Light(2)+…+Light(n))/n;
(2)随机选择两个萤火虫xi和xj,然后利用下式计算萤火虫的价值适应度与整个种群的平均值之间的差异Di;
Di=abs(Light(i)-P);
若Di小于Dj,则萤火虫xi是为基建者;若xj的适应度值比P差,则萤火虫为探索者,否则,它是一个勘探者;
(3)重复步骤(2)直到所有萤火虫都被分组;每个组中萤火虫根据该组给定的规则进行学习。
进一步,步骤(3)中,所述每个组中萤火虫根据该组给定的规则进行学习包括:
基建者和探索者根据下式进行学习:
xi(t+1)=xi(t)+β(xj(t)-xi(t))+α(t)∈;
勘探者根据下式进行学习:
其中,G为迭代最大数,t为当前迭代数,times表示为较好萤火虫在一定条件下自由移动的次数,μ表示为设定为固定值的参数。
进一步,所述基于改进萤火虫算法优化软件缺陷预测的方法还包括:
1)初始化萤火虫种群,对软件数据进行预处理;设置萤火虫数量n以及最大迭代数,维度D设置数据预处理后的长度;
2)根据软件缺陷预测适应度函数,计算萤火虫种群的适应度值;并对所有萤火虫根据分组机制进行分组;
3)根据萤火虫扮演的角色进行相应的学习;保存最佳的萤火虫适应度值;
4)判断是否满足结束迭代条件,不满足的话将跳转至步骤2);输出保存的最佳适应度值。
本发明的另一目的在于提供一种软件缺陷预测的分类器,所述软件缺陷预测的分类器执行如下步骤:
收集提取软件代码的特征数据,并利用数据处理公式对收集的数据进行预处理;
构建软件缺陷预测模型,并利用缺陷预测公式计算预测精度;
采用改进的萤火虫算法优化软件缺陷预测模型;将缺陷预测公式作为适应度函数,在训练数据集及测试数据集中分别获得最佳缺陷预测精度值;
利用优化的软件缺陷预测模型进行软件缺陷预测。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
收集提取软件代码的特征数据,并利用数据处理公式对收集的数据进行预处理;
构建软件缺陷预测模型,并利用缺陷预测公式计算预测精度;
采用改进的萤火虫算法优化软件缺陷预测模型;将缺陷预测公式作为适应度函数,在训练数据集及测试数据集中分别获得最佳缺陷预测精度值;
利用优化的软件缺陷预测模型进行软件缺陷预测。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述方法。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的方法。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明将萤火虫种群分成三组,每组在搜索最优解的过程中扮演不同的角色,并按照不同的移动策略进行学习,以平衡算法的勘探能力和探索能力。将改进的萤火虫算法应用在软件缺陷预测上,提高了预测精度,降低了计算成本。
本发明将整个萤火虫种群被分成三个小组,每一组在搜索过程中扮演着不同的角色。这些小组扮演三个角色,分别称为探索者、勘探者和基建者,有效减少了移动次数,提高了萤火虫算法的搜索效率。
本发明采用全新的分组机制,利用了所有萤火虫的适应度值信息,建立分组机制。随机选取任意两只萤火虫对比其适应度值,根据其适应度值及其特性分别分配至不同的组。全新的分组的机制能保证每组中萤火虫之间的差异性和随机性,从而大大提高了的全局搜索能力和收敛速度,尽可能的避免了陷入局部搜索。
本发明对较好的萤火虫移动提出了新的移动公式,该公式让算法随着迭代自适应调整移动步长,从而算法在勘探和探索之间达到了很好的平衡。
本发明结合软件缺陷测试模型做了新的应用,有效的提高了软件缺陷测试的预测精度,并降低了软件缺陷预测的计算开销。
对比的技术效果或者实验效果,如下表:
用改进的算法和其它先进算法分别对现有的公开数据集进行实验,发现新提出的技术在精度上有所提高。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于改进萤火虫算法优化软件缺陷预测的方法流程图。
图2是本发明实施例提供的改进的萤火虫算法流程图。
图3是本发明实施例提供的基于改进萤火虫算法优化软件缺陷预测的方法示意图。
图4是本发明实施例提供的函数箱盒图。图4(a)f3;图4(b)f5;图4(c)f9;图4(d)f13;图4(e)f21;图4(f)f24。
图5是本发明实施例提供的各算法的精度收敛图;图5(a)f3;图5(b)f5;图5(c)f9;图5(d)f13;图5(e)f21;图5(f)f24。
图6是本发明实施例提供的算法框架示意图。圆代表智能群中适应度值较好的个体,三角形代表适应度值接近均值,正方形代表适应度值较差的个体。经过分组算法后,较好的个体和少部分中值个体组成一个勘探组,较差的个体和少部分中值个体组件探索组,部分较好个体、部分较差个体和部分中间个体组成建设组。勘探组所有成员自由学习,建设组成员相互学习,探索组向勘探组部分成员学习。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种基于改进萤火虫算法优化软件缺陷预测的方法,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的基于改进萤火虫算法优化软件缺陷预测的方法包括以下步骤:
S101,收集提取软件代码的特征数据,并利用数据处理公式对收集的数据进行预处理;
S102,构建软件缺陷预测模型,并利用缺陷预测公式计算预测精度;
S103,采用改进的萤火虫算法优化软件缺陷预测模型;将缺陷预测公式作为适应度函数,在训练数据集及测试数据集中分别获得最佳缺陷预测精度值;
S104,利用优化的软件缺陷预测模型进行软件缺陷预测。
步骤S101中,本发明实施例提供的数据处理公式如下:
其中,x表示数据的长度,xmin、xmax表示所有数据长度中最大值和最小值。
步骤S102中,本发明实施例提供的缺陷预测公式如下:
其中,k表示模块编号,f1,f2,…,fk按预测缺陷数的递增顺序列出,ni表示模块i的实际缺陷数,n=n1+n2+…+nk表示缺陷总数。
如图2所示,步骤S103中,本发明实施例提供的改进的萤火虫算法包括:
S201,计算萤火虫种群的平均适应度值:
P=(Light(1)+Light(2)+…+Light(n))/n;
S202,随机选择两个萤火虫xi和xj,然后利用下式计算萤火虫的价值适应度与整个种群的平均值之间的差异Di;
Di=abs(Light(i)-P);
若Di小于Dj,则萤火虫xi是为基建者;若xj的适应度值比P差,则萤火虫为探索者,否则,它是一个勘探者;
S203,重复步骤S202直到所有萤火虫都被分组;每个组中萤火虫根据该组给定的规则进行学习。
步骤S203中,本发明实施例提供的每个组中萤火虫根据该组给定的规则进行学习包括:
基建者和探索者根据下式进行学习:
xi(t+1)=xi(t)+β(xj(t)-xi(t))+α(t)∈;
勘探者根据下式进行学习:
其中,G为迭代最大数,t为当前迭代数,times表示为较好萤火虫在一定条件下自由移动的次数,μ表示为设定为固定值的参数。
如图3所示,本发明实施例提供的基于改进萤火虫算法优化软件缺陷预测的方法还包括:
S301,初始化萤火虫种群,对软件数据进行预处理;设置萤火虫数量n以及最大迭代数,维度D设置数据预处理后的长度;
S302,根据软件缺陷预测适应度函数,计算萤火虫种群的适应度值;并对所有萤火虫根据分组机制进行分组;
S303,根据萤火虫扮演的角色进行相应的学习;保存最佳的萤火虫适应度值;
S304,判断是否满足结束迭代条件,不满足的话将跳转至步骤S302;输出保存的最佳适应度值。
下面结合具体实施例对本发明的技术方案作进一步描述。
实施例1:
改进的萤火虫算法优化软件缺陷预测方法
步骤1:收集提取软件代码的特征数据,根据公式(1)对数据进行预处理。
式(1)中,x表示数据的长度,xmin、xmax表示所有数据长度中最大值和最小值。
步骤2:建立软件缺陷预测模型,根据公式(2)可得到预测精度。
式(2)中,k表示模块编号,f1,f2,…,fk按预测缺陷数的递增顺序列出,ni表示模块i的实际缺陷数,n=n1+n2+。。。+nk是缺陷总数。平均故障百分位数越大,性能越好
步骤3:采用改进的萤火虫算法优化软件缺陷预测。将缺陷预测公式(2)作为适应度函数,在训练数据集及测试数据集中分别获得最佳缺陷预测精度值。
改进的萤火虫算法的具体方法
步骤1:计算萤火虫种群的平均适应度值。
P=(Light(1)+Light(2)+…+Light(n))/n (3)
步骤2:随机选择两个萤火虫xi和xj,然后用公式(4)计算萤火虫的价值适应度与整个种群的平均值之间的差异Di。
Di=abs(Light(i)-P) (4)
如果Di小于Dj,那么萤火虫xi是一个基建者。如果xj的适应度值比P差,那么它是一个探索者,否则,它是一个勘探者。
步骤3:重复步骤2,直到所有萤火虫都被分组。
步骤4:每个组中萤火虫根据该组给定的规则进行学习。
基建者和探索者根据公式(5)进行学习,勘探者根据新定义的公式(6)进行学习。
xi(t+1)=xi(t)+β(xj(t)-xi(t))+α(t)∈ (5)
公式(5)是现有的改进的萤火虫算法,公式(6)是本文的新定义的公式,G为迭代最大数,t为当前迭代数,times表示为较好萤火虫在一定条件下自由移动的次数,μ表示为设定为固定值的参数。
改进的萤火虫算法优化软件缺陷预测具体实施方法
步骤1:初始化萤火虫种群,对软件数据进行预处理。萤火虫数量n设置为20,维度D设置数据预处理后的长度。最大迭代数为10000。
步骤2:根据新定义的软件缺陷预测适应度函数,计算萤火虫种群的适应度值。
步骤3:对所有萤火虫根据分组机制进行分组。
步骤4:根据萤火虫扮演的角色进行相应的学习。
步骤5:保存最佳的萤火虫适应度值。
步骤6:是否满足结束迭代条件,不满足的话将跳转至步骤2。
步骤7:输出保存的最佳适应度值。
下面结合具体实验对本发明的技术效果做进一步说明。
新的萤火虫算法从效率和全局搜索能力都进行了改进。将新的方法应用在软件缺陷测试上,计算时间大大减少了,并且预测精度有了一定的提高。
创新1角色分配:整个萤火虫种群被分成三个小组,每一组在搜索过程中扮演着不同的角色。这些小组扮演三个角色,分别称为探索者、勘探者和基建者。勘探者是适应度值较好的个体。勘探者的目标是避免陷入局部搜索,并在邻近区域找到更好的候选解决方案。探险者是适应度值较差的个体。探险者的任务是为一些勘探者探索新的解空间。剩下的是探险者,他们的目标是为自己开发新的解空间。假设我们以萤火虫的移动次数来判断其效率的高低。
证明:
原始萤火虫算法移动次数为:n*(n-1)/2
改进后的萤火虫算法移动次数为:(n1*(n1-1)+n2*(n2-1)+n3*(n3-1))/2,其中n1+n2+n3=n.
很显然,n2=(n1+n2+n3)2>(n1 2+n2 2+n3 2)
所以改进后的移动次数大大减少了,从而提高了萤火虫算法的搜索效率。
创新2分组机制:全新的分组机制,利用了所有萤火虫的适应度值信息,建立分组机制。随机选取任意两只萤火虫对比其适应度值,根据其适应度值及其特性分别分配至不同的组。全新的分组的机制能保证每组中萤火虫之间的差异性和随机性,从而大大提高了该方法的全局搜索能力和收敛速度,尽可能的避免了陷入局部搜索。
创新3新的移动公式:对较好的萤火虫移动提出了新的移动公式,该公式让算法随着迭代自适应调整移动步长,从而算法在勘探和探索之间达到了很好的平衡。
其中:G为迭代最大数,t为当前迭代数,times表示为较好萤火虫在一定条件下自由移动的次数,μ表示为设定为固定值的参数。很显然,萤火虫移动步长将随着t和times的改变而改变。它将是一个自适应调整步长的方式进行移动更新。
创新2软件缺陷预测中的应用:本发明结合软件缺陷测试模型做了新的应用,有效的提高了软件缺陷测试的预测精度,并降低了软件缺陷预测的计算开销。
上表为改进的萤火虫算法MSFA与先进的萤火虫算法RaFA、DFA在软件缺陷预测上实验结果。证明了本发明的有效及先进性。
该表是新算法和先进的同类算法在CEC2013上28个基准函数的测试结果
下面结合仿真效果图对本发明作进一步描述。
图4是本发明实施例提供的函数箱盒图。图4(a)f3;图4(b)f5;图4(c)f9;图4(d)f13;图4(e)f21;图4(f)f24。
(a)在F3测试结果,MSFA获得了最佳值,并且最为稳定。
(b)在F5测试结果,MSFA获得了最佳值,稳定性和FA接近,都好于其它算法。
(c)在F9测试结果,MSFA获得了最佳值,并且最为稳定。
(d)在F13测试结果,MSFA获得了最佳值,并且最为稳定。
(e)在F21测试结果,MSFA获得了最佳值,NSRAFA最为稳定。
(f)在F24测试结果,MSFA获得了最佳值,DFA最为稳定。
图5是本发明实施例提供的各算法的精度收敛图;图5(a)f3;图5(b)f5;图5(c)f9;图5(d)f13;图5(e)f21;图5(f)f24。
图6是本发明实施例提供的算法框架示意图。
(a)在F3测试结果,MSFA获得最佳精度值,其收敛速度最快。
(b)在F5测试结果,MSFA获得最佳精度值,其收敛速度最快。
(c)在F9测试结果,MSFA获得最佳精度值,其收敛速度最快。
(d)在F13测试结果,MSFA获得最佳精度值,其收敛速度最快
(e)在F21测试结果,MSFA获得最佳精度值,与FA收敛速度相似。
(f)在F24测试结果,MSFA获得最佳精度值,其收敛速度最快。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种基于改进萤火虫算法优化软件缺陷预测的方法,其特征在于,所述基于改进萤火虫算法优化软件缺陷预测的方法包括:
收集提取软件代码的特征数据,并利用数据处理公式对收集的数据进行预处理;
构建软件缺陷预测模型,并利用缺陷预测公式计算预测精度;
采用改进的萤火虫算法优化软件缺陷预测模型;将缺陷预测公式作为适应度函数,在训练数据集及测试数据集中分别获得最佳缺陷预测精度值;
利用优化的软件缺陷预测模型进行软件缺陷预测;
所述改进的萤火虫算法包括:
(1)计算萤火虫种群的平均适应度值:
P=(Light(1)+Light(2)+…+Light(n))/n;
(2)随机选择两个萤火虫xi和xj,然后利用下式计算萤火虫的价值适应度与整个种群的平均值之间的差异Di;
Di=abs(Light(i)-P);
若Di小于Dj,则萤火虫xi是为基建者;若xj的适应度值比P差,则萤火虫为探索者,否则,它是一个勘探者;
(3)重复步骤(2)直到所有萤火虫都被分组;每个组中萤火虫根据该组给定的规则进行学习;
步骤(3)中,所述每个组中萤火虫根据该组给定的规则进行学习包括:
基建者和探索者根据下式进行学习:
xi(t+1)=xi(t)+β(xj(t)-xi(t))+α(t)∈;
勘探者根据下式进行学习:
其中,G为迭代最大数,t为当前迭代数,times表示为较好萤火虫在一定条件下自由移动的次数,μ表示为设定为固定值的参数。
4.如权利要求1所述基于改进萤火虫算法优化软件缺陷预测的方法,其特征在于,所述基于改进萤火虫算法优化软件缺陷预测的方法还包括:
1)初始化萤火虫种群,对软件数据进行预处理;设置萤火虫数量n以及最大迭代数,维度D设置数据预处理后的长度;
2)根据软件缺陷预测适应度函数,计算萤火虫种群的适应度值;并对所有萤火虫根据分组机制进行分组;
3)根据萤火虫扮演的角色进行相应的学习;保存最佳的萤火虫适应度值;
4)判断是否满足结束迭代条件,不满足的话将跳转至步骤2);输出保存的最佳适应度值。
5.一种软件缺陷预测的分类器,其特征在于,所述软件缺陷预测的分类器执行如下步骤:
收集提取软件代码的特征数据,并利用数据处理公式对收集的数据进行预处理;
构建软件缺陷预测模型,并利用缺陷预测公式计算预测精度;
采用改进的萤火虫算法优化软件缺陷预测模型;将缺陷预测公式作为适应度函数,在训练数据集及测试数据集中分别获得最佳缺陷预测精度值;
利用优化的软件缺陷预测模型进行软件缺陷预测;
所述改进的萤火虫算法包括:
(1)计算萤火虫种群的平均适应度值:
P=(Light(1)+Light(2)+…+Light(n))/n;
(2)随机选择两个萤火虫xi和xj,然后利用下式计算萤火虫的价值适应度与整个种群的平均值之间的差异Di;
Di=abs(Light(i)-P);
若Di小于Dj,则萤火虫xi是为基建者;若xj的适应度值比P差,则萤火虫为探索者,否则,它是一个勘探者;
(3)重复步骤(2)直到所有萤火虫都被分组;每个组中萤火虫根据该组给定的规则进行学习;
步骤(3)中,所述每个组中萤火虫根据该组给定的规则进行学习包括:
基建者和探索者根据下式进行学习:
xi(t+1)=xi(t)+β(xj(t)-xi(t))+α(t)∈;
勘探者根据下式进行学习:
其中,G为迭代最大数,t为当前迭代数,times表示为较好萤火虫在一定条件下自由移动的次数,μ表示为设定为固定值的参数。
6.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
收集提取软件代码的特征数据,并利用数据处理公式对收集的数据进行预处理;
构建软件缺陷预测模型,并利用缺陷预测公式计算预测精度;
采用改进的萤火虫算法优化软件缺陷预测模型;将缺陷预测公式作为适应度函数,在训练数据集及测试数据集中分别获得最佳缺陷预测精度值;
利用优化的软件缺陷预测模型进行软件缺陷预测;
所述改进的萤火虫算法包括:
(1)计算萤火虫种群的平均适应度值:
P=(Light(1)+Light(2)+…+Light(n))/n;
(2)随机选择两个萤火虫xi和xj,然后利用下式计算萤火虫的价值适应度与整个种群的平均值之间的差异Di;
Di=abs(Light(i)-P);
若Di小于Dj,则萤火虫xi是为基建者;若xj的适应度值比P差,则萤火虫为探索者,否则,它是一个勘探者;
(3)重复步骤(2)直到所有萤火虫都被分组;每个组中萤火虫根据该组给定的规则进行学习;
步骤(3)中,所述每个组中萤火虫根据该组给定的规则进行学习包括:
基建者和探索者根据下式进行学习:
xi(t+1)=xi(t)+β(xj(t)-xi(t))+α(t)∈;
勘探者根据下式进行学习:
其中,G为迭代最大数,t为当前迭代数,times表示为较好萤火虫在一定条件下自由移动的次数,μ表示为设定为固定值的参数。
7.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1~4任意一项所述方法。
8.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现权利要求1~4任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011048727.9A CN112131089B (zh) | 2020-09-29 | 2020-09-29 | 软件缺陷预测的方法、分类器、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011048727.9A CN112131089B (zh) | 2020-09-29 | 2020-09-29 | 软件缺陷预测的方法、分类器、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112131089A CN112131089A (zh) | 2020-12-25 |
CN112131089B true CN112131089B (zh) | 2022-08-23 |
Family
ID=73844614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011048727.9A Active CN112131089B (zh) | 2020-09-29 | 2020-09-29 | 软件缺陷预测的方法、分类器、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112131089B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783762B (zh) * | 2020-12-31 | 2024-04-09 | 中电金信软件有限公司 | 软件质量的评估方法、装置及服务器 |
CN114706780B (zh) * | 2022-04-13 | 2024-07-19 | 北京理工大学 | 一种基于Stacking集成学习的软件缺陷预测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947652A (zh) * | 2019-03-26 | 2019-06-28 | 中山大学 | 一种软件缺陷预测的改进排序学习方法 |
CN111400180A (zh) * | 2020-03-13 | 2020-07-10 | 上海海事大学 | 一种基于特征集划分和集成学习的软件缺陷预测方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108876029A (zh) * | 2018-06-11 | 2018-11-23 | 南京航空航天大学 | 一种基于双种群自适应混沌萤火虫的客流预测方法 |
KR102264969B1 (ko) * | 2019-02-13 | 2021-06-15 | 강원대학교산학협력단 | 빅데이터 분석을 위한 시장 세분화 반딧불 알고리즘 방법 및 시스템 |
AU2020101065A4 (en) * | 2020-06-19 | 2020-07-23 | Hubei University Of Technology | Method for scheduling UAVs based on chaotic adaptive firefly algorithm |
-
2020
- 2020-09-29 CN CN202011048727.9A patent/CN112131089B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109947652A (zh) * | 2019-03-26 | 2019-06-28 | 中山大学 | 一种软件缺陷预测的改进排序学习方法 |
CN111400180A (zh) * | 2020-03-13 | 2020-07-10 | 上海海事大学 | 一种基于特征集划分和集成学习的软件缺陷预测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112131089A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110503192B (zh) | 资源有效的神经架构 | |
WO2021143883A1 (zh) | 神经网络的自适应搜索方法及装置 | |
CN115659281B (zh) | 一种自适应加速算子融合的方法及装置 | |
CN109840154B (zh) | 一种移动云环境下基于任务依赖的计算迁移方法 | |
US11704570B2 (en) | Learning device, learning system, and learning method | |
CN112131089B (zh) | 软件缺陷预测的方法、分类器、计算机设备及存储介质 | |
CN109934330A (zh) | 基于多样化种群的果蝇优化算法来构建预测模型的方法 | |
CN115905691B (zh) | 一种基于深度强化学习的偏好感知推荐方法 | |
JP7381814B2 (ja) | マルチタスク向けの予めトレーニング言語モデルの自動圧縮方法及びプラットフォーム | |
US11914672B2 (en) | Method of neural architecture search using continuous action reinforcement learning | |
CN113722980A (zh) | 海洋浪高预测方法、系统、计算机设备、存储介质、终端 | |
EP3973712A1 (en) | Small and fast video processing networks via neural architecture search | |
CN114780879A (zh) | 一种用于知识超图的可解释性链接预测方法 | |
CN110852435A (zh) | 一种基于神经进化计算模型 | |
CN112528033A (zh) | 知识图谱多跳推理方法、装置、电子设备及存储介质 | |
CN109347900B (zh) | 基于改进狼群算法的云服务系统自适应演化方法 | |
CN113111308B (zh) | 基于数据驱动遗传编程算法的符号回归方法及系统 | |
CN114997377A (zh) | 面向超大规模图的架构搜索方法、装置、设备及存储介质 | |
CN114239403A (zh) | 基于机器学习构建的社交网络影响最大化确定方法 | |
CN113743012A (zh) | 一种多用户场景下的云-边缘协同模式任务卸载优化方法 | |
CN114154582A (zh) | 基于环境动态分解模型的深度强化学习方法 | |
Zhang et al. | Design automation for fast, lightweight, and effective deep learning models: A survey | |
CN113449869A (zh) | 一种易推理贝叶斯网络的学习方法 | |
JP2023138928A (ja) | ニューラルネットワークを生成するための方法及び装置 | |
CN116798103B (zh) | 基于人工智能的人脸图像处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |