遗传算法求解TSP问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六遗传算法求解TSP问题
一、实验目的
熟悉和掌握遗传算法的原理、流程和编码策略,并利用遗传求解函数优化问题,理解求解TSP问题的流程并测试主要参数对结果的影响。
二、实验内容
1、参考实验系统给出的遗传算法核心代码,用遗传算法求解TSP的优化问题,分析遗传算法求解不同规模TSP问题的算法性能。
2、对于同一个TSP问题,分析种群规模、交叉概率和变异概率对算法结果的影响。
3、增加1种变异策略和1种个体选择概率分配策略,比较求解同一TSP问题时不同变异策略及不同个体选择分配策略对算法结果的影响。
4、上交源代码。
三、遗传算法求解TSP问题的流程图
四、遗传算法求解不同规模的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)种群规模对算法结果的影响
实验次数:10
最大迭代步数:100
交叉概率:0.85
变异概率:0.15
如表1-1或3-1-0-9-2-4-8-5-7-6,注意到这是一圈,顺时针或者逆时针都可以。当种群规模为10,20时,并没有找到最优解。
(2)交叉概率对算法结果的影响
实验次数:15
种群规模:25
最大迭代步数:100
变异概率:0.15
实验结果:
在该情况下,交叉概率过低将使搜索陷入迟钝状态,得不到最优解。
(3)变异概率对算法结果的影响
实验次数:10
种群规模:25
最大迭代步数:100
交叉概率:0.85
实验结果:
又表1-3可知,当变异概率过大或过低都将导致无法得到最优解。注:(2)(3)的实验数据与(1)的实验数据不同,详见附录。
六、不同变异策略和个体选择概率分配策略对算法结果的影响
(1)两点互换变异与插入变异的比较:
●试验次数(CASNUM):10
●城市数(POINTCNT):10
●种群规模(POPSIZE):100
●最大迭代步数(GENERATIONS):100
●交叉概率(PC):0.85
●变异概率(PM):0.15
●选择个体方法:轮盘赌选择
●交叉类型:PMX交叉
●个体选择概率分配方法:适应度比例方法
a.变异类型: 两点互换变异
b.变异类型: 插入变异
分析:
两点互换变异20次模拟中,4次得到非最优解;而插入变异只有2次;插入变异的最好适应度平均值比两点互换变异小0.14755,最差适应度平均值和总的适应度平均值都比两点互换下,并且在Release下,运行时间前者比后者快218.3ms。可见在该条件下(交叉概率,变异概率,种群规模等),插入变异比两点互换变异的算法效果要好。
(2)个体选择分配策略
●试验次数(CASNUM):10
●城市数(POINTCNT):10
●种群规模(POPSIZE):100
●最大迭代步数(GENERATIONS):100
●交叉概率(PC):0.85
●变异概率(PM):0.15
●选择个体方法:轮盘赌选择
●交叉类型:PMX交叉
●变异类型: 两点互换变异
a.个体选择概率分配方法:适应度比例方法
同表1-4
b.个体选择概率分配方法:非线性排序方式
分析:
个体选择概率分配方式采用非线性排序方式时,程序运行结果非常糟糕。20次模拟中竟然有11次无法找到最优解。运行时间也很慢。可见在该条件下(交叉概率,变异概率,种群规模等),个体选择概率分配方式不宜采用非线性排序方式,简单的适应度比例方法的效果明显更好。
七、实验心得与体会
通过本实验,更加深入体会了参数设置对算法结果的影响。同一个算法,参数值不同,获得的结果可能会完全不同。
遗传算法是一种智能优化算法,它能较好的近似求解TSP问题,在问题规模比较大的时候,遗传算法的优势就明显体现出来,当然不能完全保证能得到最优解。
遗传算法的实现有些关键点,一是串的编码方式,本质就是问题编码,串长度及编码形式对算法收敛影响极大;二是适应函数的确定,这是选择的基础,应具体问题具体分析,没有大一统的方法;三是自身参数的设定,其中重要的是种群规模,最大迭代次数,交叉概率和变异概率,通过实验我们可以看到种群规模、最大迭代次数对问题求解的精度有很大影响,交叉概率和变异概率的设定对问题的收敛速度和求解精度也都有极大的影响,但在不同条件下,这种影响表现的程度有很大的不同。具体参数的设定应根据具体的领域问题。
八:附录:
变异概率与交叉概率对算法的影响: