python算法——旅行商问题

旅行商问题

旅行商问题是一个运行时间非常长,时间增长的非常快的问题。甚至很多聪明的人认为都没有更好的解决方法。

实例

有一个商人,他要前往5个城市,A,B,C,D,E。怎么来确保行程最短。
(先暂且不计算每个城市的距离)
那么他一共有几种路线呢?
1.A-B-C-D-E
2.A-D-E-C-B
3.B-D-A-E-C

因为要挑选最短路程,所以每种可能都要考虑到。
然而5个城市会有120中可能。
六个城市会有720种可能。
七个城市会有5040种可能。

这种增长速度显然在城市数量比较多时是不能有效计算出结果的。应为它消耗的时间太长了。
当城市数量达到100时,根本不可能算出最佳答案。

当涉及n个城市时,所需要的时间为n!,即为n的阶乘。
这是一种糟糕的算法,所以对于这种问题只能寻找近似答案。

近似答案的寻找方法涉及到贪婪算法。

猜你喜欢

转载自blog.csdn.net/HighnessY/article/details/83626018