1. 程式人生 > >python演算法——旅行商問題

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的階乘。
這是一種糟糕的演算法,所以對於這種問題只能尋找近似答案。

近似答案的尋找方法涉及到貪婪演算法。