当前位置:文档之家› 遗传算法参数调整实验报告(精)

遗传算法参数调整实验报告(精)

遗传算法参数调整实验报告
算法设计:
编码方案:遍历序列 适应度函数:遍历路程 遗传算子设计:
选择算子:精英保留+轮盘赌
交叉算子:Pxover ,顺序交叉、双亲双子,
变异算子:Pmutation ,随机选择序列中一个染色体(城市)与其相邻染色体交换
首先,我们改编了我们的程序,将主函数嵌套在多层迭代之内,从外到内依此为:
过程中,我们的程序将记录每一次运行时种群逐代进化(收敛)的情况,并另外记录总体测试结果。

测试环境:
AMD Athlon64 3000+ (Overclock to 2.4GHz)
目标:寻求最优Px 、Pm 组合 方式:popsize = 50
maxgen = 500 \ 10000 \ 15000 Px = 0.1~0.9(0.05) Pm = 0.01~0.1(0.01) count = 50
测试情况:运行近2万次,时间约30小时,产生数据文件总共5.8GB
测试结果:Px, Pm 对收敛结果的影响,用灰度表示结果适应度,黑色为适应度最低
结论:Px = 0.1
,Pm = 0.01为最优,并刷新最优结果19912(之前以为是20310),但20000次测试中最优解只出现4次,程序需要改进。

Maxgen = 5000
Pm=0.01 Px = 0.1
Maxgen = 10000
0.1
0.9
Px = 0.1 0.9
0.1
目标:改进程序,再寻求最优参数
方式:1、改进变异函数,只保留积极变异;
2、扩大测试范围,增大参数步进
popsize = 100 \ 200 \ 400 \ 800
maxgen = 10000
Px = 0.1 \ 0.5 \ 0.9
Pm = 0.01 \ 0.04 \ 0.07 \ 0.1
count = 30
测试情况:运行1200次,时间8小时,产生数据文件600MB
测试结果:
结论:Px = 0.1,Pm = 0.01仍为最优,收敛情况大有改善,10000代基本收敛到22000附近,并多次达到最优解19912。

变异函数的修改加快了整体收敛速度。

但是收敛情况对Pm并不敏感。

另外,单个种群在遗传过程中收敛速度的统计,将是下一步的目标。

目标:以单个种群的进化情况为对象,研究种群人口数对收敛速度的影响。

方式:1、修改程序,不以遗传代数作为迭代结束控制,而改为以达到目标适应度为结束,统计遗传的代数。

2、固定Px = 0.1,Pm = 0.01 popsize = 100 \ 200 \ 400 count = 100
Target Fitness = 20000 \ 21000
测试情况:以20000为目标,运行300次,时间2小时,产生数据文件600MB 以21000为目标,运行300次,时间1小时,产生数据文件280MB
测试结果:(1)目标适应度 20000以下
(2) 目标适应度 21000以下
popsize = 100时,成功 75/100 次
popsize = 200时,成功 81/100 次
popsize = 400时,成功 86/100 次
结论:增加种群人口对整体收敛速度有提高作用,但同一数量级内的变化效果不明显
109.7403 置信度(95.0%)
100 观测数 2078362 求和 23135 最大值 19912 最小值 3223 区域 305881.8 方差 20466
众数 20822 中位数 20783.62 平均 popsize=100 成功:13次 80.70299215
100
2062864
21793 19912 1881 165424.9398
20847 20590 20628.64 popsize=400 成功:13次
90.6743112
100
2071380
22240 19912 2328 208828.7273
20225
20682.5 20713.8 popsize=200 成功:12次
测试总结
⏹Px, Pm的值减小时,随机性减小,算子中的“择优”功能(如轮盘赌方法)发挥作用更大,所以
收敛性较好。

⏹种群人口数增加时,由于产生一些优秀个体的概率增加,使收敛速度有所加快,但是到收敛后
期因为随机性大,不见得更容易达到最优结果。

⏹末期收敛最优比前期快速下降更难实现和优化!。

相关主题