基于GA-PSO算法的路径测试数据自动生成(2)
c)划分种群。按照适应度大小对P,中的粒子进行排序,筛选出种群P,中粒子基因较好的个体,即适应度值大的粒子,以中比例选取部分粒子加入到种群P2。
d)改进种群P2个体。对种群P2采用粒子群算法,根据自身和全局最优粒子更新种群P2,得到新的种群P2。计算更新后的种群P2所有粒子的适应度函数,判断是否找到最优解或迭代次数达到最大,若找到则转g)。
e)重构种群P。。除去迁移到P2中参加粒子群算法的粒子,随机产生函比例的粒子补充进入P,。补充币比例的粒子是为了保持参加遗传算法粒子的个数固定。
f)改进种群P。个体。种群P。采用遗传算法寻优,按照选择、交叉、变异方式得到新一代种群P。,转到b)。
g)输出最优解,算法结束。
3实验结果与分析
3.1
测试数据自动生成模型
GA—PSO算法测试数据生成的模型主要包括两个模块,即
测试环境构造模块和GA.PSO算法运行模块。模型结构如图2所示。
右侧GA-PSO算法包是系统的核心部分,它随机地产生第一代种群,按照输入参数的编码方式将种群中的粒子映射成实际参数值,并传递给左侧的驱动程序,驱动被测单元运行。被测单元运行时计算出当前测试数据的适应函数值返回给右侧的GA.PSO算法包,算法包据此来评价种群中每个粒子的优劣,评估每个粒子的适应度,若有满足要求的粒子则输出最优解,否则通过GA—PSO算法形成新一代种群,如此往复,直至找到覆盖选定路径的测试数据。左侧的测试环境构造模块利用程序插装技术,在被测程序源代码级插入用于评估当前输入参数值的适应度函数,并将适应度值返回GA—PSO算法包。本文中适应度函数采用分支函数叠加法构造,相关内容在3.3节介绍。
3.2测试实例
首先采用常用测试函数Rastrigin作为测试对象,f(x)=
^一l
三茗;一lOcos(21vxl)+lo(一10≤聋‘≤10),这是一个多峰函数,
最优值接近原点,基本遗传算法的寻优值为49.4664,基本粒子群算法的寻优值为49.3212,混合算法的寻优值为O,说明
混合算法的寻优能力更强。
其次本文选择具有代表性的三角形类型判别程序作为测试实例。因为该实例包含了清晰而又复杂的逻辑,是很多测试问题的首选程序。三角形判别程序总共包含三个输入变量(聋,Y,z),这个简单例子的程序如下:
public
void砸angIe(hat
x,inty。int
z)
{
PSO
.1368
if(x<=0
计算机应用研究
0X>100)
第27卷
由图可看出程序总共包含九条路径:路径l为正(膏不满足条件);路径2为疋瓦(Y不满足条件);路径3为咒五瓦(=不满足条件);路径4为瓦瓦瓦乃(不构成三角形);路径5为疋L瓦瓦马五.(等腰直角三角形);路径6为疋L瓦瓦BL:(直角三角形);路径7为疋L咒瓦马正,%(等边三角形);路径8
else
System.out.pfinfln(”x不符合条件”);
if(Y<=O0Y>loo)System.out.pfintln(”Y不符合条件”);elseif(Z<=0|fZ>100)
else
System.OUt.pfinfln(”z不符合条件”);1
if(x+Y<z0x+z<Y0Y+z<x)
System.out.pfintln(”不构成三角形”);
else
为孔t乃孔巧瓦,瓦(等腰三角形);路径9为疋瓦L瓦‰T14
(一般三角形)。3.3构造适应度函数
{
if(x謇x+y事Y==z z8
x x)
x+x+z事z==Y
4
Y
0
Y。Y+z z==
适应度函数是GA,PSO算法与实际问题的惟一接口,是种群中个体优劣的一种量化反映,它的构造直接影响问题求解的效率。本文采用Korel【81提出的分支函数叠加法构造适应度函数。首先将程序中各个分支谓词用分支函数,来量化,分支函数是一个分支谓词到实际值的映射,在选定路径上各分支点前插入相应的分支函数表达式(假设有m个分支),F。=^(髫.,茗2,…,茗。),见=.疋(菇l,茗2,…,髫。),….,Fm=厶(茹l,名2,…,髫。)o由分支函数叠加得到的目标函数表达式为F=mfl.x一(‘+
{0
Y
4
if(x x+Y Y==g z&6Ⅸ==y0x}x+z奉z==Y木y&占Ⅸ==zY+z z==x x&&y2=z)
System.Out.pfinfln(”这是一个等腰直角三角形”);
else
System.out.pfinfln(”这是一个直角三角形”);}
else
if(x==y&&y==z)
System.out.pfintln(”这是一个等边三角形”);
elseif((x==y)&&(y!=z)0(x:=z)&&(x!=y)0(Y==z)&&(Y!=x))
System.out.pfintln(“这是一个等腰三角形”);
else
R+…+F。),Il瞰为一个较大整数。这样评价函数F归结为
被测单元的参变量茗。,茗:,石,,…,菇。的函数,其值便是评价测试数据优劣程度的尺度。3.4结果评价与分析
实验中选取其中四条路径(编号为6、7、8、9)作为测试目标。为了评价算法的优劣,分别使用简单遗传算法、粒子群算法以及GA.PSO算法对所测试的路径进行100次试验,记录下各种方法正确产生测试数据所需要的代数和所需CPU时间。实验结果如表1所示。
表I
三种不同算法执行性能对比表
System.out.pfinfln(”这是一个普通三角形”);}}
为了后续的表述方便,将三角形类别判别程序的流程采用如图3所示的二叉树表示。树中叶子节点表示程序运行到某一状态(即输出某一结果);父节点和分支节点表示程序的一个分支判断,t(i=1,2,…,16)表示对应分支的判断结果(TRUE或FALSE)。
l初始化产生种群P。,只(只为宅)I
●
r-o(豫示代敷)I
<囊多是。皴;|絮料
计算种群P.粒子适应度
●
7I
构孽黔;—GA—PSO
I古
爿骨种群(接适应度大小捧序,
l
加入种群只(适戍度人的币比倒粒子)
l
改进种群P1个体(根据自身和奄局量优粒子更新)
I
得到新一代粒子群种群p’
0
计算种群^粒于适应度
嚼{莉
t
l|十
霹谜申嘲{《刻{遄
实验中的参数选择如下:三条边的输入变量为0~200,种群大小为100,最大迭代次数为500。遗传算法采用22位二进制数对三个输入变量编码,交叉率为0.85,变异率为0.05。粒子群算法采用实值编码,粒子从遗传算法中迁移过来后,先换算成相应的整型,再利用粒子群算法进行更新。其中:c。=C2---2,∞。。=0.8,tO曲=0.0702。适应度函数中的max=
1000.妒=0.2。
《套芦
相关推荐:
- [资格考试]石油钻采专业设备项目可行性研究报告编
- [资格考试]2012-2013学年度第二学期麻风病防治知
- [资格考试]道路勘测设计 绪论
- [资格考试]控烟戒烟知识培训资料
- [资格考试]建设工程安全生产管理(三类人员安全员
- [资格考试]photoshop制作茶叶包装盒步骤平面效果
- [资格考试]授课进度计划表封面(09-10下施工)
- [资格考试]麦肯锡卓越工作方法读后感
- [资格考试]2007年广西区农村信用社招聘考试试题
- [资格考试]软件实施工程师笔试题
- [资格考试]2014年初三数学复习专练第一章 数与式(
- [资格考试]中国糯玉米汁饮料市场发展概况及投资战
- [资格考试]塑钢门窗安装((专项方案)15)
- [资格考试]初中数学答题卡模板2
- [资格考试]2015-2020年中国效率手册行业市场调查
- [资格考试]华北电力大学学习实践活动领导小组办公
- [资格考试]溃疡性结肠炎研究的新进展
- [资格考试]人教版高中语文1—5册(必修)背诵篇目名
- [资格考试]ISO9001-2018质量管理体系最新版标准
- [资格考试]论文之希尔顿酒店集团进入中国的战略研
- 全国中小学生转学申请表
- 《奇迹暖暖》17-支2文学少女小满(9)公
- 2019-2020学年八年级地理下册 第六章
- 2005年高考试题——英语(天津卷)
- 无纺布耐磨测试方法及标准
- 建筑工程施工劳动力安排计划
- (目录)中国中央空调行业市场深度调研分
- 中国期货价格期限结构模型实证分析
- AutoCAD 2016基础教程第2章 AutoCAD基
- 2014-2015学年西城初三期末数学试题及
- 机械加工工艺基础(完整版)
- 归因理论在管理中的应用[1]0
- 突破瓶颈 实现医院可持续发展
- 2014年南京师范大学商学院决策学招生目
- 现浇箱梁支架预压报告
- Excel_2010函数图表入门与实战
- 人教版新课标初中数学 13.1 轴对称 (
- Visual Basic 6.0程序设计教程电子教案
- 2010北京助理工程师考试复习《建筑施工
- 国外5大医疗互联网模式分析




