§E15.13計算量階層定理

最終更新

計算量階層定理は、十分に大きな差をもつ構成可能な資源上界の間には、実際に決定能力の差があることを示す。時間の場合には、本記事で構成する万能シミュレーションの二乗時間を吸収する差が必要である。空間の場合には、制限空間内の配置数を数えることで、停止しない模倣を有限空間のまま打ち切ることができる。本記事では続いて、非決定性計算の空間計算量クラスを定義し、Savitch の定理によって、非決定性の空間上界を二乗の決定性空間上界へ移すことができることを証明する。

1 資源上界と構成可能性

本記事が扱う機械は、§E15.10 定義 1.1が定める資源計算量の決定性 Turing 機械、すなわち読取り専用入力テープを一つと、有限本の読書き可能な作業テープをもつ機械である。以下ではこれを決定性多テープ TM とも呼ぶ。この機械MMが入力xxで停止するまでの遷移回数をtime⁡M(x)\operatorname{time}_M(x)とし、計算中に一度でも走査した作業テープのマスの総数をspace⁡M(x)\operatorname{space}_M(x)とする。これらは同定義のτM(x)\tau_M(x)とσM(x)\sigma_M(x)にほかならず、本記事では表示を変えているだけである。

計算量クラスDTIME(t)\mathsf{DTIME}(t)とDSPACE(s)\mathsf{DSPACE}(s)は§E15.10 定義 1.3 (決定性時間・空間クラス)で定義した。本記事は独自の定義を置かず、その定義をそのまま用いる。ただし対角化では、長さごとの最悪値に対する漸近的な上界ではなく、個々の入力に対する一様な上界を扱うほうが扱いやすい。次の補題は、資源上界がすべての入力長で11以上であるときに、二つの形が同じクラスを定めることを示す。

補題 1.1. すべてのnnについてt(n)≥1t(n)\ge 1を満たす関数t ⁣:N→Nt\colon\mathbb N\to\mathbb Nと、有限アルファベットΣ\Sigma上の言語LLについて、次の二条件は同値である。

  1. L∈DTIME(t)L\in\mathsf{DTIME}(t)。すなわち、TM(n)=O(t(n))T_M(n)=O(t(n))を満たすLLの決定器MMが存在する。
  2. LLの決定器M′M'と定数c>0c>0が存在して、すべてのx∈Σ∗x\in\Sigma^*についてtime⁡M′(x)≤c t(∣x∣)\operatorname{time}_{M'}(x)\le c\,t(|x|)である。

すべてのnnについてs(n)≥1s(n)\ge 1を満たす関数s ⁣:N→Ns\colon\mathbb N\to\mathbb Nについても、DSPACE(s)\mathsf{DSPACE}(s)とspace⁡M′(x)≤c s(∣x∣)\operatorname{space}_{M'}(x)\le c\,s(|x|)の間に同じ同値が成り立つ。

証明. 時間の場合を示す。(2)⇒\Rightarrow(1)は直ちに分かる。実際、TM′(n)=max⁡∣x∣=ntime⁡M′(x)≤c t(n)T_{M'}(n)=\max_{|x|=n}\operatorname{time}_{M'}(x)\le c\,t(n)がすべてのnnで成り立つので、TM′(n)=O(t(n))T_{M'}(n)=O(t(n))である。

(1)⇒\Rightarrow(2)を示す。(1)を仮定する。MMをLLの決定器とし、定数C>0C>0とn0∈Nn_0\in\mathbb NがTM(n)≤C t(n)T_M(n)\le C\,t(n)(n≥n0n\ge n_0)を満たすとする。n0=0n_0=0ならばM′=MM'=Mとc=Cc=Cをとればよいので、n0≥1n_0\ge 1とする。

Σ\Sigmaは有限であるから、長さがn0n_0未満の語の全体

F={x∈Σ∗:∣x∣<n0}F=\{x\in\Sigma^*:|x|<n_0\}

は有限集合であり、その要素数は∑j<n0∣Σ∣j\sum_{j<n_0}|\Sigma|^{j}である。したがってL∩FL\cap Fも有限集合であり、この集合そのものを機械の有限制御へ組み込むことができる。具体的には次のM′M'をとる。M′M'の状態集合は、MMの状態集合に、長さn0n_0未満の各語w∈Fw\in Fに対応する状態rwr_wと、n0n_0個の記号を読み終えたことを表す状態r∗r^{\ast}を加えたものである。M′M'は状態rεr_{\varepsilon}から始め、入力ヘッドを左端から右へ一マスずつ動かす。状態rwr_wで記号a∈Σa\in\Sigmaを読み、∣wa∣<n0|wa|<n_0ならば状態rwar_{wa}へ移る。∣wa∣=n0|wa|=n_0ならば状態r∗r^{\ast}へ移る。状態rwr_w(w∈Fw\in F)で入力の右端を検出したならば、その時点で入力はwwに等しい。そこで、w∈Lw\in Lならば受理状態へ、w∉Lw\notin Lならば拒否状態へ移って停止する。この分岐はL∩FL\cap Fという固定された有限集合に従って定めるものであり、有限個の状態の遷移先を固定することで実現することができる。状態r∗r^{\ast}に達した場合には、入力ヘッドを左端へ戻したうえでMMの初期状態へ移り、以後はMMと同じ計算を行う。M′M'は作業テープへ何も書かないままこの前処理を行う。

M′M'がLLを決定することを確かめる。∣x∣<n0|x|<n_0のときは、上の分岐によりx∈Lx\in LとM′M'がxxを受理することは同値である。∣x∣≥n0|x|\ge n_0のときは、M′M'は前処理の後にMMと同じ計算を行うので、MMの答えと一致する。MMはLLの決定器であるから、この場合も答えは正しい。いずれの場合もM′M'は停止するので、M′M'はLLの決定器である。

時間を評価する。∣x∣<n0|x|<n_0のときは、前処理で入力ヘッドを右端まで動かして停止するのでtime⁡M′(x)≤n0+1\operatorname{time}_{M'}(x)\le n_0+1である。t(∣x∣)≥1t(|x|)\ge 1であるからtime⁡M′(x)≤(n0+1) t(∣x∣)\operatorname{time}_{M'}(x)\le(n_0+1)\,t(|x|)である。∣x∣≥n0|x|\ge n_0のときは、前処理でn0n_0段の右移動と高々n0n_0段の左移動を行うので、

time⁡M′(x)≤2n0+1+time⁡M(x)≤2n0+1+TM(∣x∣)≤2n0+1+C t(∣x∣)\operatorname{time}_{M'}(x)\le 2n_0+1+\operatorname{time}_{M}(x) \le 2n_0+1+T_M(|x|) \le 2n_0+1+C\,t(|x|)

であり、再びt(∣x∣)≥1t(|x|)\ge 1からtime⁡M′(x)≤(2n0+1+C) t(∣x∣)\operatorname{time}_{M'}(x)\le(2n_0+1+C)\,t(|x|)である。したがってc=2n0+1+Cc=2n_0+1+Cと置けば、すべてのxxでtime⁡M′(x)≤c t(∣x∣)\operatorname{time}_{M'}(x)\le c\,t(|x|)が成り立つ。

空間の場合も同じM′M'をとる。前処理は作業テープのヘッドを動かさないので、M′M'が訪れる作業マスは、∣x∣<n0|x|<n_0のときは各作業テープの初期位置だけであり、その総数は作業テープの本数kkに等しい。s(∣x∣)≥1s(|x|)\ge 1からspace⁡M′(x)≤k s(∣x∣)\operatorname{space}_{M'}(x)\le k\,s(|x|)である。∣x∣≥n0|x|\ge n_0のときはspace⁡M′(x)=space⁡M(x)≤SM(∣x∣)≤C s(∣x∣)\operatorname{space}_{M'}(x)=\operatorname{space}_{M}(x)\le S_M(|x|)\le C\,s(|x|)である。したがってc=max⁡{k,C}c=\max\{k,C\}と置けばよい。▨

この構成では、有限集合L∩FL\cap Fの要素を機械の遷移先として固定した。補題が主張するのは決定器M′M'の存在だけであり、MMからM′M'を求める手続きは要求していない。以下では、対角化の仮定LD∈DTIME(r)L_D\in\mathsf{DTIME}(r)から一様な上界をもつ決定器を取り出すためにこの補題を用いる。

§E15.10 定義 2.1に従い、時間構成可能性はt(n)t(n)の二進表記をO(t(n))O(t(n))時間で出力すること、空間構成可能性はちょうどs(n)s(n)個の作業マスを訪れることによって定義する。階層定理では、二進表記を一段ごとの時計へ変換し、訪問マス数を連続領域へ変換する必要がある。

補題 1.2. 次の二条件が成り立つ。

  1. t(n)≥nt(n)\ge nであり、ttが§E15.10 定義 2.1の意味で時間構成可能ならば、入力1n1^nから別のテープへちょうど1t(n)1^{t(n)}を書き、O(t(n))O(t(n))時間で停止する決定性多テープ TM が存在する。
  2. ssが同定義の意味で空間構成可能ならば、入力1n1^nから別のテープの位置0,…,s(n)−10,\ldots,s(n)-1を連続して印付け、全体でO(s(n))O(s(n))個の作業マスだけを使用する決定性多テープ TM が存在する。

証明.(1)を示す。時間構成機械を実行してt(n)t(n)の二進表記を得て、最下位ビット側にヘッドを置く。別の出力テープのヘッドは、まだ何も書いていない位置00に置く。二進カウンタが正である間、出力テープへ11を一つ書いて右へ進み、二進カウンタから11を減らす。減算では、最下位側から連続する00を11に変え、最初の11を00に変えた後、最下位位置へ戻る。

t(n)t(n)回の減算において、最下位ビットは高々t(n)t(n)回、その一つ上のビットは高々⌈t(n)/2⌉\lceil t(n)/2\rceil回、一般に第jjビットは高々⌈t(n)/2j⌉\lceil t(n)/2^j\rceil回反転する。使用するビット数はO(log⁡(t(n)+1))O(\log(t(n)+1))なので、全反転回数と最下位位置へ戻る移動回数の和は

O(∑j≥0t(n)2j+log⁡(t(n)+1))=O(t(n))O\left(\sum_{j\ge0}\frac{t(n)}{2^j}+\log(t(n)+1)\right)=O(t(n))

である。出力も一記号につき定数時間であり、もとの二進表記の生成時間もO(t(n))O(t(n))なので、全体はO(t(n))O(t(n))時間で停止する。

(2)を示す。空間構成機械を万能模倣し、各作業テープの各マスへ初めて入ったときだけ印を付け、二進カウンタを一つ増やす。もとの機械が停止した時点でカウンタはs(n)s(n)の二進表記を保持する。模倣領域はちょうどs(n)s(n)個のマスと固定個数の区切りを使用し、カウンタはO(log⁡(s(n)+1))=O(s(n))O(\log(s(n)+1))=O(s(n))マスを使用する。次に、(1)と同じ二進減算を用い、カウンタが正である間、境界テープ上で現在位置を印付けて右へ一マス進む。時間には制限を課さないが、境界テープで訪れる位置はちょうどs(n)s(n)個である。模倣領域、カウンタ、および境界領域を合わせた使用空間はO(s(n))O(s(n))である。▨

この補題の機械は入力1n1^nを受け取る。ところが階層定理の対角機械や以下の空間模倣は、任意の語xxを入力として受け取り、その長さn=∣x∣n=|x|から時計や境界を作る必要がある。作業テープへ1n1^nを書き写すとnnマスを消費するため、空間上界がnnより小さい場合にはこの方法を用いることができない。次の補題は、入力テープを書き換えずにこの変換を行うことができることを示す。

補題 1.3. 決定性多テープ TMMMと有限アルファベットΣ\Sigmaが与えられたとする。このとき、決定性多テープ TMM′M'が存在して、任意のx∈Σ∗x\in\Sigma^*について、M′M'のxx上の計算とMMの1∣x∣1^{|x|}上の計算は、状態の列、入力ヘッド位置の列、および各作業テープの内容とヘッド位置の列のすべてにおいて一致する。とくにtime⁡M′(x)=time⁡M(1∣x∣)\operatorname{time}_{M'}(x)=\operatorname{time}_{M}(1^{|x|})かつspace⁡M′(x)=space⁡M(1∣x∣)\operatorname{space}_{M'}(x)=\operatorname{space}_{M}(1^{|x|})である。

証明.M′M'の状態集合、作業テープの本数、作業テープアルファベット、初期状態、および停止状態をMMと同一にする。遷移関数を次のように定める。状態qq、入力記号a∈Σa\in\Sigma、および作業テープの走査記号の組b⃗\vec bに対するM′M'の遷移を、MMの状態qq、入力記号11、作業テープの走査記号b⃗\vec bに対する遷移と等しく定める。入力テープで空白(すなわち入力の右端の外側)を読んだ場合の遷移は、MMの同じ状況における遷移と等しく定める。作業テープ側の書込みとヘッド移動、および入力ヘッドの移動は、いずれもMMのものをそのまま用いる。

入力x∈Σ∗x\in\Sigma^*と1∣x∣1^{|x|}は同じ長さであるから、各時刻で入力ヘッドが同じ位置にある限り、M′M'がxx上で読む記号がΣ\Sigmaの記号であることと、MMが1∣x∣1^{|x|}上で読む記号が11であることは同値であり、M′M'が空白を読むこととMMが空白を読むことも同値である。したがって遷移の段数に関する帰納法により、両者の状態、入力ヘッド位置、作業テープの内容、および作業ヘッド位置は各時刻で一致する。基底は初期配置の一致であり、帰納段階は上で定めた遷移の一致による。時間と空間の等式はこの一致から従う。▨

時計列は、対角機械が模倣段階で行う各遷移と同期して読み進める。被模倣機械の一段ごとに時計記号を一つ消費する方式では、万能模倣の二乗時間増加によって対角機械がO(T(n)2)O(T(n)^2)時間を使いうる。境界列の両端へ印を置けば、模倣計算が使用する連続領域を制限することができる。例えば、正の整数kkに対するmax⁡{1,nk}\max\{1,n^k\}は§E15.10 命題 2.2により時間構成可能かつ空間構成可能であり、上の補題によって時計と境界の双方へ変換することができる。

2 万能シミュレーションの時間

時間階層定理では、対角機械が入力中に記述された別の機械を模倣する。ここでは、物理テープ上の移動距離を全て数えることのできる単純な全走査方式を用いる。この方式の時間増加は二乗である。

補題 2.1. 全ての決定性多テープ TM に有効な有限符号を与える。ある固定された決定性多テープ TMUUが存在し、各 TMMMに対して定数cM>0c_M>0が存在して、次を満たす。r≥∣x∣r\ge |x|かつr≥1r\ge1のとき、M(x)M(x)の最初のrr段をU(⟨M⟩,x)U(\langle M\rangle,x)が模倣するために必要な時間は

cM(r+1)2c_M(r+1)^2

以下である。MMがrr段以内に受理または拒否した場合、UUは同じ結論を検出する。

証明.UUは第1テープへ機械符号⟨M⟩\langle M\rangle、第2テープへ入力xxを保存し、第3テープへ模倣配置を置く。第3テープでは、MMの各作業テープの有限な使用部分を

#u1#u2#⋯#uk#\#u_1\#u_2\#\cdots\#u_k\#

と連結し、各uiu_iの走査位置に印を付ける。読取り専用入力テープをもつモデルでは、入力ヘッド位置を二進表記で同じ配置に加える。MMのテープ本数kk、状態集合、およびテープアルファベットは⟨M⟩\langle M\rangleから有限時間で読み取る。

一つの模倣段では、最初に配置テープを左から右へ走査し、現在状態、入力ヘッド位置、および各作業テープの印付き記号を作業領域へ複写する。次に⟨M⟩\langle M\rangleの遷移表を先頭から走査し、左辺が現在状態と走査記号列に一致する規則を探す。正しい決定性機械符号では規則がちょうど一つ存在する。最後に配置テープを再び走査し、書込み記号、ヘッドの印、および現在状態を更新する。ヘッドがuiu_iの右端から右へ進む場合には、区切り以後の有限文字列を一マスずつ右へ移して空白記号を挿入する。

jj段の模倣後、各仮想ヘッドは初期位置から高々jjマスしか移動していない。したがって、配置符号の長さは

∣x∣+∣⟨M⟩∣+dM(j+1)|x|+|\langle M\rangle|+d_M(j+1)

以下であるような、MMだけに依存する定数dMd_Mが存在する。遷移表の走査時間はO(∣⟨M⟩∣)O(|\langle M\rangle|)であり、配置の二回の走査と、必要な場合の一回の挿入はO(∣x∣+∣⟨M⟩∣+j+1)O(|x|+|\langle M\rangle|+j+1)時間で終わる。よって、jj段目の模倣時間は

eM(∣x∣+j+1)e_M(|x|+j+1)

以下であるような定数eMe_Mが存在する。

r≥∣x∣r\ge |x|を用いてj=0,…,r−1j=0,\ldots,r-1の時間を足すと、

∑j=0r−1eM(∣x∣+j+1)≤eM∑j=0r−1(r+j+1)≤2eM(r+1)2\sum_{j=0}^{r-1}e_M(|x|+j+1) \le e_M\sum_{j=0}^{r-1}(r+j+1) \le 2e_M(r+1)^2

を得る。機械符号と初期配置の構文解析および複写に要するO(∣⟨M⟩∣+∣x∣)O(|\langle M\rangle|+|x|)時間を定数へ吸収すれば、表示された上界になる。

模倣段数に関する帰納法により、第3テープを復号した配置はM(x)M(x)の同じ段数後の配置に等しい。基底は初期化から従い、帰納段階は遷移表から選んだ唯一の規則による更新から従う。したがって、MMが受理または拒否へ到達した場合には、UUは同じ模倣段でMMの受理または拒否を検出する。▨

時計は、被模倣機械MMの遷移数ではなく、万能模倣を実行する機械自身の遷移数を制限する必要がある。次の補題は、万能機械の制御と時計の制御を直積にすることで、この制限を実現する。

補題 2.2.補題 2.1の万能機械UUに対し、固定された決定性多テープ TMVVが存在して、次を満たす。VVは入力(⟨M⟩,x)(\langle M\rangle,x)と、先頭にヘッドを置いた時計列1B1^Bを受け取る。VVは万能模倣を行う自分自身の各遷移で時計ヘッドを一マス右へ動かし、BB遷移を実行した後は模倣を打ち切る。

各 TMMMに対して定数c^M>0\widehat c_M>0が存在する。r≥∣x∣r\ge |x|かつr≥1r\ge1であり、M(x)M(x)がrr段以内に停止するとき、

c^M(r+1)2<B\widehat c_M(r+1)^2<B

ならば、VVは時計が尽きる前にM(x)M(x)の結論を検出する。この検出までにVV自身が行う遷移数はc^M(r+1)2\widehat c_M(r+1)^2以下である。

証明.VVの有限制御を、UUの有限制御と「時計内」または「時計切れ」という状態の直積にする。時計内の状態では、VVの一遷移はUUと同じ書込みおよびヘッド移動を模倣用テープ上で行うと同時に、専用の時計テープのヘッドを一マス右へ動かす。多テープ TM の一遷移は各テープのヘッドを同時に動かすので、時計を進めるための追加の遷移は必要ない。時計ヘッドが最初の空白へ到達した場合には、VVは次の模倣遷移を行わずに時計切れとして停止する。UUが受理状態または拒否状態へ移る遷移では、VVも同じ遷移で対応する停止状態へ移る。

したがって、VVが時計内で行う遷移とUUの遷移は一対一に対応する。補題 2.1の定数を必要なら大きく取り直すと、UUの初期化、機械符号の構文解析、配置の更新、および停止状態の検出を含む遷移数はc^M(r+1)2\widehat c_M(r+1)^2以下である。表示された不等式の下では、この遷移数は時計長BBより小さい。よって、VVは時計切れより先にM(x)M(x)の結論を検出する。▨

3 決定性時間階層定理

対角機械は、入力が⟨M⟩#1k\langle M\rangle\#1^kという形なら、入力全体をMM自身へ与えて万能模倣し、上限時間内にMMが停止した場合だけ答えを反転する。1k1^kは、固定したMMに対して任意に長い自己入力を作り、万能模倣の機械依存定数を漸近的な差に吸収する役割をもつ。

定理 3.1 (決定性時間階層定理).r,T ⁣:N→Nr,T\colon\mathbb N\to\mathbb Nを時間構成可能な非減少関数とし、r(n)≥nr(n)\ge n、T(n)≥nT(n)\ge n、および

r(n)2=o(T(n))r(n)^2=o(T(n))

と仮定する。このとき

DTIME(r)⊊DTIME(T)\mathsf{DTIME}(r)\subsetneq\mathsf{DTIME}(T)

である。

証明. 仮定からr(n)=O(T(n))r(n)=O(T(n))なので、rr時間の決定器は同じ機械のままO(T(n))O(T(n))時間の決定器でもある。したがってDTIME(r)⊆DTIME(T)\mathsf{DTIME}(r)\subseteq\mathsf{DTIME}(T)である。

真の包含を示すため、言語LDL_Dの決定器DDを構成する。入力xxの長さをnnとする。DDは最初にxxが⟨M⟩#1k\langle M\rangle\#1^kという正しい形かを検査し、正しくなければ拒否する。正しい場合には、長さnnの一進列を作り、補題 1.2により時計テープへ1T(n)1^{T(n)}を作る。DDは時計ヘッドを列の先頭へ戻した後、補題 2.2のV(⟨M⟩,x)V(\langle M\rangle,x)を時計長B=T(n)B=T(n)で実行する。VVが受理を報告したらDDは拒否し、VVが拒否を報告したらDDは受理する。VVが時計切れを報告した場合には、DDは拒否する。したがって、時計の一記号が表すのはMMの一段ではなく、万能模倣の初期化と配置更新を含むVV自身の一遷移である。

ここで、DDの時間を全段階について評価する。構文検査と長さnnの一進列の作成はO(n)O(n)時間である。時間構成機械の実行と1T(n)1^{T(n)}の出力にはO(T(n))O(T(n))時間がかかり、時計ヘッドを先頭へ戻す操作には高々T(n)+O(1)T(n)+O(1)遷移が必要である。時計付き万能模倣は、時計切れまでに高々T(n)+O(1)T(n)+O(1)遷移を実行する。停止結果の反転には定数時間しかかからない。T(n)≥nT(n)\ge nなので、各段階の時間の和は

O(n)+O(T(n))+O(T(n))+O(T(n))+O(1)=O(T(n))O(n)+O(T(n))+O(T(n))+O(T(n))+O(1)=O(T(n))

である。また、構文拒否、VVの停止、または時計切れのいずれかが必ず起こるのでDDは決定器である。ゆえにLD∈DTIME(T)L_D\in\mathsf{DTIME}(T)である。

LD∈DTIME(r)L_D\in\mathsf{DTIME}(r)と仮定する。rrは時間構成可能であるから§E15.10 定義 2.1により全てのnnでr(n)≥1r(n)\ge1であり、補題 1.1を適用することができる。したがって、ある決定器MiM_iと正の整数定数aia_iが存在し、全ての入力yyで

time⁡Mi(y)≤air(∣y∣)\operatorname{time}_{M_i}(y)\le a_i r(|y|)

となる。xk=⟨Mi⟩#1kx_k=\langle M_i\rangle\#1^kと置く。kkを増やすとnk=∣xk∣n_k=|x_k|は無限に増加する。時計付き万能模倣の補題でMiM_iに対応する定数をci=c^Mic_i=\widehat c_{M_i}とする。r(nk)≥nkr(n_k)\ge n_kおよびai≥1a_i\ge1なので、同補題を被模倣段数air(nk)a_i r(n_k)に適用することができる。little-o の仮定により、十分大きいkkで

ci(air(nk)+1)2=Oi(r(nk)2)<T(nk)\begin{aligned} c_i(a_i r(n_k)+1)^2 &=O_i(r(n_k)^2)\\ &<T(n_k) \end{aligned}

となる。最後の不等式では、固定された機械MiM_iに依存する定数aia_iとcic_iをr(n)2=o(T(n))r(n)^2=o(T(n))が吸収する。

unary padding1k1^kは、機械符号⟨Mi⟩\langle M_i\rangleを変えずに入力長nkn_kを無限に増加させる。したがって、十分大きいkkでは、時計付き万能模倣はT(nk)T(n_k)回の自分自身の遷移を使い切る前にMi(xk)M_i(x_k)の停止を検出し、D(xk)D(x_k)はMi(xk)M_i(x_k)の答えを反転する。Mi(xk)M_i(x_k)が受理すればxk∉LDx_k\notin L_Dであり、Mi(xk)M_i(x_k)が拒否すればxk∈LDx_k\in L_Dである。D(xk)D(x_k)とMi(xk)M_i(x_k)の答えが反対になることは、MiM_iがLDL_Dを決定するという仮定に反する。ゆえにLD∉DTIME(r)L_D\notin\mathsf{DTIME}(r)であり、包含は真である。▨

例 3.2 (多項式時間の階層). 正の整数kkに対してr(n)=max⁡{1,nk}r(n)=\max\{1,n^k\}、T(n)=max⁡{1,n2k+1}T(n)=\max\{1,n^{2k+1}\}と置く。両関数は時間構成可能であり、n≥1n\ge1では

r(n)2T(n)=1n⟶0\frac{r(n)^2}{T(n)} =\frac1n\longrightarrow0

なので

DTIME(max⁡{1,nk})⊊DTIME(max⁡{1,n2k+1})\mathsf{DTIME}(\max\{1,n^k\}) \subsetneq \mathsf{DTIME}(\max\{1,n^{2k+1}\})

を得る。一方、T(n)=2r(n)T(n)=2r(n)では定理の little-o 条件が成り立たない。定数倍だけの増加から真の包含を結論することはできない。

4 決定性空間階層定理

空間をbbマスに制限した決定性機械には有限個の配置しかない。停止せずに配置数より多くの段を実行すれば同じ配置を二度通り、その後も同じ計算を繰り返す。配置の反復を用いることにより、時間を制限しない空間計算も有限長で打ち切ることができる。

補題 4.1. 固定有限アルファベットをもつ一作業テープ決定性 TMMMと長さnnの読取り専用入力をとり、b≥⌈log⁡2(n+1)⌉b\ge\lceil\log_2(n+1)\rceilを満たす非負整数bbに対して、MMの作業空間をbbマス以内に制限する。この制限内の配置数が2cM(b+1)2^{c_M(b+1)}以下であるような正の整数cMc_Mが存在する。MMがこの個数より多く遷移しても停止しなければ、MMは停止しない。

証明.§E15.10 補題 3.2を、作業テープの本数k=1k=1、状態集合をMMの状態集合、作業テープアルファベットをMMの作業テープアルファベットとして適用する。§E15.10 補題 3.2 (1)が配置数の上界を与え、§E15.10 補題 3.2 (2)が停止しないことの結論を与える。同補題の定数をcMc_Mとすればよい。同補題はこの定数を正の整数として与えるので、bbが非負整数であることとあわせて、cM(b+1)c_M(b+1)は正の整数である。▨

§E15.10 補題 3.2 (1)は配置の個数を数えるだけであり、遷移関数が決定性であることを用いない。したがって、後述の非決定性機械の配置にも同じ上界を適用することができる。

空間側の対角機械は入力中の機械記述も変化させるため、機械記述の長さを許容空間以下に制限する。固定した機械の記述は unary padding を増やせば必ずこの制限を満たす。加えて、対角機械が模倣する機械のアルファベットを固定するため、次の符号化を用いる。

補題 4.2. 固定したk≥1k\ge1本の作業テープをもつ決定性 Turing 機械MMに対し、一本の作業テープをもち、その作業テープアルファベットが三文字の固定集合{0,1,□}\{0,1,\square\}(□\squareは空白記号)である決定性 Turing 機械M′M'と、MMだけに依存する定数γM>0\gamma_M>0が存在して、次が成り立つ。入力xx上でMMが作業空間σ\sigmaで停止するならば、M′M'もxx上で停止してMMと同じ受理または拒否を返し、M′M'の作業空間はγM(σ+1)\gamma_M(\sigma+1)以下である。

証明. 二段階で構成する。第一段階では§E15.10 定理 4.1を適用し、MMがxx上で停止するときに同じ受理または拒否を返し、一本の作業テープを用い、作業空間がO(σ+1)O(\sigma+1)である決定性 Turing 機械M1M_1を得る。M1M_1の作業テープアルファベットをΓ1\Gamma_1、その大きさをggとする。

第二段階でアルファベットを三文字へ落とす。ℓ=⌈log⁡2max⁡{2,g}⌉\ell=\lceil\log_2\max\{2,g\}\rceilと置き、Γ1\Gamma_1の各記号へ長さℓ\ellの相異なるビット列を割り当てる単射code⁡ ⁣:Γ1→{0,1}ℓ\operatorname{code}\colon\Gamma_1\to\{0,1\}^{\ell}を固定する。M′M'の作業テープを位置00からℓ\ellマスずつの区画に分け、第jj区画を位置jℓ,…,jℓ+ℓ−1j\ell,\ldots,j\ell+\ell-1とする。M1M_1の作業テープの位置jjの記号がaaであることを、M′M'の第jj区画の内容がcode⁡(a)\operatorname{code}(a)であることによって表す。M′M'は各模倣段の開始時に、M1M_1の状態を自分の状態の一部として保持し、M1M_1の作業ヘッドがある区画の左端に自分の作業ヘッドを置く。

M1M_1の一段を次のように模倣する。M′M'は現在の区画を左から右へℓ\ellマス読む。最初のマスが空白記号□\squareであるならば、その区画はまだ一度も書かれていないので、M1M_1の空白記号の符号をℓ\ellマスへ書き込み、区画の左端へ戻ってから読み直す。ℓ\ellは固定した定数であるから、読み取ったℓ\ellビットを有限制御に保持し、code⁡\operatorname{code}の逆によって記号aaを復元することができる。次に、M1M_1の遷移関数が状態とaaと入力記号に対して定める書込み記号の符号を、同じ区画へ左から書き込む。入力ヘッドの移動はM1M_1と同一にする。M1M_1の作業ヘッドが右へ動くならばM′M'の作業ヘッドをℓ\ellマス右へ、左へ動くならばℓ\ellマス左へ動かし、次の区画の左端に置く。M1M_1の作業ヘッドが位置00で左移動を命じられた場合には、M1M_1の規約に従って同じ位置にとどまる。M1M_1が停止状態へ移る段では、M′M'も対応する受理状態または拒否状態へ移る。

模倣段数に関する帰納法により、各模倣段の開始時点で、M′M'の区画の内容はM1M_1の作業テープの内容の符号であり、保持している状態と入力ヘッド位置はM1M_1のものに等しい。基底は初期配置であり、帰納段階は上の手順による。したがってM′M'はM1M_1と同じ受理または拒否を返し、MMがxx上で停止する場合にはM′M'も停止する。

空間を評価する。M1M_1が訪れる作業マスがσ1\sigma_1個であるとき、M′M'が訪れる作業マスはℓσ1\ell\sigma_1個である。σ1=O(σ+1)\sigma_1=O(\sigma+1)であり、ℓ\ellはMMだけから定まる定数であるから、M′M'の作業空間をγM(σ+1)\gamma_M(\sigma+1)以下にする定数γM\gamma_Mが存在する。▨

定理 4.3 (決定性空間階層定理).s,S ⁣:N→Ns,S\colon\mathbb N\to\mathbb Nを空間構成可能な非減少関数とし、s(n),S(n)≥max⁡{1,⌈log⁡2(n+1)⌉}s(n),S(n)\ge\max\{1,\lceil\log_2(n+1)\rceil\}および

s(n)=o(S(n))s(n)=o(S(n))

と仮定する。このとき

DSPACE(s)⊊DSPACE(S)\mathsf{DSPACE}(s)\subsetneq\mathsf{DSPACE}(S)

である。

証明.s(n)=O(S(n))s(n)=O(S(n))なので、ss空間の決定器はO(S(n))O(S(n))空間の決定器でもある。したがってDSPACE(s)⊆DSPACE(S)\mathsf{DSPACE}(s)\subseteq\mathsf{DSPACE}(S)である。

三文字の作業アルファベットをもつ一作業テープ決定性 TM を、その有限な記述の符号によって列挙する。補題 4.2により、有限本の作業テープと任意の有限作業アルファベットをもつ決定器は、同じ言語を決定する三文字一作業テープ決定器へ、作業空間を定数倍しか増やさずに変換することができる。したがって、この列挙は空間計算量クラスの全ての決定器を定数倍の差まで含む。

言語LEL_Eの決定器EEを構成する。入力xxの長さをnnとする。EEは補題 1.2と補題 1.3によりS(n)S(n)マスの連続した境界を作る。後者により、入力xxをそのまま読取り専用入力テープに置いたまま境界を作ることができ、1n1^nを作業テープへ書き写す必要はない。xxが⟨M⟩#1k\langle M\rangle\#1^kという正しい形でない場合、または∣⟨M⟩∣>S(n)|\langle M\rangle|>S(n)の場合には拒否する。残りの場合には、M(x)M(x)を万能模倣し、模倣されたMMがS(n)S(n)個を超える作業マスを走査しようとしたら拒否する。

機械記述長と模倣空間がともにS(n)S(n)以下であり、S(n)≥log⁡2(n+1)S(n)\ge\log_2(n+1)である。したがって、状態番号、二つのヘッド位置、および三文字の作業テープを含む模倣配置はO(S(n))O(S(n))ビットで保存することができる。さらに補題 4.1の計数と同じ評価によって、可能な模倣配置数を数える。符号⟨M⟩\langle M\rangleはMMの遷移表を明示的に列挙する形で与えるので、MMの状態集合QMQ_Mについてlog⁡2∣QM∣≤∣QM∣≤∣⟨M⟩∣≤S(n)\log_2|Q_M|\le|Q_M|\le|\langle M\rangle|\le S(n)であり、作業アルファベットは三文字に固定されている。したがって、計数における状態数と作業アルファベットの寄与はいずれもS(n)S(n)の定数倍へ収まり、可能な模倣配置数が2c(S(n)+1)2^{c(S(n)+1)}以下であるような、模倣器だけに依存する正の整数ccをとることができる。S(n)S(n)は非負整数であるからc(S(n)+1)c(S(n)+1)は正の整数であり、EEはc(S(n)+1)c(S(n)+1)ビットの二進カウンタを用い、最大2c(S(n)+1)2^{c(S(n)+1)}段を模倣する。MMがカウンタの終了前に受理すればEEは拒否し、拒否すればEEは受理する。カウンタが一周するまで停止しなければ、配置が反復しているのでEEは拒否する。

空間構成機械、万能模倣の記録、およびカウンタは、それぞれO(S(n))O(S(n))マスを使用する。有限個の作業領域を一つのテープの別区間または定数個のトラックへ配置しても総空間はO(S(n))O(S(n))である。全ての分岐は有限時間で構文拒否、空間超過、模倣機械の停止、またはカウンタ終了へ到達するので、EEは決定器である。ゆえにLE∈DSPACE(S)L_E\in\mathsf{DSPACE}(S)である。

LE∈DSPACE(s)L_E\in\mathsf{DSPACE}(s)と仮定する。s(n)≥1s(n)\ge1であるから補題 1.1を適用することができ、さらに補題 4.2によって三文字一作業テープの形へ移すことができる。したがって、列挙中の一作業テープ決定器MiM_iと定数ai>0a_i>0を、MiM_iがLEL_Eを決定し、全入力yyで高々ais(∣y∣)a_i s(|y|)マスを使うように選ぶことができる。xk=⟨Mi⟩#1kx_k=\langle M_i\rangle\#1^k、nk=∣xk∣n_k=|x_k|と置く。s(n)=o(S(n))s(n)=o(S(n))であり∣⟨Mi⟩∣|\langle M_i\rangle|は定数なので、十分大きいkkについて

∣⟨Mi⟩∣≤S(nk),ais(nk)<S(nk)|\langle M_i\rangle|\le S(n_k), \qquad a_i s(n_k)<S(n_k)

が成り立つ。したがって、E(xk)E(x_k)の万能模倣は空間超過で打ち切られない。

MiM_iは決定器なのでMi(xk)M_i(x_k)は停止する。停止前に同じ配置を二度通れば決定性により停止しなくなるため、停止までの段数は許容空間内の配置数以下である。したがって、EEはカウンタ終了前にMi(xk)M_i(x_k)の停止結果を得て、受理と拒否を反転する。Mi(xk)M_i(x_k)が受理すればxk∉LEx_k\notin L_Eであり、Mi(xk)M_i(x_k)が拒否すればxk∈LEx_k\in L_Eである。E(xk)E(x_k)とMi(xk)M_i(x_k)の答えが反対になることは、MiM_iがLEL_Eを決定するという仮定に反する。ゆえにLE∉DSPACE(s)L_E\notin\mathsf{DSPACE}(s)であり、包含は真である。▨

例 4.4 (多項式空間の階層). 正の整数kkに対してs(n)=max⁡{1,nk}s(n)=\max\{1,n^k\}、S(n)=max⁡{1,nk+1}S(n)=\max\{1,n^{k+1}\}と置く。両関数は空間構成可能であり、n≥1n\ge1ではs(n)/S(n)=1/n→0s(n)/S(n)=1/n\to0なので

DSPACE(max⁡{1,nk})⊊DSPACE(max⁡{1,nk+1})\mathsf{DSPACE}(\max\{1,n^k\}) \subsetneq \mathsf{DSPACE}(\max\{1,n^{k+1}\})

である。空間側でもS(n)=2s(n)S(n)=2s(n)は little-o 条件を満たさず、定理から真の包含を得ることはできない。

5 非決定性空間と Savitch の定理

空間は非決定性機械についても測ることができる。時間の場合、非決定性計算を決定性計算で模倣する§E15.4 定理 3.2の幅優先探索は指数の時間増加を伴う。空間の場合には、計算を二分して中間配置を全探索する方法により、増加を二乗にとどめることができる。これが Savitch の定理である。

定義 5.1.§E15.11 定義 1.1の非決定性 Turing 機械NNをとる。入力xx上のNNの空間計算量 (nondeterministic space complexity)space⁡N(x)\operatorname{space}_N(x)を、N(x)N(x)の計算木に現れるすべての配置にわたる、訪問済みの作業テープマスの総数の上限とする。この上限が有限でない場合にはspace⁡N(x)=∞\operatorname{space}_N(x)=\inftyと定め、いかなる有限の上界も満たさないものとする。

関数s ⁣:N→Ns\colon\mathbb N\to\mathbb Nに対し、言語LLがNSPACE(s)\mathsf{NSPACE}(s)に属するとは、LLを受理する非決定性 Turing 機械NNと定数c>0c>0が存在して、すべてのxxについて

space⁡N(x)≤c s(∣x∣)\operatorname{space}_N(x)\le c\,s(|x|)

が成り立つことをいう。さらに

NL=NSPACE(⌈log⁡2(n+2)⌉),NPSPACE=⋃k≥1NSPACE(max⁡{1,nk})\mathsf{NL}=\mathsf{NSPACE}\bigl(\lceil\log_2(n+2)\rceil\bigr), \qquad \mathsf{NPSPACE}=\bigcup_{k\ge 1}\mathsf{NSPACE}\bigl(\max\{1,n^k\}\bigr)

をそれぞれ非決定性対数空間 (nondeterministic logarithmic space)、非決定性多項式空間 (nondeterministic polynomial space) という。

決定性機械は、各配置からの次配置が一つである非決定性機械とみなすことができる。したがって、すべてのnnでs(n)≥1s(n)\ge 1を満たすssについては、補題 1.1によりDSPACE(s)⊆NSPACE(s)\mathsf{DSPACE}(s)\subseteq\mathsf{NSPACE}(s)である。とくにL⊆NL\mathsf L\subseteq\mathsf{NL}である。

定理 5.2 (Savitch の定理). 関数s ⁣:N→Ns\colon\mathbb N\to\mathbb Nが空間構成可能であり、すべてのnnについて

s(n)≥max⁡{1,⌈log⁡2(n+1)⌉}s(n)\ge\max\bigl\{1,\lceil\log_2(n+1)\rceil\bigr\}

を満たすとする。このとき

NSPACE(s)⊆DSPACE(s2)\mathsf{NSPACE}(s)\subseteq\mathsf{DSPACE}(s^2)

である。ここでs2s^2はn↦s(n)2n\mapsto s(n)^2を表す。

証明.L∈NSPACE(s)L\in\mathsf{NSPACE}(s)とし、LLを受理する非決定性 Turing 機械NNと、すべてのxxについてspace⁡N(x)≤c0 s(∣x∣)\operatorname{space}_N(x)\le c_0\,s(|x|)を満たす定数c0>0c_0>0をとる。定数を大きくしてもこの条件は保たれるので、c0c_0以上の正の整数をaaとすれば、すべてのxxについてspace⁡N(x)≤a s(∣x∣)\operatorname{space}_N(x)\le a\,s(|x|)である。以下、入力xxを固定し、n=∣x∣n=|x|、b=a s(n)b=a\,s(n)と置く。NNの状態集合をQQ、作業テープの本数をkk、作業テープアルファベットをΓ\Gammaとする。

配置の集合と符号。N(x)N(x)の計算木に現れる配置では、各作業テープの訪問済み領域がbbマス以下である。そこで、入力テープにxxが置かれ、かつ各作業テープの訪問済み領域がbbマス以下であるような配置の全体をC\mathcal Cとする。aaとs(n)s(n)はともに正の整数であるからbbは正の整数であり、a≥1a\ge 1からb≥s(n)≥⌈log⁡2(n+1)⌉b\ge s(n)\ge\lceil\log_2(n+1)\rceilである。よって§E15.10 補題 3.2 (1)を適用することができ、NNだけに依存する正の整数ccによって∣C∣≤2c(b+1)|\mathcal C|\le 2^{c(b+1)}である。この主張は配置の個数だけを数えており、遷移関数が決定性であることを用いていない。各配置を、状態番号、入力ヘッド位置の二進表記、各作業テープの位置00からb−1b-1までの内容、および各作業ヘッド位置の二進表記の組として符号化する。入力ヘッド位置は⌈log⁡2(n+1)⌉≤b\lceil\log_2(n+1)\rceil\le bビット、各作業ヘッド位置は⌈log⁡2(b+1)⌉≤b+1\lceil\log_2(b+1)\rceil\le b+1ビットで表すことができるので、符号長はNNだけに依存する正の整数λ\lambdaによってλ(b+1)\lambda(b+1)以下である。逆に、長さλ(b+1)\lambda(b+1)以下の語がこの形の正しい符号であるかどうかは、bbマスの境界領域と有限制御によって判定することができる。したがってC\mathcal Cの元は、符号の辞書式順に一つずつ生成することができ、その生成に必要な空間はO(b+1)O(b+1)マスである。

配置グラフ。C\mathcal Cを頂点集合とし、CCからC′C'へ辺があることを「C′C'がNNの一段の遷移によってCCから得られ、かつC′∈CC'\in\mathcal Cである」ことと定める有向グラフをGxG_xとする。GxG_xにおける長さjjの路とは、C0,…,CjC_0,\ldots,C_jであって各CuC_uからCu+1C_{u+1}へ辺があるものをいう。j=0j=0の路も許す。

再帰手続き。m=c(b+1)m=c(b+1)と置く。ccは正の整数でありb+1b+1も正の整数であるから、mmは正の整数である。C,C′∈CC,C'\in\mathcal Cと0≤i≤m0\le i\le mを満たす整数iiに対し、手続きTEST(C,C′,i)\mathrm{TEST}(C,C',i)を次のように定める。

  1. i=0i=0の場合。C=C′C=C'であるか、またはCCからC′C'へGxG_xの辺があるかを検査する。いずれかが成り立てば真を、そうでなければ偽を返す。この検査は、二つの符号とNNの有限な遷移規則表を突き合わせることによって行うことができる。
  2. i>0i>0の場合。C\mathcal Cの元C′′C''を符号の辞書式順に一つずつ生成し、TEST(C,C′′,i−1)\mathrm{TEST}(C,C'',i-1)とTEST(C′′,C′,i−1)\mathrm{TEST}(C'',C',i-1)をこの順に呼び出す。両方が真を返すC′′C''が見つかった時点で真を返す。すべてのC′′C''について見つからなければ偽を返す。

手続きの正当性。TEST(C,C′,i)\mathrm{TEST}(C,C',i)が真を返すことと、GxG_xにおいてCCからC′C'へ長さ2i2^i以下の路が存在することは同値である。iiに関する帰納法で示す。i=0i=0の場合は手続きの定義そのものである。i>0i>0とする。TEST(C,C′,i)\mathrm{TEST}(C,C',i)が真を返したならば、あるC′′∈CC''\in\mathcal Cについて両方の呼び出しが真を返しており、帰納法の仮定によりCCからC′′C''へ長さ2i−12^{i-1}以下の路と、C′′C''からC′C'へ長さ2i−12^{i-1}以下の路が存在する。これらをつなぐと長さ2i2^i以下の路を得る。逆に、CCからC′C'へ長さj≤2ij\le 2^iの路C0,…,CjC_0,\ldots,C_jが存在するとする。u=⌈j/2⌉u=\lceil j/2\rceilと置きC′′=CuC''=C_uとする。路の頂点はすべてC\mathcal Cに属するのでC′′∈CC''\in\mathcal Cである。u≤⌈2i/2⌉=2i−1u\le\lceil 2^i/2\rceil=2^{i-1}でありj−u=⌊j/2⌋≤2i−1j-u=\lfloor j/2\rfloor\le 2^{i-1}であるから、帰納法の仮定によりTEST(C,C′′,i−1)\mathrm{TEST}(C,C'',i-1)とTEST(C′′,C′,i−1)\mathrm{TEST}(C'',C',i-1)はともに真を返す。手続きはC\mathcal Cのすべての元を試すので、遅くともC′′C''に到達した時点で真を返す。

決定性機械の構成。 決定性 Turing 機械DDを次のように定める。DDは最初に、補題 1.2 (2)と補題 1.3を用いて、境界テープの位置0,…,s(n)−10,\ldots,s(n)-1を印付ける。続いて、いま印付けた領域の右隣のマスを新しい左端とみなし、そのマスへ別のトラックで左端を表す印を置いてから同じ構成を繰り返す。位置00で左へ動く命令がヘッドをとどめるという規約は、この印を検出したときにヘッドをとどめることによって模倣する。全体でaa個の領域をつなげて、位置0,…,b−10,\ldots,b-1を印付けた領域を得る。aaは定数であるから、この繰り返しの回数は有限制御で管理することができる。次にDDは、C\mathcal Cの元のうち状態がNNの受理状態であるものを符号の辞書式順に一つずつ生成する。生成した配置をCCとし、初期配置CinitC_{\mathrm{init}}に対してTEST(Cinit,C,m)\mathrm{TEST}(C_{\mathrm{init}},C,m)を実行する。真を返すCCがあれば受理し、すべて偽ならば拒否する。

TEST\mathrm{TEST}は、再帰の各段に対応する枠を作業テープ上へ積むことによって実装する。一つの枠は、二つの引数の符号、現在試しているC′′C''の符号、およびiiの二進表記を保持する。配置の符号はλ(b+1)\lambda(b+1)ビット以下であり、i≤mi\le mの二進表記は⌈log⁡2(m+1)⌉\lceil\log_2(m+1)\rceilビットであるから、一つの枠はO(b+1)O(b+1)マスに収まる。再帰の深さはm+1=c(b+1)+1m+1=c(b+1)+1であるから、枠の総数もO(b+1)O(b+1)である。よってスタック全体の使用空間はO((b+1)2)O\bigl((b+1)^2\bigr)である。境界領域、生成中の配置符号、および受理配置の列挙に用いる符号はいずれもO(b+1)O(b+1)マスであるから、DDの使用空間はO((b+1)2)O((b+1)^2)である。b=a s(n)b=a\,s(n)かつs(n)≥1s(n)\ge 1であるから、これはO(s(n)2)O(s(n)^2)である。

再帰の深さはmm以下であり、各段で試すC′′C''の個数も有限であるから、TEST\mathrm{TEST}は必ず値を返す。受理配置の列挙も有限であるから、DDはすべての入力で停止する。

DDがLLを決定すること。NNがxxを受理するとする。受理状態に到達する計算分枝を一つとると、その分枝上の配置はすべてC\mathcal Cに属し、連続する二つの間にはGxG_xの辺がある。この分枝上に同じ配置が二度現れる場合には、その二つの時刻の間を取り除いても、CinitC_{\mathrm{init}}から同じ受理配置へのGxG_xの路が残る。この操作を繰り返すと、頂点が相異なる路が得られ、その長さは∣C∣−1≤2m|\mathcal C|-1\le 2^m以下である。したがって、ある受理配置CCについてTEST(Cinit,C,m)\mathrm{TEST}(C_{\mathrm{init}},C,m)は真を返し、DDは受理する。逆にDDが受理するならば、ある受理配置CCへCinitC_{\mathrm{init}}からのGxG_xの路が存在する。GxG_xの辺はNNの一段の遷移であるから、この路はN(x)N(x)の計算分枝であり、NNはxxを受理する。

以上により、DDはLLの決定器でありSD(n)=O(s(n)2)S_D(n)=O(s(n)^2)である。よってL∈DSPACE(s2)L\in\mathsf{DSPACE}(s^2)である。▨

系 5.3. 次の二つが成り立つ。

  1. NL⊆DSPACE(⌈log⁡2(n+2)⌉2)\mathsf{NL}\subseteq\mathsf{DSPACE}\bigl(\lceil\log_2(n+2)\rceil^2\bigr)。
  2. PSPACE=NPSPACE\mathsf{PSPACE}=\mathsf{NPSPACE}。

証明.(1)を示す。s(n)=⌈log⁡2(n+2)⌉s(n)=\lceil\log_2(n+2)\rceilは§E15.10 命題 2.2により空間構成可能である。またn+2≥2n+2\ge2からs(n)≥1s(n)\ge1であり、n+2>n+1n+2>n+1からs(n)≥⌈log⁡2(n+1)⌉s(n)\ge\lceil\log_2(n+1)\rceilである。よって定理 5.2 (Savitch の定理)を適用して結論を得る。

(2)を示す。OO記法は有限個のnnにおける値を無視するので、各k≥1k\ge1についてDSPACE(nk)=DSPACE(max⁡{1,nk})\mathsf{DSPACE}(n^k)=\mathsf{DSPACE}(\max\{1,n^k\})である。また2n≥n+12^n\ge n+1から⌈log⁡2(n+1)⌉≤n\lceil\log_2(n+1)\rceil\le nであり、n≥1n\ge1ではn≤nkn\le n^k、n=0n=0では⌈log⁡21⌉=0≤1\lceil\log_2 1\rceil=0\le1であるから、関数max⁡{1,nk}\max\{1,n^k\}は定理 5.2 (Savitch の定理)の仮定s(n)≥max⁡{1,⌈log⁡2(n+1)⌉}s(n)\ge\max\{1,\lceil\log_2(n+1)\rceil\}を満たす。この関数は§E15.10 命題 2.2により空間構成可能である。

PSPACE⊆NPSPACE\mathsf{PSPACE}\subseteq\mathsf{NPSPACE}を示す。L∈PSPACEL\in\mathsf{PSPACE}とすると、あるk≥1k\ge1についてL∈DSPACE(nk)=DSPACE(max⁡{1,nk})L\in\mathsf{DSPACE}(n^k)=\mathsf{DSPACE}(\max\{1,n^k\})である。max⁡{1,nk}≥1\max\{1,n^k\}\ge1であるから、上で述べたDSPACE(s)⊆NSPACE(s)\mathsf{DSPACE}(s)\subseteq\mathsf{NSPACE}(s)によりL∈NSPACE(max⁡{1,nk})⊆NPSPACEL\in\mathsf{NSPACE}(\max\{1,n^k\})\subseteq\mathsf{NPSPACE}である。

逆向きを示す。L∈NPSPACEL\in\mathsf{NPSPACE}とすると、あるk≥1k\ge1についてL∈NSPACE(max⁡{1,nk})L\in\mathsf{NSPACE}(\max\{1,n^k\})である。定理 5.2 (Savitch の定理)により

L∈DSPACE(max⁡{1,nk}2)=DSPACE(max⁡{1,n2k})=DSPACE(n2k)⊆PSPACEL\in\mathsf{DSPACE}\bigl(\max\{1,n^k\}^2\bigr) =\mathsf{DSPACE}\bigl(\max\{1,n^{2k}\}\bigr) =\mathsf{DSPACE}(n^{2k}) \subseteq\mathsf{PSPACE}

である。▨

命題 5.4.

NL⊆P\mathsf{NL}\subseteq\mathsf P

である。

証明.L∈NLL\in\mathsf{NL}とし、LLを受理する非決定性 Turing 機械NNと正の整数aaを、すべてのxxについてspace⁡N(x)≤a⌈log⁡2(∣x∣+2)⌉\operatorname{space}_N(x)\le a\lceil\log_2(|x|+2)\rceilとなるようにとる。入力xxを固定し、n=∣x∣n=|x|、b=a⌈log⁡2(n+2)⌉b=a\lceil\log_2(n+2)\rceilと置く。aaと⌈log⁡2(n+2)⌉\lceil\log_2(n+2)\rceilはともに正の整数であるからbbは正の整数であり、a≥1a\ge 1とn+2>n+1n+2>n+1からb≥⌈log⁡2(n+1)⌉b\ge\lceil\log_2(n+1)\rceilである。Savitch の定理の証明と同じ記号で、配置の集合C\mathcal Cと配置グラフGxG_xをとる。§E15.10 補題 3.2 (1)により、NNだけに依存する正の整数ccについて∣C∣≤2c(b+1)|\mathcal C|\le2^{c(b+1)}である。ここで

c(b+1)≤c(a(log⁡2(n+2)+1)+1)=calog⁡2(n+2)+c(a+1)c(b+1)\le c\bigl(a(\log_2(n+2)+1)+1\bigr) =ca\log_2(n+2)+c(a+1)

であるから

∣C∣≤2c(a+1)(n+2)ca|\mathcal C|\le 2^{c(a+1)}(n+2)^{ca}

であり、右辺はnnの多項式である。各配置の符号長もO(log⁡(n+2))O(\log(n+2))である。

決定性機械DDを次のように定める。DDは最初に、長さλ(b+1)\lambda(b+1)以下のすべての符号を辞書式順に走査し、正しい配置の符号であってC\mathcal Cに属するものだけを作業テープ上の一覧へ並べる。各項目には一ビットの印を付ける領域を添える。符号長がO(log⁡(n+2))O(\log(n+2))であり項目数がnnの多項式であるから、一覧の長さはnnの多項式であり、その作成時間もnnの多項式である。

次にDDは、初期配置CinitC_{\mathrm{init}}の項目にだけ印を付け、以下の操作を∣C∣|\mathcal C|回繰り返す。一覧を左から右へ走査し、印の付いた各項目CCについて、NNの遷移規則からCCから一段で到達することができるすべての配置を求め、そのうちC\mathcal Cに属するものについて、一覧の対応する項目に印を付ける。§E15.11 定義 1.1によりNNの遷移先は有限集合であり、一つの配置から一段で到達することができる配置の個数はNNの遷移規則表だけから定まる定数で抑えられる。一回の走査に要する時間は一覧の長さの多項式であり、繰り返し回数∣C∣|\mathcal C|もnnの多項式であるから、全体の時間はnnの多項式である。

印の付き方について次の二つが成り立つ。第一に、印の付いた配置はすべて、CinitC_{\mathrm{init}}からGxG_xにおいて到達することができる。実際、印を付けるのはCinitC_{\mathrm{init}}自身か、すでに印の付いた配置から一段で到達することができてC\mathcal Cに属する配置に限るので、印を付けた回数に関する帰納法から従う。第二に、jj回の繰り返しの後には、CinitC_{\mathrm{init}}からGxG_xにおいて長さjj以下の路で到達することができる配置にはすべて印が付いている。jjに関する帰納法で示す。j=0j=0の場合、長さ00の路が与える配置はCinitC_{\mathrm{init}}だけであり、これには最初に印が付いている。j>0j>0の場合、長さjj以下の路C0,…,CiC_0,\ldots,C_i(C0=CinitC_0=C_{\mathrm{init}}、i≤ji\le j)をとる。i=0i=0ならば前の場合に帰着する。i≥1i\ge1ならばCi−1C_{i-1}へは長さj−1j-1以下の路で到達することができるので、帰納法の仮定によりj−1j-1回の繰り返しの後にCi−1C_{i-1}には印が付いている。印はいったん付けば取り除かれず、jj回目の走査は一覧の全項目を通るので、この走査がCi−1C_{i-1}の項目に達した時点でCiC_iの項目にも印が付く。なお、一回の走査のなかで新しく印の付いた項目は同じ走査のうちにさらに展開されるため、jj回の繰り返しの後に印の付いた配置の全体は、長さjj以下の路で到達することができる配置の全体より広いことがある。その場合も第一の主張により、印の付いた配置は到達可能である。

GxG_xの頂点数は∣C∣|\mathcal C|であるから、到達可能な配置へは長さ∣C∣−1|\mathcal C|-1以下の路で到達することができる。したがって∣C∣|\mathcal C|回の繰り返しの後には、到達可能な配置のすべてに印が付いており、かつ印の付いた配置はすべて到達可能である。

DDは、印の付いた項目のなかに状態がNNの受理状態であるものが存在すれば受理し、存在しなければ拒否する。Savitch の定理の証明と同じ議論により、これはNNがxxを受理することと同値である。DDはすべての入力で停止し、その時間はnnの多項式であるから、L∈PL\in\mathsf Pである。▨

以上により

L⊆NL⊆P⊆PSPACE=NPSPACE\mathsf L\subseteq\mathsf{NL}\subseteq\mathsf P\subseteq\mathsf{PSPACE}=\mathsf{NPSPACE}

である。ここでP⊆PSPACE\mathsf P\subseteq\mathsf{PSPACE}は§E15.10 系 3.5による。これらの包含のどれが真であるかは知られていない。一方、定理 4.3 (決定性空間階層定理)はL⊊PSPACE\mathsf L\subsetneq\mathsf{PSPACE}を与える。実際、⌈log⁡2(n+2)⌉=o(n)\lceil\log_2(n+2)\rceil=o(n)であり、⌈log⁡2(n+2)⌉\lceil\log_2(n+2)\rceilとmax⁡{1,n}\max\{1,n\}はともに空間構成可能な非減少関数でmax⁡{1,⌈log⁡2(n+1)⌉}\max\{1,\lceil\log_2(n+1)\rceil\}以上であるから、L⊊DSPACE(max⁡{1,n})⊆PSPACE\mathsf L\subsetneq\mathsf{DSPACE}(\max\{1,n\})\subseteq\mathsf{PSPACE}である。

7 演習

問題 7.1.

  1. 時間階層定理の対角機械が、万能模倣の終了を待ち続けず、自分自身の遷移数がT(n)T(n)に達した時点で打ち切る必要がある理由を説明せよ。
  2. r(n)=max⁡{1,n2}r(n)=\max\{1,n^2\}とT(n)=max⁡{1,n5}T(n)=\max\{1,n^5\}が時間階層定理の仮定を満たすことを示せ。
  3. 空間階層定理の模倣で、配置数までのカウンタをO(S(n))O(S(n))ビットに保存することができる理由を説明せよ。
  4. 時間階層定理と空間階層定理のどちらからも、DTIME(n)=DSPACE(n)\mathsf{DTIME}(n)=\mathsf{DSPACE}(n)の真偽について結論を得ることができない理由を説明せよ。
  5. 補題 1.1の証明で、仮定t(n)≥1t(n)\ge1を用いる箇所をすべて挙げよ。
  6. Savitch の定理の証明で、再帰の深さをm=c(b+1)m=c(b+1)にとることができる理由を、配置の個数の評価から説明せよ。
  7. Savitch の定理の証明で、中間配置C′′C''をC\mathcal Cの全体にわたって走査する必要がある理由を説明せよ。走査の代わりにC′′C''を記憶しておく方法が空間の評価を壊すことも述べよ。
  8. 定理 5.2 (Savitch の定理)からPSPACE=NPSPACE\mathsf{PSPACE}=\mathsf{NPSPACE}が従うのに対し、同じ論法でP=NP\mathsf P=\mathsf{NP}を導くことができない理由を述べよ。
解答 (演習の要点).
  1. 入力中のMMは決定器とは限らず、停止しない模倣を待つと対角機械自身が決定器でなくなるためである。また、被模倣機械の段数ではなく対角機械自身の遷移数を制限しなければ、万能模倣の時間増加をO(T(n))O(T(n))の上界に収めることができない。
  2. n≥1n\ge1ではr(n)2/T(n)=n4/n5=1/nr(n)^2/T(n)=n^4/n^5=1/nであり、この比は00へ収束する。
  3. 配置数が2O(S(n))2^{O(S(n))}以下なので、配置数まで数える二進カウンタの桁数はO(S(n))O(S(n))である。
  4. 二つの定理は同じ種類の資源について異なる上界を比較する。時間と空間という異なる資源のクラスを相互に分離する定理ではない。
  5. 二箇所である。第一に、∣x∣<n0|x|<n_0の場合の評価で、前処理の段数n0+1n_0+1を(n0+1)t(∣x∣)(n_0+1)t(|x|)で置き換える箇所である。第二に、∣x∣≥n0|x|\ge n_0の場合の評価で、定数項2n0+12n_0+1を(2n0+1)t(∣x∣)(2n_0+1)t(|x|)で置き換える箇所である。空間の場合も同様に、初期位置のkkマスと定数CCをs(∣x∣)s(|x|)の定数倍へ吸収するために用いる。
  6. C\mathcal Cの要素数は2c(b+1)=2m2^{c(b+1)}=2^{m}以下である。GxG_xにおいて到達可能な頂点へは、頂点が相異なる路で到達することができ、その長さは頂点数から11を引いた値以下である。したがって長さは2m2^{m}以下であり、TEST\mathrm{TEST}をi=mi=mで呼び出せば十分である。
  7. TEST\mathrm{TEST}は中間配置の存在を主張するだけであり、どのC′′C''が正しいかは分からない。すべての候補を試すことでのみ、存在しないことを結論することができる。走査の代わりに再帰の各段で見つけたC′′C''を保持し続けると、保持する配置の個数が路の長さに比例し、最悪で2m2^m個になる。これはO(b2)O(b^2)の空間評価を壊す。走査では、各段で一つの候補だけを保持し、次の候補へ進むときに前の候補を捨てるので、保持する符号の個数は再帰の深さで抑えられる。
  8. Savitch の定理の手続きは、空間を再利用して同じ部分問題を解き直すことによって空間の増加を二乗に抑えている。この解き直しは時間を指数へ増やす。したがって同じ構成から多項式時間の決定器を得ることはできず、P=NP\mathsf P=\mathsf{NP}は従わない。

▨

参考文献

  1. Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach, Cambridge University Press, Cambridge, 2009.万能シミュレーション、対角化、および時間・空間階層定理を参考にした。
  2. Christos H. Papadimitriou, Computational Complexity, Addison-Wesley, 1994.構成可能な資源上界と階層定理を参考にした。

前提記事