用模拟退火算法解决TSP问题
问题描述
TSP(traveling salesman problem, 旅行商问题)可描述为:已知n个城市互相之间的距离,某一旅行商从某个城市出发访问每个城市一次且仅一次,最后回到出发城市,如何安排使其所走路线最短。
算法
-
步骤一:初始化参数。初始温度
T、结束温度Tend、降温速率q以及链长L。 -
步骤二:随机生成初始解。
-
步骤三:计算每个温度下的迭代次数。
-
步骤四:由解产生
L个新解,通过Metropolis准则判断是否接受新解。Metropolis准则如下:(df是路径差) -
步骤五:记录该温度下的最优解,然后降温,回到步骤三,直到达到结束温度。
遗传算法和模拟退火算法结合
用遗传算法代替模拟退火算法中每个温度下生成新解的部分。具体流程如下: