作業フローを簡素化:miniwebtoolを検索。
追加
ホームページ > 数学 > 高度な数学操作 > 巡回セールスマン問題ソルバー 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 を使って、自然言語による質問と回答で数学の問題を解決することもできます。

その他の関連ツール:

高度な数学操作:

おすすめ:

標準偏差電卓 - 高精度パーセンテージ減少電卓パーセント増加電卓ランダム誕生日ジェネレーター売上総利益率電卓合計電卓ランダムカラージェネレーター弧長電卓英単語ランダム生成ツール番号を並べ替えるパーセント誤差電卓中央値電卓HEX電卓ai句読点追加war電卓マスターナンバー電卓手数料電卓MACアドレス検索相対標準偏差電卓分散電卓 高精度対数電卓小数時間から普通の時間へのコンバーター画像分割ツールランダム名前ジェネレーターアナグラム生成器円錐展開図テンプレートジェネレーターMP3ルーパーフィートとインチからセンチメートルへのコンバーターランダム国ジェネレーターASCIIコード表CAGR電卓ランダム絵文字ジェネレーター動画を結合センチメートルからフィートとインチへのコンバーター楕円円周電卓コラッツ予想電卓動画を逆再生血糖値コンバーターマン・ホイットニーのU検定計算機筆算割り算電卓逆テキスト指数電卓-高精度t検定電卓YouTubeチャンネル統計💧 露点電卓ランダムトーナメント表作成ツール動画を回転階段電卓IPサブネット電卓fena電卓土星回帰電卓ビンゴカードジェネレーター分数電卓空の行を削除する並列抵抗電卓log-base-2電卓変動係数電卓デシベル (dB) 電卓労働時間計算ツール配当利回り電卓ランダム日付ジェネレーターBUN対クレアチニン比電卓RC時定数電卓桁数電卓関数グラフ作成ツールXMLバリデーターモジュロ電卓直角三角形電卓上下反転テキストジェネレーター平均電卓-高精度表面積電卓クロスワードパズルメーカーランダム超能力ジェネレーターCRC32チェックサム電卓歩数距離変換電卓FIP電卓ピタゴラスの定理電卓CMYKからHEXへの変換ツールランダム時刻ジェネレーター筆算かけ算計算機FPSコンバーター多項式展開電卓ビデオ速度を調整変化率電卓ボウリングスコア計算機SRTからTXTへの変換ツール平方根電卓斜辺電卓InstagramユーザーID検索自然対数電卓画像回転ツール迷路ジェネレーター年の日電卓 - 今日は今年の何日目割引率電卓多項式因数分解電卓相関係数計算機圧力電卓比率電卓ポンドからキログラム変換シグマ記法電卓 総和ハミルトン路チェッカー巡回セールスマン問題ソルバー TSP線形計画法ソルバー包除原理電卓漸化式ソルバー隣接行列電卓トポロジカルソート電卓グラフ彩色電卓論理ゲートシミュレーターカルノー図 (K-Map) ソルバーブール代数簡略化ツール分割数電卓デジタルルート電卓フィボナッチ数チェッカーエジプト分数電卓メビウス関数電卓ゴールドバッハ予想検証ツールメルセンヌ素数チェッカー双子素数ファインダー友愛数チェッカー完全数チェッカーモジュラー冪乗計算機重複順列電卓効果量電卓相対リスク電卓オッズ比電卓分割表電卓フィッシャーの正確確率検定電卓スピアマン順位相関係数計算機ベータ分布電卓ワイブル分布電卓指数分布電卓幾何分布電卓負の二項分布電卓超幾何分布電卓F検定・F分布電卓ベイズの定理電卓固有多項式計算機行列べき乗電卓コレスキー分解電卓QR分解電卓行列対角化電卓クラメルの公式電卓列空間電卓零空間電卓ベクトル間の角度電卓単位ベクトル電卓ベクトルの大きさ電卓外積電卓内積電卓行列の掛け算電卓逆行列電卓RREF計算機行簡約階段形ニュートン法電卓ヤコビ行列電卓面積分電卓線積分計算機回転カール電卓発散計算機勾配計算機多変数最適化電卓微積分関連変化率ソルバー瞬間変化率電卓平均変化率計算機無限級数和電卓級数収束判定電卓べき級数電卓マクローリン級数電卓ロピタルの定理計算機広義積分電卓シンプソン則電卓台形公式電卓リーマン和電卓パラメトリック曲線グラフ作成ツール回転体の表面積計算機回転体の体積電卓座標幾何距離計算機ヘロンの公式計算機円の接線電卓角の二等分線電卓内接円インサークル電卓外接円電卓大圏距離計算機3d距離電卓トーラス電卓円錐台電卓不規則多角形面積電卓正多角形電卓円錐曲線識別ツール双曲線電卓放物線電卓二項定理展開電卓パスカルの三角形ジェネレーター積の記号電卓 (Π パイ記法)有理根定理 電卓デカルトの符号法則電卓平行線と垂直線の電卓直線の方程式電卓標準形から傾き切片形への変換点傾き形式電卓非線形連立方程式ソルバー有理方程式ソルバー文字式方程式ソルバー三角方程式ソルバー指数方程式ソルバー対数方程式ソルバー四次方程式計算機三次方程式ソルバー概算電卓数値から分数への変換器スキップカウントジェネレーター単価電卓天井関数と床関数 電卓絶対値電卓数列パターン検出ツール位取り表ジェネレーター演算の順序電卓PEMDAS筆算足し算・引き算計算機九九表ジェネレーター🎮 ゲーム内通貨変換器🎲 ドロップ確率電卓🎰 ガチャ天井計算機⚔️ DPS電卓🎮 ゲーム感度変換器❄️ 雪の日計算機🚚 引っ越し費用見積もり🔍 盗作チェッカー📷 OCR / 画像からテキスト抽出📈 折れ線グラフ作成ツール🥧 円グラフ作成ツール📊 棒グラフ作成ツール🔊 トーンジェネレーター🖱️ クリックカウンターオンラインメモ帳⬛ アスペクト比電卓🌍 カーボンフットプリント電卓👙 ブラサイズ電卓タイヤサイズ電卓燃料費電卓🌡️ 暑さ指数電卓🌬️ 体感温度電卓⏰ オンラインアラーム時計⏰ タイムカード電卓📅 日付差分電卓🕐 ミリタリータイム変換器⏱️ 時間計算機⏱️ オンラインストップウォッチ⏱️ カウントダウンタイマー🌐 タイムゾーン変換器カーペット計算機擁壁電卓HVAC容量計算電卓断熱材電卓ペーバー電卓鉄筋電卓木材計算機平方フィート計算機交差掛け算電卓五数要約電卓パーセンタイル電卓正規分布電卓p値電卓比率電卓平方完成電卓四捨五入電卓関数電卓ポモドーロ学習タイマー有効数字電卓テストスコア計算機加重成績計算ツール期末成績電卓成績計算機共振周波数電卓インピーダンス電卓電力用電卓変圧器電卓ワイヤーゲージ電卓555タイマー電卓コンデンサ電卓分圧器計算電卓LED抵抗器電卓モル/グラム/粒子変換器滴定計算器沸点計算ツール実験式計算器収率計算機化学量論計算機化学反応式バランサー希釈計算器馬力電卓トルク電卓自由落下電卓理想気体の状態方程式電卓密度電卓仕事と仕事率電卓位置エネルギー計算機運動エネルギー電卓放物運動電卓運動量計算機速度電卓加速度電卓力の電卓インフルエンサーROI電卓ROAS電卓CTR計算ツールソーシャルメディアユーザー名チェッカーソーシャルメディア投稿時間最適化ツールソーシャルメディアROI電卓Facebook広告費用電卓YouTubeショート収益化計算ツールTwitch収益計算ツールYouTube視聴時間電卓Twitter/X タイムスタンプ変換器TikTok収益計算ツールソーシャルメディア画像サイズガイドInstagramフォントジェネレーターTwitter/X 文字数カウンターYouTubeコメントピッカーYouTubeタグ抽出ツールyoutubeサムネイルダウンローダーyoutube収益見積もりツールランダムRPGキャラクタージェネレーター