[解決済み] TSPの場合、Held-Karpアルゴリズムは、Brute-forceのO(n!)からO(2^n*n^2)に時間複雑性をどのように減少させるのでしょうか?[クローズド]
質問
Held-Karpアルゴリズムのキーポイントがよくわからないのですが、どのようにして時間的な複雑さを軽減しているのでしょうか? 動的計画法を用いているので、中間結果をキャッシュから取得することで時間を節約しているのか、それとも計算の早い段階でいくつかのパスを削除しているからなのでしょうか?
また、2次元の表を使用して、1次元の計算を表示することは可能でしょうか? 簡単なTSP問題(3または4都市)ですか?
どのように解決するのですか?
Held-Karpアルゴリズムの動的計画法は、TSP問題の次のような性質を利用しています。 距離が最小のパスのすべてのサブパスは、それ自体も距離が最小である。
つまり、単純なトップダウン・アプローチですべての解を確認するのではなく、ボトムアップ・アプローチで、問題を解くのに必要な中間情報を一度に開発するのです。 と一度だけ . 最初のステップは極小のサブパスである。より大きなサブパスを解くためにステップアップするたびに、すでに計算されたすべての小さなサブパスの問題の解を調べることができるのです。また、サブパスのレベルが上がるごとに、指数関数的に時間が短縮されます。しかし、計算からパスが削除されることはなく、手順の最後にはすべてのサブ問題が解決されています。欠点は、すべての中間結果を保存するために、非常に大きなメモリサイズが必要になることです。
要約すると、Held-Karpアルゴリズムの時間短縮は、以下の事実に起因する。 決して 都市の部分集合(組み合わせ)に対する解を重複して解くことになる。しかし、ブルートフォース・アプローチでは、与えられた部分集合の組み合わせに対する解を何度も再計算することになる(与えられた全体集合の順列の中で必ずしも連続した順序ではないとはいえ)。
Wikipediaに2次元距離行列の例と疑似コードがあります。 こちら .
関連
-
[解決済み] 再帰の複雑さ T(n) = T(n-1) + T(n-2) + C
-
[解決済み] Zip爆弾はどうやって作るの?
-
[解決済み] 深さ優先グラフアルゴリズムの時間複雑性【非公開
-
[解決済み] ゲーム「2048」の最適なアルゴリズムとは?
-
[解決済み] ヒープの構築はどうして時間計算量O(n)になるのですか?
-
[解決済み】アルゴリズムの時間複雑性を求めるには?
-
[解決済み】整数の流れから実行中央値を求める
-
[解決済み】iTunes 11の曲リストに色をつけるアルゴリズムはどうなっているのでしょうか?[クローズド]
-
[解決済み】異なるサイズの長方形を、かなり最適な方法で可能な限り小さな長方形に詰め込むには、どのようなアルゴリズムが使用できるだろうか?
-
[解決済み】固定長 6 int 配列の最速ソート
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] どちらが大きいですか?O(log*n)とO(loglog n)
-
[解決済み] ソートされていない配列でバイナリサーチは使えるか?重複
-
[解決済み] TSPの場合、Held-Karpアルゴリズムは、Brute-forceのO(n!)からO(2^n*n^2)に時間複雑性をどのように減少させるのでしょうか?[クローズド]
-
[解決済み] 再帰の複雑さ T(n) = T(n-1) + T(n-2) + C
-
[解決済み] Sliding Window Algorithmとは?例題は?
-
[解決済み] ビッグ・オー vs ビッグ・シータ【重複あり
-
[解決済み] ヒープ化 VS ビルドヒープ
-
[解決済み] O(n)の整数ソートアルゴリズムはあるか?
-
[解決済み】8歳児にビッグ・オー?[重複あり]
-
[解決済み】ポリゴンの膨張・収縮(オフセット、バッファリング)のためのアルゴリズム