TSPのBellman-Held-Karpアルゴリズムの時間の複雑さ、テイク2


16

最近の質問では、BellmanHeld-Karpに独立した、TSPの現在の古典的な動的プログラミングアルゴリズムについて説明しました。このアルゴリズムは、O 2 n n 2時間で実行されることが広く報告されています。しかし、私の学生の一人が最近指摘したように、この実行時間には不当に強力な計算モデルが必要になる場合があります。O(2nn2)

アルゴリズムの簡単な説明を次に示します。入力は有向グラフで構成さG=(V,E)n頂点と非負の長さの関数:ER+。任意頂点のst、および任意のサブセットX除外すること頂点のs及びt、聞かせてL(s,X,t)からの最短ハミルトン経路の長さを示すst誘導された部分グラフでG[X{s,t}]。Bellman-Held-Karpアルゴリズムは、次の再発に基づいています(または、経済学者や制御理論家が「ベルマンの方程式」と呼ぶのを好むように)。

L(s,X,t)={(s,t)if X=minvX (L(s,X{v},v)+(v,t))otherwise

頂点場合、最適な巡回セールスマンツアーの長さはです。最初のパラメーターsはすべての再帰呼び出しで定数であるため、\ Theta(2 ^ nn)個の異なるサブ問題があり、各サブ問題は最大でn個に依存します。したがって、動的プログラミングアルゴリズムはO(2 ^ nn ^ 2)時間で実行されます。sL(s,V{s},s)sΘ(2nn)nO(2nn2)

それともそれ!?

標準整数RAMモデルでは、O(logn)ビットを使用して整数を一定時間操作できますが、少なくとも算術演算論理演算では、大きい整数をワードサイズのチャンクに分割する必要があります。(そうでなければ、奇妙なことが起こります。)これは、より長いメモリアドレスへのアクセスにも当てはまりませんか? アルゴリズムがスーパー多項式空間を使用する場合、メモリアクセスには一定の時間しか必要ないと仮定するのは合理的ですか?

特にベルマン・保有カープアルゴリズムのために、アルゴリズムは、サブセットの説明変換しなければならないサブセットの記述に、それぞれについて、メモ化テーブルにアクセスするためです。サブセットが整数で表される場合、これらの整数はビットを必要とするため、一定時間で操作できません。それらが整数で表されていない場合、それらの表現をメモ化テーブルへのインデックスとして直接使用することはできません。XX{v}vn

だから:Bellman-Held-Karpアルゴリズムの実際の漸近的な実行時間はどのくらいですか?


「奇妙な」リンクが壊れています。
タイソンウィリアムズ

リンクを修正しました。
ジェフ

回答:


12

これは哲学的なものよりも数学的な答えではありませんが、未知であるが少なくともと同じ大きさのビット数Bの整数の定数操作を可能にするRAMモデルを考えることを好むアルゴリズムが必要とするスペースの量です。なぜなら、整数がそれほど大きくない場合、どのようにあなたの記憶に対処することができますか?多項式の時間および空間アルゴリズムでは、O(log n)ビットと同じですが、指数空間アルゴリズムでは問題を回避します。log2S

もちろん、Sが実際に持っているメモリ量を超えると、アルゴリズムはまったく実行されません。または、メモリの情報をページングすることで実行され、RAMモデルの代わりにメモリ階層モデルを使用する必要があります。


マシンモデルは入力サイズ依存するべきだという考えに慣れていますが、マシンモデルをアルゴリズムに依存させることについて少し奇妙なことがあります。すでに指数空間を使用している限り、マシンに一定の時間でPSPACEの問題を解決させたいですか?n
ジェフ

3
私にとっては、モデルをアルゴリズムに応じて変化させる問題ではなく、固定されているがすべてのアルゴリズムを実行できないモデルがあるという問題です(スペースが不足しているため)。私にとっては、それは実際のコンピューターとそれほど変わらないように思えます。
デビッドエップシュタイン

1
Davidの答えには納得しません。ここには2つの問題があります。1つは理論的であり、もう1つは実用的です。理論的な設定では、モデルについて正確であり、実行時間を適切に分析する方が自然です。実際の設定では、実行可能なさまざまな最適化(および部分的なメモ化など)のために特定のインスタンスで実際にメモリが不足するかどうかを知るのは簡単ではありませんが、アルゴリズムを実装するときは対処する必要がありますセットを保存し、それらにインデックスを付ける方法。上記のモデルは、この点では役に立ちません。
チャンドラチェクリ

8

この問題については、Fedor V. FominとDieter Kratschの最近の本「Exact Exponential Algorithms」で議論されており、ユニットコストRAMモデルとログコストRAMモデル(最大距離都市とf n = O g n )の場合、f n = Og n p o l y n )の場合:Wf(n)=O(g(n))f(n)=O(g(n)poly(n))

及び 2 NログW nはO1 (注、 2 NログW nはO1 O * 2 N)それぞれを、。O2n2nログWnO12nログWnO1O2n


1
したがって、彼らは多項式因子を隠すことで問題を回避します。多項式因子が何であるかを知りたい!
ジェフ

3
彼らは、多項式因子があると仮定しています(私のコメントのリンクを参照)。n2
オレクサンドルボンダレンコ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.