多項式時間および強力な多項式時間で実行されるアルゴリズムの定義


18

ウィキペディアでは、

アルゴリズムの実行時間がアルゴリズムの入力のサイズの多項式で上限がある場合、つまり、ある定数kに対してT n = O n kである場合、アルゴリズムは多項式時間と呼ばれます。T(n)=O(nk)

[8]の場合、アルゴリズムは強力な多項式時間で実行されます。

  • 計算の算術モデルの演算の数は、入力インスタンスの整数の数の多項式によって制限されます。そして

  • アルゴリズムで使用される空間は、入力のサイズの多項式によって制限されます。

バーンハード・コート、イェンスVygen、組合せ最適化

定義1.4。

有理数入力のアルゴリズムは、次の場合に多項式時間で実行されると言われています。

  • 時間で実行される整数k があります。ここで、nは入力サイズです。O(nk)
  • 中間計算のすべての数値はビットで保存できます。O(nk)

任意の入力を持つアルゴリズムは、次の場合に強力な多項式時間で実行されると言われています。

  • n個の数字で構成される入力に対して時間で実行される整数kがあり、O(nk)
  • 有理入力では多項式時間で実行されます。

間違っている場合は修正してください。私が気づいた文字通りの違いは次のとおりです。

  • 多項式時間アルゴリズムの場合、Korte and Vygenの定義は「Wikipediaの定義+多項式ストレージスペース」です。

  • 強力な多項式時間アルゴリズムの場合、Korte and Vygenの定義とWikipediaの定義はどちらも入力ストレージサイズに多項式時間を必要とします。ただし、KおよびVの場合、入力の数値の数に多項式時間が必要です。一方、ウィキペディアの場合、入力サイズに多項式のストレージスペースが必要です。

それでは、これら2つの概念に対するKとVおよびウィキペディアの定義はそれぞれ同等ですか?それらの間に他にどんな違いや関係がありますか?

よろしくお願いします!


defnの直後のウィキペディアのセクションにはかなり良い説明がありますが、十分に明確ではありませんか?それは、何ビットが数値を表すかに関係しており、非常に大きな数値は、複雑さの測定に「上方」に影響を与える可能性があります。K&Vの定義は「ほぼ」同等であると考えられます。合理的な入力に関しては、有理数の算術演算がサイズを大きく増加させないという証明が必要です。これは、すべての入力のLCDを見つけて、LCDに対してすべての算術演算を行うことで表示できると思います。
vzn

@vzn:ウィキペディアの説明は(1)算術対チューリングマシンに対してはまともですが、強いポリの目的と定義に関しては非常に浅く、(2)GCDが例示するものについては完全に間違っていました。
アレクセイ

回答:


5

正式な定義の前に、「強く/弱く」分類が何を区別するかを検討してください。

まず、チューリングマシンでいずれかを実行することを検討してください。どちらも、バイナリエンコードされた入力の長さのステップ多項式で実行されます。したがって、両方で実行される算術演算の数は、バイナリエンコードされた入力の長さの多項式なければなりません。したがって、両方のチューリングマシンの実行時間は、入力値の数またはその大きさが大きくなるにつれて多項式的に長くなります。後者を強調するために、強いものでさえ、より大きな大きさでより多くのTMステップを踏むことに注意してください(少なくとも余分なビットを読む必要があります)。どんな状況でも、指数関数的になることはありません(無関係な擬似多項式時間の場合のように)。チューリングマシンだけでは、根本的な違いは検出できないようです。

O(1)

入力数の数の算術演算多項式の数で実行されるアルゴリズムのセットは明確に定義されていますが、バイナリエンコードされた入力の長さで指数関数的なTMステップの数を取るアルゴリズムのクラスと重複しています(例を参照)。したがって、このセットでは、2番目の段落のプロパティは保持されません。不要な交差を除外するには、多項式TM空間[*]の条件を追加します。

[1]では、これは2つの方法で述べられています。

  • アルゴリズムが多項式空間アルゴリズムである場合、アルゴリズムは強力な多項式時間で実行され、入力数の数の多項式で区切られた多数の基本算術演算を実行します。
  • 多項式アルゴリズムは、多項式空間アルゴリズム(標準のチューリングマシンモデル)と算術モデルの多項式時間アルゴリズムです(説明については、この質問を参照してください)。

O(n3)O(n2)

[*] 2番目の条件はどこでも多項式空間として記述されていますが、多項式時間を必要とする方が理にかなっています。前者はより包括的ですが、奇妙です。多項式時間以上かかる強力な多項式アルゴリズムはありますか?繰り返し二乗の例では、多項式時間も多項式空間も使用されないことに注意してください。

[1]グロッシェル、マーティン。LászlóLovász、Alexander Schrijver(1988)。「複雑さ、オラクル、および数値計算」。幾何学的アルゴリズムと組み合わせ最適化。スプリンガー。ISBN 0-387-13624-X。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.