遗传算法求解TSP问题
一、简介 遗传算法是基于达尔文的生物进化论,是人工智能算法的的重要分支,主要用于解决一类求最优解问题。如旅行商(TSP)问题。 遗传算法是将状态当成染色体,状态里的每一个决策都是染色体上的一个基因。然后根据实际情况生成一个适应度函数,计算每一串染色体对环境的适应度。让适应度高的遗传到下一代,适应度低的淘汰掉,另外在实现的过程中也许会发生变异,导致一些决策改变。除此之外,遗传算法是随机性近似算法,所以当我们运用该算法时必须采取措施使其收敛到全局最优解,并且尽量提高达到最优解的概率。遗传算法除了设计适应度函数以外,还有很重要的三个部分:选择,交叉,变异。 二、遗传算法实现步骤 1.初始化阶段 初始化对象:种群规模、城市数量、运行代数、交叉概率、变异概率 初始化数据:读入数据源,将坐标转换为距离矩阵(标准化欧式距离) 初始化种群:随机生成m个路径序列,m表示种群规模 2.计算种群适应度 已知任意两个城市之间的距离,每个染色体可计算出总距离,因此可以将一个随机全排列的总距离的倒数作为适应度函数,即距离越短,适应度函数越好。 3.计算累计概率 计算初始化种群中各个个体的累积概率。 4.迭代 选择算子:赌轮选择策略挑选下一代个体。 交叉运算:在交叉概率的控制下,对群体中的个体两两进行交叉。 变异运算:在变异概率的控制下,对群体中的个体两两进行变异,即对某一个体的基因进行随机调整。