旅行推銷員問題

旅行商問題 （ Travelling salesman problem, TSP ） 是組合優化中的一個NP困難問題 ， 在運籌學和理論計算機科學中非常重要 。 問題內容爲 “ 給定一系列城市和每對城市之間的距離 ， 求解訪 - { } - 問每一座城市一次並回到起始城市的最短迴路 。 ” TSP是與車輛路徑問題的一種特殊情況 。 作爲計算複雜性理論中的一個典型的判定性問題 ， TSP的一個版本是給定一個圖和長度 L ， 要求回答圖中是否存在比 L 短的迴路 （ 英語 ： circuit或tour ） 。 該問題被劃分爲NP完全問題 。 已知TSP算法最壞情況下的時間複雜度隨着城市數量的增多而成超多項式 （ 可能是 ） 級別增長 。 問題在1930年首次被形式化 ， 並且是在最優化中研究最深入的問題之一 。 許多優化方法都用它作爲一個基準 。 儘管問題在計算上很困難 ， 但已經有了大量的啓發式和精確方法 ， 因此可以完全求解城市數量上萬的實例 ， 並且甚至能在誤差1 % 範圍內估計上百萬個城市的問題 。 甚至純粹形式的TSP都有若干應用 ， 如企劃 、 物流 、 芯片製造 。 稍作修改 ， 就是DNA測序等許多領域的一個子問題 。 在這些應用中 ， “ 城市 ” 的概念用來表示客戶 、 焊接點或DNA片段 ， 而 “ 距離 ” 的概念表示旅行時間或成本或DNA片段之間的相似性度量 。 TSP還用在天文學中 ， 觀察很多光源的天文學家會希望減少在不同光源之間轉動望遠鏡的時間 。 在許多應用場景中 （ 如資源或時間窗口有限等等 ） ， 可能會需要加入額外的約束條件 。