1 資源を測る機械モデル
空間を入力長と分けて測るためには、入力を置くテープと計算のために書き換えるテープを分けておかなければならない。そこで、§E18.4 定義 1.1の有限制御とテープ遷移をそのまま用いながら、テープの構成と資源の測り方を次のように定める。
定義 1.1. 資源計算量の決定性 Turing 機械 (deterministic Turing machine for resource complexity) は、読取り専用の入力テープを一つと、それとは別に有限本の読書き可能な一方向無限作業テープをもつ。状態集合、入力アルファベット、作業テープアルファベット、初期状態、受理状態、拒否状態は§E18.4 定義 1.1と同じ形で与える。遷移は、現在の状態、入力テープの走査記号、および各作業テープの走査記号から、次の状態、各作業テープへの書込み記号、入力ヘッドの移動命令、および各作業ヘッドの移動命令を定める。移動命令はL、R、Sであり、左端で左へ動く命令はヘッドを左端にとどめる。入力テープへは書き込まない。
長さnの入力xは、入力テープの位置0から位置n−1までへ一文字ずつ置く。n=0のときは入力記号を置かない。位置n以降のマスは空白記号である。入力ヘッドは位置0から位置nまでを動き、位置nで右へ動く命令はヘッドを位置nにとどめる。
この機械の配置 (configuration) は、現在の状態、入力ヘッドの位置、各作業テープの内容、および各作業ヘッドの位置の組である。入力ヘッドの位置は、作業テープの内容や作業ヘッドの位置と同じく配置の一部であり、遷移ごとに更新する。
有限アルファベットΣ上の入力x∈Σ∗の入力長 (input length) を∣x∣とする。全入力で停止する資源計算量の決定性 Turing 機械Mに対し、入力x上で停止するまでの遷移数をτM(x)とし、計算中に一度でも訪れた作業テープのマスの総数をσM(x)とする。作業テープが複数ある場合には、各テープで訪れたマス数の和をとる。作業空間は作業テープだけで測るものとし、入力テープのマスも入力ヘッドの位置も作業空間に数えない。
入力長nにおけるMの最悪時間計算量 (worst-case time complexity) と最悪空間計算量 (worst-case space complexity) を
TM(n)=x∈Σ∗,∣x∣=nmaxτM(x),SM(n)=x∈Σ∗,∣x∣=nmaxσM(x)と定める。Σは有限であるため、長さnの入力は有限個である。したがって右辺の最大値は存在する。
入力ヘッドの位置を配置に含めるのは、入力ヘッドの位置を有限制御で代用することができないからである。有限制御は入力長に依存しない有限集合であるのに対し、入力ヘッドの位置は長さnの入力に対して0からnまでを動く。上の定義で置く二つの規約、すなわち入力ヘッドの位置を配置に数えることと、作業空間には数えないことは、以下で配置の個数を評価する箇所と、対数空間のクラスを定める箇所の双方で用いる。
時間と空間は同じ量ではない。作業テープの同じマスを繰り返し使用すれば、長い時間をかけても空間は増えない。一方、一遷移では各作業テープのヘッドが高々一マスしか動かないため、固定本数の作業テープについて
SM(n)≤c(TM(n)+1)
となる定数cが存在する。
定義 1.2 (漸近的上界). 関数f,g:N→[0,∞)に対し、定数C>0とn0∈Nが存在し、すべてのn≥n0について
f(n)≤Cg(n)となるとき、gをfの 漸近的上界 (asymptotic upper bound) といい、f(n)=O(g(n))と書く。
有限個の小さい入力における計算量の値を変えても、O記法によるクラスは変わらない。ただし、TMとSMの定義に用いた最悪値を、平均値や特定の入力における値へ置き換えることはできない。
定義 1.3 (決定性時間・空間クラス). 関数t,s:N→Nに対して
DTIME(t)DSPACE(s)={L:L の決定器 M が存在して TM(n)=O(t(n))},={L:L の決定器 M が存在して SM(n)=O(s(n))}と定める。DTIME(t)を 決定性時間クラス (deterministic time class)、DSPACE(s)を 決定性空間クラス (deterministic space class) という。
記号TIMEとSPACEを決定性クラスに用いる文献もある。本記事では決定性を明示するため、DTIMEとDSPACEを用いる。
定義 1.4. 有限アルファベット上の言語のクラス
P=k≥1⋃DTIME(nk)を P (P) という。すなわち、有限アルファベットΣ上の言語L⊆Σ∗がPに属することと、ある正の整数kとLの決定器Dが存在して、長さnの入力におけるDの最悪時間がO(nk)であることは同値である。次数kは言語ごとに選ぶ。
2 構成可能な資源上界
階層定理や打切り計算では、上界を数式として書くだけでは足りない。機械が入力長から上界を生成し、生成した上界を時計または空間境界として使用することが必要になる。
定義 2.1. すべてのnについてt(n)≥1を満たす関数t:N→Nが時間構成可能 (time-constructible) であるとは、入力1nからt(n)の二進表記をO(t(n))時間で出力する決定性多テープ Turing 機械が存在することをいう。
すべてのnについてs(n)≥1を満たす関数s:N→Nが空間構成可能 (space-constructible) であるとは、入力1n上でちょうどs(n)個の作業テープマスを訪れて停止する決定性 Turing 機械が存在することをいう。
時間構成可能性を、入力1n上で所定の段数を数える時計の存在によって定義する文献もある。二つの定式化の違いの細部は、Turing 機械の段数の規約に依存するため、本記事では上界の二進表記をその上界以内の時間で生成する定式化を採用する。後続の定理で構成可能性を仮定するときには、採用した定式化を明記しなければならない。
命題 2.2. 各整数k≥1について、関数max{1,nk}は時間構成可能かつ空間構成可能である。また、⌈log2(n+2)⌉は空間構成可能である。
証明. 入力1nを一度走査してnの二進表記を得る。この計数にはO(n)時間とO(log(n+2))空間を要する。kは固定されているため、二進整数の筆算による乗算をk−1回行えばnkの二進表記を得る。各中間値のビット長はO(log(n+2))であり、筆算時間はO((log(n+2))2)の固定定数倍である。したがって全時間は
O(n+(log(n+2))2)=O(nk)であり、max{1,nk}は時間構成可能である。n=0の場合には有限制御から1を出力する。
空間構成可能性を示す。作業テープを一本だけ用い、初期ヘッド位置を位置0とする。固定したkに対し、二進整数n、nk、およびnk−nの計算と反復管理に必要なマス数はck⌈log2(n+2)⌉以下であるような定数ckが存在する。したがって、ある整数Nk≥2を選ぶと、すべてのn≥Nkについて
ck⌈log2(n+2)⌉<nとなる。kは固定されているため、必要な固定個数の二進レジスタは、有限個のトラックをもつ一つのテープアルファベットによって実装することができる。
最初に、入力長がNk未満であるかを有限制御で調べる。この判定中は作業ヘッドを初期位置0から動かさない。n<Nkならば、有限制御は入力長nを状態に保持しているので、状態列へ組み込んだmax{1,nk}−1回の右移動を実行して停止する。この分岐が訪れる作業マスは
{0,1,…,max{1,nk}−1}だけである。特にn=0とn=1では右へ動かず、初期位置0だけを訪れる。この処理は有限個の入力長ごとに有限個の状態を固定したものであり、追加の作業マスを使用しない。
n≥Nkならば、入力ヘッドを左端へ戻し、入力を再走査する。最初の1には既に訪れている作業位置0を対応させ、二文字目以後の各1を読むたびに作業ヘッドを一マス右へ動かす。走査後に訪問済みの作業マスはちょうど
In={0,1,…,n−1}であり、位置n−1に右端印を置く。入力をもう一度走査してnを二進レジスタへ記録し、固定回数の二進乗算と減算によってr=nk−nを計算する。上のNkの選び方により、これらのレジスタと演算用の印はすべてInの内部に収まり、右端印の外側を訪れない。
r>0の間、機械はIn内の二進レジスタでrを一つ減らし、現在の右端印まで訪問済み領域を走査する。次に、右端印を一マス右の未訪問マスへ移し、左端のレジスタへ戻る。一回の反復で新しく訪れる作業マスは、右端印の移動先の一マスだけである。この反復をnk−n回実行するので、停止時の訪問マス集合は
In∪{n,n+1,…,nk−1}={0,1,…,nk−1}であり、その個数は厳密にnkである。初期計数、二進算術、残数管理、および右端までの往復は、いずれも現在の右端より外側を訪れない。以上により、すべてのnでmax{1,nk}個の作業マスだけを訪れて停止する機械が得られる。
⌈log2(n+2)⌉については、初期値1の二進カウンタへ入力の各1に対して一を加える。最終値はn+1であり、その二進表記の桁数は
⌊log2(n+1)⌋+1=⌈log2(n+2)⌉である。桁が増えるときだけ新しい一マスを訪れるようにすれば、ちょうど指定個数のマスを訪れて停止する。▨
構成可能性は、任意の式で与えた関数に自動的に成り立つ条件ではない。後続の階層定理では、構成可能性を、時計や境界標識を機械内に実装するための仮定として明示する必要がある。
3 空間計算量クラスと時間との関係
時間と空間は独立した資源ではない。一遷移で新しく訪れる作業マスは各テープにつき高々一つであるから、空間は時間で上から抑えられる。逆向きには、使用する空間を制限すると、配置の個数が有限個に収まる。そのため、決定性計算が停止するまでの段数も、配置の個数で抑えられる。この節では、対数空間と多項式空間のクラスを定め、二つの向きの関係を証明する。
定義 3.1. 有限アルファベット上の言語のクラス
L=DSPACE(⌈log2(n+2)⌉),PSPACE=k≥1⋃DSPACE(nk)をそれぞれ L (L)(対数空間)、PSPACE (PSPACE)(多項式空間)という。
対数空間の基準として⌈log2(n+2)⌉を用いるのは、この関数がすべての入力長で1以上の値をとり、かつ命題 2.2により空間構成可能だからである。Lの定義は読取り専用入力テープを空間に数えない規約に依存する。入力を作業テープへ置いて数える規約では、空間が少なくとも入力長になるため、対数の空間上界をもつ計算は存在しない。
補題 3.2.定義 1.1の機械モデルにおいて、状態集合Q、作業テープの本数k≥1、および作業テープアルファベットΓを固定する。このとき、∣Q∣、k、∣Γ∣だけから定まる正の整数cが存在して、次の二つが成り立つ。
- 長さnの入力xと、b≥⌈log2(n+1)⌉を満たす非負整数bをとる。入力テープにxが置かれ、かつ各作業テープの訪問済み領域がbマス以下であるような配置の個数は、2c(b+1)以下である。
- この状態集合、テープ本数、およびテープアルファベットをもつ決定性 Turing 機械Mが、入力x上の計算の全時点で各作業テープの訪問済み領域をbマス以下に保ちながら2c(b+1)段以上の遷移を行い、その間に停止しないならば、Mはx上で停止しない。
証明.主張 (1)を示す。配置は、現在の状態、入力ヘッドの位置、各作業テープの内容、および各作業テープのヘッド位置の組である。状態は∣Q∣通りである。入力ヘッドの位置は0からnまでのn+1通りである。訪問済み領域がbマス以下である作業テープの内容は、位置0からb−1までの記号列によって定まり(それ以外のマスは空白記号である)、∣Γ∣b通り以下である。各作業テープのヘッド位置は0からbまでのb+1通り以下である。したがって配置の個数は
∣Q∣(n+1)((b+1)∣Γ∣b)k以下である。この個数の二進対数は
log2∣Q∣+log2(n+1)+klog2(b+1)+kblog2∣Γ∣である。仮定b≥⌈log2(n+1)⌉からlog2(n+1)≤bであり、b+1≤2b+1からlog2(b+1)≤b+1である。よって上の値は
log2∣Q∣+b+k(b+1)+kblog2∣Γ∣≤(log2∣Q∣+1+k+klog2∣Γ∣)(b+1)以下である。そこで
c=⌈log2∣Q∣+1+k+klog2∣Γ∣⌉と置く。log2∣Q∣≥0とk≥1からc≥2であり、cは正の整数である。天井関数は値を減らさないので、配置の個数は2c(b+1)以下である。このcは∣Q∣、k、∣Γ∣だけから定まり、nにもbにも依存しない。またbは非負整数であるから、c(b+1)は正の整数である。
主張 (2)を示す。仮定の下で、時刻0,1,…,2c(b+1)における配置を考える。これらは2c(b+1)+1個あり、いずれも主張 (1)の条件を満たす配置である。主張 (1)により相異なる配置は2c(b+1)個以下であるから、鳩の巣原理により、二つの相異なる時刻t1<t2で同じ配置が現れる。Mは決定性機械であるから、同一の配置から始まる以後の計算は一致する。したがって、時刻t1以後の配置列は周期t2−t1で反復し、時刻t1からt2−1までに現れた配置以外の配置は現れない。仮定によりこれらの配置は停止状態を含まないので、Mはx上で停止しない。▨
命題 3.3. すべてのnについてt(n)≥1を満たす関数t:N→Nに対し、
DTIME(t)⊆DSPACE(t)である。
証明.L∈DTIME(t)とし、TM(n)=O(t(n))を満たすLの決定器Mをとる。Mの作業テープの本数をkとする。一遷移で各作業テープのヘッドは高々一マスしか動かないので、初期位置を含めて、入力x上で訪れる作業マスの総数は
σM(x)≤k(τM(x)+1)を満たす。長さnの入力全体で最大値をとればSM(n)≤k(TM(n)+1)である。TM(n)=O(t(n))から、定数C>0とn0が存在してn≥n0でTM(n)≤Ct(n)であり、t(n)≥1とあわせて
SM(n)≤k(Ct(n)+1)≤k(C+1)t(n)(n≥n0)を得る。したがってSM(n)=O(t(n))である。MはLの決定器であるからL∈DSPACE(t)である。▨
命題 3.4. 関数s:N→Nがすべてのnについて
s(n)≥max{1,⌈log2(n+1)⌉}を満たすとする。L∈DSPACE(s)ならば、正の整数γが存在して
L∈DTIME(2γ(s(n)+1))である。
証明.SM(n)=O(s(n))を満たすLの決定器Mをとる。定数C>0とn0が存在して、n≥n0でSM(n)≤Cs(n)である。n<n0を満たすnは有限個であり、そのような各nについてSM(n)は有限の値である。s(n)≥1であるから、
C′=max({C,1}∪{SM(n):n<n0})と置けば、すべてのnについてSM(n)≤C′s(n)である。C′は正の整数としてよい。
入力xの長さをnとし、b=C′s(n)と置く。Mがx上で訪れる作業マスの総数はσM(x)≤SM(n)≤bであるから、各作業テープの訪問済み領域は計算の全時点でbマス以下である。またb≥s(n)≥⌈log2(n+1)⌉である。よって補題 3.2を適用することができる。同補題の定数をcとする。Mは決定器であるからx上で停止する。補題 3.2 (2)の対偶により、Mがx上で行う遷移数は2c(b+1)未満である。C′≥1からb+1=C′s(n)+1≤C′(s(n)+1)であり、
τM(x)<2c(b+1)≤2cC′(s(n)+1)である。右辺はnだけで定まるので、長さnの入力全体で最大値をとって
TM(n)≤2cC′(s(n)+1)を得る。γをcC′以上の正の整数とすればTM(n)≤2γ(s(n)+1)であり、とくにTM(n)=O(2γ(s(n)+1))である。関数n↦2γ(s(n)+1)はNからNへの関数であるから、L∈DTIME(2γ(s(n)+1))である。▨
系 3.5.
L⊆P⊆PSPACEである。
証明.O記法では有限個のnにおける値を無視するので、n≥1で一致する二つの関数から同じクラスが定められる。とくに、各k≥1について
DTIME(nk)=DTIME(max{1,nk}),DSPACE(nk)=DSPACE(max{1,nk})である。
最初にL⊆Pを示す。s(n)=⌈log2(n+2)⌉と置く。n+2≥2からs(n)≥1であり、n+2>n+1からs(n)≥⌈log2(n+1)⌉である。よって命題 3.4を適用することができ、L∈Lに対して正の整数γが存在してL∈DTIME(2γ(s(n)+1))である。ここでs(n)<log2(n+2)+1であるから
2γ(s(n)+1)<2γ(log2(n+2)+2)=4γ(n+2)γであり、n≥1ではn+2≤3nなので
2γ(s(n)+1)<4γ3γnγ(n≥1)である。したがってLの決定器の最悪時間はO(nγ)であり、L∈DTIME(nγ)⊆Pである。
次にP⊆PSPACEを示す。L∈Pとすると、あるk≥1についてL∈DTIME(nk)=DTIME(max{1,nk})である。関数max{1,nk}はすべてのnで1以上であるから、命題 3.3により
L∈DSPACE(max{1,nk})=DSPACE(nk)⊆PSPACEである。▨
この二つの包含が真であるかどうかは知られていない。L=Pであるかどうかも、P=PSPACEであるかどうかも未解決である。本記事ではどちらについても結論を主張しない。
4 単テープ模倣の資源上界
計算可能性だけを比較する場合には、模倣が有限時間で終わることを示せばよい。計算量を比較する場合には、元の機械の一段を模倣するために何段と何マスが必要かを数える。
定理 4.1. 固定したk≥1に対し、k本の作業テープをもつ決定性 Turing 機械Mから、一本の作業テープをもつ決定性 Turing 機械Uを構成することができる。各入力xについて、Mが時間τ、作業空間σで停止するなら、Uは同じ受理または拒否を
O(τ(σ+1)+1)時間、O(σ+1)作業空間で返す。特に、σ=O(τ+1)であるため、時間上界はO((τ+1)2)である。
証明. 各作業テープの有限な使用部分を、区切り記号を用いて
#u1#u2#⋯#uk#と一本の作業テープ上に符号化する。各uiでは、走査中の一文字だけに印を付ける。まだ訪れていない右側のマスは明示せず、ヘッドが右端を越えるときに空白記号を一つ挿入する。kとテープアルファベットは機械ごとに固定された有限集合である。
元の配置で訪問済みの作業マスが合計σ′個であるとき、符号の長さはσ′+O(k)である。Uは符号を左から右へ走査し、k個の印付き記号を有限制御に記録する。入力テープの走査記号とこれらの記号から、Mの次の状態、各書込み記号、および各ヘッドの移動方向を決定する。次の往復走査で書込みと印の移動を行う。右端への空白挿入が必要な場合には、右側の有限符号を一マスずつ移す。この移動も符号長に比例する時間で終わる。
したがって、Mの一段を模倣する時間はO(σ′+1)≤O(σ+1)であり、τ段全体はO(τ(σ+1)+1)時間で終わる。初期符号は各作業テープの左端空白を表す定数長の語であり、入力は別の読取り専用テープに残るので、初期化に入力全体の複写は要らない。
各模倣段の後の符号がMの対応する配置を表すことは、模倣段数に関する帰納法で従う。したがって、UはMと同じ時点に対応する符号で同じ受理状態または拒否状態へ移る。符号が占めるマス数は、訪問済み作業マス数に区切りと印の定数倍を加えたO(σ+1)である。
最後に、固定本数の各作業テープでは、一段につき高々一つの新しいマスを訪れる。したがってσ≤k(τ+1)であり、時間上界はO((τ+1)2)となる。▨
逆向きには、一本の作業テープをもつ機械をk本の作業テープをもつ機械としてそのまま実行し、残りのテープを使用しなければよい。時間と空間には定数以外の増加がない。
系 4.2. 作業テープの本数を任意の固定有限数から一本へ変更しても、Pは変わらない。また、s(n)≥1を満たす各空間上界sに対し、固定有限本の作業テープによるDSPACE(s)と一本の作業テープによるDSPACE(s)は、定数倍の空間差を除いて一致する。
証明.k本の作業テープで時間O(nd)を要する決定器へ定理 4.1を適用すると、一本の作業テープによる時間は
O((nd+1)2)=O(n2d)である。したがって、多テープで多項式時間なら単テープでも多項式時間である。逆向きの包含は、一本のテープを多テープ機械の第一作業テープとして使用する直接の模倣による。
空間について、同じ定理の符号はO(s(n)+1)マスしか使用しない。O記法では定数倍が吸収されるため、単テープと多テープで同じDSPACE(s)を得る。▨
この系で主張するのは、多項式時間というクラスの不変性である。任意の時間上界tについて、同じ言語を単テープでO(t)時間に決定することや、機械の変更だけで計算時間を任意の定数分の一に短縮することは主張しない。特に、多テープから単テープへの上の構成から得られる一般の上界は二乗時間である。
5 多項式時間の合成
帰着や前処理では、出力の長さも入力長の関数として評価する必要がある。
命題 5.1.f:Σ∗→Γ∗が決定性 Turing 機械によって多項式時間で計算され、B∈Pであるとする。このとき
A={x∈Σ∗:f(x)∈B}もPに属する。
証明.fの計算時間をO(nc)とし、Bの決定器の時間を入力長mに対してO(md)とする。出力を一文字書くには少なくとも一遷移を要するため、定数C>0が存在して
∣f(x)∣≤C(∣x∣c+1)である。
入力xから最初にf(x)を計算し、その出力をBの決定器の入力として実行する。多テープによるこの合成の時間は
O(nc)+O((nc+1)d)であり、多項式である。必要なら系 4.2によって一本の作業テープへ変換しても、多項式時間性は保たれる。受理条件はx∈Aとf(x)∈Bの同値によって正しい。▨
例 5.2. 正整数Nを二進表記で入力し、O(N2)段を要するアルゴリズムを考える。入力長を
n=⌊log2N⌋+1とすると、2n−1≤N<2nである。したがってN2は入力長に対して2Θ(n)であり、nの多項式ではない。O(N2)という評価は数値Nに関しては多項式であるが、二進符号長に関しては指数的である。
6 演習
問題 6.1.
- 一つの決定器について、特定の入力x上の時間τM(x)が小さくても、TM(∣x∣)が大きくなり得る例を説明せよ。
- O(n3)時間の関数fと、入力長mに対してO(m2)時間の決定器を合成したとき、合成時間の多項式上界を求めよ。出力長の上界も示せ。
- Σ={a,b}上の回文の全体PAL={x∈Σ∗:x=xR}を、一本の作業テープをもつ決定器でO(n+1)時間に決定する方法を与えよ。ここでxRはxを逆順に並べた語である。また、その決定器の作業空間を評価せよ。
- Mを二本の作業テープをもつ決定器とし、TM(n)=O(n2)、SM(n)=O(⌈log2(n+2)⌉)とする。定理 4.1により、Mと同じ言語を一本の作業テープでO(n2⌈log2(n+2)⌉)時間に決定することができることを示せ。また、この上界が同定理の後半の上界O((τ+1)2)から得られるO(n4)より真に小さい増大度をもつことを確かめよ。
- 3 のPALがLに属することを示せ。
- 命題 3.3の結論DTIME(t)⊆DSPACE(t)が、仮定t(n)≥1を外した任意の関数t:N≥0→N≥0についても成り立つことを示せ。
- 補題 3.2の二つの主張が、仮定b≥⌈log2(n+1)⌉を外すと成り立たないことを、b=1とした例で示せ。
- EXP=⋃k≥1DTIME(2nk)とする。PSPACE⊆EXPを示せ。
解答 (演習の要点).
-
TM(n)は長さnの入力全体にわたる最大値である。たとえば、先頭記号がaならば直ちに拒否し、そうでなければ入力をn回走査してから停止する決定器では、x=anにおける時間は定数であるが、先頭記号がaでない長さnの入力における時間はΘ(n2)である。したがってτM(x)が小さくてもTM(n)は大きい。
-
出力を一文字書くには少なくとも一遷移を要するので、定数Cについて∣f(x)∣≤C(n3+1)である。合成時間はO(n3)+O((n3+1)2)=O(n6)である。
-
作業テープの位置0に置く記号には印を付けて区別する。第一局面では、入力ヘッドを右へ動かしながら各入力記号を作業テープへ順に書き写し、作業ヘッドも右へ動かす。入力ヘッドが位置nの空白に達したら第二局面へ移り、入力ヘッドを一マス左へ動かして位置n−1に置き、作業ヘッドを印付きの位置0まで左へ戻す。第三局面では、入力ヘッドを左へ、作業ヘッドを右へ同時に一マスずつ動かしながら、両ヘッドの下の記号を比較する。作業ヘッドが空白に達するまでの各比較で一致すれば受理し、不一致があれば拒否する。n=0ならば直ちに受理する。第三局面の第i回目の比較では、作業ヘッドは位置iのxiを、入力ヘッドは位置n−1−iのxn−1−iを読むので、受理することと、すべてのi<nについてxi=xn−1−i、すなわちx∈PALであることは同値である。各局面の遷移数はn+1以下であるから、時間はO(n+1)である。作業ヘッドは位置0から位置nまでしか動かないので、作業空間はn+1以下である。入力テープが作業テープと別にあるので、入力ヘッドと作業ヘッドを逆向きに同時に動かして比較することができる。
-
同定理により、各入力で一本の作業テープの機械UはO(τ(σ+1)+1)時間で同じ結論を返す。定数C1,C2と十分大きいnについてτ≤C1n2、σ≤C2⌈log2(n+2)⌉であるから、τ(σ+1)+1≤C1n2(C2⌈log2(n+2)⌉+1)+1=O(n2⌈log2(n+2)⌉)である。一方、後半の上界はO((C1n2+1)2)=O(n4)である。n≥1で⌈log2(n+2)⌉≤n+1≤2nであり、n2⌈log2(n+2)⌉/n4≤2/n→0であるから、前者の増大度は真に小さい。作業空間が時間より小さい機械では、同定理の前半の評価のほうが精密である。
-
二進カウンタを作業テープに置いて次の決定器を作る。まず入力を一度走査して、入力長nを二進カウンタNに記録する。入力ヘッドの現在位置も二進カウンタHに保持し、ヘッドを一マス動かすたびにHを増減する。i=0,1,…について2i+1≤nである間、次を行う。H=iとなるまで入力ヘッドを動かしてxiを有限制御に記憶し、j=n−1−iを二進で計算してH=jとなるまで入力ヘッドを動かし、xjと比較する。不一致ならば拒否する。すべてのiで一致すれば受理する。受理することは、すべてのiについてxi=xn−1−iであること、すなわちx∈PALと同値である。
使用する二進カウンタはN,H,i,jと比較用の作業領域の固定個数であり、いずれの値もn以下であるから、各カウンタは⌈log2(n+2)⌉桁以下で表すことができる。よって作業空間はO(⌈log2(n+2)⌉)であり、各反復は有限回の移動で終わり、反復は⌈n/2⌉回であるから、決定器は全入力で停止する。したがってPAL∈Lである。入力テープは読取り専用で空間に数えないので、入力を書き写さずに位置だけを二進で保持することが、作業空間を対数に抑える。
-
資源計算量の機械の初期状態は受理状態と拒否状態のいずれとも異なるので、どの入力xでも停止までに少なくとも一遷移を行い、τM(x)≥1、したがってTM(n)≥1である。
t(n)=0を満たすnが無限個ある場合、L∈DTIME(t)の決定器Mが存在すると仮定すると、あるC,n0についてn≥n0でTM(n)≤Ct(n)であり、n≥n0かつt(n)=0を満たすnで1≤TM(n)≤0となって矛盾する。よってDTIME(t)=∅であり、包含は成り立つ。t(n)=0を満たすnが有限個である場合、あるn1についてn≥n1でt(n)≥1である。命題 3.3の証明と同じくSM(n)≤k(TM(n)+1)であり、n≥max{n0,n1}でSM(n)≤k(Ct(n)+1)≤k(C+1)t(n)である。有限個のnはO記法で無視されるのでSM(n)=O(t(n))であり、L∈DSPACE(t)である。
-
入力アルファベットを{a}、作業テープアルファベットを{a,⊔}とし、状態q0,qacc,qrejと作業テープ一本をもつ機械M0を考える。M0は状態q0で入力記号aを読むと作業テープの走査記号を書き直さずに作業ヘッドを動かさず、入力ヘッドを右へ動かしてq0にとどまり、入力の空白を読むと受理する。補題 3.2が∣Q∣=3、k=1、∣Γ∣=2に対して存在を主張する正の整数をcとする。補題はcの値を指定しないので、任意の正の整数cについて二つの主張がb=1で成り立たないことを示す。b=1では2c(b+1)=22cである。
長さnの入力anで、状態q0、作業テープ全空白、作業ヘッド位置0とし、入力ヘッド位置を0,…,nと変えた配置は、作業テープの訪問済み領域が1マスであり、互いに異なるn+1個の配置である。n≥22cならばn+1>2c(b+1)となり、第一の主張が成り立たない。またM0はan上で訪問済み領域を1マスに保ったままn+1遷移で受理して停止する。n≥22cならば、最初の22c遷移の間は入力ヘッドが入力記号の上にあるので停止せず、それでもM0は停止するので、第二の主張も成り立たない。仮定b≥⌈log2(n+1)⌉はn<2bを保証し、入力ヘッド位置の個数n+1を2b程度に抑えるために必要である。
-
L∈PSPACEとすると、あるk≥1についてL∈DSPACE(nk)=DSPACE(s)である。ここでs(n)=max{1,nk}であり、二つのクラスが等しいことは系 3.5の証明と同じくO記法による。n≥1ではs(n)=nk≥n≥⌈log2(n+1)⌉であり、n=0ではs(0)=1であるから、s(n)≥max{1,⌈log2(n+1)⌉}である。命題 3.4により、正の整数γが存在してL∈DTIME(2γ(s(n)+1))である。n≥max{2,2γ}ではγ(nk+1)≤2γnk≤nk+1であるから2γ(s(n)+1)≤2nk+1であり、L∈DTIME(2nk+1)⊆EXPである。
▨