§E15.10時間計算量と空間計算量

最終更新

決定可能性は、計算が有限時間で終わるかどうかだけを区別する。計算量理論では、入力の符号長を変数として、停止までの遷移数と計算中に必要な記憶領域を測る。本記事では、資源を測る機械モデルを定めたうえで、最悪時間と最悪空間、漸近的な上界、資源上界を機械自身が用意するための構成可能性を定義する。続いて、対数空間のクラスL\mathsf Lと多項式空間のクラスPSPACE\mathsf{PSPACE}を定め、空間を制限した計算の配置の個数を数えることによって、時間と空間の基本的な包含関係を証明する。さらに、作業テープを有限本から一本へ変更しても、多項式時間という分類が変わらないことを、模倣のオーバーヘッドを明示して証明する。

1 資源を測る機械モデル

空間を入力長と分けて測るためには、入力を置くテープと計算のために書き換えるテープを分けておかなければならない。そこで、§E15.4 定義 1.1の有限制御とテープ遷移をそのまま用いながら、テープの構成と資源の測り方を次のように定める。

定義 1.1. 資源計算量の決定性 Turing 機械 (deterministic Turing machine for resource complexity) は、読取り専用の入力テープを一つと、それとは別に有限本の読書き可能な一方向無限作業テープをもつ。状態集合、入力アルファベット、作業テープアルファベット、初期状態、受理状態、拒否状態は§E15.4 定義 1.1と同じ形で与える。遷移は、現在の状態、入力テープの走査記号、および各作業テープの走査記号から、次の状態、各作業テープへの書込み記号、入力ヘッドの移動命令、および各作業ヘッドの移動命令を定める。移動命令はLL、RR、SSであり、左端で左へ動く命令はヘッドを左端にとどめる。入力テープへは書き込まない。

長さnnの入力xxは、入力テープの位置00から位置n−1n-1までへ一文字ずつ置く。n=0n=0のときは入力記号を置かない。位置nn以降のマスは空白記号である。入力ヘッドは位置00から位置nnまでを動き、位置nnで右へ動く命令はヘッドを位置nnにとどめる。

この機械の配置 (configuration) は、現在の状態、入力ヘッドの位置、各作業テープの内容、および各作業ヘッドの位置の組である。入力ヘッドの位置は、作業テープの内容や作業ヘッドの位置と同じく配置の一部であり、遷移ごとに更新する。

有限アルファベットΣ\Sigma上の入力x∈Σ∗x\in\Sigma^*の入力長 (input length) を∣x∣|x|とする。全入力で停止する資源計算量の決定性 Turing 機械MMに対し、入力xx上で停止するまでの遷移数をτM(x)\tau_M(x)とし、計算中に一度でも訪れた作業テープのマスの総数をσM(x)\sigma_M(x)とする。作業テープが複数ある場合には、各テープで訪れたマス数の和をとる。作業空間は作業テープだけで測るものとし、入力テープのマスも入力ヘッドの位置も作業空間に数えない。

入力長nnにおけるMMの最悪時間計算量 (worst-case time complexity) と最悪空間計算量 (worst-case space complexity) を

TM(n)=max⁡x∈Σ∗, ∣x∣=nτM(x),SM(n)=max⁡x∈Σ∗, ∣x∣=nσM(x)T_M(n)=\max_{x\in\Sigma^*,\,|x|=n}\tau_M(x), \qquad S_M(n)=\max_{x\in\Sigma^*,\,|x|=n}\sigma_M(x)

と定める。Σ\Sigmaは有限であるため、長さnnの入力は有限個である。したがって右辺の最大値は存在する。

入力ヘッドの位置を配置に含めるのは、有限制御では代用することができないからである。有限制御は入力長に依存しない有限集合であるのに対し、入力ヘッドの位置は長さnnの入力に対して00からnnまでを動く。上の定義が置く二つの規約、すなわち入力ヘッドの位置を配置に数えることと、作業空間には数えないことは、以下で配置の個数を評価する箇所と、対数空間のクラスを定める箇所の双方で用いる。

時間と空間は同じ量ではない。作業テープの同じマスを繰り返し使用すれば、長い時間をかけても空間は増えない。一方、一遷移では各作業テープのヘッドが高々一マスしか動かないため、固定本数の作業テープについて

SM(n)≤c(TM(n)+1)S_M(n)\le c\bigl(T_M(n)+1\bigr)

となる定数ccが存在する。

定義 1.2 (漸近的上界). 関数f,g ⁣:N→[0,∞)f,g\colon\mathbb N\to[0,\infty)に対し、定数C>0C>0とn0∈Nn_0\in\mathbb Nが存在し、すべてのn≥n0n\ge n_0について

f(n)≤Cg(n)f(n)\le Cg(n)

となるとき、ggをffの 漸近的上界 (asymptotic upper bound) といい、f(n)=O(g(n))f(n)=O(g(n))と書く。

有限個の小さい入力における計算量は、OO記法によるクラスを変えない。ただし、最悪値を平均値や特定の入力における値へ置き換えることができない。

定義 1.3 (決定性時間・空間クラス). 関数t,s ⁣:N→Nt,s\colon\mathbb N\to\mathbb Nに対して

DTIME(t)={L:L の決定器 M が存在して TM(n)=O(t(n))},DSPACE(s)={L:L の決定器 M が存在して SM(n)=O(s(n))}\begin{aligned} \mathsf{DTIME}(t) &=\{L:\text{$L$ の決定器 $M$ が存在して }T_M(n)=O(t(n))\},\\ \mathsf{DSPACE}(s) &=\{L:\text{$L$ の決定器 $M$ が存在して }S_M(n)=O(s(n))\} \end{aligned}

と定める。DTIME(t)\mathsf{DTIME}(t)を 決定性時間クラス (deterministic time class)、DSPACE(s)\mathsf{DSPACE}(s)を 決定性空間クラス (deterministic space class) という。

記号TIME\mathsf{TIME}とSPACE\mathsf{SPACE}を決定性クラスに用いる文献もある。本記事では決定性を明示するため、DTIME\mathsf{DTIME}とDSPACE\mathsf{DSPACE}を用いる。

定義 1.4. 有限アルファベット上の言語のクラス

P=⋃k≥1DTIME(nk)\mathsf P=\bigcup_{k\ge 1}\mathsf{DTIME}(n^k)

を P (P) という。すなわち、有限アルファベットΣ\Sigma上の言語L⊆Σ∗L\subseteq\Sigma^*がP\mathsf Pに属することと、ある正の整数kkとLLの決定器DDが存在して、長さnnの入力におけるDDの最悪時間がO(nk)O(n^k)であることは同値である。次数kkは言語ごとに選ぶ。

2 構成可能な資源上界

階層定理や打切り計算では、上界を数式として書くだけでは足りない。機械が入力長から上界を生成し、時計または空間境界として使用することが必要になる。

定義 2.1. すべてのnnについてt(n)≥1t(n)\ge1を満たす関数t ⁣:N→Nt\colon\mathbb N\to\mathbb Nが時間構成可能 (time-constructible) であるとは、入力1n1^nからt(n)t(n)の二進表記をO(t(n))O(t(n))時間で出力する決定性多テープ Turing 機械が存在することをいう。

すべてのnnについてs(n)≥1s(n)\ge1を満たす関数s ⁣:N→Ns\colon\mathbb N\to\mathbb Nが空間構成可能 (space-constructible) であるとは、入力1n1^n上でちょうどs(n)s(n)個の作業テープマスを訪れて停止する決定性 Turing 機械が存在することをいう。

時間構成可能性を、入力1n1^n上で所定の段数を数える時計の存在によって定義する文献もある。細部は Turing 機械の段数の規約に依存するため、本記事では上界の二進表記をその上界以内の時間で生成する定式化を採用する。後続の定理で構成可能性を仮定するときには、採用した定式化を明記しなければならない。

命題 2.2. 各整数k≥1k\ge 1について、関数max⁡{1,nk}\max\{1,n^k\}は時間構成可能かつ空間構成可能である。また、⌈log⁡2(n+2)⌉\lceil\log_2(n+2)\rceilは空間構成可能である。

証明. 入力1n1^nを一度走査してnnの二進表記を得る。この計数にはO(n)O(n)時間とO(log⁡(n+2))O(\log(n+2))空間を要する。kkは固定されているため、二進整数の筆算による乗算をk−1k-1回行えばnkn^kの二進表記を得る。各中間値のビット長はO(log⁡(n+2))O(\log(n+2))であり、筆算時間はO((log⁡(n+2))2)O((\log(n+2))^2)の固定定数倍である。したがって全時間は

O(n+(log⁡(n+2))2)=O(nk)O\bigl(n+(\log(n+2))^2\bigr)=O(n^k)

であり、max⁡{1,nk}\max\{1,n^k\}は時間構成可能である。n=0n=0の場合には有限制御から11を出力する。

空間構成可能性を示す。作業テープを一本だけ用い、初期ヘッド位置を位置00とする。固定したkkに対し、二進整数nn、nkn^k、およびnk−nn^k-nの計算と反復管理に必要なマス数はck⌈log⁡2(n+2)⌉c_k\lceil\log_2(n+2)\rceil以下であるような定数ckc_kが存在する。したがって、ある整数Nk≥2N_k\ge2を選ぶと、すべてのn≥Nkn\ge N_kについて

ck⌈log⁡2(n+2)⌉<nc_k\lceil\log_2(n+2)\rceil<n

となる。kkは固定されているため、必要な固定個数の二進レジスタは、有限個のトラックをもつ一つのテープアルファベットによって実装することができる。

最初に、入力長がNkN_k未満であるかを有限制御で調べる。この判定中は作業ヘッドを初期位置00から動かさない。n<Nkn<N_kならば、有限制御は入力長nnを状態に保持しているので、状態列へ組み込んだmax⁡{1,nk}−1\max\{1,n^k\}-1回の右移動を実行して停止する。この分岐が訪れる作業マスは

{0,1,…,max⁡{1,nk}−1}\{0,1,\ldots,\max\{1,n^k\}-1\}

だけである。特にn=0n=0とn=1n=1では右へ動かず、初期位置00だけを訪れる。この処理は有限個の入力長ごとに有限個の状態を固定したものであり、追加の作業マスを使用しない。

n≥Nkn\ge N_kならば、入力ヘッドを左端へ戻し、入力を再走査する。最初の11には既に訪れている作業位置00を対応させ、二文字目以後の各11を読むたびに作業ヘッドを一マス右へ動かす。走査後に訪問済みの作業マスはちょうど

In={0,1,…,n−1}I_n=\{0,1,\ldots,n-1\}

であり、位置n−1n-1に右端印を置く。入力をもう一度走査してnnを二進レジスタへ記録し、固定回数の二進乗算と減算によってr=nk−nr=n^k-nを計算する。上のNkN_kの選び方により、これらのレジスタと演算用の印はすべてInI_nの内部に収まり、右端印の外側を訪れない。

r>0r>0の間、機械はInI_n内の二進レジスタでrrを一つ減らし、現在の右端印まで訪問済み領域を走査する。次に、右端印を一マス右の未訪問マスへ移し、左端のレジスタへ戻る。一回の反復で新しく訪れる作業マスは、右端印の移動先の一マスだけである。この反復をnk−nn^k-n回実行するので、停止時の訪問マス集合は

In∪{n,n+1,…,nk−1}={0,1,…,nk−1}I_n\cup\{n,n+1,\ldots,n^k-1\} =\{0,1,\ldots,n^k-1\}

であり、その個数は厳密にnkn^kである。初期計数、二進算術、残数管理、および右端までの往復は、いずれも現在の右端より外側を訪れない。以上により、すべてのnnでmax⁡{1,nk}\max\{1,n^k\}個の作業マスだけを訪れて停止する機械が得られる。

⌈log⁡2(n+2)⌉\lceil\log_2(n+2)\rceilについては、初期値11の二進カウンタへ入力の各11に対して一を加える。最終値はn+1n+1であり、その二進表記の桁数は

⌊log⁡2(n+1)⌋+1=⌈log⁡2(n+2)⌉\lfloor\log_2(n+1)\rfloor+1 =\lceil\log_2(n+2)\rceil

である。桁が増えるときだけ新しい一マスを訪れるようにすれば、ちょうど指定個数のマスを訪れて停止する。▨

構成可能性は、任意の式で与えた関数に自動的に成り立つ条件ではない。後続の階層定理では、時計や境界標識を機械内に実装するための仮定として明示する必要がある。

3 空間計算量クラスと時間との関係

時間と空間は独立した資源ではない。一遷移で新しく訪れる作業マスは各テープにつき高々一つであるから、空間は時間で上から抑えられる。逆向きには、使用する空間を制限すると配置の個数が有限個に収まり、決定性計算が停止するまでの段数もその個数で抑えられる。この節では、対数空間と多項式空間のクラスを定め、二つの向きの関係を証明する。

定義 3.1. 有限アルファベット上の言語のクラス

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

をそれぞれ L (L)(対数空間)、PSPACE (PSPACE)(多項式空間)という。

対数空間の基準として⌈log⁡2(n+2)⌉\lceil\log_2(n+2)\rceilを用いるのは、この関数がすべての入力長で11以上の値をとり、かつ命題 2.2により空間構成可能だからである。L\mathsf Lの定義は読取り専用入力テープを空間に数えない規約に依存する。入力を作業テープへ置いて数える規約では、空間が少なくとも入力長になるため、対数の空間上界をもつ計算は存在しない。

補題 3.2.定義 1.1の機械モデルにおいて、状態集合QQ、作業テープの本数k≥1k\ge 1、および作業テープアルファベットΓ\Gammaを固定する。このとき、∣Q∣|Q|、kk、∣Γ∣|\Gamma|だけから定まる正の整数ccが存在して、次の二つが成り立つ。

  1. 長さnnの入力xxと、b≥⌈log⁡2(n+1)⌉b\ge\lceil\log_2(n+1)\rceilを満たす非負整数bbをとる。入力テープにxxが置かれ、かつ各作業テープの訪問済み領域がbbマス以下であるような配置の個数は、2c(b+1)2^{c(b+1)}以下である。
  2. この状態集合、テープ本数、およびテープアルファベットをもつ決定性 Turing 機械MMが、入力xx上の計算の全時点で各作業テープの訪問済み領域をbbマス以下に保ちながら2c(b+1)2^{c(b+1)}段以上の遷移を行い、その間に停止しないならば、MMはxx上で停止しない。

証明.(1)を示す。配置は、現在の状態、入力ヘッドの位置、各作業テープの内容、および各作業テープのヘッド位置の組である。状態は∣Q∣|Q|通りである。入力ヘッドの位置は00からnnまでのn+1n+1通りである。訪問済み領域がbbマス以下である作業テープの内容は、位置00からb−1b-1までの記号列によって定まり(それ以外のマスは空白記号である)、∣Γ∣b|\Gamma|^b通り以下である。各作業テープのヘッド位置は00からbbまでのb+1b+1通り以下である。したがって配置の個数は

∣Q∣ (n+1)((b+1) ∣Γ∣b)k|Q|\,(n+1)\bigl((b+1)\,|\Gamma|^{b}\bigr)^{k}

以下である。この個数の二進対数は

log⁡2∣Q∣+log⁡2(n+1)+klog⁡2(b+1)+kblog⁡2∣Γ∣\log_2|Q|+\log_2(n+1)+k\log_2(b+1)+kb\log_2|\Gamma|

である。仮定b≥⌈log⁡2(n+1)⌉b\ge\lceil\log_2(n+1)\rceilからlog⁡2(n+1)≤b\log_2(n+1)\le bであり、b+1≤2b+1b+1\le 2^{b+1}からlog⁡2(b+1)≤b+1\log_2(b+1)\le b+1である。よって上の値は

log⁡2∣Q∣+b+k(b+1)+kblog⁡2∣Γ∣≤(log⁡2∣Q∣+1+k+klog⁡2∣Γ∣)(b+1)\log_2|Q|+b+k(b+1)+kb\log_2|\Gamma| \le\bigl(\log_2|Q|+1+k+k\log_2|\Gamma|\bigr)(b+1)

以下である。そこで

c=⌈log⁡2∣Q∣+1+k+klog⁡2∣Γ∣⌉c=\bigl\lceil\log_2|Q|+1+k+k\log_2|\Gamma|\bigr\rceil

と置く。log⁡2∣Q∣≥0\log_2|Q|\ge 0とk≥1k\ge 1からc≥2c\ge 2であり、ccは正の整数である。天井関数は値を減らさないので、配置の個数は2c(b+1)2^{c(b+1)}以下である。このccは∣Q∣|Q|、kk、∣Γ∣|\Gamma|だけから定まり、nnにもbbにも依存しない。またbbは非負整数であるから、c(b+1)c(b+1)は正の整数である。

(2)を示す。仮定の下で、時刻0,1,…,2c(b+1)0,1,\ldots,2^{c(b+1)}における配置を考える。これらは2c(b+1)+12^{c(b+1)}+1個あり、いずれも(1)の条件を満たす配置である。(1)により相異なる配置は2c(b+1)2^{c(b+1)}個以下であるから、鳩の巣原理により、二つの相異なる時刻t1<t2t_1<t_2で同じ配置が現れる。MMは決定性機械であるから、同一の配置から始まる以後の計算は一致する。したがって、時刻t1t_1以後の配置列は周期t2−t1t_2-t_1で反復し、時刻t1t_1からt2−1t_2-1までに現れた配置以外の配置は現れない。仮定によりこれらの配置は停止状態を含まないので、MMはxx上で停止しない。▨

命題 3.3. すべてのnnについてt(n)≥1t(n)\ge 1を満たす関数t ⁣:N→Nt\colon\mathbb N\to\mathbb Nに対し、

DTIME(t)⊆DSPACE(t)\mathsf{DTIME}(t)\subseteq\mathsf{DSPACE}(t)

である。

証明.L∈DTIME(t)L\in\mathsf{DTIME}(t)とし、TM(n)=O(t(n))T_M(n)=O(t(n))を満たすLLの決定器MMをとる。MMの作業テープの本数をkkとする。一遷移で各作業テープのヘッドは高々一マスしか動かないので、初期位置を含めて、入力xx上で訪れる作業マスの総数は

σM(x)≤k(τM(x)+1)\sigma_M(x)\le k\bigl(\tau_M(x)+1\bigr)

を満たす。長さnnの入力全体で最大値をとればSM(n)≤k(TM(n)+1)S_M(n)\le k(T_M(n)+1)である。TM(n)=O(t(n))T_M(n)=O(t(n))から、定数C>0C>0とn0n_0が存在してn≥n0n\ge n_0でTM(n)≤Ct(n)T_M(n)\le Ct(n)であり、t(n)≥1t(n)\ge 1とあわせて

SM(n)≤k(Ct(n)+1)≤k(C+1) t(n)(n≥n0)S_M(n)\le k\bigl(Ct(n)+1\bigr)\le k(C+1)\,t(n) \qquad(n\ge n_0)

を得る。したがってSM(n)=O(t(n))S_M(n)=O(t(n))である。MMはLLの決定器であるからL∈DSPACE(t)L\in\mathsf{DSPACE}(t)である。▨

命題 3.4. 関数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\}

を満たすとする。L∈DSPACE(s)L\in\mathsf{DSPACE}(s)ならば、正の整数γ\gammaが存在して

L∈DTIME(2γ(s(n)+1))L\in\mathsf{DTIME}\bigl(2^{\gamma(s(n)+1)}\bigr)

である。

証明.SM(n)=O(s(n))S_M(n)=O(s(n))を満たすLLの決定器MMをとる。定数C>0C>0とn0n_0が存在して、n≥n0n\ge n_0でSM(n)≤Cs(n)S_M(n)\le Cs(n)である。n<n0n<n_0を満たすnnは有限個であり、そのような各nnについてSM(n)S_M(n)は有限の値である。s(n)≥1s(n)\ge 1であるから、

C′=max⁡({C,1}∪{SM(n):n<n0})C'=\max\Bigl(\{C,1\}\cup\{S_M(n):n<n_0\}\Bigr)

と置けば、すべてのnnについてSM(n)≤C′s(n)S_M(n)\le C's(n)である。C′C'は正の整数としてよい。

入力xxの長さをnnとし、b=C′s(n)b=C's(n)と置く。MMがxx上で訪れる作業マスの総数はσM(x)≤SM(n)≤b\sigma_M(x)\le S_M(n)\le bであるから、各作業テープの訪問済み領域は計算の全時点でbbマス以下である。またb≥s(n)≥⌈log⁡2(n+1)⌉b\ge s(n)\ge\lceil\log_2(n+1)\rceilである。よって補題 3.2を適用することができる。同補題の定数をccとする。MMは決定器であるからxx上で停止する。補題 3.2 (2)の対偶により、MMがxx上で行う遷移数は2c(b+1)2^{c(b+1)}未満である。C′≥1C'\ge 1からb+1=C′s(n)+1≤C′(s(n)+1)b+1=C's(n)+1\le C'(s(n)+1)であり、

τM(x)<2c(b+1)≤2cC′(s(n)+1)\tau_M(x)<2^{c(b+1)}\le 2^{cC'(s(n)+1)}

である。右辺はnnだけで定まるので、長さnnの入力全体で最大値をとって

TM(n)≤2cC′(s(n)+1)T_M(n)\le 2^{cC'(s(n)+1)}

を得る。γ\gammaをcC′cC'以上の正の整数とすればTM(n)≤2γ(s(n)+1)T_M(n)\le 2^{\gamma(s(n)+1)}であり、とくにTM(n)=O(2γ(s(n)+1))T_M(n)=O(2^{\gamma(s(n)+1)})である。関数n↦2γ(s(n)+1)n\mapsto 2^{\gamma(s(n)+1)}はN\mathbb NからN\mathbb Nへの関数であるから、L∈DTIME(2γ(s(n)+1))L\in\mathsf{DTIME}(2^{\gamma(s(n)+1)})である。▨

系 3.5.

L⊆P⊆PSPACE\mathsf L\subseteq\mathsf P\subseteq\mathsf{PSPACE}

である。

証明.OO記法は有限個のnnにおける値を無視するので、n≥1n\ge 1で一致する二つの関数は同じクラスを定める。とくに、各k≥1k\ge 1について

DTIME(nk)=DTIME(max⁡{1,nk}),DSPACE(nk)=DSPACE(max⁡{1,nk})\mathsf{DTIME}(n^k)=\mathsf{DTIME}(\max\{1,n^k\}), \qquad \mathsf{DSPACE}(n^k)=\mathsf{DSPACE}(\max\{1,n^k\})

である。

最初にL⊆P\mathsf L\subseteq\mathsf Pを示す。s(n)=⌈log⁡2(n+2)⌉s(n)=\lceil\log_2(n+2)\rceilと置く。n+2≥2n+2\ge 2からs(n)≥1s(n)\ge 1であり、n+2>n+1n+2>n+1からs(n)≥⌈log⁡2(n+1)⌉s(n)\ge\lceil\log_2(n+1)\rceilである。よって命題 3.4を適用することができ、L∈LL\in\mathsf Lに対して正の整数γ\gammaが存在してL∈DTIME(2γ(s(n)+1))L\in\mathsf{DTIME}(2^{\gamma(s(n)+1)})である。ここでs(n)<log⁡2(n+2)+1s(n)<\log_2(n+2)+1であるから

2γ(s(n)+1)<2γ(log⁡2(n+2)+2)=4γ(n+2)γ2^{\gamma(s(n)+1)}<2^{\gamma(\log_2(n+2)+2)}=4^{\gamma}(n+2)^{\gamma}

であり、n≥1n\ge 1ではn+2≤3nn+2\le 3nなので

2γ(s(n)+1)<4γ3γnγ(n≥1)2^{\gamma(s(n)+1)}<4^{\gamma}3^{\gamma}n^{\gamma} \qquad(n\ge 1)

である。したがってLLの決定器の最悪時間はO(nγ)O(n^{\gamma})であり、L∈DTIME(nγ)⊆PL\in\mathsf{DTIME}(n^{\gamma})\subseteq\mathsf Pである。

次にP⊆PSPACE\mathsf P\subseteq\mathsf{PSPACE}を示す。L∈PL\in\mathsf Pとすると、あるk≥1k\ge 1についてL∈DTIME(nk)=DTIME(max⁡{1,nk})L\in\mathsf{DTIME}(n^k)=\mathsf{DTIME}(\max\{1,n^k\})である。関数max⁡{1,nk}\max\{1,n^k\}はすべてのnnで11以上であるから、命題 3.3により

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

である。▨

この二つの包含が真であるかどうかは知られていない。L=P\mathsf L=\mathsf Pであるかどうかも、P=PSPACE\mathsf P=\mathsf{PSPACE}であるかどうかも未解決である。本記事はどちらについても結論を主張しない。

4 単テープ模倣の資源上界

計算可能性だけを比較する場合には、模倣が有限時間で終わることを示せばよい。計算量を比較する場合には、元の一段を模倣するために何段と何マスが必要かを数える。

定理 4.1. 固定したk≥1k\ge 1に対し、kk本の作業テープをもつ決定性 Turing 機械MMから、一本の作業テープをもつ決定性 Turing 機械UUを構成することができる。各入力xxについて、MMが時間τ\tau、作業空間σ\sigmaで停止するなら、UUは同じ受理または拒否を

O(τ(σ+1)+1)時間、O(σ+1)作業空間O\bigl(\tau(\sigma+1)+1\bigr) \quad\text{時間、}\quad O(\sigma+1)\quad\text{作業空間}

で返す。特に、σ=O(τ+1)\sigma=O(\tau+1)であるため、時間上界はO((τ+1)2)O((\tau+1)^2)である。

証明. 各作業テープの有限な使用部分を、区切り記号を用いて

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

と一本の作業テープ上に符号化する。各uiu_iでは、走査中の一文字だけに印を付ける。まだ訪れていない右側のマスは明示せず、ヘッドが右端を越えるときに空白記号を一つ挿入する。kkとテープアルファベットは機械ごとに固定された有限集合である。

元の配置で訪問済みの作業マスが合計σ′\sigma'個であるとき、符号の長さはσ′+O(k)\sigma'+O(k)である。UUは符号を左から右へ走査し、kk個の印付き記号を有限制御に記録する。入力テープの走査記号とこれらの記号から、MMの次の状態、各書込み記号、および各ヘッドの移動方向を決定する。次の往復走査で書込みと印の移動を行う。右端への空白挿入が必要な場合には、右側の有限符号を一マスずつ移す。この移動も符号長に比例する時間で終わる。

したがって、MMの一段を模倣する時間はO(σ′+1)≤O(σ+1)O(\sigma'+1)\le O(\sigma+1)であり、τ\tau段全体はO(τ(σ+1)+1)O(\tau(\sigma+1)+1)時間で終わる。初期符号は各作業テープの左端空白を表す定数長の語であり、入力は別の読取り専用テープに残るので、初期化に入力全体の複写は要らない。

各模倣段の後の符号がMMの対応する配置を表すことは、模倣段数に関する帰納法で従う。したがって、UUはMMと同じ時点に対応する符号で同じ受理状態または拒否状態へ移る。符号が占めるマス数は、訪問済み作業マス数に区切りと印の定数倍を加えたO(σ+1)O(\sigma+1)である。

最後に、固定本数の各作業テープでは、一段につき高々一つの新しいマスを訪れる。したがってσ≤k(τ+1)\sigma\le k(\tau+1)であり、時間上界はO((τ+1)2)O((\tau+1)^2)となる。▨

逆向きには、一本の作業テープをもつ機械をkk本の作業テープをもつ機械としてそのまま実行し、残りのテープを使用しなければよい。時間と空間には定数以外の増加がない。

系 4.2. 作業テープの本数を任意の固定有限数から一本へ変更しても、P\mathsf Pは変わらない。また、s(n)≥1s(n)\ge 1を満たす各空間上界ssに対し、固定有限本の作業テープによるDSPACE(s)\mathsf{DSPACE}(s)と一本の作業テープによるDSPACE(s)\mathsf{DSPACE}(s)は、定数倍の空間差を除いて一致する。

証明.kk本の作業テープで時間O(nd)O(n^d)を要する決定器へ定理 4.1を適用すると、一本の作業テープによる時間は

O((nd+1)2)=O(n2d)O\bigl((n^d+1)^2\bigr)=O(n^{2d})

である。したがって、多テープで多項式時間なら単テープでも多項式時間である。逆向きの包含は、一本のテープを多テープ機械の第一作業テープとして使用する直接の模倣による。

空間について、同じ定理の符号はO(s(n)+1)O(s(n)+1)マスしか使用しない。OO記法は定数倍を吸収するため、単テープと多テープで同じDSPACE(s)\mathsf{DSPACE}(s)を得る。▨

この系は多項式時間というクラスの不変性を述べる。任意の時間上界ttについて、同じ言語を単テープでO(t)O(t)時間に決定することや、機械の変更だけで任意の定数倍を短縮することは主張していない。特に、多テープから単テープへの上の構成が与える一般上界は二乗時間である。

5 多項式時間の合成

帰着や前処理では、出力の長さも入力長の関数として評価する必要がある。

命題 5.1.f ⁣:Σ∗→Γ∗f\colon\Sigma^*\to\Gamma^*が決定性 Turing 機械によって多項式時間で計算され、B∈PB\in\mathsf Pであるとする。このとき

A={x∈Σ∗:f(x)∈B}A=\{x\in\Sigma^*:f(x)\in B\}

もP\mathsf Pに属する。

証明.ffの計算時間をO(nc)O(n^c)とし、BBの決定器の時間を入力長mmに対してO(md)O(m^d)とする。出力を一文字書くには少なくとも一遷移を要するため、定数C>0C>0が存在して

∣f(x)∣≤C(∣x∣c+1)|f(x)|\le C(|x|^c+1)

である。

入力xxから最初にf(x)f(x)を計算し、その出力をBBの決定器の入力として実行する。多テープによるこの合成の時間は

O(nc)+O((nc+1)d)O(n^c)+O\bigl((n^c+1)^d\bigr)

であり、多項式である。必要なら系 4.2によって一本の作業テープへ変換しても、多項式時間性は保たれる。受理条件はx∈Ax\in Aとf(x)∈Bf(x)\in Bの同値によって正しい。▨

例 5.2 (二進入力に対する擬多項式時間). 正整数NNを二進表記で入力し、O(N2)O(N^2)段を要するアルゴリズムを考える。入力長を

n=⌊log⁡2N⌋+1n=\lfloor\log_2N\rfloor+1

とすると、2n−1≤N<2n2^{n-1}\le N<2^nである。したがってN2N^2は入力長に対して2Θ(n)2^{\Theta(n)}であり、nnの多項式ではない。O(N2)O(N^2)という評価は数値NNに関しては多項式であるが、二進符号長に関しては指数的である。

7 演習

問題 7.1.

  1. 一つの決定器について、特定の入力xx上の時間τM(x)\tau_M(x)が小さくても、TM(∣x∣)T_M(|x|)が大きくなり得る例を説明せよ。
  2. O(n3)O(n^3)時間の関数ffと、入力長mmに対してO(m2)O(m^2)時間の決定器を合成したとき、合成時間の多項式上界を求めよ。出力長の上界も示せ。
  3. 定理 4.1で、元の一段を模倣するたびに符号全体を走査する必要がある理由を説明し、時間上界O((τ+1)2)O((\tau+1)^2)を導け。
  4. 「多テープ機械を単テープ機械へ変換しても、すべての時間上界が定数倍まで保存される」という主張が、本記事の定理から従わない理由を述べよ。
  5. 読取り専用入力テープを空間に数えない規約と、入力を作業テープ上に置いて数える規約とで、対数空間という主張がどのように変わるかを説明せよ。
  6. 命題 3.3の証明で、仮定t(n)≥1t(n)\ge 1を用いる箇所を指摘せよ。
  7. 補題 3.2 (1)において、仮定b≥⌈log⁡2(n+1)⌉b\ge\lceil\log_2(n+1)\rceilが入力ヘッド位置の寄与をどのように吸収するかを説明せよ。
  8. 対数空間の決定器が多項式時間で停止することを、配置の個数の評価から導け。
解答 (演習の要点).
  1. TM(n)T_M(n)は長さnnの入力全体にわたる最大値である。たとえば、先頭記号がaaならば直ちに拒否し、そうでなければ入力をnn回走査してから停止する決定器では、x=anx=a^nにおける時間は定数であるが、先頭記号がaaでない長さnnの入力における時間はΘ(n2)\Theta(n^2)である。したがってτM(x)\tau_M(x)が小さくてもTM(n)T_M(n)は大きい。
  2. 出力を一文字書くには少なくとも一遷移を要するので、定数CCについて∣f(x)∣≤C(n3+1)|f(x)|\le C(n^3+1)である。合成時間はO(n3)+O((n3+1)2)=O(n6)O(n^3)+O((n^3+1)^2)=O(n^6)である。
  3. 単テープ上の符号では、kk個のヘッド位置が符号全体に散らばる。一段の遷移を決めるには全てのヘッド下の記号を集める必要があり、単テープのヘッドはそれらの間を移動しなければならない。符号長はO(σ+1)O(\sigma+1)であるから一段の模倣はO(σ+1)O(\sigma+1)時間であり、τ\tau段ではO(τ(σ+1)+1)O(\tau(\sigma+1)+1)時間である。σ≤k(τ+1)\sigma\le k(\tau+1)を代入するとO((τ+1)2)O((\tau+1)^2)を得る。
  4. 定理 4.1が与える上界はO(τ(σ+1)+1)O(\tau(\sigma+1)+1)であり、σ\sigmaがτ\tauに比例する場合には二乗になる。定理は各時間上界の定数倍保存を主張していない。系 4.2が主張するのは、多項式時間というクラスがテープ本数によらないことだけである。
  5. 読取り専用入力テープを数えない規約では、⌈log⁡2(n+2)⌉\lceil\log_2(n+2)\rceil程度の作業空間をもつ計算のクラスL\mathsf Lが定まる。入力を作業テープへ置いて数える規約では、入力を読むだけで少なくともnnマスを訪れるので、空間上界がnn未満である計算は存在せず、対数空間という条件は満たされない。
  6. SM(n)≤k(Ct(n)+1)S_M(n)\le k(Ct(n)+1)からSM(n)≤k(C+1)t(n)S_M(n)\le k(C+1)t(n)を導く箇所で用いる。この不等式は定数項11をt(n)t(n)で置き換えることによって得られ、その置き換えが正当であるのはt(n)≥1t(n)\ge 1のときだけである。ttが無限個のnnで00をとる場合には、遷移を一度も行わない計算でも初期位置のマスを訪れるため、この置き換えを行うことができない。
  7. 配置の個数の評価には入力ヘッド位置のn+1n+1通りが掛かる。その二進対数はlog⁡2(n+1)\log_2(n+1)であり、仮定によりこれはbb以下である。したがってlog⁡2(n+1)\log_2(n+1)の項をbbで置き換えることができ、上界の指数はb+1b+1の定数倍に収まる。この仮定がなければ、入力長が空間上界に対して大きい場合に配置数を2O(b)2^{O(b)}で抑えることができない。
  8. L∈LL\in\mathsf Lの決定器の空間上界をb=C′⌈log⁡2(n+2)⌉b=C'\lceil\log_2(n+2)\rceilとすると、補題 3.2により配置の個数は2c(b+1)2^{c(b+1)}以下である。決定器は停止するので、補題 3.2 (2)により遷移数はこの個数未満である。2c(b+1)2^{c(b+1)}は(n+2)(n+2)の定数冪の定数倍であるから、遷移数はnnの多項式で抑えられる。

▨

参考文献

  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.時間・空間計算量と構成可能な資源上界を参考にした。
  3. Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, Boston, 2013.最悪時間計算量と単テープ・多テープ機械の時間オーバーヘッドを参考にした。

前提記事