使用遗传算法解决旅行商问题

旅行商问题,简单地说,即一个商人要找一条通过n个城市的最短巡回。

开始产生的随机路径:

TSPstart

遗传算法的其中一个结果

TSPresult

对个体采用字符编码的方式。如[3,1,4,2,5]表示开始从第3个结点开始,然后第1个结点,依次而行。为了避免产生非法解,对个体进行变因时,实质是交换个体中的两个数字的位置。例如[4,1,3,2,5]即为一个新的个体。变异时,例如对于个体a=[3,1,4,2,5],b=[5,2,4,1,3],如果选择a的第2和第3个位置和b的第2和第3个位置进行交换。首先作出在a中而不在b[2,4]中的字符,即c=[3,1,5],然后在c中第1个空位插入b[2,4],即生成新的个休[3,2,4,1,5],从而不会有重复字符,避免了非法解的产生。

Code

 

你可能感兴趣的:(算法)