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:轮盘赌选择;</