智能优化算法——遗传算法小实践

实验3 遗传算法
一、实验目的与要求
目的:熟悉遗产算法过程,掌握标准遗传算法原理、基本流程和参数设置。
要求:上机仿真,调试通过。
二、 实验设备:
计算机、Python语言软件
三、实验内容
旅行商问题(TSP)。假设有一个旅行商人要游览全国31个省会城市,他需要选择所要走过的路径,路径的限制是每个城市只能游览一次,而且最后要回到原来出发的城市。路径的选择要求是:所选择路径的路程为所有路径之中的最小值。
全国31个省会城市的坐标为【1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326 1556;3238 1229;4196 1004;4312 790;4386 570;3007 1970;2562 1756;2788 1491;2381 1676;1332 695;3715 1678;3918 2179;4061 2370;3780 2212;3676 2578;4029 2838;4263 2931;3429 1908;3507 2367;3394 2643;3439 3201;2935 3240;3140 3550;2545 2357;2778 2826;2370 2975】
四、实验原理
(1)遗传算法原理
遗传算法(GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种高效、并行、全局搜索的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最佳解。
(2)遗传算法流程或步骤
1.初始化:设置进化代数计数器g=0,设置最大进化代数G,随机生成NP个个体作为初始群体P(0)。
2.个体评价:计算群体P(t)中各个个体的适应度。
3.选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。
4.交叉运算:将交叉算子作用于群体,对选中的成对个体,以某一概率交换他们的之间部分的染色体,选择一些优良的个体遗传到下一代群体。
5.变异运算:将变异算子作用于群体,对选中的成对个体,以某一概率改变某些基因为其他的等位基因,群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。计算其适应度值,并根据适应度进行排序。
6.终止条件判断:若g>G,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。
在这里插入图片描述
(3)轮盘赌选择
基本思想:各个个体被选中的概率与其适应度大小成正比。
具体操作如下:
(1)计算出群体中每个个体的适应度f(i=1,2,…,M),M为群体大小
(2)计算出每个个体被遗传到下一代群体中的概率
(3)计算出每个个体的累积概率
(4)在[0,1]区间内产生一个均匀分布的伪随机数r
(5)若q[k-1]<r≤q[k] 成立,则选择个体k
(6)重复(4)、(5)共M次
五、实验结果
在这里插入图片描述
在这里插入图片描述
图2.初始路径长度
在这里插入图片描述
在这里插入图片描述
图3.两次迭代后长度
在这里插入图片描述
在这里插入图片描述
图4.五次迭代后长度 在这里插入图片描述 在这里插入图片描述 图5.十次迭代后长度
在这里插入图片描述
在这里插入图片描述
图6.五十次迭代后长度
在这里插入图片描述
在这里插入图片描述
图7.一百次迭代后长度在这里插入图片描述
在这里插入图片描述
图8.最终收敛图像及结果

由上述通过上述实验结果可以看出,遗传算法中的tsp问题的图像距离的下降速度同样是先快后慢,在迭代60次左右收敛到最优解。但是在时间上表现不是很好,相对于相同迭代次数的模拟退火算法的时间多出了4倍左右的时间。

六、思考遗传算法关键参数设置对实验结果的影响。
(1)群体规模:群体规模会影响遗传优化的最终结果和遗传算法的执行效率,NP太小时,算法性能一般较差,采用较大的群体规模可以减小遗传算法陷入局部最优解的机会,但较大的群体规模意味着计算复杂度较高。图8,图9分别为NP取20和100时的实验结果,可以看出不仅在性能上差异较大,且在运行时间上NP取值小时运行较快。
在这里插入图片描述
图9.NP=20时实验结果
在这里插入图片描述
图10.NP=20时实验结果
(2)交叉规律Pc:交叉概率控制着交叉操作被使用的频率。较大的交叉概率可以增加算法搜索新的区域的能力,但高性能的模式遭到破坏的可能性增大,但交叉规律太低,算法会陷入迟钝状态。
图10,11分别是Pc取值0.25和0.85时的实验结果,通过对比可以看出:Pc取值较小时图像收敛速度较慢,性能较差,但运行时间可观。Pc取值较大时图像收敛速度较快,性能较好,但运行时间较长。
在这里插入图片描述
在这里插入图片描述
图11.
在这里插入图片描述
在这里插入图片描述
图12.
(3)变异概率Pm:变异操作在算法中重要目的是保持群体的多样性。一般低频度的变异可以防止群体中重要的基因丢失,高频度的变异概率会使算法趋于纯粹的随机搜索。图12,13取值分别为0.01和0。1时的实验结果,可以看出在图像上和运行时间上没有太大的区别,在实验中的变异概率并不是取值越大越好,相反,本次实验中取值为0.01反而得到了较好的输出。
在这里插入图片描述
在这里插入图片描述
图13.
在这里插入图片描述
在这里插入图片描述
图14.
(4)遗传运算的终止进化代数G:终止进化代数表示算法运行结束的条件,在结束时将当前群体中最佳个体作为最优解输出。在实验结果中分析可得,问题的迭代总会在一定次数后收敛到最优解,所以在实验中可以将取值在反复比对后取到比收敛最大次数较大值即可。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值