旅行商算法
Posted zeussbook
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了旅行商算法相关的知识,希望对你有一定的参考价值。
有一位旅行商,我们暂且称呼他为彪哥。
他需要前往5个城市,所以想要计算出旅程最短的路线。
对于每种路线组合,他都计算出总旅程,再挑选旅程最短的路线。
那么,算法效率的问题来了。
5个城市有120个不同的排列方式,因此需要执行120次操作。
6个城市有720个不同的排列方式,因此需要执行720次操作。
7个城市有5040个不同的排列方式,因此需要执行5040次操作。
20城市有2432902008176640000个不同的排列方式,因此需要执行2432902008176640000次操作。
综上所述,涉及n个城市时,需要执行n!(n的阶乘)次操作才能计算出结果。
阶乘的计算公式: n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
对于这个问题,有很多学者认为根本没有更好的算法来代替它。
小伙伴们怎么认为呢?你有更好的算法吗?
以上是关于旅行商算法的主要内容,如果未能解决你的问题,请参考以下文章
Python数模笔记-模拟退火算法求解旅行商问题的联合算子模拟退火算法
matlab蚁群算法的优化计算——旅行商问题(TSP)优化matlab优化算法二十一