Non-uniform Hierarchy Theorem
計算量理論の基本的事項の復習です.(証明などはたぶん標準的な計算量理論の教科書に載っていると思います.今回は Arora & Barak の新しい教科書の証明方針を参考にしましたが,微妙に細部が異なっているかと思います.間違っていたらご指摘下さい!)
長い時間動作できるTuring機械は短い時間しか動作できないTuring機械よりも真に計算能力が上である,という所謂「階層定理」はお馴染みの対角線論法で証明されます.
それでは非一様計算モデルの代表格である論理回路ではどうでしょうか?実際,非一様版の階層定理は,大きい回路は小さい回路よりも真に計算能力が上であることを示しています.この定理の証明技法として対角線論法は使えず,代わりに計数法(counting argument)を用います.
- 定理(non-uniform hierarchy theorem): 関数 は かつ を満たすとすると, が成立する.
- 証明: であることは自明なので, であることを示す.そのためにまず以下の二つの補題を示す.
- 補題1: 十分大きな全ての に対して,サイズ 以下の入力論理回路で計算できない入力ブール関数が存在する.
- 証明: まず入力ブール関数の総数は通りの入力に対する出力値の取り方だけあるので個である.一方で個の素子のAND,OR,NOTへの割り当て方で通り,各素子における2つの入力の繋ぎ方が素子ごとに通りなので,サイズの論理回路の数はせいぜい通りである. とすると,十分大きな任意ので となるので,サイズの論理回路では計算できない入力ブール関数が存在する.■
- 補題2: 任意の に対して,任意の入力ブール関数はサイズ の入力論理回路で計算可能である.
- 証明: 与えられた任意の変数ブール関数に対して, が成立することはに値0と1を代入すればすぐに確認できる.よって,変数ブール関数を計算するのに十分な素子数をとすると,上の関係式より,変数ブール関数の計算には,2回の変数ブール関数の計算には個の素子,NOT素子1個,AND素子2個,OR素子1個で十分であることが分かる.したがってである.また明らかにである.この漸化式を解くと, が得られる.■
これらの補題を使って定理の証明を行う.まず補題1より,十分大きな全てのに対してサイズの回路で計算できない入力ブール関数が存在する.補題2より,この関数はサイズの回路で計算可能である.
とおき,変数ブール関数を最初のビット入力に対してを計算してその結果を出力とする(残りの入力に対しては何もしない)関数として定義する.このとき,[tex:f'\in\text{SIZE}*1]である.またであるが,であるため,である.したがってである. かつ なので が言える.■
*1:5/2)2^m)\subseteq \text{SIZE}(s'(n