教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

基于GA-PSO算法的路径测试数据自动生成(2)

来源:网络收集 时间:2026-03-22
导读: c)划分种群。按照适应度大小对P,中的粒子进行排序,筛选出种群P,中粒子基因较好的个体,即适应度值大的粒子,以中比例选取部分粒子加入到种群P2。 d)改进种群P2个体。对种群P2采用粒子群算法,根据自

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

Y。Y+z z==

适应度函数是GA,PSO算法与实际问题的惟一接口,是种群中个体优劣的一种量化反映,它的构造直接影响问题求解的效率。本文采用Korel【81提出的分支函数叠加法构造适应度函数。首先将程序中各个分支谓词用分支函数,来量化,分支函数是一个分支谓词到实际值的映射,在选定路径上各分支点前插入相应的分支函数表达式(假设有m个分支),F。=^(髫.,茗2,…,茗。),见=.疋(菇l,茗2,…,髫。),….,Fm=厶(茹l,名2,…,髫。)o由分支函数叠加得到的目标函数表达式为F=mfl.x一(‘+

{0

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古

爿骨种群(接适应度大小捧序,

加入种群只(适戍度人的币比倒粒子)

改进种群P1个体(根据自身和奄局量优粒子更新)

得到新一代粒子群种群p’

计算种群^粒于适应度

嚼{莉

l|十

霹谜申嘲{《刻{遄

实验中的参数选择如下:三条边的输入变量为0~200,种群大小为100,最大迭代次数为500。遗传算法采用22位二进制数对三个输入变量编码,交叉率为0.85,变异率为0.05。粒子群算法采用实值编码,粒子从遗传算法中迁移过来后,先换算成相应的整型,再利用粒子群算法进行更新。其中:c。=C2---2,∞。。=0.8,tO曲=0.0702。适应度函数中的max=

1000.妒=0.2。

《套芦

【随机产生咖 …… 此处隐藏:1683字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于GA-PSO算法的路径测试数据自动生成(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/97743.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)