「最悪のケース」以外のケースの複雑性クラス


10

たとえば、平均的なケースの複雑さに関する複雑性クラスはありますか?たとえば、予想される多項式時間を決定するのにかかる問題の(名前付き)複雑度クラスはありますか?

別の質問は、 以下に例示する最良のケースの複雑さをます。

決定に必要な(自然な)問題のクラスはありますか に少なくとも指数関数的な時間ますか?

明確にするために、いくつかのEXP完全言語検討してください。明らかに、Lのすべてのインスタンスが指数時間を必要とするわけではありません。多項式時間でも決定できるインスタンスがあります。したがって、Lの最良の場合の複雑さは指数時間ではありません。LLL

編集:いくつかのあいまいさが生じたので、私はそれをさらに明確にするようにしたいと思います。「ベストケース」の複雑度とは、問題の複雑度が何らかの機能によって制限されている複雑度クラスを意味します。たとえば、BestEを、ある線形指数よりも短時間で決定できない言語のクラスとして定義します。象徴的に、を任意のチューリングマシン、cn 0nを自然数とすると、Mcn0n

LBestE (c)(M)[(L(M)=L)(n0)(n>n0)(x{0,1}n)[T(M(x))2c|x|]]

ここで、は、Mが入力xで停止するまでにかかる時間を示します。T(M(x))Mx

そのようなクラスの問題を定義することは非常に奇妙であることを受け入れます。それは、すべてのチューリングマシン、その能力に関係なく、ある線形指数よりも短い時間で言語を決定できないことを要求しているためです。M

しかし、すべてのチューリングマシンには時間がかかるため、多項式時間の対応物(BestP)は自然なものです少なくともその入力を読み取ります。|x|

PS:多分、「すべてのチューリングマシン」として定量化する代わりに、多項式時間チューリングマシンなど、事前に指定されたクラスのチューリングマシンに限定する必要があります。そうすれば、B e s t n 2ようなクラスを定義できますMBest(n2)。これは、多項式時間チューリングマシンで少なくとも2次時間を決定する必要がある言語のクラスです。

PS2:言語を決定するために最小の回路サイズ/深さを考慮する、回路の複雑さの対応物を考慮することもできます。


簡単なSATのインスタンスがあるからといって、その予想時間が多項式であるとは限りません。私は...必ず、私はあなたの質問を理解していないよ
レフReyzin

@Lev Reyzin:SATが予想されるポリタイムにあるとは言っていませんでした。SATには簡単なインスタンスがあるため、「ベストケース」の複雑さは難しいとは言えません。
MS Dousti 2010

ああ、なるほど、平均的なケースの複雑さと最良のケースの複雑さは2つの別々の質問です!どういうわけか、私は最初の読書でこれを見逃しました-私の間違い。
Lev Reyzin

BestEの定義を完全に解析できません。Mとxはそれらの定量化の外に座っています...また、Lにない入力をに拒否させませんか?ML
ライアンウィリアムズ

@ライアン:欠陥を指摘してくれてありがとう。修正しました。
MS Dousti 2010

回答:


13

定義を完全に解析することはできませんが、より強力な時間階層、特に「ほぼすべての」時間階層が知られていることを知っておく必要があります。

ここでは、正式な声明は次のとおりです。毎回バインドのための、言語がある L T I M E [ T N ]プロパティを使用している正しく認識しているすべての決定論的アルゴリズム Lが時間により漸近的に大きな実行する必要があります tはn 十分に短い時間 t n に対して、有限数を除くすべての入力。 T(n)LTIME[T(n)]Lt(n)t(n)

"十分に小さい"とはt(n)logt(n)o(T(n))

例としてを選択し、ハード言語Lを取得するとします。次に、Lを正しく認識するアルゴリズムは、少なくとも2 n / n 2を使用する必要があります。T(n)=2nLL2n/n2、特定の長さを超えるすべての入力回。これは、クラスBestEで探しているもののようです。

参照:

John G. Geske、Dung T. Huynh、Joel I. Seiferas:Almost-Everywhere-Complex SetsおよびSeparating Deterministic-Time-Complexity Classs Inf。計算。92(1):97-104(1991)


ありがとうございます。私の質問はよくご理解いただけたと思います。「私はあなたの定義を完全に解析できません」という紹介文は、あなたの慎みのしるしです:)
MS Dousti

2
私が正しく推測した場合、定義は次のようになります。「L \ in BestE \ iff(\ exists c)(\ forall M)[(L(M)= L)\ Rightarrow(\ exists n_0)(\ forall n > n_0)(\ forall x \ in \ {0,1 \} ^ n)[T(M(x))> 2 ^ {c | x |})]。 "
ライアンウィリアムズ

うん、あなたは正しいです。私はギリギリで定義を編集し、数量詞のいくつかを誤った場所に置きました。あなたの定義に基づいて質問を修正しました。
MS Dousti 2010

12

平均的なケースの複雑さのさまざまな概念に取り組むことを試みるクラスがいくつかあります。Complexity Zooでは、興味のあるクラスがいくつかあります。

AvgP

HeurP

DistNP

(NP、P-サンプリング可能)

アローラ/バラクは、distP、distNP、およびsampNPを定義する多くの類似したクラス(18章)をカバーしています。

これらすべてのクラス間の正確な関係は、以前に別の質問で尋ねられたインパリアッツォの5つの世界によって特徴付けられますます。

「ベストケース」の複雑さに関する質問に関しては、私があなたの意味を完全に理解しているとは思えません。EXPをお探しですか?

すべてのインスタンスのベストケースの実行時間に関して定義された複雑度クラスを意味する場合、これは、特定の問題の些細なケースのみを調べるため、演繹的に非常に良い複雑度測定ではありません。


非常によくやりました!これが、質問の平均的なケースの複雑さの部分に必要なものです。「ベストケース」の部分について、質問の元のステートメントが曖昧であることに気付きました。悪い!何度も編集していますので、もう一度読んでみてください。
MS Dousti

5

[ライアンウィリアムズの回答を拡張し、いくつかの検索用語を追加する]あなたの最良のケースの複雑さの概念にはすでに名前があります:ほぼどこでも(ae)硬度、または二重免疫 (ライアンの例は -bi-immunityです)。場合 Cは、複雑性クラスで、その後、言語 Lがある Cの何無限のサブセットが存在しない場合-immune L "Lとなるよう L "CがLはである Cの両方の場合-bi免疫 Lおよびその相補TIME[T(n)]CLCLLLCLCL C免疫です。たとえば、 B e s t E 定義が E -bi-immuneセットのクラスと同等であることを示すことは難しくありません。L¯=ΣLCBestEE

(歴史的側面はさておき:免疫の概念は最初に開発されました 、Pが定義されるずっと前に、1944年に計算理論でPostました。Postは実際に「単純なセット」と見なされていました-補集合が免疫である場合、セットは単純です。 「免疫」という言葉は通常、「計算可能なセットへの免疫」を意味します。この設定では、すべての無限のceセットには無限の計算可能なセットが含まれるため、耐性は「免疫からceセット」に相当します。Postの論文も最初に紹介した多元削減の概念ですが、私はそれに誓うことができませんでした。)


実際には、条件M x = 1を適切な場所に置いた場合、彼の定義ではLの入力を受け入れるのみがあり、Lの入力を拒否しない... MLLM(x)=1
ライアンウィリアムズ

ジョシュアさん、ありがとうございました。あなたの答えはライアンのそれを補完します。ちょうど1編集:C-免疫の定義では、「プライム」1は、(それは読んでください:何の無限のサブセット不足していないようにL "C。)LLC
MS Dousti

1
@Sadeq:修正、ありがとう。@ライアン:正しい(または数時間前だった:彼はその後定義を更新した)。次に、二重免疫ではなく免疫になります。どちらにせよ、主に「免疫」というキーワードを指摘したかっただけです。
Joshua Grochow

2

アルゴリズムについて話すときは、問題ではなく、さまざまなケースの方が意味があります。一方、複雑性クラスは問題ではなく、アルゴリズムに関するものです。したがって、複雑さのクラスが常にアルゴリズムで最悪のケースになるのは、その定義によるものです。

複雑さの目標は、特定の問題のインスタンスを解決するために必要なリソースの数を知ることです。したがって、特定のインスタンスとアルゴリズムでは、これらのリソースだけが必要になることを知っています。

アルゴリズム分析の目的は、問題が発生した場合でも、アルゴリズムにリソースの上限があることを確認することです。有用な(不必要なステップを実行する)アルゴリズムはそれよりも長い時間を要しないため、自明な限界は問題の複雑さのクラスです。ただし、アルゴリズムの詳細を考慮すると、その範囲を改善できます。

たとえば、マージソートを分析しているとしましょう。解が与えられると、多項式時間でそれを確認できるため、SORTINGはNPになります。ただし、分析することで、これを下げることができます。Θ(n * logn)に

最良の場合については、すべての問題で必要なリソースの最小数を見つけることは簡単です。入力が長さO(n)で出力が長さO(m)であると仮定します。次に、次のTM Mは常に、最良の場合のO(n)+ O(m)で実行されます。

M {入力、インスタンス、ソリューション}

  1. 指定されたインスタンスをマシンでエンコードされたインスタンスと比較します。
  2. それらが等しい場合、エンコードされたソリューションを返します。
  3. そうでなければ、ブルートフォース検索を実行します。

-1

O(1)


1
それが問題の正しいアルゴリズムとしてカウントされるとは思いません。ただし、アルゴリズムを変更して、最初に入力が(O(1)時間で)事前に決定した特定のインスタンスと等しいかどうかをチェックするようにできます。もしそうなら、それは事前に計算された答えを出力します。そうでない場合は、与えられたインスタンスを何らかの方法で解決します。それについて考えると、インスタンスごとに O表記の背後にある異なる定数を取ることができる場合、すべてのインスタンスに対して正しいアルゴリズムがO(1)時間で実行されます。文字通りの意味での「最良の場合の複雑さ」が役に立たないのはそのためです。
伊藤剛

確定的で非確率的な計算について話している場合、インスタンスの2つのエンコーディングが等しいかどうかを確認するには線形時間(O(n)時間)がかかります。入力エンコーディングのnビットをスキャンして、同じであることを確認しますプログラムされたエンコーディングとして、いいえ?
ダニエルアポン

2
@ダニエル:はい。ただし、インスタンスの1つが固定されている場合、一定の時間しかかかりません。定数は固定されたインスタンスの長さに依存します。
伊藤剛
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.