非确定性多项式(NP,Nondeterministic Polynomially)问题包括众多案例,其中典型的案例问题就是TSP (Traveling Salesman Problem)旅行商问题。解决此类问题目前的主流算法有遗传算法(GA),模拟退火算法、遗传算法、Hopfield神经网络算法、二叉树描述算法。本文使用matlab来实现,流程如下

求解旅行商TSP问题的遗传算法-1_遗传算法

求解旅行商TSP问题的遗传算法-1_算法_02

例子:

TSP(traveling salesman problem,旅行商问题)是典型的NP完全问题,即其最坏情况和的时间复杂度随着问题规模的增大按指数方式增长,到目前为止还未找到一个多项式时间的有效算法。

TSP问题可描述为:已知n个城市相互之间的距离,某一旅行商从某个城市出发访问每个城市一次且只能一次,最后回到出发城市,如何安排才能使其所走路线最短。

 

求解旅行商TSP问题的遗传算法-1_算法_03

 d表示城市之间的距离,Td表示累加所有距离之和, minTd表示取最小数值。即使最优

 (3.1)

其中表示城市之间的距离,表示累加所有距离之和,min 表示取最小数值。

求解旅行商TSP问题的遗传算法-1_算法_04

求解旅行商TSP问题的遗传算法-1_算法_05

  系统也有一定的局限性,比如时间尺度的选择,理想环境下的模拟,没有考虑输入参数对具体问题和系统的影响。我们相信,通过不断的改进和改进,,它会发展成为一个更加完善和更好的系统。

 要原码,有问题或需求可一起讨论留言