遗传算法解决TSP问题

本文详细介绍了如何利用遗传算法解决旅行商问题(TSP),阐述了遗传算法的基本概念,包括染色体、群体、适应度等,并具体描述了TSP问题的图论描述、染色体编码、适应函数、选择、交叉和变异操作。最后讨论了实验设置和参数选择,如交叉率、变异率和群体大小。
摘要由CSDN通过智能技术生成

遗传算法解决TSP问题

1.      TSP问题

所谓TSP问题(旅行商问题)即最短路径问题就是在给定的起始点S到终止点T的通路集合中,寻求距离最小的通路,这样的通路成为S点到T点的最短路径。在寻找最短路径问题上,有时不仅要知道两个指定顶点间的最短路径,还需要知道某个顶点到其他任意顶点间的最短路径。用遗传算法解决这类问题,没有太多的约束条件和有关解的限制,因而可以很快地求出任意两点间的最短路径以及一批次短路径。

2.1 遗传算法介绍

遗传算法是一种模拟生命进化机制的搜索和优化方法,是把自然遗传学和计算机科学结合起来的优化方程,有很强的解决问题的能力和广泛的适应性。其假设常描述为二进制位串,位串的含义依赖于具体应用。搜索合适的假设从若干初始假设的群体集合开始。当前种群成员通过模仿生物进化的方式来产生下一代群体,如随机变异和交叉。每一步,根据给定的适应度评估当前群体的假设,而后使用概率方法选出适应度最高的假设作为产生下一代的种子。

下面介绍几个遗传算法的基本概念:

(1)染色体(Chromosome):在使用遗传算法时,需要把问题的解编成一个适合的码子。这种具有固定结构的符号串既是染色体,符号串的每一位代表一个基因。符号串的总位数成为染色体的长度,一个染色体就代表问题的一个解,每个染色体也被称为一个个体。

(2)群体(Population):每代所产生的染色体总数成为群体,一个群体包含了该问题在这一代的一些解的集合。

(3)适应度(Fitness):对群体中每个染色体进行编码后,每个个体对应一个具体问题的解,而每个解对应于一个函数值。该函数值即适应函数,就是衡量染色体对环境适应度的指标,也是反映实际问题的目标函数

在前一代群体的基础上产生新一代群体的工作成为遗传操作,基本的遗传操作有:

(1)选择(Select):按一定的概率从上代群体中选择M对个体作为双亲,直接拷贝到下一代,染色体不发生变化。

(2)交叉(Crossover):对于选中进行繁殖的两个染色体X,Y,以X,Y为双亲作交叉操作,从而产生两个后代X1,Y1.

(3)变异(Mutation):对于选中的群体中的个体(染色体),随机选取某一位进行取反运算,即将该染色体码翻转。

用遗传算法求解的过程是根据待解决问题的参数集进行编码,随机产生一个种群,计算适应函数和选择率,进行选择、交叉、变异操作。如果满足收敛条件,此种群为最好个体,否则,对产生的新一代群体重新进行选择、交叉、变异操作,循环往复直到满足条件。

2.2 遗传算法原型:

GA(Fitness,Fitness_threshold,p,r,m)

              Fitness:适应度评分函数,为给定假设赋予一个评估分数

              Fitness_threshold:指定终止判据的阈值

              p:群体中包含的假设数量

              r:每一步中通过交叉取代群体成员的比例

              m:变异率

l 初始化群体:P←随机产生的p个假设

l 评估:对于P中的每一个h,计算Fitness(h)

l 当[maxFitness(h)]<Fitness_threshold,做
产生新的一代Ps:

1.选择:用概率方法选择P的(1-r)p个成员加入Ps.从P中选择假设hi的概率用下面公式计算:

                    

       2.交叉:根据上面给出的,从P中按概率选择r(p/2)对假设.对于每对假设<h1,h2>,应用交叉算子产生两个后代.把所有的后代加入Ps

       3.变异:使用均匀的概率从Ps中选择m%的成员.对于选出的每

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值