实验六遗传算法求解TSP问题实验Word下载.docx
- 文档编号:22662946
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:21
- 大小:167.03KB
实验六遗传算法求解TSP问题实验Word下载.docx
《实验六遗传算法求解TSP问题实验Word下载.docx》由会员分享,可在线阅读,更多相关《实验六遗传算法求解TSP问题实验Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
适应度评分函数,为给定假设赋予一个评估分数
Fitness_threshold:
指定终止判据的阈值
p:
群体中包含的假设数量
r:
每一步中通过交叉取代群体成员的比例
m:
变异率
初始化群体:
P←随机产生的p个假设
评估:
对于P中的每一个h,计算Fitness(h)
当[maxFitness(h)]<
Fitness_threshold,做
产生新的一代Ps:
(1)选择:
用概率方法选择P的(1-r)p个成员加入Ps.从P中选择假设hi的概率用下面公式计算:
(2)交叉:
根据上面给出的
从P中按概率选择r(p/2)对假设.对于每对假设<
h1,h2>
应用交叉算子产生两个后代.把所有的后代加入Ps
(3)变异:
使用均匀的概率从Ps中选择m%的成员.对于选出的每个成员,在它表示中随机选择一个为取反
(4)更新:
P←Ps
(5)评估:
对于P中的每个h计算Fitness(h)
从P中返回适应度最高的假设
3.TSP问题的遗传算法设计与实现
对于n个城市的问题,每个个体即每个解的长度为n,用s行,t列的pop矩阵,表示初始群体,s表示初始群体的个数,t为n+1,矩阵的每一行的前n个元素表示城市编码,最后一个元素表示这一路径的长度。
城市的位置可以手动输入,使用一个N×
N矩阵D存储,D(i,j)代表城市i和城市j之间的距离。
D(i,j)=sqrt((Xi-Xj).^2+(Yi-Yj).^2)。
在TSP的求解中,可以直接用距离总和作为适应度函数。
个体的路径长度越小,所得个体优越,距离的总和越大,适应度越小,进而探讨求解结果是否最优。
选择就是从群体中选择优胜个体、淘汰劣质个体的操作,它是建立在群体中个体适应度评估基础上。
这里采用方法是最优保存方法。
本实例中交叉采用部分匹配交叉策略,先随机选取两个交叉点,然后将两交叉点中间的基因段互换,将互换的基因段以外的部分中与互换后基因段中元素冲突的用另一父代的相应位置代替,直到没有冲突。
变异操作是以变异概率Pm对群体中个体串某些基因位上的基因值作变动,若变异后子代的适应度值更加优异,则保留子代染色体,否则,仍保留父代染色体。
这有助于增加种群的多样性,避免早熟收敛(非全局最优)。
判断结束准则是固定指定了迭代的次数当算法达到迭代次数时,算法结束,输出当前的最优解。
在根据适配值计算并选择的时候,记录下来的当前最优值,在变异后加入跟新的群体,保证新的迭代循环中TSP解越来越好(不会变差)。
在选择的一种操作是拿最优的K个替换最差的K个个体,本例是按适配值选择,并使群体数目变少,当每次变异操作后,产生随机路径补充群体是群体数目不变,再次循环,一定程度上防止因初始群体的选择问题而陷入局部最优。
4.TSP问题的遗传算法的具体步骤
解最短路径的遗传算法如下:
Generate[p(n)];
表示程序开始时要首先产生一个群体,群体个数为n
Evaluate[p(h)];
表示计算每个个体适应度,h是种群中的一个个体
RepeatroofGenerationstimes;
重复下面的操作,直到满足条件为止
Selectp(h)fromp(n-1);
表示从前一代群体中选择一对双亲,用于交叉、变异操作,P(n)代表第n代群体
Crossoverandmutationp(n);
进行交叉和变异操作
Learning[p(n)];
自学习过程
计算新生成的种群中每个个体的适应度
End;
具体流程图如下所示:
流程图
5.遗传算法求解不同规模的TSP问题的算法性能
(1)遗传算法执行方式说明:
●适应度值计算方法:
当前路线的路径长度
●个体选择概率分配方法:
适应度比例方法
●选择个体方法:
轮盘赌选择
●交叉类型:
PMX交叉
●变异类型:
两点互换变异
(2)实验模拟结果:
城市个数
时间(ms)
5
16925
10
16630
15
18833
20
22596
25
24159
30
30289
35
35239
40
38608
45
40032
50
43757
55
47746
60
58143
65
59942
70
64361
75
71417
图1-1
(3)分析
由图1-1可知,遗传算法执行时间随着TSP问题规模的增大而增大,并且大致为线性增长。
五、不同参数下的计算结果对比
(1)种群规模对算法结果的影响
实验次数:
最大迭代步数:
100
交叉概率:
0.85
变异概率:
0.15
表1-1
种群规模
适应度值
最优路径
25.264
4-5-8-7-6-3-1-0-9-2
26.3428
2-9-1-0-3-6-7-5-8-4
25.1652
1-3-6-7-5-8-4-2-9-0
0-1-3-6-7-5-8-4-2-9
80
9-0-1-3-6-7-5-8-4-2
1-0-9-2-4-8-5-7-6-3
150
5-8-4-2-9-0-1-3-6-7
200
250
3-1-0-9-2-4-8-5-7-6
300
如表1-1所示,显然最短路径为25.1652m,最优路径为1-0-9-1-3-6-7-5-8-4-2或3-1-0-9-2-4-8-5-7-6,注意到这是一圈,顺时针或者逆时针都可以。
当种群规模为10,20时,并没有找到最优解。
(2)交叉概率对算法结果的影响
种群规模:
实验结果:
表1-2
交叉概率
最好适应度
最差适应度
平均适应度
最优解
运行时间
0.001
28.0447
36.6567
32.6002
9-2-6-0-5-4-8-7-3-1
310
0.01
27.0935
34.9943
32.1495
7-8-3-1-9-2-6-0-5-4
260
0.1
35.3033
31.9372
7-3-1-9-2-6-0-5-4-8
34.1175
31.2183
0-5-4-8-7-3-1-9-2-6
270
0.2
28.7108
33.9512
30.9035
3-1-9-2-6-5-0-4-7-8
280
0.25
35.1623
30.7456
1-3-7-8-4-5-0-6-2-9
0.3
31.9941
29.9428
8-3-1-9-2-6-0-5-4-7
290
0.35
32.8085
30.9945
9-1-3-8-7-4-5-0-6-2
0.4
32.5313
30.1534
1-3-8-7-4-5-0-6-2-9
279
0.45
33.2014
30.1757
456
0.5
28.0934
33.6307
30.9026
5-0-2-6-9-1-3-8-7-4
663
0.55
33.5233
29.1304
1-9-2-6-0-5-4-7-8-3
520
0.6
33.2512
30.7836
3-1-9-2-6-0-5-4-7-8
546
0.65
33.7003
30.9371
5-4-8-7-3-1-9-2-6-0
596
0.7
32.0927
29.9502
571
0.75
32.4488
30.3699
559
0.8
32.1551
29.9382
7-4-5-0-6-2-9-1-3-8
358
34.5399
30.3594
5-0-6-2-9-1-3-8-7-4
360
0.9
32.6273
30.69
6-0-5-4-7-8-3-1-9-2
375
0.95
32.4672
29.919
6-2-9-1-3-8-7-4-5-0
476
(注:
红色表示非最优解)
在该情况下,交叉概率过低将使搜索陷入迟钝状态,得不到最优解。
(3)变异概率对算法结果的影响
表1-3
变异概率
29.4717
34.732
32.4911
0-6-2-1-9-3-8-7-4-5
245
29.0446
34.6591
32.3714
8-4-5-0-2-6-9-1-3-7
274
34.011
30.9417
32.093
30.2568
246
32.2349
30.3144
8-7-4-5-0-6-2-9-1-3
282
32.718
30.1572
4-5-0-6-2-9-1-3-8-7
30.2854
0-5-4-7-8-3-1-9-2-6
252
33.3167
30.7748
266
34.3705
31.3041
2-0-5-4-8-7-3-1-9-6
362
31.374
29.6816
2-6-0-5-4-7-8-3-1-9
438
32.3752
30.2211
2-9-1-3-8-7-4-5-0-6
431
33.3819
30.6623
492
30.36
1-3-8-7-4-5-0-2-6-9
417
32.7491
30.0201
434
32.4238
30.785
1-3-8-7-4-0-5-6-2-9
432
31.8928
30.2451
475
31.6135
30.3471
9-1-3-8-7-4-5-0-2-6
327
29.662
33.2392
31.1585
2-9-1-3-7-8-4-0-5-6
314
32.0387
30.4152
396
31.3036
30.0067
9-1-3-7-8-4-5-0-6-2
436
又表1-3可知,当变异概率过大或过低都将导致无法得到最优解。
注:
(2)(3)的实验数据与
(1)的实验数据不同,详见附录。
六、不同变异策略和个体选择概率分配策略对算法结果的影响
(1)两点互换变异与插入变异的比较:
●试验次数(CASNUM):
10
●城市数(POINTCNT):
●种群规模(POPSIZE):
●最大迭代步数(GENERATIONS):
●交叉概率(PC):
●变异概率(PM):
a.变异类型:
表1-4两点互换变异程序结果
序号
1
30.4229
29.0891
6-2-0-5-4-7-8-3-1-9
1199
2
31.1417
28.9841
1678
3
30.4228
29.0604
1940
4
30.3703
28.8787
1756
31.0619
29.0755
1885
6
31.1589
29.3942
1936
7
29.7648
6-2-9-1-3-7-8-4-5-0
1772
8
31.3475
29.8415
4-5-0-2-6-9-1-3-7-8
1980
9
30.6143
29.059
0-6-2-9-1-3-8-7-4-5
30.5585
29.0811
9-2-6-0-5-4-7-8-3-1
1872
11
31.0171
29.4264
1517
12
29.2414
1541
13
32.0255
29.0789
14
31.516
28.8906
1345
29.0226
1377
16
30.4081
28.9081
1853
17
29.3316
1522
18
30.0203
28.5243
1601
19
31.1404
29.567
2-9-1-3-7-8-4-5-0-6
1609
29.5359
1311
平均值
27.3361
30.8782
29.1877
1657
b.变异类型:
插入变异
表1-5插入变异程序结果
31.4753
28.8453
1388
28.9168
1355
29.6631
28.902
1637
30.5241
29.5119
4-5-0-6-2-9-1-3-7-8
1164
31.0575
29.4682
1245
28.5546
1222
30.8205
29.748
3-1-9-2-6-0-5-4-8-7
1148
29.3907
1742
30.423
28.6878
2064
28.72
1518
29.3282
1240
30.523
28.5544
1204
29.0508
1734
31.1177
29.5905
1532
29.1904
1483
28.8061
1282
31.7639
29.4591
1485
29.1614
28.5974
1507
28.8036
1234
27.18862
30.6465
29.0643
1439
分析:
两点互换变异20次模拟中,4次得到非最优解;
而插入变异只有2次;
插入变异的最好适应度平均值比两点互换变异小0.14755,最差适应度平均值和总的适应度平均值都比两点互换下,并且在Release下,运行时间前者比后者快218.3ms。
可见在该条件下(交
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 遗传 算法 求解 TSP 问题
![提示](https://static.bdocx.com/images/bang_tan.gif)