遗传算法与TSP问题

TSP问题

TSP问题全名叫Travelling salesman problem,大意是一个销售员需要依次拜访n个客户,并且每个客户只拜访一次,最终回到起点。目标是找出最佳的一个路线使得路程最短。 

什么是遗传算法

遗传算法是参考生物学的一些概念的一个算法,主要参考了种群繁衍、优胜劣汰的生物进化特点。

我们知道一个种群中每个个体都拥有不同的基因,这也先天上形成了个体差异,根据达尔文的进化论,对环境适应度较差的个体往往在自然选择的过程中淘汰掉了,根据生物学理论,生物在繁衍的过程中发生了基因交换、变异,产生了新的个体,随着时间的推进,种群一代又一代的繁衍,对环境的适应程度越来越强。

那么什么是遗传算法呢?面临一个问题,我们可以很容易的获取一系列可行解,同时我们又可以很容易的获取这个解的优秀程度。

那么我们可以很容易的生成m个解,也就是可以看作m个个体,这m个个体可以构成一个群落,首先我们假设这个神奇的种族可以长生不老,只会因为环境因素被淘汰,我们继续假设这个环境只能供养m个个体,随后假设每一次繁衍会产生m个后代。上述假设成立的情况下,每一次繁衍后会一共有2m个个体,经过自然选择又剩下m个个体。也就是说,从m个解里面变m个新的解出来,然后从2m个解里面选比较优秀的m个。新一代的m个解通常来讲是比旧的更优秀的,经过足够多次的繁衍,最终得到的一个群落中最优秀的解可以认为是最优解。

接下来就要讨论每一次繁衍过程中,新的m个解怎么来的——交换和变异,这个就具体问题具体讨论了。

经典TSP

经典TSP中假设所有的顾客的位置不会发生变化,并且不考虑其它因素

很显然我们可以轻松的道一条可行的路线x1(拜访顺序),并且计算优秀程度也就是距离大小

首先生成n个可行路线,得到初始群落X

交换——两个路线之间某几个相同位置的客户编号互换一下,但是对于TSP问题,因为无重复无遗漏,需要交换后把与获得的基因相同的位置上的基因替换成失去的。

变异——对于TSP也可以认为是随机交换两个位置

所以对于TSP问题其实交换和变异干的事情差不多。

然后迭代很多次就可以得到比较优秀的解了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值