用遗传算法求解TSP问题

原文链接: http://blog.5long.me/2015/genetic-algorithm-on-tsp/

遗传算法简介

关于遗传算法,首先看一段维基百科的解释:

遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,它借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种高效、并行、全局搜索的方法,它能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应的控制搜索过程以求得最优解。遗传算法操作使用适者生存的原则,在潜在的解决方案种群中逐次产生一个近似最优解的方案,在遗传算法的每一代中,根据个体在问题域中的适应度值和从自然遗传学中借鉴来的再造方法进行个体选择,产生一个新的近似解。这个过程导致种群中个体的进化,得到的新个体比原来个体更能适应环境,就像自然界中的改造一样。
遗传算法是计算机科学人工智能领域中用于解决最优化的一种搜索启发式算法,是进化算法的一种。这种启发式通常用来生成有用的解决方案来优化和搜索问题。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。

概括来说遗传算法:

  • 模仿生物进化。
  • 可以找到一个近似最优解(不一定是全局最优解)。
  • 是计算机科学人工智能的一种算法。

遗传算法的基本步骤是:

  1. 初始化。随机选择一些个体组成最初的种群(Population),地球最原始的生命也是随机产生的。
  2. 评估。通过某种方法来评估个体的适应度。个体的生存能力。
  3. 选择。类似于自然选择,优良的基因(Gene)、生存能力强的被选择下来的概率要大。当然,也存在屌丝逆袭的情况。
  4. 交叉。产生后代,基因交叉,可以理解为有性繁殖,子代会分别从父母那得到部分基因。
  5. 变异。后代的基因可能会变异。变异在生物进化起了很大作用。

3-5步是产生新种群的步骤,新群体再进行评估,然后再选择、交叉、变异,一直循环2-5步,最终找到一个近似最优解。遗传算法的流程图如下;

遗传算法流程图

关于遗传算法的进一步解释请参考:经典算法研究系列:七、深入浅出遗传算法(http://blog.csdn.net/v_JULY_v/article/details/6132775)

TSP问题简介

TSP问题全称旅行商问题(Traveling Salesman Problem,TSP),别名旅行推销员问题、货郎担问题,与哈密顿回路问题有密切联系。且看维基百科的解释:

旅行推销员问题(Travelling Salesman Problem,又称为旅行商问题、货郎担问题、TSP问题)是一个多局部最优的最优化问题:有n个城市,一个推销员要从其中某一个城市出发,唯一走遍所有的城市,再回到他出发的城市,求最短的路线。也即求一个最短的哈密顿回路。

C-TSP问题就是中国旅行商问题(China Traveling Salesman Problem),求解中国34个一线城市的最优路线。给出中国34个城市的经纬度:

编号 城市名 东经 北纬 编号 城市名
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值