簡化您的工作流程:搜尋 miniwebtool。
添加插件
相關工具
漢密爾頓路徑檢查器卡諾圖 (K-Map) 求解器線性規劃求解器網路最大流計算機穩定婚姻問題求解器
主頁 > 數學 > 進階數學計算 > 旅行推銷員問題求解器 (TSP)
 

旅行推銷員問題求解器 (TSP)

尋找訪問每個城市恰好一次並返回起點的最短路徑。針對小規模實例使用精確動態規劃 (Held-Karp),針對大規模實例使用最近鄰 (Nearest-Neighbor) + 2-opt 啟發式算法。支援座標或距離矩陣輸入,並渲染動畫 SVG 路徑圖。

旅行推銷員問題求解器 (TSP)
坐標行:A, 10, 2010 20。矩陣行:0 10 15 20 — 每行一個橫列,需為非負方陣。 最多支持 40 個城市。
以逗號或空格分隔的標籤,每個矩陣行對應一個。如果省略,預設為 A, B, C...。

Embed 旅行推銷員問題求解器 (TSP) Widget

旅行推銷員問題求解器 (TSP)

旅行推銷員問題求解器 TSP 是一款實用且具有教育意義的計算機,專為經典的旅行推銷員問題 (TSP) 設計:給定一組城市和每對城市之間的距離,尋找訪問每個城市恰好一次並返回起點的最短可能路徑。此求解器接受平面坐標或自定義距離矩陣,根據問題規模自動選擇最佳算法,並將產生的路徑呈現為動畫 SVG 地圖。

什麼是旅行推銷員問題?

形式上,給定一個具有頂點集 V = {1, 2, ..., n} 和邊權重 d(i, j) 的完全賦權圖 G = (V, E),TSP 尋找頂點的一個排列 π,使以下各項最小化:

最小化 Σi=1n-1 d(π(i), π(i+1)) + d(π(n), π(1))

最後一項使路徑閉合。TSP 是組合優化中最古老且研究最廣泛的問題之一——它在一般情況下是 NP-hard 的,這意味著目前沒有已知算法能在多項式時間內解決所有實例。儘管如此,它仍出現在無數的現實應用中:車輛路線規劃、電路板 (PCB) 鑽孔、DNA 測序、倉庫揀貨路線、天文觀測時間安排,甚至是農村郵政遞送。

此求解器如何運作

Held–Karp 動態規劃 (精確算法)

對於小規模實例(最多 12 個城市),求解器使用 Held–Karp 算法計算可證明的最佳路徑,該算法於 1962 年由 Richard Bellman 以及 Michael Held & Richard Karp 獨立發表。關鍵的遞推關係如下,其中 C(S, j) 是從頂點 1 到頂點 j 且恰好訪問子集 S 的最短路徑:

C(S, j) = mink ∈ S \ {j} [ C(S \ {j}, k) + d(k, j) ]

最佳路徑成本即為 minj [C({1,...,n}, j) + d(j, 1)]。Held–Karp 的運行時間為 O(2n · n²),內存為 O(2n · n)——這比暴力破解 n! 有了巨大改進,但仍呈指數級增長。超過約 20 個城市後,內存佔用就會變得不切實際。

最近鄰 (Nearest-Neighbor) + 2-opt (啟發式算法)

對於較大規模的實例,求解器使用兩階段啟發式算法。首先,最近鄰 (Nearest-Neighbor) 算法通過從每個起始頂點貪婪地走向最近的未訪問城市來構建快速路徑。求解器嘗試多個起始頂點並保留最佳路徑。然後,2-opt 局部搜索通過反復移除兩條邊並以唯一另一種可能的方式重新連接得到的兩條路徑來改進路徑:

之前:... a — b ... c — d ...         2-opt 交換後:... a — c ... b — d ... 如果 d(a,c) + d(b,d) < d(a,b) + d(c,d) → 接受交換,反轉子路徑 b..c

從幾何上講,2-opt 移除了路徑中所有的「交叉」:任何兩條交叉的線段總是可以通過取消交叉來獲得更短的總長度。算法停止於局部最優解,即沒有任何單次交換可以改進路徑,稱為 2-optimal 路徑。在現實的歐幾里得實例上,2-opt 通常能在幾毫秒內找到與真實最優解相差 2–5% 以內的路徑。

輸入格式

坐標模式 (x, y)

每行一個城市。每行格式為 標籤, x, y —— 標籤是可選的。求解器會自動計算歐幾里得距離,並在城市的真實位置視覺化城市。

A, 10, 20 B, 40, 70 C, 75, 30 Paris: 2.35, 48.86 10 20 ← 自動標記為 C1

距離矩陣模式

一個 n × n 的非負距離方陣,每行一個橫列,數值由空格或逗號分隔。矩陣可以是對稱或不對稱的——不對稱矩陣可以模擬單行道、可用性變化的機票價格以及受風向影響的旅行。可以選擇在「矩陣標籤」欄位提供標籤。

0 10 15 20 10 0 35 25 15 35 0 30 20 25 30 0

算法比較

算法 時間複雜度 內存 結果品質 實用規模
暴力破解 O(n!) O(n) 最佳 n ≤ 10
Held–Karp DP O(2n · n²) O(2n · n) 最佳 n ≤ 20
最近鄰 (Nearest-Neighbor) O(n²) O(n) 比最佳差 ~25% n ≤ 數千
NN + 2-opt O(n² · passes) O(n) 比最佳差 ~2–5% n ≤ 數百

如何使用此計算機

  1. 選擇輸入模式。 如果您的城市具有有意義的 (x, y) 位置,請選擇「坐標」;如果您的成本是非歐幾里得或不對稱的,請選擇「距離矩陣」。
  2. 粘貼或輸入您的數據。 每行一個城市或一行矩陣。點擊表單上方的快速示例按鈕可預填一個有效的示例。
  3. 選擇算法。 保持在「自動」以使用合適的預設值:當實例規模足夠小能證明最優性時使用 Held–Karp,否則使用 NN + 2-opt。如果您想進行比較,可以強制選擇特定算法。
  4. 選擇封閉或開放。 封閉路徑會返回起點——這是傳統的 TSP。開放路徑模式解決相關的哈密頓路徑問題,即推銷員在不同的城市結束。
  5. 點擊「求解」。 結果頁面會顯示路徑總長度、路線的動畫 SVG(點擊「重播動畫」再次觀看)、完整的城市序列、每條邊的細目,以及高亮顯示路徑邊的距離矩陣。

運算示例

考慮五個城市——一個長方形加一個頂點:A (0, 0), B (4, 0), C (4, 3), D (0, 3), E (2, 5)。求解器返回:

現實世界應用

常見問題解答

什麼是旅行推銷員問題?

旅行推銷員問題 (TSP) 要求尋找訪問每個城市恰好一次並返回起始城市的最短路徑。它是組合優化中最著名的問題之一,在一般情況下屬於 NP-hard,這意味著目前沒有已知算法能在多項式時間內解決所有實例。

什麼是 Held–Karp 算法?

Held–Karp 是一種動態規劃算法,能在 O(2n · n²) 時間和 O(2n · n) 內存中精確解決 TSP。它比暴力破解 (n factorial) 快得多,但仍呈指數級增長,因此在實踐中僅用於約 20 個城市以下的實例。此求解器在城市數量為 12 個或更少時使用 Held–Karp。

什麼是 2-opt 為什麼要使用它?

2-opt 是一種局部搜索啟發式算法,它反復從當前路徑中移除兩條邊,並以另一種可能的方式重新連接得到的兩條路徑。當新路徑更短時,則保留該交換。2-opt 在每次疊代中以多項式時間運行,並能穩定地找到與最佳路徑誤差在百分之幾以內的路徑,這就是為什麼它是處理較大 TSP 實例的經典首選啟發式算法。

我應該何時使用坐標與距離矩陣?

當您的城市位於平面上且具有直線距離時(例如地圖上的點、倉庫位置或電路板上的鑽孔),請使用坐標。當成對成本非歐幾里得時(例如機票價格、含路況的交通時間、單行道距離或不對稱成本),請使用距離矩陣。矩陣模式接受任何非負距離,甚至是不對稱的距離。

2-opt 解決方案是最佳的嗎?

不是,2-opt 返回的是 2-optimal 路徑,這意味著沒有任何單獨的一對邊可以通過交換產生更短的路線。這是一個局部最優解,在表現良好的實例上通常在全局最優解的百分之幾以內,但不能保證是全局最佳。對於小規模實例中可證明的最優路徑,請選擇 Held–Karp。

此工具支持不對稱距離矩陣嗎?

支持。在距離矩陣模式下,您可以輸入任何非負方陣,包括 D[i][j] 與 D[j][i] 不同的不對稱矩陣。Held–Karp 和 2-opt 都能正確處理不對稱矩陣。這對於涉及單行道、交通或受風向影響的飛行成本的現實世界路線規劃問題非常有用。

延伸閱讀

引用此內容、頁面或工具為:

"旅行推銷員問題求解器 (TSP)" 於 https://MiniWebtool.com/zh-tw/旅行推銷員問題求解器-tsp/,來自 MiniWebtool,https://MiniWebtool.com/

由 miniwebtool 團隊製作。更新日期:2026年4月21日

您還可以嘗試我們的 AI數學解題器 GPT,通過自然語言問答解決您的數學問題。

進階數學計算:

常用工具:

分數計算機隨機撲克牌產生器真心話大冒險產生器百分比增加計算機百分比增長率計算機斜邊計算機🎮 遊戲靈敏度轉換器隨機信用卡生成器羅馬數字轉換器相對標準偏差計算機磅轉公斤轉換器質數分解計算機比例計算機圓計算機kpa到psi轉換器最簡分數計算機毛利率計算機HEX計算機商和餘數計算機百分比折扣計算機kg到lbs轉換器百分比減少計算機圖片分割器校正鈣計算機MAC地址查找太陽、月亮與上升星座計算機 🌞🌙✨隨機字母生成器Instagram用戶ID查詢隨機名稱生成器年齡計算機百分比變化計算機百分比誤差計算機最小公倍數計算機反向文字查找並替換文字🌡️ 體感溫度計算機ANC計算機影片轉圖片擷取器年份天數計算機 - 今天是今年的第幾天簡單利息計算機坡度與傾斜度計算機複利計算機AI內容檢測器兩點間距離計算機Bar to PSI 轉換器隨機選擇器調整影片速度加價計算機定期存款計算機二次公式計算機迷宮產生器隨機餐點產生器SRT時間偏移標準偏差計算機 - 高精度多分數計算機📅 日期計算機樂透號碼生成器小字體生成器 ⁽ᶜᵒᵖʸ ⁿ ᵖᵃˢᵗᵉ⁾因子計算機分數百分比轉換器畢達哥拉斯定理計算機對數計算機分數到小數計算機音訊分割器模計算機CAGR計算機凱薩密碼工具合併影片PCB走線寬度計算機隨機數學題產生器影片壓縮器剪刀石頭布產生器cpm計算機平均值計算機隨機動物生成器橢圓 周長計算機賓果卡生成器比率與百分比計算機填字遊戲製作器克到磅轉換器文字重複工具最大公因子計算機百分比計算機FPS 轉換器星期幾計算機Zalgo文本生成器psi到kpa轉換器速度計算機文件大小轉換器速度轉換器YouTube頻道統計磅到克轉換器跑步配速計算機組合計算機⏱️ 小時計算機隨機英文單字產生器數獨產生器與求解器公因子計算機ERA計算機考拉茲猜想計算機隨機錦標賽對陣生成器我的幸運數字是什麼積分計算機OPS計算機圖片打碼工具Facebook用戶ID查詢HEX轉換器隨機顏色生成器可整除測試計算機百分比到ppm轉換器純利潤計算機保齡球計分計算機質數檢查器壓力轉換器隨機日期生成器斜率計算機總和計算機文本格式化工具SRT轉換為TXT工具科學記數法計算機AI標點符號添加器為影片新增浮水印隨機時間生成器隨機生日生成器十進製到科學記數法轉換器出生星期計算機小數到分數計算機線規計算機體積轉換器姓名靈數計算機條碼產生器排序數字🖱️ 點擊計數器GUID / UUID 生成器MAC地址產生器YouTube收益估算器行數統計工具不可見字元移除器投球命中率計算機血壓解讀器克到盎司轉換器刑期減免計算機棒球長打率計算機步數距離計算機演講時間計算機刪除線文字產生器樓梯計算機汽車貸款計算機線性迴歸計算機馬丁格爾策略計算機MP3循環播放器棒球打擊率計算機工時計算機淨利潤率計算機歐姆定律計算機燃油費用計算機階乘計算機鋼筋計算機PSI 轉 Bar 轉換器汽車折舊計算機工作搜尋器🌐 時區轉換器移除標點符號線上工具圖片壓縮器直角三角形計算機樣本量計算機黃金比例計算機隨機化數字影片分割器游泳配速計算機發音音標轉換器GIF 轉 MP4 轉換器圓柱體體積計算機 高精度隨機貓狗名字產生器上壘率計算機弧長計算機名人名言搜尋 (英文)心算訓練器角度轉換器預產期計算機橢圓面積計算機複數計算機多項式因式分解計算機比較分數計算機隨機字符串生成器WHtR計算機凱利公式計算機愛情兼容性計算機正方形計算機GIF 製作器Log Base 10 計算機倒立文本產生器土星回歸計算機數字轉分數轉換器比率計算機百分比到小數轉換器預期壽命計算機功率轉換器常規時間到小數時間轉換器血糖轉換器CGPA轉百分比轉換器簡易評分器 EZ Grader養育孩子成本計算機寶寶奶量計算機尿布尺寸計算機嬰兒名字產生器寶寶眼睛顏色預測器兒童BMI百分位計算機兒童身高預測器hcg翻倍時間計算機試管嬰兒預產期計算機著床計算機中國生男生女預測器ISO 8601 日期格式化工具儒略日轉換器午睡計算機月相計算機日出日落計算機世界時鐘日期至羅馬數字轉換器退休倒數計時戒癮天數計算機半歲生日計算機紀念日計算機週數計算機小費分配計算機電子郵件行銷ROI計算機每筆潛在客戶成本計算機營運資本計算機邊際貢獻計算機FIFO / LIFO 計算機安全庫存計算機再訂購點計算機經濟訂購量eoq計算機折舊計算機手工藝品定價計算機批發價格計算機Shopify 利潤計算機Amazon FBA 計算機eBay費用計算機Etsy費用計算機Stripe 手續費計算機PayPal手續費計算機投注賠率轉換器十一奉獻計算機天課計算機英國印花稅計算機HRA免稅計算機服務酬金計算機NPS計算機EPF計算機PPF計算機RD計算機SWP計算機稅前薪資倒推計算機貸款比較計算機信用使用率計算機CD階梯計算機美國國庫券T-Bill計算機I 系列儲蓄債券計算機529大學儲蓄計算機HSA計算機遣散費計算機加薪計算機發票產生器出差津貼計算機里程報銷計算機房租漲幅計算機按比例租金計算機房租負擔能力計算機汽車落地價計算機購車預算計算器機車貸款計算機房車貸款計算機船舶貸款計算機土地貸款計算機建築貸款計算機只付利息抵押貸款計算機氣球貸款計算機房貸點數計算機PMI計算機雙週房貸還款計算機ARM浮動利率房貸計算機VA貸款計算機實領薪資計算機AI SQL 查詢產生器AI正規表達式產生器AI 資料視覺化工具(貼上 CSV)AI文字語氣分析器AI履歷分析器AI單位轉換器自然語言AI道歉信產生器AI禮貌藉口產生器AI 旅行行程產生器AI閱讀清單產生器AI健身計劃產生器AI膳食計畫生成器AI禮物點子產生器AI食譜產生器依現有食材獎學金投資報酬率計算機大學費用計算機語言學習流利度小時數計算機詞彙測驗產生器康乃爾筆記產生器學習曲線計算機閃卡間隔重複排程器顏料調色計算機磁磚填縫劑計算機洗碗機裝載最佳化工具洗滌劑用量計算機染髮劑調配計算機列印成本計算機燃氣與電力成本比較禮品卡小費計算機搬家紙箱數量計算機儲物單元尺寸計算機膠囊衣櫥搭配計算機皮帶長度計算機液壓缸推力計算機滑輪組計算機齒輪比計算機機械比熱容計算機熱膨脹計算器熱傳遞計算機伯努利方程式計算機雷諾數計算機太陽位置計算機潮汐時間計算器星空可見度計算機繩結打法參考工具睡袋溫度評級指南帳篷地布尺寸計算機背包旅行食物重量計算機奈史密斯健行配速計算機刺繡線長度計算機樹脂灌模容量計算機串珠圖案計算機陶土收縮率計算機折紙紙張大小計算機被子滾邊計算機十字繡繡線計算機針織圖案計算機編織針尺寸轉換器鉤針尺寸轉換器馬匹乾草計算機寵物航空旅行航空箱尺寸查詢器爬蟲棲息地UVB計算機鳥籠尺寸計算機魚缸加熱棒瓦數計算機貓砂盆數量計算機前照燈光束距離計算機引擎壓縮比計算機輪胎胎紋磨損計算機拖車舌重計算機車輛重量分佈計算機旅行費用分攤計算機剎車距離計算機工傷賠償計算機遺產分配計算機商標分類查詢計算機專利申請費計算機銷售稅關聯檢查器訴訟時效計算機Airbnb 定價優化工具室友房租分攤計算機Section 8 租金計算機BRRRR 方法計算機現金對現金報酬率計算機租金收益率計算機1031 交換計算機財富成長視覺化工具午餐花費計算機健身房 vs 居家健身花費計算機咖啡花費計算機遠端工作省錢計算機副業ROI計算機訂閱費用追蹤器SaaS定價計算機自由接案專案報價計算機煙燻木材搭配指南發酵時間計算機醃製時間計算機飲食限制食譜篩選器香料替代查找器咖啡因半衰期追蹤器標準杯計算機葡萄酒搭配建議器攀岩難度等級轉換器自行車齒輪比計算機釣魚結強度計算機瑜伽體式保持計時器游泳SWOLF計算機跑步成績預測計算機拳擊出拳力量計算機橄欖球得分計算機板球得分率計算機足球 xG預期進球計算機網球計分器Wells評分計算機 (DVT/PE)格拉斯哥昏迷指數計算機阿普加評分計算機FFMI計算機庫珀12分鐘跑步計算機一英里步行測試Rockport計算機瘦體重力量計算器碳水化合物胰島素比例計算機胰島素敏感係數計算機希伯來曆轉換器伊斯蘭曆轉換器農曆轉換器跨文化年齡計算機多久以前計算機還有多久倒數計算機日期模式產生器中間日期計算機日期加上工作日工作日計算機詞頻分析器句子長度變異分析器海明威風格可讀性編輯器維吉尼亞密碼工具埃特巴什密碼工具ROT13編碼解碼器EXIF 資料檢視與移除工具豬拉丁文翻譯器倒推首字母縮寫產生器首字母縮寫產生器全字母句檢查器漏字文檢測器圖片轉SVG描摹器圖片轉 ASCII 藝術轉換器JSON Schema 產生器TypeScript 線上演練場Less 到 CSS 編譯器SCSS轉CSS編譯器SVG 轉 React/JSX 轉換器查詢字串產生器URL解析器UUID驗證和解碼器HTTP狀態碼參考cURL指令建構器謝爾賓斯基三角形產生器3D曲面繪圖器極座標方程繪圖器茱莉亞集合生成器曼德博集合探索器L-System分形產生器Delaunay 三角剖分生成器Voronoi 圖生成器萬花尺圖案產生器鑲嵌圖案產生器六標準差製程能力計算機YouTube縮圖下載器隨機RPG角色生成器