一、初始化种群和编码:
初始化种群:随机生成初始的种群,每个个体代表一种可能的旅行路径。
For example, the following file defines a TSP with 8 cities:
This file shows that the cost of travel from city 0 to city 2 is 8, while the cost from city3 to city 1 is 7.
编码:将每个个体(路径)编码成可以在计算机上处理的形式,通常使用整数数组来表示路径顺序。
染色体编码 [0 2 1 6 4 3 7 5 ]
二、适应度评估:计算每个个体的适应度,即旅行路径的总长度。
在TSP中,适应度就是路径的倒数表示就行。
三、选择:根据个体的适应度值,选择一些个体作为父代。
通常采用轮盘赌选择或者排名选择等方法
四、交叉:对选出的父代进行交叉操作,产生新的个体。
交叉选用:Partial-Mapped Crossover(部分映射交叉)
二者交换的基因段为 1 7 2 3 和 6 1 0 2 ,保持此段不变,对于子代个体1,第一个冲突基因为7,取得3在交换段中的位置(4),将交换段外冲突基因替换为子代个体2中相应位置的基因,. 多次执行直到没有冲突。
消除基因冲突后:
五、变异:对新个体进行变异操作,以增加种群的多样性。
Randomly swap the positions of two genes on a chromosome。
For example, if the 3 is chosen for mutation in this tour: