ギャップ定理 (計算複雑性理論)

ギャップ定理（ギャップていり、英: Gap theorem）またはボロディン-トラクテンブロートのギャップ定理は計算可能関数の複雑性に関する重要な定理である。 これは本質的にはいくらでも大きな計算可能なギャップが複雑性クラスの階層に存在することを示している。計算資源の増加を表現する任意の計算可能関数 F {\displaystyle F} に対して、関数 t {\displaystyle t} を求めて、 t {\displaystyle t} -制限計算可能な関数の集合と F t {\displaystyle Ft} -制限計算可能関数の集合が一致するようにできる。 この定理はボリス・トラクテンブロート（英語版）とアラン・ボロディン（英語版）によって独立に示された。 この定理の一般的な形は次のようである： Φ {\displaystyle \Phi } を 抽象（ブラム）複雑性測度とする。任意の全域計算可能関数 g {\displaystyle g} で g ( x ) ≥ x {\displaystyle g(x)\geq x} なるものに対して、強単調な全域計算可能関数 t {\displaystyle t} が存在して、 t {\displaystyle t} と g ∘ t {\displaystyle g\circ t} を制限とする複雑性クラスが同値となる。 この定理は具体的な計算模型について言及することなくブラムの公理だけを用いて証明できる。したがって定理は時間、空間、または他の妥当なあらゆる複雑性の尺度に対して適用できる。 特別な場合として時間複雑性に適用すれば、これはもっと単純に次のように述べられる： 任意の全域計算可能関数 g : N → N {\displaystyle g:\mathbb {N} \to \mathbb {N} } で g ( x ) ≥ x {\displaystyle g(x)\geq x} なるものに対して、強単調な時間限定 T ( n ) {\displaystyle T(n)} が存在して D T I M E ( g ( T ( n ) ) ) = D T I M E ( T ( n ) ) {\displaystyle DTIME(g(T(n)))=DTIME(T(n))} が成り立つ。 限定関数 T ( n ) {\displaystyle T(n)} （そしてその計算量）は非常に大きい（さらには構成不可能（英語版）となりうる) から、ギャップ定理から P {\displaystyle {\mathcal {P}}} や N P {\displaystyle {\mathcal {NP}}} のような低い計算量クラスについて興味のある結果は得られない。またこの定理は時間階層定理（英語版）や空間階層定理（英語版）と矛盾しない。 本来のギャップ定理は上記のものよりも強い次の主張である： Φ {\displaystyle \Phi } を抽象複雑性測度とする。任意の全域計算可能関数 g {\displaystyle g} で g ( x ) ≥ x {\displaystyle g(x)\geq x} なるものに対して、強単調な全域計算可能関数 t {\displaystyle t} が存在して、 t {\displaystyle t} と g ∘ t {\displaystyle g\circ t} を制限とする指標の全体が一致する。 これによれば t {\displaystyle t} と g ∘ t {\displaystyle g\circ t} との間の複雑さを持つ指標はそもそも存在しないから、複雑さ g ∘ t {\displaystyle g\circ t} 程度で計算可能な関数で複雑さ t {\displaystyle t} 程度でも計算可能なものが存在する、というわけではない。したがってギャップ定理は加速定理ではない。 複雑性クラスは C ( t ) {\displaystyle \mathrm {C} (t)} と表されるが、名前 t {\displaystyle t} には複数の取り方がある。時間階層定理や空間階層定理は、構成可能性という良い性質を持つ関数で名付けられた複雑性クラスは、ある大きさを超えるギャップを持たないことを示している。抽象複雑性においても、正直さ（英: honestness）と呼ばれる良い性質を持つ関数で名付けられた複雑性クラスにはギャップ現象が生じないことが知られている。この名称は複雑性クラスの実際の計算量を「正直」に表していることによる。正直さは関数の計算複雑性が入力と出力に対して大きすぎないという性質である。McCraightとMeyerは計算可能関数で命名された複雑性クラスは必ず正直な計算可能関数に改名できることを証明した。これはギャップ定理が複雑性クラスの不適切な命名によって生じるものであることを示している。 P ( 1 ) {\displaystyle {\mathcal {P}}^{(1)}} を計算可能部分関数のクラスとする。写像 F : P ( 1 ) → P ( 1 ) {\displaystyle F:{\mathcal {P}}^{(1)}\to {\mathcal {P}}^{(1)}} が実効作用素とは、計算可能全域関数 S {\displaystyle S} が存在して F φ e = φ S ( e ) {\displaystyle F\varphi _{e}=\varphi _{S(e)}} が成り立つことをいう。ただし φ e {\displaystyle \varphi _{e}} は P ( 1 ) {\displaystyle {\mathcal {P}}^{(1)}} のゲーデル・ナンバリングである。とくに全域関数を全域関数に写す作用素は全域的であるという。ギャップ定理は全域性を保つ実効的作用素 G f = g ∘ f {\displaystyle Gf=g\circ f} に対して t {\displaystyle t} を求めて t {\displaystyle t} と G t {\displaystyle Gt} の間にギャップが存在するようにできるというものである。ロバート・リー・コンスタブル（英語版）はギャップ現象が任意の全域性を保つ実効的作用素に対して成り立つことを示した。 Φ {\displaystyle \Phi } を抽象複雑性測度とする。任意の全域性を保つ実効的作用素 F {\displaystyle F} で F f ≥ f {\displaystyle Ff\geq f} なるものに対して、強単調な全域計算可能関数 t が存在して、 t {\displaystyle t} と F t {\displaystyle Ft} を制限とする指標の全体が一致する。 ブラムの加速定理 ^ Fortnow, Lance; Homer, Steve (June 2003). “A Short History of Computational Complexity”. Bulletin of the European Association for Theoretical Computer Science (80): 95–133. http://theorie.informatik.uni-ulm.de/Personen/toran/beatcs/column80.pdf  ^ Trakhtenbrot, Boris A. (1967). The Complexity of Algorithms and Computations (Lecture Notes). Novosibirsk University  ^ Allan Borodin (1969). “Complexity Classes of Recursive Functions and the Existence of Complexity Gaps”. Proc. of the 1st Annual ACM Symposium on Theory of Computing: 67-78.  ^ Borodin, Allan (January 1972). “Computational complexity and the existence of complexity gaps”. Journal of the ACM 19 (1): 158–174. doi:10.1145/321679.321691.  ^ Borodin, Allan B. (1969). Computational Complexity and the Existence of Complexity Gaps. Cornell University  ^ R.Moll; A.R.Meyer (1974). “Honest Bounds for Complexity Classes of Recursive Functions”. Journal of Symbolic Logic 39 (1): 127-138.  ^ E. M. McCreight; A.R.Meyer (1969). “Classes of computable functions defined by bounds on computation: preliminary report”. Proceedings of the first annual ACM symposium on Theory of computing: 79-88.  ^ Robert L. Constable (1969). “The operator gap”. IEEE Conference Record of 10th Annual Symposium on Switching and Automata Theory: 20-26.