作業フローを簡素化:miniwebtoolを検索。
追加
関連ツール
ハミルトン路チェッカーカルノー図 (K-Map) ソルバー線形計画法ソルバーネットワークフロー電卓最大フロー安定結婚問題ソルバー
ホームページ > 数学 > 高度な数学操作 > 巡回セールスマン問題ソルバー TSP
 

巡回セールスマン問題ソルバー TSP

すべての都市を一度だけ訪問して出発点に戻る最短ルートを算出します。小規模なケースには厳密な動的計画法 (Held-Karp) を、大規模なケースには最近傍法 + 2-opt ヒューリスティックを使用します。座標入力または距離行列に対応し、アニメーション SVG ルートを表示します。

巡回セールスマン問題ソルバー TSP
座標行: A, 10, 20 または 10 20。行列行: 0 10 15 20 — 1行に1行ずつ、正方、非負。 最大 40 都市。
カンマまたはスペース区切りのラベル(行列の各行に1つ)。省略した場合は A, B, C… がデフォルトになります。

Embed 巡回セールスマン問題ソルバー TSP Widget

巡回セールスマン問題ソルバー TSP

巡回セールスマン問題ソルバー TSPは、古典的な巡回セールスマン問題 (TSP)のための実用的で教育的な電卓です。この問題は、都市の集合とそれらのペア間の距離が与えられたとき、すべての都市をちょうど一度だけ訪問して出発点に戻る最短の経路を見つけるものです。このソルバーは、平面座標またはカスタム距離行列のいずれかを受け入れ、問題の規模に基づいて最適なアルゴリズムを自動的に選択し、結果のルートをアニメーションSVGマップとしてレンダリングします。

巡回セールスマン問題とは?

形式的には、頂点集合 $V = \{1, 2, ..., n\}$ とエッジの重み $d(i, j)$ を持つ完全重み付きグラフ $G = (V, E)$ が与えられたとき、TSP は次を最小化する頂点の置換 $\pi$ を求めます:

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

最後の項がループを閉じます。TSP は組合せ最適化において最も古く、最も研究されている問題の一つです。一般的なケースでは NP 困難であり、すべてのインスタンスを多項式時間で解く既知のアルゴリズムは存在しません。それにもかかわらず、車両のルーティング、プリント基板の穴あけ、DNA シーケンシング、倉庫のピッキングルート、天体観測スケジュール、さらには地方の郵便配達など、数え切れないほどの現実世界のアプリケーションに登場します。

このソルバーの仕組み

Held–Karp 動的計画法 (厳密解)

小規模なインスタンス(12都市まで)の場合、ソルバーは1962年に Richard Bellman と Michael Held & Richard Karp によって独立して発表された Held–Karp アルゴリズムを使用して、証明可能な最適ルートを計算します。キーとなる漸化式(ここで $C(S, j)$ は、頂点 1 から頂点 $j$ まで、部分集合 $S$ を正確に訪問する最短パス)は次の通りです:

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

最適な巡回コストは、 $min_{j} [C(\{1,...,n\}, j) + d(j, 1)]$ となります。Held–Karp は O(2n · n²) の時間と O(2n · n) のメモリで動作します。これは総当たり($n!$)に比べて大幅な改善ですが、依然として指数関数的です。およそ 20 都市を超えると、メモリ使用量が非現実的になります。

最近傍法 + 2-opt (ヒューリスティック)

より大きなインスタンスの場合、ソルバーは2段階のヒューリスティックを使用します。まず、最近傍法が、各開始頂点から最も近い未訪問の都市へと貪欲に移動することで、素早い巡回ルートを構築します。ソルバーは多くの開始頂点を試し、最良のルートを保持します。次に、2-opt 局所探索が、2つのエッジを繰り返し削除し、結果として得られる2つのパスを他の唯一可能な方法で再接続することでルートを改善します:

適用前: ... 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つのセグメントは、常に交差を解消することで総距離を短縮できます。アルゴリズムは、単一の入れ替えでは改善されない局所最適解で停止し、これを 2-最適 な経路と呼びます。現実的なユークリッド距離のインスタンスでは、2-opt は通常、ミリ秒単位で真の最適解の 2〜5% 以内のルートを見つけます。

入力形式

座標モード (x, y)

1行に1つの都市を入力します。各行は「ラベル, x, y」の形式で、ラベルは任意です。ソルバーはユークリッド距離を自動的に計算し、都市を真の位置に視覚化します。

A, 10, 20 B, 40, 70 C, 75, 30 Paris: 2.35, 48.86 10 20 ← ラベルは自動的に C1 になります

距離行列モード

$n \times n$ の非負の距離の正方行列を、1行に1行ずつ、スペースまたはカンマで値を区切って入力します。行列は対称でも非対称でも構いません。非対称行列は、一方通行、空席状況によって変わる航空券の価格、風に依存する移動などをモデル化できます。必要に応じて「行列ラベル」フィールドにラベルを指定してください。

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

アルゴリズムの比較

アルゴリズム 時間計算量 メモリ 結果の質 実用的なサイズ
総当たり (Brute force) 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. データを貼り付けるか入力します。 1行に1つの都市または行列の行を入力します。フォームの上にあるクイック例ボタンをクリックすると、有効な例が事前入力されます。
  3. アルゴリズムを選択します。 適切なデフォルト設定のために「自動」のままにしておくと、証明可能な最適性が得られる規模であれば Held–Karp が、そうでなければ NN + 2-opt が選択されます。比較したい場合は、特定のアルゴリズムを強制的に選択することもできます。
  4. 閉じた経路か開いた経路かを選択します。 閉じた経路は出発点に戻ります。これは伝統的な TSP です。開いた経路モードは、セールスマンが別の都市で終了する、関連するハミルトンパス問題を解決します。
  5. 「解決」をクリックします。 結果ページには、総巡回距離、ルートのアニメーションSVG(「アニメーション再生」で再試行可能)、完全な都市シーケンス、エッジごとの内訳、およびルートで使用されたエッジが強調表示された距離行列が表示されます。

具体例

5つの都市(長方形+頂点): A (0, 0), B (4, 0), C (4, 3), D (0, 3), E (2, 5) を考えます。ソルバーは以下を返します:

現実世界での応用

よくある質問

巡回セールスマン問題とは何ですか?

巡回セールスマン問題 (TSP) は、すべての都市を一度だけ訪問し、出発都市に戻る最短の経路を求める問題です。これは組合せ最適化における最も有名な問題の一つであり、一般的なケースでは NP 困難です。つまり、すべてのインスタンスを多項式時間で解決する既知のアルゴリズムは存在しません。

Held–Karp アルゴリズムとは何ですか?

Held–Karp は、TSP を厳密に解く動的計画法アルゴリズムで、時間計算量は O(2n · n²)、空間計算量は O(2n · n) です。総当たり($n$ 階乗)よりも劇的に高速ですが、依然として指数関数的であるため、実際には 20 都市程度までのインスタンスに使用されます。このソルバーでは、都市が 12 個以下のときに Held–Karp を使用します。

2-opt とは何ですか?なぜ使用されるのですか?

2-opt は、現在の経路から2つのエッジを繰り返し削除し、結果として生じる2つのパスを別の可能な方法で再接続する局所探索ヒューリスティックです。新しい経路が短い場合、その入れ替えが保持されます。2-opt は 1 回の反復につき多項式時間で動作し、一貫して最適解から数パーセント以内の経路を見つけるため、大規模な TSP インスタンスにおける古典的な手法として使用されます。

座標と距離行列のどちらを使うべきですか?

都市が平面上にあり、直線距離(例:地図上の地点、倉庫の場所、回路基板のドリル穴)である場合は「座標」を使用します。ペアのコストがユークリッド距離ではない場合(例:航空券の価格、渋滞を考慮した移動時間、一方通行の道路距離、非対称コスト)は「距離行列」を使用します。行列モードは、非対称なものも含め、あらゆる非負の距離を受け入れます。

2-opt の解は最適ですか?

いいえ、2-opt は「2-最適」な経路を返します。これは、1組のエッジを入れ替えてもより短いルートが作成できない状態を意味します。これは局所最適解であり、通常は最適解から数パーセント以内ですが、グローバルな最適解である保証はありません。小規模なインスタンスで証明可能な最適解を得るには、Held–Karp を選択してください。

このツールは非対称距離行列をサポートしていますか?

はい。距離行列モードでは、D[i][j] が D[j][i] と異なる非対称な行列を含む、任意の非負の正方行列を入力できます。Held–Karp と 2-opt はどちらも非対称行列を正しく処理します。これは、一方通行、交通状況、または風向きに依存する飛行コストなどの現実世界のルーティング問題に役立ちます。

参考文献

このコンテンツ、ページ、またはツールを引用する場合は、次のようにしてください:

"巡回セールスマン問題ソルバー TSP"(https://MiniWebtool.com/ja/巡回セールスマン問題ソルバー-tsp/) MiniWebtool からの引用、https://MiniWebtool.com/

by miniwebtool チーム. 更新日: 2026年4月21日

また、AI 数学ソルバー GPT を使って、自然言語による質問と回答で数学の問題を解決することもできます。

高度な数学操作:

おすすめ:

InstagramユーザーID検索パーセンテージ減少電卓パーセント増加電卓サッカーxg期待ゴール電卓弧長電卓標準偏差電卓 - 高精度パーセント誤差電卓ランダムカラージェネレーター合計電卓画像分割ツール動画を結合MACアドレス検索シグマ記法電卓 総和円錐展開図テンプレートジェネレーター番号を並べ替えるHEX電卓中央値電卓筆算割り算電卓英単語ランダム生成ツールフィートとインチからセンチメートルへのコンバーターランダム絵文字ジェネレーター不可視文字除去ツール平方完成電卓マスターナンバー電卓エンジェルナンバー電卓動画を逆再生ランダム超能力ジェネレーター太陽位置計算機売上総利益率電卓ランダム誕生日ジェネレーター楕円円周電卓手数料電卓ASCIIコード表逆テキスト加速度電卓ボウリングスコア計算機相対標準偏差電卓ランダムトーナメント表作成ツールai句読点追加war電卓ビンゴカードジェネレーターモジュロ電卓対数電卓FPSコンバーター動画を回転MP3ルーパーCAGR電卓変化率電卓ボルト締付トルク計算機ランダム名前ジェネレーターt検定電卓センチメートルからフィートとインチへのコンバーターランダム日付ジェネレーター関数電卓YouTubeチャンネル統計階段電卓相関係数計算機HEXコンバーター圧力電卓私のIPアドレスは何ですかfena電卓ビデオ速度を調整マン・ホイットニーのU検定計算機血糖値コンバーター比率電卓デシベル (dB) 電卓XMLバリデーター3d距離電卓🖱️ クリックカウンター小数時間から普通の時間へのコンバーター外れ値電卓平均寿命電卓桁数電卓土星回帰電卓指数電卓-高精度分数電卓ホームランの打席電卓迷路ジェネレーターBUN対クレアチニン比電卓積分電卓平方根電卓オーディオ スプリッター変動係数電卓熱膨張計算機ピタゴラスの定理電卓平均電卓-高精度正多角形電卓労働時間計算ツールバイナリ電卓上下反転テキストジェネレーター行番号を追加パスワード強度テスター角度変換ツールタンジェント電卓年の日電卓 - 今日は今年の何日目筆算足し算・引き算計算機ANC電卓TikTok収益計算ツール分散電卓 高精度トルク電卓画像回転ツールCRC32チェックサム電卓周波数波長変換ツール10進数からBCDへのコンバーターlog-base-2電卓VTTからtxtへのコンバーター👙 ブラサイズ電卓中国剰余定理電卓🔊 トーンジェネレーター動画から画像抽出ツールインタラクティブ単位円ビジュアライザーランダム時刻ジェネレーター斜辺電卓SRTからTXTへの変換ツール太陽・月・上昇星座電卓 🌞🌙✨HTMLからテキストコンバータ空の行を削除するじゃんけんジェネレーターSHA256 ハッシュジェネレーター慣性モーメント計算機水星逆行カレンダー水泳ペース計算機二乗平均平方根電卓文字数による改行CMYKからHEXへの変換ツールコラッツ予想電卓ビデオをループ再生熱伝達計算機10進数から16進数へのコンバーターBCDからバイナリへのコンバーターオンライン句読点削除ツールクロスワードパズルメーカーコラージュメーカーパーセント成長率電卓角速度計算機ランダムクレジットカードジェネレーター三角関数グラフ作成ツール標準誤差電卓💧 露点電卓eの最初のn桁YouTubeショート収益化計算ツール複数分数電卓車両重量配分計算機割り切れるテスト電卓配管流量電卓IPアドレスから16進数への変換ベーカーズパーセント電卓GIFメーカーワイヤーゲージ電卓退職カウントダウンパレットジェネレーター服のサイズ変換自然対数電卓音節カウンターZalgoテキストジェネレーターエラー関数電卓ランダムグループジェネレーター猫カロリー電卓10進数からバイナリへのコンバーターFacebookユーザーID検索hba1c電卓並列抵抗電卓中国式性別予測カレンダー魔方陣ジェネレーターピザ生地計算機ランダム算数問題ジェネレーター円錐台電卓分圧器計算電卓逆行列電卓pH電卓梁の電卓点つなぎジェネレーターアナグラム生成器中間日計算機双曲線関数電卓四分位範囲電卓学習曲線電卓平均中央値モード電卓平均電卓沸点計算ツール部分分数分解電卓パーソナリティ・ナンバー電卓二項係数電卓水分補給計算機絶対値不等式ソルバー論理ゲートシミュレーター配当利回り電卓ケリー基準電卓ノノグラムジェネレーター (ピクロス)ヴァンパイア黙示録電卓動画圧縮⏱️ 時間計算機CPM 電卓LED抵抗器電卓グレイコード・バイナリ変換電卓Log Base 10 電卓カイ二乗検定電卓テンソル積電卓ピッグラテン翻訳機数字抽出ツール出席率計算APスコア計算機ACTスコア計算機SATスコア電卓パーセンテージからCGPA変換器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 Bond 電卓529大学積立計算機HSA電卓退職金計算機昇給計算機請求書作成ツール出張日当計算機走行距離手当計算機家賃値上げ計算機日割り家賃計算家賃適正額計算機乗り出し価格計算ツール車購入可能額計算機バイクローン計算機キャンピングカーローン計算ボートローン電卓土地ローン計算機建設ローン計算機金利のみ住宅ローン計算機バルーンローン計算機住宅ローンポイント計算機PMI電卓隔週住宅ローン返済額計算機ARM住宅ローン電卓VAローン計算機給与手取り計算機AI SQLクエリジェネレーターAI正規表現ジェネレーターAIデータ可視化ツールCSV貼り付けAIテキストトーン分析ツールAI履歴書アナライザーAI単位変換ツール自然言語AI謝罪文ジェネレーターAI 丁寧なお断り文ジェネレーターAI旅行日程ジェネレーターAI読書リストジェネレーターAIワークアウトプランジェネレーターAI献立ジェネレーターAIギフトアイデアジェネレーターAIレシピジェネレーター食材から奨学金ROI電卓大学費用計算機言語学習 流暢になるまでの学習時間電卓単語クイズ作成ツールコーネルノート作成ツールフラッシュカード間隔反復スケジューラーペイント色混合計算機タイル目地計算機食洗機の積み込み最適化ツール洗剤の使用量計算ヘアカラー混合計算機印刷コスト計算機ガス vs 電気 コスト比較電卓ギフトカードチップ電卓引っ越し用ダンボール数計算機ストレージユニットサイズ計算機カプセルワードローブ計算機ベルト長さ計算機油圧シリンダー推力計算機滑車システム計算機ギア比計算機機械比熱計算機ベルヌーイの式計算機レイノルズ数計算機潮汐時刻計算機星空観測条件計算機結び方リファレンスツール寝袋温度評価ガイドテントフットプリントサイズ電卓バックパッキング食料重量電卓ネイスミス式ハイキングペース電卓刺繍糸長さ電卓レジンキャスト量計算電卓ビーズパターン電卓陶芸粘土収縮率電卓折り紙用紙サイズ電卓キルトバインディング電卓クロスステッチ刺繍糸計算編み物パターン計算機編み針サイズ変換器かぎ針サイズ変換器馬の干し草計算ツールペット航空輸送クレートサイズ検索爬虫類飼育UVBライト距離計算機鳥かごサイズ計算機水槽ヒーターワット数電卓猫のトイレ数計算機ヘッドライト照射距離電卓エンジン圧縮比計算機タイヤ溝摩耗計算機トレーラー牽引荷重計算機旅行費用割り勘計算停止距離計算機労災補償計算機遺産配分電卓商標区分検索ツール特許出願料電卓売上税ネクサスチェッカー刑期短縮計算機時効計算機Airbnb料金最適化ツールルームメイト家賃分割計算機セクション8 家賃電卓BRRRR法計算機キャッシュオンキャッシュリターン計算機賃貸利回り計算機1031エクスチェンジ計算機資産成長ビジュアライザーランチ代計算機ジム vs 自宅トレーニング費用電卓コーヒー代計算機リモートワーク節約計算機副業ROI電卓サブスクリプション費用トラッカーSaaS料金計算ツールフリーランスプロジェクト料金計算機スモークウッド・ペアリングガイド発酵時間計算機マリネ時間計算機食事制限レシピフィルタースパイス代用品ファインダーカフェイン半減期トラッカー標準ドリンク計算ツールワインペアリング提案ツールクライミンググレード変換器自転車ギア比計算機釣り結び強度計算機ヨガポーズホールドタイマー水泳SWOLF電卓レースタイム予測計算機ボクシングパンチ力計算機ラグビー得点電卓クリケット・ランレート電卓テニススコアトラッカーWellsスコア電卓 (DVT/PE)グラスゴー・コーマ・スケール計算機アプガースコア計算機FFMI 電卓クーパー12分間走計算ツール1マイルウォークテストロックポート電卓除脂肪体重から筋力計算炭水化物インスリン比計算機インスリン感受性係数計算機ヘブライ暦変換器ヒジュラ暦変換器旧暦変換ツール文化別年齢電卓どれくらい前計算機あと何日カウントダウン電卓日付パターンジェネレーター日付に営業日を追加営業日計算機単語頻度アナライザー文の長さばらつき分析ツールヘミングウェイ風リーダビリティエディタ発音IPA変換ツールヴィジュネル暗号ツールアトバッシュ暗号ツールROT13エンコーダー・デコーダーEXIFデータビューア・削除ツールバックロニム ジェネレーター頭字語ジェネレーターパングラムチェッカーリポグラム チェッカー画像からSVGトレーサー画像からASCIIアートへの変換器JSONスキーマジェネレーターTypeScriptプレイグラウンドLessからCSSへのコンパイラーSCSSからCSSへのコンパイラーSVGからReact/JSXへの変換器クエリ文字列ビルダーURLパーサーUUID検証・デコーダーHTTPステータスコードリファレンスcURLコマンドビルダーシェルピンスキーの三角形ジェネレーター3D曲面プロッター極方程式プロッタージュリア集合生成器マンデルブロ集合エクスプローラーL-Systemフラクタルジェネレータードロネー三角形分割ジェネレーターボロノイ図ジェネレータースピログラフジェネレーターテッセレーションジェネレーターシックスシグマ工程能力計算機youtubeサムネイルダウンローダーyoutube収益見積もりツールランダムRPGキャラクタージェネレーター