テクニックは、モデルと下限を取得したいリソースのタイプに依存します。問題の複雑さの下限を証明するには、最初に計算の数学モデルを修正する必要があります。問題の状態の下限は、ある量のリソースを使用するアルゴリズムが問題を解決できないことです。アルゴリズム上。定量化の領域を数学的に定義する必要があります。(これは一般的に不可能な結果に当てはまります。)したがって、下限の結果は特定の計算モデルにのみ当てはまります。たとえば、Ω (n logn )並べ替えの下限は、比較ベースの並べ替えアルゴリズムでのみ機能します。この制限はなく、より一般的な計算モデルでは、線形時間でもより速く並べ替えを解決できる場合があります。(以下のJoshのコメントを参照してください。)
ここに、より一般的な計算モデル(チューリングマシンと回路)の計算複雑性理論の下限を証明するいくつかの基本的な直接的な方法があります。
I.カウント:
アイデア:アルゴリズムよりも多くの機能があることを示します。
例:指数関数的に大きな回路を必要とする関数があります。
このメソッドの問題は、実在的な引数であり、明示的な機能や、困難であることが証明された問題の複雑さの上限を与えないことです。
II。組み合わせ/代数:
アイデア:回路を分析し、特定の特性を持っていることを示します。たとえば、それらによって計算された関数は数学オブジェクトの素晴らしいクラスで近似できますが、ターゲット関数にはその特性がありません。
例:Håstadのスイッチング補題とその変形では、決定木を使用して を近似します。Razborov-Smolenskyは、フィールド上の多項式を使用して関数を近似します。 A C 0 [ p ]A C0A C0[ p ]
この方法の問題は、実際には、小さくて比較的簡単に分析できるクラスでしか機能しないことです。Razborov-RudichのNatural Proofsバリアもあります。これは、より一般的な回路の下限を証明するのに単純なプロパティだけでは十分ではない理由を形式化しています。
Razborovの論文「近似法について」は、ある意味で下限を証明するための近似法が完全であると主張しています。
III。対角化:
アイディア。より小さいクラスの関数に対して対角化しています。このアイデアは、ゲーデル(およびカントール)にまで遡ります。
例 時間階層定理、空間階層定理など
このメソッドの主な問題は、上限を取得するには、より小さなクラス用のユニバーサルシミュレーターが必要であり、適切な非自明なシミュレーターを見つけることが難しいことです。たとえば、をから分離
するには、内にシミュレーターが必要であり、そのようなシミュレーターがある場合はそうしないことを示す結果があります。いいね そのため、通常は同じタイプのリソースでクラスを分離することになりますが、少し多くのリソースを使用すると、より小さなクラスを普遍的にシミュレートできます。P S p a c e P P S p a c ePP S p a c ePP S p a c e
また、相対化障壁(ベーカー、ギル、およびソロバイに戻る)と代数化障壁(アーロンソンとウィグダーソンによる)があります。
これらの障壁は、より一般的な対角化引数には適用されないことに注意してください。実際、Dexter Kozenの論文「サブ再帰クラスのインデックス付け」では、下限を証明するための対角化が完了しています。
お気づきかもしれませんが、複雑度クラスの優れたユニバーサルシミュレータを見つけることと、その複雑度クラスをより大きなクラスから分離することとの間には強い関係があります(正式な声明については、Kozenの論文を参照)。
最近の作品
最近の進歩については、Ryan Williamsの最近の論文をご覧ください。私はライアン自身が答えを書くことを望んでいるので、この答えではそれらについて議論しません。