作業フローを簡素化: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 を使って、自然言語による質問と回答で数学の問題を解決することもできます。

その他の関連ツール:

高度な数学操作:

おすすめ:

標準偏差電卓 - 高精度パーセンテージ減少電卓パーセント増加電卓InstagramユーザーID検索ランダムカラージェネレーターwar電卓シグマ記法電卓 総和筆算割り算電卓画像分割ツールパーセント誤差電卓弧長電卓MACアドレス検索円錐展開図テンプレートジェネレーター動画を結合HEX電卓合計電卓平方完成電卓ランダム名前ジェネレーターランダム誕生日ジェネレーター英単語ランダム生成ツール中央値電卓フィートとインチからセンチメートルへのコンバーター番号を並べ替える対数電卓FPSコンバーターai句読点追加売上総利益率電卓CAGR電卓動画を逆再生楕円円周電卓YouTubeチャンネル統計逆テキスト平均寿命電卓相対標準偏差電卓手数料電卓太陽・月・上昇星座電卓 🌞🌙✨エンジェルナンバー電卓ボウリングスコア計算機分散電卓 高精度バイナリ電卓MP3ルーパーセンチメートルからフィートとインチへのコンバーター動画を回転関数電卓血糖値コンバーターランダムトーナメント表作成ツールランダム超能力ジェネレーターランダム日付ジェネレーターマン・ホイットニーのU検定計算機不可視文字除去ツールオンライン句読点削除ツール桁数電卓小数時間から普通の時間へのコンバーター平方根電卓圧力電卓ASCIIコード表クロスワードパズルメーカーランダム時刻ジェネレーターランダム絵文字ジェネレーター指数電卓-高精度配当利回り電卓t検定電卓土星回帰電卓ビンゴカードジェネレーター階段電卓加速度電卓変化率電卓SRT 時間シフト 電卓文字数による改行私のIPアドレスは何ですかHEXコンバーター相関係数計算機ビデオ速度を調整モジュロ電卓レンズの式計算機比率電卓ボルト締付トルク計算機log-base-2電卓変動係数電卓マスターナンバー電卓デシベル (dB) 電卓ランダム名ピッカー上下反転テキストジェネレーター割り切れるテスト電卓XMLバリデーター正多角形電卓テキストリピート斜辺電卓空の行を削除するタンジェント電卓複数分数電卓ZalgoテキストジェネレーターBUN対クレアチニン比電卓画像回転ツールANC電卓fena電卓グレイコード・バイナリ変換電卓積分電卓💧 露点電卓表面積電卓VTTからtxtへのコンバータートルク電卓労働時間計算ツールオーディオ スプリッター🔊 トーンジェネレーター水泳ペース計算機パスワード強度テスター並列抵抗電卓動画から画像抽出ツール周波数波長変換ツール🖱️ クリックカウンター水星逆行カレンダー迷路ジェネレーター外れ値電卓TikTok収益計算ツールピタゴラスの定理電卓中間日計算機分数電卓愛の相性電卓筆算足し算・引き算計算機Twitch収益計算ツール👙 ブラサイズ電卓ランニングペース電卓平均電卓-高精度CRC32チェックサム電卓行番号を追加ランダム国ジェネレーターワードサーチパズルジェネレーター夏至の日YouTubeショート収益化計算ツールランダム座標ジェネレーター二乗平均平方根電卓自然対数電卓10進数からBCDへのコンバーターFacebookユーザーID検索ランダム俳句ジェネレーターFIP電卓SRTからTXTへの変換ツール長方形の電卓hba1c電卓ランダムトランプカードジェネレーター血液型計算機CPM 電卓アナグラム生成器太陽位置計算機平方和の計算年の日電卓 - 今日は今年の何日目概算電卓CMYKからHEXへの変換ツールオンラインメモ帳ビデオをループ再生ダイスロール確率電卓ランダムグループジェネレーター幾何平均電卓点つなぎジェネレーター16進数からCMYKへの変換ツールヘッドライト照射距離電卓三角関数グラフ作成ツール四捨五入電卓標準誤差電卓GIFメーカーOPS電卓沸点計算ツールカイ二乗検定電卓パーセント成長率電卓梁の電卓熱膨張計算機絶対値電卓論理ゲートシミュレーター10進数から16進数へのコンバーター1マイルウォークテストロックポート電卓3d距離電卓パーソナリティ・ナンバー電卓多項式の筆算計算機ヒストグラムメーカー歩数距離変換電卓HTMLからテキストコンバータpH電卓エントロピー電卓小文字生成器 ⁽ᶜᵒᵖʸ ⁿ ᵖᵃˢᵗᵉ⁾比率電卓熱伝達計算機角速度計算機音節カウンター16進数から10進数へのコンバーターCohen's d 電卓バイナリからグレイコードへのコンバーターランダム算数問題ジェネレーター動画圧縮自己資本比率計算シャープレシオ電卓二重積分電卓猫カロリー電卓赤ちゃん成長パーセンタイル計算機通常の時間から小数の時間へのコンバーターn乗根電卓高精度Twitter/X タイムスタンプ変換器スリザーリンクパズルジェネレーター偏微分電卓半減期電卓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電卓レースタイム予測計算機ボクシングパンチ力計算機ラグビー得点電卓クリケット・ランレート電卓サッカーxg期待ゴール電卓テニススコアトラッカーWellsスコア電卓 (DVT/PE)グラスゴー・コーマ・スケール計算機アプガースコア計算機FFMI 電卓クーパー12分間走計算ツール除脂肪体重から筋力計算炭水化物インスリン比計算機インスリン感受性係数計算機ヘブライ暦変換器ヒジュラ暦変換器旧暦変換ツール文化別年齢電卓どれくらい前計算機あと何日カウントダウン電卓日付パターンジェネレーター日付に営業日を追加営業日計算機単語頻度アナライザー文の長さばらつき分析ツールヘミングウェイ風リーダビリティエディタ発音IPA変換ツールヴィジュネル暗号ツールアトバッシュ暗号ツールROT13エンコーダー・デコーダーEXIFデータビューア・削除ツールピッグラテン翻訳機バックロニム ジェネレーター頭字語ジェネレーターパングラムチェッカーリポグラム チェッカー画像からSVGトレーサー画像からASCIIアートへの変換器JSONスキーマジェネレーターTypeScriptプレイグラウンドLessからCSSへのコンパイラーSCSSからCSSへのコンパイラーSVGからReact/JSXへの変換器クエリ文字列ビルダーURLパーサーUUID検証・デコーダーHTTPステータスコードリファレンスcURLコマンドビルダーシェルピンスキーの三角形ジェネレーター3D曲面プロッター極方程式プロッタージュリア集合生成器マンデルブロ集合エクスプローラーL-Systemフラクタルジェネレータードロネー三角形分割ジェネレーターボロノイ図ジェネレータースピログラフジェネレーターテッセレーションジェネレーターシックスシグマ工程能力計算機パレート図ジェネレーターNPSネットプロモータースコア計算機コホート維持率電卓解約率計算機顧客獲得コストCAC計算機顧客生涯価値CLV電卓コンバージョン率電卓A/Bテスト サンプルサイズ電卓A/Bテスト有意性電卓導線の磁場電卓電場計算機クーロンの法則電卓スネルの法則計算機慣性モーメント計算機求心力計算機振り子周期電卓ばね定数電卓ドップラー効果電卓ソルティノレシオ電卓トレイナー・レシオ電卓株式ベータ計算機インフレ連動米国債TIPS電卓住宅ローン リキャスト 電卓フォワードレート電卓債券デュレーション電卓 マコーレーと修正債券コンベクシティ電卓インデックス連動年金電卓変額年金電卓リバースモーゲージ電卓年金支払い計算機そろばんシミュレーターロシア農民式乗算ヴェーダ数学トリック電卓古代エジプト式乗算電卓ローマ数字計算ソルバー暗算トレーナー九九クイズ繰り上がりと繰り下がりビジュアライザー数の合成と分解生成ツール硬貨文章題ソルバー距離・速さ・時間の三角形電卓仕事算ソルバー混合問題ソルバー年齢文章題ソルバー列車出会い問題ソルバー水分補給計算機ペース カロリー電卓薬剤投与量計算機アルコールカロリー電卓ボディリコンポジション電卓ランダム討論トピックジェネレーターランダムな猫犬の名前ジェネレーターyoutubeサムネイルダウンローダーyoutube収益見積もりツールランダムRPGキャラクタージェネレーター