机数过大,结果能复制一个或极少个样本。为了
避免这一情况,采用了限制措施,即压低了随机数的上限。
5、交叉采用的方法为按步长的单点交叉,为随机选择一对样本,再随机选择一
f个交叉点位置,按一定的步长进行交叉点的选择。选择一个步长而不是将其设为1,是因为若某一位置处的城市代码因为进行了交叉而发生了改变,则其经过该处的两个距离都会改变。这种交叉兼有遗传和变异两方面的作用,因为若交叉点处的城市编号都相同,则对两个个体而言交叉后样本无变化,否则样本有变化。
6、变异方法为随机两点I,J的交互位置法。对于A12345678910,若I3J8,则变异后B12845673910虽然是简单的随机两点交互,但实际上已经有40的距离发生了改变。若用dij表示城市i与j之间的距离,则变异后与变异前样本路径的距离差为B23十B34B78十B89一A23十A34A78A89可见,随机两点交互足以产生新的模式样本。较大地提高变异率就会产生大量的新样本,全局最优样本出现的概率随之提高。为了收敛到最优解,借鉴模拟退火算法的思想,采取了变异率由很大逐渐衰减到较小的数量,这样做也利于找到全局最优解。7、将复制,交叉,变异后得到的种群group1重新赋给group然后重复3,4,5,6步操作。直至满足循环停止条件,即找到最优路径。
仿真实验:TSP实验数据点取为:10城市TSP(自己随机选取10个点):
0,0;12,32;5,2584533172571515152525154112
30城市TSP问题(d423741byDBFogel):
4194378454672562764299685871445462836
9646018542260834691382538244258697171
7478877618401340827623258354521412644
35450
50城市TSP问题(d427855byDBFogel):31,32;32,39;40,30;37,69;27,68;37,52;38,46;31,62;30,48;21,47;25,55;16,57;17,63;42,41;17,33;25,32;5,64;
f8,52;12,42;7,38;5,25;10,17;45,35;42,57;32,22;27,23;56,37;52,41;49,49;58,48;57,58;39,10;46,10;59,15;51,21;48,28;52,33;58,27;61,33;62,63;20,26;5,6;13,13;21,10;30,15;36,16;62,42;63,69;52,64;43,67
对与10点TSP问题,城市数比较少,每一代个体数目为200,进化代数取为1000代,算法执行结果为:最优路径为:
95106713428每一代的最小距离收敛图为:
每一代种群最短距离的收敛过程175
170
每一代种群最短距离
165
160
155
150
1450
100
200
300
400
500
600
700
800
9001000
遗传代数
最后得到的最优路径为:
f闭合曲线即为最优路径45
40
35
30
25
y
r