作業フローを簡素化:miniwebtoolを検索。
追加
関連ツール
L-Systemフラクタルジェネレーター迷路ジェネレータースピログラフジェネレーター
ホームページ > 数学 > 高度な数学操作 > 巡回セールスマン問題ソルバー 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検索パーセンテージ減少電卓不可視文字除去ツールランダムカラージェネレーター弧長電卓パーセント増加電卓MACアドレス検索ランダム誕生日ジェネレーターwar電卓円錐展開図テンプレートジェネレーター画像分割ツール動画を結合フィートとインチからセンチメートルへのコンバーターパーセント誤差電卓エンジェルナンバー電卓シグマ記法電卓 総和合計電卓YouTubeチャンネル統計ランダム超能力ジェネレーター動画を逆再生ASCIIコード表標準偏差電卓 - 高精度楕円円周電卓MP3ルーパー売上総利益率電卓ai句読点追加英単語ランダム生成ツールkva計算機コラッツ予想電卓ランダムトーナメント表作成ツール番号を並べ替える平方完成電卓FPSコンバーターマン・ホイットニーのU検定計算機私のIPアドレスは何ですかモジュロ電卓空の行を削除する素数ですかビンゴカードジェネレーター筆算割り算電卓相対標準偏差電卓ランダム絵文字ジェネレーター熱膨張計算機血糖値コンバーターHEX電卓関数電卓オンライン句読点削除ツールデシベル (dB) 電卓手数料電卓水星逆行カレンダー逆テキスト動画を回転中央値電卓土星回帰電卓圧力電卓対数電卓水泳ペース計算機HEXコンバーターヒジュラ暦変換器分数電卓分散電卓 高精度CAGR電卓じゃんけんジェネレーター比率電卓ビデオ速度を調整ボウリングスコア計算機中間日計算機加速度電卓💧 露点電卓センチメートルからフィートとインチへのコンバーターfena電卓労働時間計算ツール変化率電卓太陽位置計算機FacebookユーザーID検索年の日電卓 - 今日は今年の何日目正多角形電卓画像回転ツール相関係数計算機角速度計算機コラージュメーカーランダム時刻ジェネレーターオーディオ スプリッターマスターナンバー電卓t検定電卓ピタゴラスの定理電卓ランダム名前ジェネレーターランダム日付ジェネレーター外れ値電卓小数時間から普通の時間へのコンバーターAIテキストヒューマナイザーatan2電卓筆算足し算・引き算計算機10進数からBCDへのコンバーターBUN対クレアチニン比電卓log-base-2電卓バイナリ電卓動画から画像抽出ツールSRTからTXTへの変換ツール🖱️ クリックカウンタービデオをループ再生文字数による改行魔方陣ジェネレーター1マイルウォークテストロックポート電卓ボルト締付トルク計算機GIFメーカーアナグラム生成器🔊 トーンジェネレーター沸点計算ツール階段電卓割り切れるテスト電卓変動係数電卓角度変換ツール配当利回り電卓指数電卓-高精度ANC電卓XMLバリデーター迷路ジェネレーターcsvからsrtへ二乗平均平方根電卓四次方程式計算機CPM 電卓表面積電卓バーコードジェネレーターヒストグラムメーカー平方根電卓桁数電卓学習曲線電卓真実か挑戦かジェネレーター配管流量電卓アンテナ長計算機パレットジェネレーター猫カロリー電卓FIP電卓ランダムクレジットカードジェネレーター馬力電卓平均寿命電卓斜辺電卓車両重量配分計算機ワイヤーゲージ電卓平均電卓-高精度科学表記法電卓PSIからbarへの変換器ダイスロール確率電卓中間点電卓熱伝達計算機10進数から16進数へのコンバーターSRT 時間シフト 電卓ランダム算数問題ジェネレーター平方数リスト積分電卓BCDからバイナリへのコンバーターeの最初のn桁円錐台電卓太陽・月・上昇星座電卓 🌞🌙✨発音IPA変換ツールSVG最適化ツールVTTからtxtへのコンバーターガウス分布ジェネレータークロスワードパズルメーカージョルダン標準形電卓トルク電卓ニュートン法電卓パスワード強度テスター世界時計点つなぎジェネレーターTikTok収益計算ツールYouTubeタグ抽出ツールサンプルサイズ電卓三角関数グラフ作成ツール営業利益率電卓CMYKからHEXへの変換ツールCRC32チェックサム電卓⚔️ DPS電卓KDレシオ計算機上下反転テキストジェネレーター動画圧縮株式分割電卓赤ちゃんのミルク量計算週番号計算機psiからkPaへのコンバーターTwitch収益計算ツールAIトークンカウンターHTMLからテキストコンバータエラー関数電卓サッカーxg期待ゴール電卓ジニ係数電卓タンジェント電卓ピザ生地計算機ベーカーズパーセント電卓並列抵抗電卓🎰 ガチャ天井計算機ペニー落下衝撃電卓ボロノイ図ジェネレーター取り消し線テキスト生成ツール長方形の電卓IPアドレスから16進数への変換SRT結合🎮 ゲーム感度変換器パーセントからppmへのコンバーターヘルメットサイズ電卓手袋サイズ電卓帽子サイズ変換スノーボードサイズ電卓スキーサイズ電卓自転車サイズ電卓スピードランスプリットタイマーステーブルフォード計算機ダーツチェックアウト電卓ボウリング・エコノミーレート電卓打撃ストライクレート電卓ネットランレート計算機Eloレーティング計算機心拍数回復電卓ハイキング時間計算機ローイングペース計算機ランニング年齢グレード計算機FTP・パワーゾーン計算機Beepテスト電卓ACFTスコア電卓Wilks & DOTS 電卓ホイールオフセット電卓タイヤ負荷指数・速度レーティング検索マイルあたりコスト電卓リース買取電卓オクタン価ブレンド電卓2ストロークオイル混合電卓エンジン排気量計算ソファ搬入電卓薪コード計算機空気清浄機CADR電卓除湿機サイズ計算シーリングファンサイズ電卓カーテンサイズ計算機ラグサイズ電卓額縁の掛け高さ計算機テレビ取り付け高さ計算機テレビサイズ電卓池の容量・ライナー電卓プール塩量計算機プール容量計算給湯器サイズ電卓エポキシ樹脂計算機手すり子間隔電卓巾木とトリムの電卓サイディング計算機デッキ用ステインの計算芝生の種計算機芝生電卓アスファルト電卓立方ヤード電卓電線管充填率電卓直列並列コンデンサ電卓誘導リアクタンス計算機部屋の照明計算機ルクスからルーメン電卓ルーメンからワット変換器発電機サイズ計算機mAh Wh 変換器 電卓三相電力計算機アンペアからワット電卓ワットからアンペア電卓直列抵抗計算機摩擦計算機斜面計算機機械的倍率計算機音速計算機波の速度計算機浮力電卓終端速度計算機ド・ブロイ波長計算機光子エネルギー計算機emc2電卓時間の遅れ計算機ケプラーの第三法則計算機脱出速度計算機万有引力計算機ベール・ランベルトの法則電卓ネルンストの式計算機浸透圧計算機沸点上昇電卓凝固点降下計算パーセント組成計算機規定度計算機質量モル濃度計算機pKa→Ka変換器ヘンダーソン・ハッセルバルヒ電卓理論収量計算機制限反応物計算機電子配置計算機インタラクティブ周期表AI授業計画ジェネレーターAIクイズ作成ツール引用ジェネレーター (APA/MLA/Chicago)出席率計算APスコア計算機ACTスコア計算機SATスコア電卓パーセンテージからCGPA変換器CGPAからパーセンテージへの変換器簡単採点ツール EZ Grader子育て費用計算機おむつサイズ電卓赤ちゃんの名前ジェネレーター赤ちゃんの目の色予測子供のBMIパーセンタイル計算機子供の身長予測ツールhcg倍加時間計算ツール体外受精出産予定日電卓着床計算ツール中国式性別予測カレンダーISO 8601 日付フォーマッターユリウス日変換器昼寝電卓月相電卓日の出&日の入り電卓日付ローマ数字変換電卓退職カウントダウンソブリエティ計算機ハーフバースデー計算機記念日計算機チップ分配計算機メールマーケティングROI電卓リード獲得単価計算機運転資本計算機youtube収益見積もりツールランダムRPGキャラクタージェネレーター