遗传算法求解旅行商(TSP)问题

本文介绍了遗传算法在解决旅行商问题(TSP)中的应用。通过基因编码、交叉算子设计、变异算子设计以及适应度函数来构建算法流程。文章详细阐述了部分匹配交叉法、倒位变异法,并提供了算法的执行步骤和实现代码。
摘要由CSDN通过智能技术生成

1. TSP问题概述

TSP问题即旅行商问题,是数学领域的著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要使求得的路径路程为所有路径之中的最小值。

2. 基于遗传算法的TSP问题求解

      (1)基因编码

      针对TSP问题,编码规则通常采用实数(n进制)编码,即每个染色体仅从1到n的整数里面取一个值,每个个体的长度为n,n为城市总数。即用一串基因编码表示遍历的城市顺序,如:(2 3 4 5 1 7 9 8 6),表示九个城市中,先经过城市2,再经过城市3,以此类推。

    (2)交叉算子设计

     采用部分匹配交叉(PMX)法:先随机产生两个交叉点,定义这两点间的区域为匹配区域,并交换两个父代的匹配区域。

     父代A:872|130|9546

     父代B:983|567|1420

     TEMP A:872|567|9546

     TEMP B:983|130|1420

对于TEMP A、TEMP B中匹配区域以外出现的数码重复,要依据匹配区域内的位置逐一进行替换。匹配关系:1<------>5   3<----->6   7<---->0

     子代A:802|567|9143

     子代B:986|130|5427

     (3)变异算子设计

      对于TSP问题,一般采用倒位变异法,即首先在父体中随机选择两截断点,然后将该两点所夹的子串中的城市进行反序。

例如;

设原个体:(1 2 3 4 5 6 7 8 9)

随机选择两点:(1 2|3 4 5 6| 7 8 9)

倒位后的个体:(1 2 |6 5 4 3|7 8 9)

     (4)适应度函数

     TSP问题的目标是路径总长度为最短,可以用常数L除以某个体的路径总长度作为该个体的是适应度函数。


3 . 算法步骤

Step1:参数设置及种群初始化;

Step2;适应度评价;

Step3:轮盘赌选择;</

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值