1 資源上界と構成可能性
本記事が扱う機械は、§E15.10 定義 1.1が定める資源計算量の決定性 Turing 機械、すなわち読取り専用入力テープを一つと、有限本の読書き可能な作業テープをもつ機械である。以下ではこれを決定性多テープ TM とも呼ぶ。この機械Mが入力xで停止するまでの遷移回数をtimeM(x)とし、計算中に一度でも走査した作業テープのマスの総数をspaceM(x)とする。これらは同定義のτM(x)とσM(x)にほかならず、本記事では表示を変えているだけである。
計算量クラスDTIME(t)とDSPACE(s)は§E15.10 定義 1.3 (決定性時間・空間クラス)で定義した。本記事は独自の定義を置かず、その定義をそのまま用いる。ただし対角化では、長さごとの最悪値に対する漸近的な上界ではなく、個々の入力に対する一様な上界を扱うほうが扱いやすい。次の補題は、資源上界がすべての入力長で1以上であるときに、二つの形が同じクラスを定めることを示す。
証明. 時間の場合を示す。(2)⇒(1)は直ちに分かる。実際、TM′(n)=max∣x∣=ntimeM′(x)≤ct(n)がすべてのnで成り立つので、TM′(n)=O(t(n))である。
(1)⇒(2)を示す。(1)を仮定する。MをLの決定器とし、定数C>0とn0∈NがTM(n)≤Ct(n)(n≥n0)を満たすとする。n0=0ならばM′=Mとc=Cをとればよいので、n0≥1とする。
Σは有限であるから、長さがn0未満の語の全体
F={x∈Σ∗:∣x∣<n0}は有限集合であり、その要素数は∑j<n0∣Σ∣jである。したがってL∩Fも有限集合であり、この集合そのものを機械の有限制御へ組み込むことができる。具体的には次のM′をとる。M′の状態集合は、Mの状態集合に、長さn0未満の各語w∈Fに対応する状態rwと、n0個の記号を読み終えたことを表す状態r∗を加えたものである。M′は状態rεから始め、入力ヘッドを左端から右へ一マスずつ動かす。状態rwで記号a∈Σを読み、∣wa∣<n0ならば状態rwaへ移る。∣wa∣=n0ならば状態r∗へ移る。状態rw(w∈F)で入力の右端を検出したならば、その時点で入力はwに等しい。そこで、w∈Lならば受理状態へ、w∈/Lならば拒否状態へ移って停止する。この分岐はL∩Fという固定された有限集合に従って定めるものであり、有限個の状態の遷移先を固定することで実現することができる。状態r∗に達した場合には、入力ヘッドを左端へ戻したうえでMの初期状態へ移り、以後はMと同じ計算を行う。M′は作業テープへ何も書かないままこの前処理を行う。
M′がLを決定することを確かめる。∣x∣<n0のときは、上の分岐によりx∈LとM′がxを受理することは同値である。∣x∣≥n0のときは、M′は前処理の後にMと同じ計算を行うので、Mの答えと一致する。MはLの決定器であるから、この場合も答えは正しい。いずれの場合もM′は停止するので、M′はLの決定器である。
時間を評価する。∣x∣<n0のときは、前処理で入力ヘッドを右端まで動かして停止するのでtimeM′(x)≤n0+1である。t(∣x∣)≥1であるからtimeM′(x)≤(n0+1)t(∣x∣)である。∣x∣≥n0のときは、前処理でn0段の右移動と高々n0段の左移動を行うので、
timeM′(x)≤2n0+1+timeM(x)≤2n0+1+TM(∣x∣)≤2n0+1+Ct(∣x∣)であり、再びt(∣x∣)≥1からtimeM′(x)≤(2n0+1+C)t(∣x∣)である。したがってc=2n0+1+Cと置けば、すべてのxでtimeM′(x)≤ct(∣x∣)が成り立つ。
空間の場合も同じM′をとる。前処理は作業テープのヘッドを動かさないので、M′が訪れる作業マスは、∣x∣<n0のときは各作業テープの初期位置だけであり、その総数は作業テープの本数kに等しい。s(∣x∣)≥1からspaceM′(x)≤ks(∣x∣)である。∣x∣≥n0のときはspaceM′(x)=spaceM(x)≤SM(∣x∣)≤Cs(∣x∣)である。したがってc=max{k,C}と置けばよい。▨
この構成では、有限集合L∩Fの要素を機械の遷移先として固定した。補題が主張するのは決定器M′の存在だけであり、MからM′を求める手続きは要求していない。以下では、対角化の仮定LD∈DTIME(r)から一様な上界をもつ決定器を取り出すためにこの補題を用いる。
§E15.10 定義 2.1に従い、時間構成可能性はt(n)の二進表記をO(t(n))時間で出力すること、空間構成可能性はちょうどs(n)個の作業マスを訪れることによって定義する。階層定理では、二進表記を一段ごとの時計へ変換し、訪問マス数を連続領域へ変換する必要がある。
補題 1.2. 次の二条件が成り立つ。
- t(n)≥nであり、tが§E15.10 定義 2.1の意味で時間構成可能ならば、入力1nから別のテープへちょうど1t(n)を書き、O(t(n))時間で停止する決定性多テープ TM が存在する。
- sが同定義の意味で空間構成可能ならば、入力1nから別のテープの位置0,…,s(n)−1を連続して印付け、全体でO(s(n))個の作業マスだけを使用する決定性多テープ TM が存在する。
証明.(1)を示す。時間構成機械を実行してt(n)の二進表記を得て、最下位ビット側にヘッドを置く。別の出力テープのヘッドは、まだ何も書いていない位置0に置く。二進カウンタが正である間、出力テープへ1を一つ書いて右へ進み、二進カウンタから1を減らす。減算では、最下位側から連続する0を1に変え、最初の1を0に変えた後、最下位位置へ戻る。
t(n)回の減算において、最下位ビットは高々t(n)回、その一つ上のビットは高々⌈t(n)/2⌉回、一般に第jビットは高々⌈t(n)/2j⌉回反転する。使用するビット数はO(log(t(n)+1))なので、全反転回数と最下位位置へ戻る移動回数の和は
O(j≥0∑2jt(n)+log(t(n)+1))=O(t(n))である。出力も一記号につき定数時間であり、もとの二進表記の生成時間もO(t(n))なので、全体はO(t(n))時間で停止する。
(2)を示す。空間構成機械を万能模倣し、各作業テープの各マスへ初めて入ったときだけ印を付け、二進カウンタを一つ増やす。もとの機械が停止した時点でカウンタはs(n)の二進表記を保持する。模倣領域はちょうどs(n)個のマスと固定個数の区切りを使用し、カウンタはO(log(s(n)+1))=O(s(n))マスを使用する。次に、(1)と同じ二進減算を用い、カウンタが正である間、境界テープ上で現在位置を印付けて右へ一マス進む。時間には制限を課さないが、境界テープで訪れる位置はちょうどs(n)個である。模倣領域、カウンタ、および境界領域を合わせた使用空間はO(s(n))である。▨
この補題の機械は入力1nを受け取る。ところが階層定理の対角機械や以下の空間模倣は、任意の語xを入力として受け取り、その長さn=∣x∣から時計や境界を作る必要がある。作業テープへ1nを書き写すとnマスを消費するため、空間上界がnより小さい場合にはこの方法を用いることができない。次の補題は、入力テープを書き換えずにこの変換を行うことができることを示す。
証明.M′の状態集合、作業テープの本数、作業テープアルファベット、初期状態、および停止状態をMと同一にする。遷移関数を次のように定める。状態q、入力記号a∈Σ、および作業テープの走査記号の組bに対するM′の遷移を、Mの状態q、入力記号1、作業テープの走査記号bに対する遷移と等しく定める。入力テープで空白(すなわち入力の右端の外側)を読んだ場合の遷移は、Mの同じ状況における遷移と等しく定める。作業テープ側の書込みとヘッド移動、および入力ヘッドの移動は、いずれもMのものをそのまま用いる。
入力x∈Σ∗と1∣x∣は同じ長さであるから、各時刻で入力ヘッドが同じ位置にある限り、M′がx上で読む記号がΣの記号であることと、Mが1∣x∣上で読む記号が1であることは同値であり、M′が空白を読むこととMが空白を読むことも同値である。したがって遷移の段数に関する帰納法により、両者の状態、入力ヘッド位置、作業テープの内容、および作業ヘッド位置は各時刻で一致する。基底は初期配置の一致であり、帰納段階は上で定めた遷移の一致による。時間と空間の等式はこの一致から従う。▨
時計列は、対角機械が模倣段階で行う各遷移と同期して読み進める。被模倣機械の一段ごとに時計記号を一つ消費する方式では、万能模倣の二乗時間増加によって対角機械がO(T(n)2)時間を使いうる。境界列の両端へ印を置けば、模倣計算が使用する連続領域を制限することができる。例えば、正の整数kに対するmax{1,nk}は§E15.10 命題 2.2により時間構成可能かつ空間構成可能であり、上の補題によって時計と境界の双方へ変換することができる。
2 万能シミュレーションの時間
時間階層定理では、対角機械が入力中に記述された別の機械を模倣する。ここでは、物理テープ上の移動距離を全て数えることのできる単純な全走査方式を用いる。この方式の時間増加は二乗である。
補題 2.1. 全ての決定性多テープ TM に有効な有限符号を与える。ある固定された決定性多テープ TMUが存在し、各 TMMに対して定数cM>0が存在して、次を満たす。r≥∣x∣かつr≥1のとき、M(x)の最初のr段をU(⟨M⟩,x)が模倣するために必要な時間は
cM(r+1)2以下である。Mがr段以内に受理または拒否した場合、Uは同じ結論を検出する。
証明.Uは第1テープへ機械符号⟨M⟩、第2テープへ入力xを保存し、第3テープへ模倣配置を置く。第3テープでは、Mの各作業テープの有限な使用部分を
#u1#u2#⋯#uk#と連結し、各uiの走査位置に印を付ける。読取り専用入力テープをもつモデルでは、入力ヘッド位置を二進表記で同じ配置に加える。Mのテープ本数k、状態集合、およびテープアルファベットは⟨M⟩から有限時間で読み取る。
一つの模倣段では、最初に配置テープを左から右へ走査し、現在状態、入力ヘッド位置、および各作業テープの印付き記号を作業領域へ複写する。次に⟨M⟩の遷移表を先頭から走査し、左辺が現在状態と走査記号列に一致する規則を探す。正しい決定性機械符号では規則がちょうど一つ存在する。最後に配置テープを再び走査し、書込み記号、ヘッドの印、および現在状態を更新する。ヘッドがuiの右端から右へ進む場合には、区切り以後の有限文字列を一マスずつ右へ移して空白記号を挿入する。
j段の模倣後、各仮想ヘッドは初期位置から高々jマスしか移動していない。したがって、配置符号の長さは
∣x∣+∣⟨M⟩∣+dM(j+1)以下であるような、Mだけに依存する定数dMが存在する。遷移表の走査時間はO(∣⟨M⟩∣)であり、配置の二回の走査と、必要な場合の一回の挿入はO(∣x∣+∣⟨M⟩∣+j+1)時間で終わる。よって、j段目の模倣時間は
eM(∣x∣+j+1)以下であるような定数eMが存在する。
r≥∣x∣を用いてj=0,…,r−1の時間を足すと、
j=0∑r−1eM(∣x∣+j+1)≤eMj=0∑r−1(r+j+1)≤2eM(r+1)2を得る。機械符号と初期配置の構文解析および複写に要するO(∣⟨M⟩∣+∣x∣)時間を定数へ吸収すれば、表示された上界になる。
模倣段数に関する帰納法により、第3テープを復号した配置はM(x)の同じ段数後の配置に等しい。基底は初期化から従い、帰納段階は遷移表から選んだ唯一の規則による更新から従う。したがって、Mが受理または拒否へ到達した場合には、Uは同じ模倣段でMの受理または拒否を検出する。▨
時計は、被模倣機械Mの遷移数ではなく、万能模倣を実行する機械自身の遷移数を制限する必要がある。次の補題は、万能機械の制御と時計の制御を直積にすることで、この制限を実現する。
補題 2.2.補題 2.1の万能機械Uに対し、固定された決定性多テープ TMVが存在して、次を満たす。Vは入力(⟨M⟩,x)と、先頭にヘッドを置いた時計列1Bを受け取る。Vは万能模倣を行う自分自身の各遷移で時計ヘッドを一マス右へ動かし、B遷移を実行した後は模倣を打ち切る。
各 TMMに対して定数cM>0が存在する。r≥∣x∣かつr≥1であり、M(x)がr段以内に停止するとき、
cM(r+1)2<Bならば、Vは時計が尽きる前にM(x)の結論を検出する。この検出までにV自身が行う遷移数はcM(r+1)2以下である。
証明.Vの有限制御を、Uの有限制御と「時計内」または「時計切れ」という状態の直積にする。時計内の状態では、Vの一遷移はUと同じ書込みおよびヘッド移動を模倣用テープ上で行うと同時に、専用の時計テープのヘッドを一マス右へ動かす。多テープ TM の一遷移は各テープのヘッドを同時に動かすので、時計を進めるための追加の遷移は必要ない。時計ヘッドが最初の空白へ到達した場合には、Vは次の模倣遷移を行わずに時計切れとして停止する。Uが受理状態または拒否状態へ移る遷移では、Vも同じ遷移で対応する停止状態へ移る。
したがって、Vが時計内で行う遷移とUの遷移は一対一に対応する。補題 2.1の定数を必要なら大きく取り直すと、Uの初期化、機械符号の構文解析、配置の更新、および停止状態の検出を含む遷移数はcM(r+1)2以下である。表示された不等式の下では、この遷移数は時計長Bより小さい。よって、Vは時計切れより先にM(x)の結論を検出する。▨
3 決定性時間階層定理
対角機械は、入力が⟨M⟩#1kという形なら、入力全体をM自身へ与えて万能模倣し、上限時間内にMが停止した場合だけ答えを反転する。1kは、固定したMに対して任意に長い自己入力を作り、万能模倣の機械依存定数を漸近的な差に吸収する役割をもつ。
定理 3.1 (決定性時間階層定理).r,T:N→Nを時間構成可能な非減少関数とし、r(n)≥n、T(n)≥n、および
r(n)2=o(T(n))と仮定する。このとき
DTIME(r)⊊DTIME(T)である。
証明. 仮定からr(n)=O(T(n))なので、r時間の決定器は同じ機械のままO(T(n))時間の決定器でもある。したがってDTIME(r)⊆DTIME(T)である。
真の包含を示すため、言語LDの決定器Dを構成する。入力xの長さをnとする。Dは最初にxが⟨M⟩#1kという正しい形かを検査し、正しくなければ拒否する。正しい場合には、長さnの一進列を作り、補題 1.2により時計テープへ1T(n)を作る。Dは時計ヘッドを列の先頭へ戻した後、補題 2.2のV(⟨M⟩,x)を時計長B=T(n)で実行する。Vが受理を報告したらDは拒否し、Vが拒否を報告したらDは受理する。Vが時計切れを報告した場合には、Dは拒否する。したがって、時計の一記号が表すのはMの一段ではなく、万能模倣の初期化と配置更新を含むV自身の一遷移である。
ここで、Dの時間を全段階について評価する。構文検査と長さnの一進列の作成はO(n)時間である。時間構成機械の実行と1T(n)の出力にはO(T(n))時間がかかり、時計ヘッドを先頭へ戻す操作には高々T(n)+O(1)遷移が必要である。時計付き万能模倣は、時計切れまでに高々T(n)+O(1)遷移を実行する。停止結果の反転には定数時間しかかからない。T(n)≥nなので、各段階の時間の和は
O(n)+O(T(n))+O(T(n))+O(T(n))+O(1)=O(T(n))である。また、構文拒否、Vの停止、または時計切れのいずれかが必ず起こるのでDは決定器である。ゆえにLD∈DTIME(T)である。
LD∈DTIME(r)と仮定する。rは時間構成可能であるから§E15.10 定義 2.1により全てのnでr(n)≥1であり、補題 1.1を適用することができる。したがって、ある決定器Miと正の整数定数aiが存在し、全ての入力yで
timeMi(y)≤air(∣y∣)となる。xk=⟨Mi⟩#1kと置く。kを増やすとnk=∣xk∣は無限に増加する。時計付き万能模倣の補題でMiに対応する定数をci=cMiとする。r(nk)≥nkおよびai≥1なので、同補題を被模倣段数air(nk)に適用することができる。little-o の仮定により、十分大きいkで
ci(air(nk)+1)2=Oi(r(nk)2)<T(nk)となる。最後の不等式では、固定された機械Miに依存する定数aiとciをr(n)2=o(T(n))が吸収する。
unary padding1kは、機械符号⟨Mi⟩を変えずに入力長nkを無限に増加させる。したがって、十分大きいkでは、時計付き万能模倣はT(nk)回の自分自身の遷移を使い切る前にMi(xk)の停止を検出し、D(xk)はMi(xk)の答えを反転する。Mi(xk)が受理すればxk∈/LDであり、Mi(xk)が拒否すればxk∈LDである。D(xk)とMi(xk)の答えが反対になることは、MiがLDを決定するという仮定に反する。ゆえにLD∈/DTIME(r)であり、包含は真である。▨
例 3.2 (多項式時間の階層). 正の整数kに対してr(n)=max{1,nk}、T(n)=max{1,n2k+1}と置く。両関数は時間構成可能であり、n≥1では
T(n)r(n)2=n1⟶0なので
DTIME(max{1,nk})⊊DTIME(max{1,n2k+1})を得る。一方、T(n)=2r(n)では定理の little-o 条件が成り立たない。定数倍だけの増加から真の包含を結論することはできない。
4 決定性空間階層定理
空間をbマスに制限した決定性機械には有限個の配置しかない。停止せずに配置数より多くの段を実行すれば同じ配置を二度通り、その後も同じ計算を繰り返す。配置の反復を用いることにより、時間を制限しない空間計算も有限長で打ち切ることができる。
補題 4.1. 固定有限アルファベットをもつ一作業テープ決定性 TMMと長さnの読取り専用入力をとり、b≥⌈log2(n+1)⌉を満たす非負整数bに対して、Mの作業空間をbマス以内に制限する。この制限内の配置数が2cM(b+1)以下であるような正の整数cMが存在する。Mがこの個数より多く遷移しても停止しなければ、Mは停止しない。
§E15.10 補題 3.2 (1)は配置の個数を数えるだけであり、遷移関数が決定性であることを用いない。したがって、後述の非決定性機械の配置にも同じ上界を適用することができる。
空間側の対角機械は入力中の機械記述も変化させるため、機械記述の長さを許容空間以下に制限する。固定した機械の記述は unary padding を増やせば必ずこの制限を満たす。加えて、対角機械が模倣する機械のアルファベットを固定するため、次の符号化を用いる。
補題 4.2. 固定したk≥1本の作業テープをもつ決定性 Turing 機械Mに対し、一本の作業テープをもち、その作業テープアルファベットが三文字の固定集合{0,1,□}(□は空白記号)である決定性
Turing 機械M′と、Mだけに依存する定数γM>0が存在して、次が成り立つ。入力x上でMが作業空間σで停止するならば、M′もx上で停止してMと同じ受理または拒否を返し、M′の作業空間はγM(σ+1)以下である。
証明. 二段階で構成する。第一段階では§E15.10 定理 4.1を適用し、Mがx上で停止するときに同じ受理または拒否を返し、一本の作業テープを用い、作業空間がO(σ+1)である決定性 Turing 機械M1を得る。M1の作業テープアルファベットをΓ1、その大きさをgとする。
第二段階でアルファベットを三文字へ落とす。ℓ=⌈log2max{2,g}⌉と置き、Γ1の各記号へ長さℓの相異なるビット列を割り当てる単射code:Γ1→{0,1}ℓを固定する。M′の作業テープを位置0からℓマスずつの区画に分け、第j区画を位置jℓ,…,jℓ+ℓ−1とする。M1の作業テープの位置jの記号がaであることを、M′の第j区画の内容がcode(a)であることによって表す。M′は各模倣段の開始時に、M1の状態を自分の状態の一部として保持し、M1の作業ヘッドがある区画の左端に自分の作業ヘッドを置く。
M1の一段を次のように模倣する。M′は現在の区画を左から右へℓマス読む。最初のマスが空白記号□であるならば、その区画はまだ一度も書かれていないので、M1の空白記号の符号をℓマスへ書き込み、区画の左端へ戻ってから読み直す。ℓは固定した定数であるから、読み取ったℓビットを有限制御に保持し、codeの逆によって記号aを復元することができる。次に、M1の遷移関数が状態とaと入力記号に対して定める書込み記号の符号を、同じ区画へ左から書き込む。入力ヘッドの移動はM1と同一にする。M1の作業ヘッドが右へ動くならばM′の作業ヘッドをℓマス右へ、左へ動くならばℓマス左へ動かし、次の区画の左端に置く。M1の作業ヘッドが位置0で左移動を命じられた場合には、M1の規約に従って同じ位置にとどまる。M1が停止状態へ移る段では、M′も対応する受理状態または拒否状態へ移る。
模倣段数に関する帰納法により、各模倣段の開始時点で、M′の区画の内容はM1の作業テープの内容の符号であり、保持している状態と入力ヘッド位置はM1のものに等しい。基底は初期配置であり、帰納段階は上の手順による。したがってM′はM1と同じ受理または拒否を返し、Mがx上で停止する場合にはM′も停止する。
空間を評価する。M1が訪れる作業マスがσ1個であるとき、M′が訪れる作業マスはℓσ1個である。σ1=O(σ+1)であり、ℓはMだけから定まる定数であるから、M′の作業空間をγM(σ+1)以下にする定数γMが存在する。▨
定理 4.3 (決定性空間階層定理).s,S:N→Nを空間構成可能な非減少関数とし、s(n),S(n)≥max{1,⌈log2(n+1)⌉}および
s(n)=o(S(n))と仮定する。このとき
DSPACE(s)⊊DSPACE(S)である。
証明.s(n)=O(S(n))なので、s空間の決定器はO(S(n))空間の決定器でもある。したがってDSPACE(s)⊆DSPACE(S)である。
三文字の作業アルファベットをもつ一作業テープ決定性 TM を、その有限な記述の符号によって列挙する。補題 4.2により、有限本の作業テープと任意の有限作業アルファベットをもつ決定器は、同じ言語を決定する三文字一作業テープ決定器へ、作業空間を定数倍しか増やさずに変換することができる。したがって、この列挙は空間計算量クラスの全ての決定器を定数倍の差まで含む。
言語LEの決定器Eを構成する。入力xの長さをnとする。Eは補題 1.2と補題 1.3によりS(n)マスの連続した境界を作る。後者により、入力xをそのまま読取り専用入力テープに置いたまま境界を作ることができ、1nを作業テープへ書き写す必要はない。xが⟨M⟩#1kという正しい形でない場合、または∣⟨M⟩∣>S(n)の場合には拒否する。残りの場合には、M(x)を万能模倣し、模倣されたMがS(n)個を超える作業マスを走査しようとしたら拒否する。
機械記述長と模倣空間がともにS(n)以下であり、S(n)≥log2(n+1)である。したがって、状態番号、二つのヘッド位置、および三文字の作業テープを含む模倣配置はO(S(n))ビットで保存することができる。さらに補題 4.1の計数と同じ評価によって、可能な模倣配置数を数える。符号⟨M⟩はMの遷移表を明示的に列挙する形で与えるので、Mの状態集合QMについてlog2∣QM∣≤∣QM∣≤∣⟨M⟩∣≤S(n)であり、作業アルファベットは三文字に固定されている。したがって、計数における状態数と作業アルファベットの寄与はいずれもS(n)の定数倍へ収まり、可能な模倣配置数が2c(S(n)+1)以下であるような、模倣器だけに依存する正の整数cをとることができる。S(n)は非負整数であるからc(S(n)+1)は正の整数であり、Eはc(S(n)+1)ビットの二進カウンタを用い、最大2c(S(n)+1)段を模倣する。Mがカウンタの終了前に受理すればEは拒否し、拒否すればEは受理する。カウンタが一周するまで停止しなければ、配置が反復しているのでEは拒否する。
空間構成機械、万能模倣の記録、およびカウンタは、それぞれO(S(n))マスを使用する。有限個の作業領域を一つのテープの別区間または定数個のトラックへ配置しても総空間はO(S(n))である。全ての分岐は有限時間で構文拒否、空間超過、模倣機械の停止、またはカウンタ終了へ到達するので、Eは決定器である。ゆえにLE∈DSPACE(S)である。
LE∈DSPACE(s)と仮定する。s(n)≥1であるから補題 1.1を適用することができ、さらに補題 4.2によって三文字一作業テープの形へ移すことができる。したがって、列挙中の一作業テープ決定器Miと定数ai>0を、MiがLEを決定し、全入力yで高々ais(∣y∣)マスを使うように選ぶことができる。xk=⟨Mi⟩#1k、nk=∣xk∣と置く。s(n)=o(S(n))であり∣⟨Mi⟩∣は定数なので、十分大きいkについて
∣⟨Mi⟩∣≤S(nk),ais(nk)<S(nk)が成り立つ。したがって、E(xk)の万能模倣は空間超過で打ち切られない。
Miは決定器なのでMi(xk)は停止する。停止前に同じ配置を二度通れば決定性により停止しなくなるため、停止までの段数は許容空間内の配置数以下である。したがって、Eはカウンタ終了前にMi(xk)の停止結果を得て、受理と拒否を反転する。Mi(xk)が受理すればxk∈/LEであり、Mi(xk)が拒否すればxk∈LEである。E(xk)とMi(xk)の答えが反対になることは、MiがLEを決定するという仮定に反する。ゆえにLE∈/DSPACE(s)であり、包含は真である。▨
例 4.4 (多項式空間の階層). 正の整数kに対してs(n)=max{1,nk}、S(n)=max{1,nk+1}と置く。両関数は空間構成可能であり、n≥1ではs(n)/S(n)=1/n→0なので
DSPACE(max{1,nk})⊊DSPACE(max{1,nk+1})である。空間側でもS(n)=2s(n)は little-o 条件を満たさず、定理から真の包含を得ることはできない。
5 非決定性空間と Savitch の定理
空間は非決定性機械についても測ることができる。時間の場合、非決定性計算を決定性計算で模倣する§E15.4 定理 3.2の幅優先探索は指数の時間増加を伴う。空間の場合には、計算を二分して中間配置を全探索する方法により、増加を二乗にとどめることができる。これが Savitch の定理である。
定義 5.1.§E15.11 定義 1.1の非決定性 Turing 機械Nをとる。入力x上のNの空間計算量 (nondeterministic space complexity)spaceN(x)を、N(x)の計算木に現れるすべての配置にわたる、訪問済みの作業テープマスの総数の上限とする。この上限が有限でない場合にはspaceN(x)=∞と定め、いかなる有限の上界も満たさないものとする。
関数s:N→Nに対し、言語LがNSPACE(s)に属するとは、Lを受理する非決定性 Turing 機械Nと定数c>0が存在して、すべてのxについて
spaceN(x)≤cs(∣x∣)が成り立つことをいう。さらに
NL=NSPACE(⌈log2(n+2)⌉),NPSPACE=k≥1⋃NSPACE(max{1,nk})をそれぞれ非決定性対数空間 (nondeterministic logarithmic space)、非決定性多項式空間 (nondeterministic polynomial space) という。
決定性機械は、各配置からの次配置が一つである非決定性機械とみなすことができる。したがって、すべてのnでs(n)≥1を満たすsについては、補題 1.1によりDSPACE(s)⊆NSPACE(s)である。とくにL⊆NLである。
定理 5.2 (Savitch の定理). 関数s:N→Nが空間構成可能であり、すべてのnについて
s(n)≥max{1,⌈log2(n+1)⌉}を満たすとする。このとき
NSPACE(s)⊆DSPACE(s2)である。ここでs2はn↦s(n)2を表す。
証明.L∈NSPACE(s)とし、Lを受理する非決定性 Turing 機械Nと、すべてのxについてspaceN(x)≤c0s(∣x∣)を満たす定数c0>0をとる。定数を大きくしてもこの条件は保たれるので、c0以上の正の整数をaとすれば、すべてのxについてspaceN(x)≤as(∣x∣)である。以下、入力xを固定し、n=∣x∣、b=as(n)と置く。Nの状態集合をQ、作業テープの本数をk、作業テープアルファベットをΓとする。
配置の集合と符号。N(x)の計算木に現れる配置では、各作業テープの訪問済み領域がbマス以下である。そこで、入力テープにxが置かれ、かつ各作業テープの訪問済み領域がbマス以下であるような配置の全体をCとする。aとs(n)はともに正の整数であるからbは正の整数であり、a≥1からb≥s(n)≥⌈log2(n+1)⌉である。よって§E15.10 補題 3.2 (1)を適用することができ、Nだけに依存する正の整数cによって∣C∣≤2c(b+1)である。この主張は配置の個数だけを数えており、遷移関数が決定性であることを用いていない。各配置を、状態番号、入力ヘッド位置の二進表記、各作業テープの位置0からb−1までの内容、および各作業ヘッド位置の二進表記の組として符号化する。入力ヘッド位置は⌈log2(n+1)⌉≤bビット、各作業ヘッド位置は⌈log2(b+1)⌉≤b+1ビットで表すことができるので、符号長はNだけに依存する正の整数λによってλ(b+1)以下である。逆に、長さλ(b+1)以下の語がこの形の正しい符号であるかどうかは、bマスの境界領域と有限制御によって判定することができる。したがってCの元は、符号の辞書式順に一つずつ生成することができ、その生成に必要な空間はO(b+1)マスである。
配置グラフ。Cを頂点集合とし、CからC′へ辺があることを「C′がNの一段の遷移によってCから得られ、かつC′∈Cである」ことと定める有向グラフをGxとする。Gxにおける長さjの路とは、C0,…,Cjであって各CuからCu+1へ辺があるものをいう。j=0の路も許す。
再帰手続き。m=c(b+1)と置く。cは正の整数でありb+1も正の整数であるから、mは正の整数である。C,C′∈Cと0≤i≤mを満たす整数iに対し、手続きTEST(C,C′,i)を次のように定める。
- i=0の場合。C=C′であるか、またはCからC′へGxの辺があるかを検査する。いずれかが成り立てば真を、そうでなければ偽を返す。この検査は、二つの符号とNの有限な遷移規則表を突き合わせることによって行うことができる。
- i>0の場合。Cの元C′′を符号の辞書式順に一つずつ生成し、TEST(C,C′′,i−1)とTEST(C′′,C′,i−1)をこの順に呼び出す。両方が真を返すC′′が見つかった時点で真を返す。すべてのC′′について見つからなければ偽を返す。
手続きの正当性。TEST(C,C′,i)が真を返すことと、GxにおいてCからC′へ長さ2i以下の路が存在することは同値である。iに関する帰納法で示す。i=0の場合は手続きの定義そのものである。i>0とする。TEST(C,C′,i)が真を返したならば、あるC′′∈Cについて両方の呼び出しが真を返しており、帰納法の仮定によりCからC′′へ長さ2i−1以下の路と、C′′からC′へ長さ2i−1以下の路が存在する。これらをつなぐと長さ2i以下の路を得る。逆に、CからC′へ長さj≤2iの路C0,…,Cjが存在するとする。u=⌈j/2⌉と置きC′′=Cuとする。路の頂点はすべてCに属するのでC′′∈Cである。u≤⌈2i/2⌉=2i−1でありj−u=⌊j/2⌋≤2i−1であるから、帰納法の仮定によりTEST(C,C′′,i−1)とTEST(C′′,C′,i−1)はともに真を返す。手続きはCのすべての元を試すので、遅くともC′′に到達した時点で真を返す。
決定性機械の構成。 決定性 Turing 機械Dを次のように定める。Dは最初に、補題 1.2 (2)と補題 1.3を用いて、境界テープの位置0,…,s(n)−1を印付ける。続いて、いま印付けた領域の右隣のマスを新しい左端とみなし、そのマスへ別のトラックで左端を表す印を置いてから同じ構成を繰り返す。位置0で左へ動く命令がヘッドをとどめるという規約は、この印を検出したときにヘッドをとどめることによって模倣する。全体でa個の領域をつなげて、位置0,…,b−1を印付けた領域を得る。aは定数であるから、この繰り返しの回数は有限制御で管理することができる。次にDは、Cの元のうち状態がNの受理状態であるものを符号の辞書式順に一つずつ生成する。生成した配置をCとし、初期配置Cinitに対してTEST(Cinit,C,m)を実行する。真を返すCがあれば受理し、すべて偽ならば拒否する。
TESTは、再帰の各段に対応する枠を作業テープ上へ積むことによって実装する。一つの枠は、二つの引数の符号、現在試しているC′′の符号、およびiの二進表記を保持する。配置の符号はλ(b+1)ビット以下であり、i≤mの二進表記は⌈log2(m+1)⌉ビットであるから、一つの枠はO(b+1)マスに収まる。再帰の深さはm+1=c(b+1)+1であるから、枠の総数もO(b+1)である。よってスタック全体の使用空間はO((b+1)2)である。境界領域、生成中の配置符号、および受理配置の列挙に用いる符号はいずれもO(b+1)マスであるから、Dの使用空間はO((b+1)2)である。b=as(n)かつs(n)≥1であるから、これはO(s(n)2)である。
再帰の深さはm以下であり、各段で試すC′′の個数も有限であるから、TESTは必ず値を返す。受理配置の列挙も有限であるから、Dはすべての入力で停止する。
DがLを決定すること。Nがxを受理するとする。受理状態に到達する計算分枝を一つとると、その分枝上の配置はすべてCに属し、連続する二つの間にはGxの辺がある。この分枝上に同じ配置が二度現れる場合には、その二つの時刻の間を取り除いても、Cinitから同じ受理配置へのGxの路が残る。この操作を繰り返すと、頂点が相異なる路が得られ、その長さは∣C∣−1≤2m以下である。したがって、ある受理配置CについてTEST(Cinit,C,m)は真を返し、Dは受理する。逆にDが受理するならば、ある受理配置CへCinitからのGxの路が存在する。Gxの辺はNの一段の遷移であるから、この路はN(x)の計算分枝であり、Nはxを受理する。
以上により、DはLの決定器でありSD(n)=O(s(n)2)である。よってL∈DSPACE(s2)である。▨
系 5.3. 次の二つが成り立つ。
- NL⊆DSPACE(⌈log2(n+2)⌉2)。
- PSPACE=NPSPACE。
証明.(1)を示す。s(n)=⌈log2(n+2)⌉は§E15.10 命題 2.2により空間構成可能である。またn+2≥2からs(n)≥1であり、n+2>n+1からs(n)≥⌈log2(n+1)⌉である。よって定理 5.2 (Savitch の定理)を適用して結論を得る。
(2)を示す。O記法は有限個のnにおける値を無視するので、各k≥1についてDSPACE(nk)=DSPACE(max{1,nk})である。また2n≥n+1から⌈log2(n+1)⌉≤nであり、n≥1ではn≤nk、n=0では⌈log21⌉=0≤1であるから、関数max{1,nk}は定理 5.2 (Savitch の定理)の仮定s(n)≥max{1,⌈log2(n+1)⌉}を満たす。この関数は§E15.10 命題 2.2により空間構成可能である。
PSPACE⊆NPSPACEを示す。L∈PSPACEとすると、あるk≥1についてL∈DSPACE(nk)=DSPACE(max{1,nk})である。max{1,nk}≥1であるから、上で述べたDSPACE(s)⊆NSPACE(s)によりL∈NSPACE(max{1,nk})⊆NPSPACEである。
逆向きを示す。L∈NPSPACEとすると、あるk≥1についてL∈NSPACE(max{1,nk})である。定理 5.2 (Savitch の定理)により
L∈DSPACE(max{1,nk}2)=DSPACE(max{1,n2k})=DSPACE(n2k)⊆PSPACEである。▨
命題 5.4.
NL⊆Pである。
証明.L∈NLとし、Lを受理する非決定性 Turing 機械Nと正の整数aを、すべてのxについてspaceN(x)≤a⌈log2(∣x∣+2)⌉となるようにとる。入力xを固定し、n=∣x∣、b=a⌈log2(n+2)⌉と置く。aと⌈log2(n+2)⌉はともに正の整数であるからbは正の整数であり、a≥1とn+2>n+1からb≥⌈log2(n+1)⌉である。Savitch の定理の証明と同じ記号で、配置の集合Cと配置グラフGxをとる。§E15.10 補題 3.2 (1)により、Nだけに依存する正の整数cについて∣C∣≤2c(b+1)である。ここで
c(b+1)≤c(a(log2(n+2)+1)+1)=calog2(n+2)+c(a+1)であるから
∣C∣≤2c(a+1)(n+2)caであり、右辺はnの多項式である。各配置の符号長もO(log(n+2))である。
決定性機械Dを次のように定める。Dは最初に、長さλ(b+1)以下のすべての符号を辞書式順に走査し、正しい配置の符号であってCに属するものだけを作業テープ上の一覧へ並べる。各項目には一ビットの印を付ける領域を添える。符号長がO(log(n+2))であり項目数がnの多項式であるから、一覧の長さはnの多項式であり、その作成時間もnの多項式である。
次にDは、初期配置Cinitの項目にだけ印を付け、以下の操作を∣C∣回繰り返す。一覧を左から右へ走査し、印の付いた各項目Cについて、Nの遷移規則からCから一段で到達することができるすべての配置を求め、そのうちCに属するものについて、一覧の対応する項目に印を付ける。§E15.11 定義 1.1によりNの遷移先は有限集合であり、一つの配置から一段で到達することができる配置の個数はNの遷移規則表だけから定まる定数で抑えられる。一回の走査に要する時間は一覧の長さの多項式であり、繰り返し回数∣C∣もnの多項式であるから、全体の時間はnの多項式である。
印の付き方について次の二つが成り立つ。第一に、印の付いた配置はすべて、CinitからGxにおいて到達することができる。実際、印を付けるのはCinit自身か、すでに印の付いた配置から一段で到達することができてCに属する配置に限るので、印を付けた回数に関する帰納法から従う。第二に、j回の繰り返しの後には、CinitからGxにおいて長さj以下の路で到達することができる配置にはすべて印が付いている。jに関する帰納法で示す。j=0の場合、長さ0の路が与える配置はCinitだけであり、これには最初に印が付いている。j>0の場合、長さj以下の路C0,…,Ci(C0=Cinit、i≤j)をとる。i=0ならば前の場合に帰着する。i≥1ならばCi−1へは長さj−1以下の路で到達することができるので、帰納法の仮定によりj−1回の繰り返しの後にCi−1には印が付いている。印はいったん付けば取り除かれず、j回目の走査は一覧の全項目を通るので、この走査がCi−1の項目に達した時点でCiの項目にも印が付く。なお、一回の走査のなかで新しく印の付いた項目は同じ走査のうちにさらに展開されるため、j回の繰り返しの後に印の付いた配置の全体は、長さj以下の路で到達することができる配置の全体より広いことがある。その場合も第一の主張により、印の付いた配置は到達可能である。
Gxの頂点数は∣C∣であるから、到達可能な配置へは長さ∣C∣−1以下の路で到達することができる。したがって∣C∣回の繰り返しの後には、到達可能な配置のすべてに印が付いており、かつ印の付いた配置はすべて到達可能である。
Dは、印の付いた項目のなかに状態がNの受理状態であるものが存在すれば受理し、存在しなければ拒否する。Savitch の定理の証明と同じ議論により、これはNがxを受理することと同値である。Dはすべての入力で停止し、その時間はnの多項式であるから、L∈Pである。▨
以上により
L⊆NL⊆P⊆PSPACE=NPSPACE
である。ここでP⊆PSPACEは§E15.10 系 3.5による。これらの包含のどれが真であるかは知られていない。一方、定理 4.3 (決定性空間階層定理)はL⊊PSPACEを与える。実際、⌈log2(n+2)⌉=o(n)であり、⌈log2(n+2)⌉とmax{1,n}はともに空間構成可能な非減少関数でmax{1,⌈log2(n+1)⌉}以上であるから、L⊊DSPACE(max{1,n})⊆PSPACEである。
7 演習
問題 7.1.
- 時間階層定理の対角機械が、万能模倣の終了を待ち続けず、自分自身の遷移数がT(n)に達した時点で打ち切る必要がある理由を説明せよ。
- r(n)=max{1,n2}とT(n)=max{1,n5}が時間階層定理の仮定を満たすことを示せ。
- 空間階層定理の模倣で、配置数までのカウンタをO(S(n))ビットに保存することができる理由を説明せよ。
- 時間階層定理と空間階層定理のどちらからも、DTIME(n)=DSPACE(n)の真偽について結論を得ることができない理由を説明せよ。
- 補題 1.1の証明で、仮定t(n)≥1を用いる箇所をすべて挙げよ。
- Savitch の定理の証明で、再帰の深さをm=c(b+1)にとることができる理由を、配置の個数の評価から説明せよ。
- Savitch の定理の証明で、中間配置C′′をCの全体にわたって走査する必要がある理由を説明せよ。走査の代わりにC′′を記憶しておく方法が空間の評価を壊すことも述べよ。
- 定理 5.2 (Savitch の定理)からPSPACE=NPSPACEが従うのに対し、同じ論法でP=NPを導くことができない理由を述べよ。
解答 (演習の要点).
- 入力中のMは決定器とは限らず、停止しない模倣を待つと対角機械自身が決定器でなくなるためである。また、被模倣機械の段数ではなく対角機械自身の遷移数を制限しなければ、万能模倣の時間増加をO(T(n))の上界に収めることができない。
- n≥1ではr(n)2/T(n)=n4/n5=1/nであり、この比は0へ収束する。
- 配置数が2O(S(n))以下なので、配置数まで数える二進カウンタの桁数はO(S(n))である。
- 二つの定理は同じ種類の資源について異なる上界を比較する。時間と空間という異なる資源のクラスを相互に分離する定理ではない。
- 二箇所である。第一に、∣x∣<n0の場合の評価で、前処理の段数n0+1を(n0+1)t(∣x∣)で置き換える箇所である。第二に、∣x∣≥n0の場合の評価で、定数項2n0+1を(2n0+1)t(∣x∣)で置き換える箇所である。空間の場合も同様に、初期位置のkマスと定数Cをs(∣x∣)の定数倍へ吸収するために用いる。
- Cの要素数は2c(b+1)=2m以下である。Gxにおいて到達可能な頂点へは、頂点が相異なる路で到達することができ、その長さは頂点数から1を引いた値以下である。したがって長さは2m以下であり、TESTをi=mで呼び出せば十分である。
- TESTは中間配置の存在を主張するだけであり、どのC′′が正しいかは分からない。すべての候補を試すことでのみ、存在しないことを結論することができる。走査の代わりに再帰の各段で見つけたC′′を保持し続けると、保持する配置の個数が路の長さに比例し、最悪で2m個になる。これはO(b2)の空間評価を壊す。走査では、各段で一つの候補だけを保持し、次の候補へ進むときに前の候補を捨てるので、保持する符号の個数は再帰の深さで抑えられる。
- Savitch の定理の手続きは、空間を再利用して同じ部分問題を解き直すことによって空間の増加を二乗に抑えている。この解き直しは時間を指数へ増やす。したがって同じ構成から多項式時間の決定器を得ることはできず、P=NPは従わない。
▨