计算智能——基于遗传算法的TSP问题(课堂实验)

一.引言

遗传算法喝蚁群算法都是时效的最优化搜索算法,在解决诸如TSP这类组合优化问题时,它们各有所长。
本文使用MATLAB先来分析遗传算法自身的参数影响,再进一步对比分析两种算法解决TSP问题的性能。

二.遗传算法基本原理和TSP求解

遗传算法由美国J.Holland教授提出。

其主要特点:群体搜索策略
                      群体中个体间的信息交换

搜索不依赖于梯度信息。

遗传算法的三个主要操作算子:选择算子
                                                  交叉算子
                                                  变异算子

遗传算法包含的五个要素:
1.对参数进行编码
2.设定初始种群大小
3.适应度函数设计
4.遗传操作设计
5.控制参数设定(包括种群大小,最大进化代数,交叉概率,变异概率等。)

遗传算法求解TSP问题最重要的地方
交叉操作时,城市交换的方法。

交叉前:
在这里插入图片描述
交叉后:
在这里插入图片描述
由图可见会出现城市冲突现象
解决办法:
在这里插入图片描述
将染色体A冲突基因8改为染色体B对应位置的5
以此类推来消除冲突
得到结果:
在这里插入图片描述

关于遗传算法的其他详细原理可以参考上篇文章遗传算法

三.遗传算法自身参数分析

3.1 城市个数的讨论

城市个数的参数讨论,是建立在城市个数不同(个数保持一定时,数据集保持一致)的情况下,各运行10次,比较最优解最差解的差值,再自己估计一下10次的平均值,来看在当前城市个数下该算法的性能。以讨论出遗传算法适合更优的解题城市区间。
最优值和最差值的差值越小,说明算法性能越好。

其他参数设置(保持不变)
种群数量:100
迭代次数:500
交叉概率:0.8
变异概率:0.05
各运行10次

1.城市个数为10

最优解:
在这里插入图片描述
在这里插入图片描述
最差解:
在这里插入图片描述
在这里插入图片描述
平均值: 8.72e+00
最优与最差差值: 约0.25e+00

2.城市个数为30
最优解:
在这里插入图片描述
在这里插入图片描述
最差解:
在这里插入图片描述
在这里插入图片描述

平均值: 2.23e+01
最优与最差差值: 约0.4e+01

3.城市个数为50
最优解:

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
遗传算法是一种模拟自然进化过程的优化算法,在TSP问题中可以应用于寻找最优路径。TSP问题是旅行商问题的缩写,定义为在给定一组城市和每两个城市之间的距离,旅行商需要找到一条路径,使得他能够遍历每个城市,每个城市只访问一次,且路径最短。 在遗传算法中,我们将每一个城市看作是一个基因,形成一个染色体。首先,需要定义一个适应度函数,以评估染色体的适应程度,适应度越高,染色体就越有可能被选择。 接着,我们随机生成一组染色体,称为种群。每次迭代中,通过交叉和变异的方式,对种群进行更新和优化。交叉是将两个父代染色体的基因进行杂交,从而生成新的后代染色体;变异是在染色体中随机改变一个基因。 每次迭代后,我们根据适应度函数对种群进行选择,使得适应程度高的染色体有更大的概率被选择,这种选择被称为自然选择。通过多次迭代后,最终得到的染色体就是TSP问题最优解,其代表了旅行商的最优路径。 需要注意的是,使用遗传算法求解TSP问题需要调整多个参数,例如交叉率、变异率等,不同参数的设置会影响算法的结果。此外,由于TSP问题具有NP难度,因此即使使用遗传算法,也不一定能够求解最优解。 总之,基于遗传算法TSP问题寻优是一种常见的解决方案,有助于通过模拟自然进化过程求解复杂问题。但是,需要根据具体情况进行调整和优化,才能得到令人满意的结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值