§E15.16回路計算量

最終更新

Turing 機械は一つの機械を全ての入力長に用い、計算を時間順に実行する。全入力長に同じ Turing 機械を用いるモデルに対して、回路計算量では、入力長nnごとに有限の回路を一つ置き、ゲート数と入力から出力までの経路長を測る。入力長ごとの回路を無関係に選ぶことを許すか、回路の効率的な生成を要求するかによって、得られる計算モデルは異なる。本記事では生成器を明示した P 一様性を採用し、決定性多項式時間との関係を証明する。

1 Boolean 回路と二つの資源

定義 1.1.nn入力の Boolean 回路 (Boolean circuit)CCは、次の印をもつ頂点からなる有限有向非巡回グラフであり、出力頂点を一つ指定したものである。

  1. 入力頂点x1,…,xnx_1,\ldots,x_nと定数頂点0,10,1の入次数は00である。
  2. NOT ゲートの入次数は11である。
  3. AND ゲートと OR ゲートの入次数は22である。

辺はゲートへの入力を表す。同じ頂点から出る辺の本数、すなわち fan-out は制限しない。入力x=(x1,…,xn)∈{0,1}nx=(x_1,\ldots,x_n)\in\{0,1\}^nを入力頂点へ割り当て、トポロジカル順序に従って各ゲートを評価したときの出力頂点の値をC(x)C(x)と書く。

CCの入力頂点を除く頂点数を サイズ (circuit size)∣C∣|C|とする。入力頂点と定数頂点の深さを00とし、ゲートggの深さを

1+max⁡{g の入力となる頂点の深さ}1+\max\{\text{$g$ の入力となる頂点の深さ}\}

とする。出力頂点の深さを回路の 深さ (circuit depth)depth⁡(C)\operatorname{depth}(C)とする。

この定義は有界 fan-in を固定している。fan-in が入力長とともに増える AND または OR を一ゲートと数える別の規約では、特に深さの値が変わるため、二つの規約を混同してはならない。

命題 1.2. 回路CCと入力xxの組のうちC(x)=1C(x)=1となるものからなる言語を 回路値問題という。回路値問題はP\mathsf Pに属する。さらに、同じ手続きによってC(x)C(x)の値を計算することができる。

証明. 有向グラフをトポロジカル整列し、その順序で各頂点の値を一度だけ計算する。NOT、AND、OR の fan-in は高々22なので、整列後の各頂点の評価には定数時間しか要しない。トポロジカル整列も評価も頂点数と辺数の和に比例する時間で実行することができる。頂点と辺は入力記述に含まれるため、全時間は入力記述長の多項式である。従って、この手続きは回路値を決定する多項式時間機械である。▨

例 1.3 (サイズと深さ).n≥1n\ge 1個の入力の AND を考える。左から一つずつ AND を取る回路は、n≥2n\ge2ではサイズn−1n-1、深さn−1n-1である。一方、入力を二群に分ける操作を再帰的に行い、各群の AND を並列に計算する二分木型の回路は、サイズn−1n-1、深さ⌈log⁡2n⌉\lceil\log_2 n\rceilである。従って、サイズが同じ二つの回路でも深さは異なり得る。

2 回路族と P 一様性

定義 2.1. 各n≥0n\ge0に対してnn入力 Boolean 回路CnC_nを一つ対応させた列C=(Cn)n≥0\mathcal C=(C_n)_{n\ge0}を 回路族 (circuit family) という。回路族C\mathcal Cが言語L⊆{0,1}∗L\subseteq\{0,1\}^*を決定するとは、全てのnnとx∈{0,1}nx\in\{0,1\}^nについて

Cn(x)=1⟺x∈LC_n(x)=1\quad\Longleftrightarrow\quad x\in L

が成り立つことをいう。

定数c,k>0c,k>0が存在し、全てのnnについて

∣Cn∣≤c(n+1)k|C_n|\le c(n+1)^k

となるとき、C\mathcal Cは 多項式サイズ (polynomial size) である。深さについても同様に、ある多項式を全ての入力長に共通の上界として取る。

回路記述では、頂点をトポロジカル順に並べ、各頂点について印と入力元の頂点番号を二進表記する。この規約を固定すると、回路の完全な記述から回路を復元することができ、記述長は回路の頂点数と辺数の多項式である。

定義 2.2. 回路族C=(Cn)n≥0\mathcal C=(C_n)_{n\ge0}が P 一様 (P-uniform) であるとは、ある決定性 Turing 機械GGと多項式qqが存在し、全てのnnについてGGが入力1n1^nからCnC_nの完全な記述をq(n+1)q(n+1)時間以内に出力して停止することをいう。GGをC\mathcal Cの 一様性生成器 (uniformity generator) という。

生成器は入力値xxではなく入力長nnだけを受け取る。従って、生成器が出力するのは特定の入力に対する答えではなく、長さnnの全入力に共通して使用する回路である。また、一段で高々定数個の記号しか出力することができないため、P 一様な回路族の回路記述長とサイズは自動的に多項式で抑えられる。P 一様性から多項式サイズ性が従う場合でも、次の定理では Turing 機械から構成する回路のサイズを直接数える。

3 多項式時間計算を回路へ展開する

定理 3.1. 言語L⊆{0,1}∗L\subseteq\{0,1\}^*について、次の二条件は同値である。

  1. L∈PL\in\mathsf Pである。
  2. LLを決定する P 一様な多項式サイズ Boolean 回路族が存在する。

証明方針は、前向きでは一方向無限テープ上の有界時間計算を時刻と位置の格子へ展開し、各セル記号を one-hot 符号で表すことである。左端セルには境界専用の局所関数を用い、内点と有限窓の右端には通常の局所関数を用いる。各局所関数の真理値表を定数サイズの部分回路にして、初期配置から最終配置までを時刻順に接続する。逆向きでは、一様性生成器が出力した回路をトポロジカル順に評価する。

証明. 最初にL∈PL\in\mathsf Pとする。§E15.10 定義 1.4と§E15.10 系 4.2により、LLを決定する機械の作業テープを一本にすることができる。この機械の読取り専用入力テープと作業テープの有限使用部分を、一つのテープ上で区切り記号と二つのヘッド印を用いて表す。元の一段ごとに符号全体を有限回走査すれば、入力ヘッドが読む記号と作業ヘッドが読む記号を有限制御へ保存し、両ヘッドの移動と書込みを反映することができる。元の計算が多項式時間なら、符号長も走査回数も入力長の多項式であるため、この一テープ模倣も多項式時間である。この模倣を、入力xxが計算開始時に唯一のテープの左端から置かれる一テープ決定性機械MMとして実装する。区切り付きの内部符号を用意する初期化と、その後の模倣を合わせても多項式時間である。MMのテープは位置0,1,…0,1,\ldotsからなる一方向無限テープであり、位置00で左移動を命じられたヘッドは位置00にとどまる。停止後は同じ受理配置または拒否配置にとどまる遷移を加える。整数c,d≥1c,d\ge1が存在して、初期化と模倣のオーバーヘッドを含む全計算が

T(n)=c(n+1)dT(n)=c(n+1)^d

段以内に停止するようにc,dc,dを取る。

MMのテープアルファベットをΓ\Gamma、状態集合をQQとする。テープの一マスには、ヘッドがない場合の記号a∈Γa\in\Gamma、またはヘッドと状態を併せた記号(q,a)∈Q×Γ(q,a)\in Q\times\Gammaのいずれかを記録する。従って、一マスの内容は固定有限集合

A=Γ⊔(Q×Γ)A=\Gamma\mathbin{\sqcup}(Q\times\Gamma)

の要素で表すことができる。位置−1-1にはAAに属さない固定左端記号◃\triangleleftがあるものとみなす。入力x=x1⋯xnx=x_1\cdots x_nに対し、n>0n>0なら初期位置00の記号を(q0,x1)(q_0,x_1)、位置1,…,n−11,\ldots,n-1の記号を順にx2,…,xnx_2,\ldots,x_nとし、それ以外の位置を空白記号⊔\sqcupとする。n=0n=0なら初期位置00の記号を(q0,⊔)(q_0,\sqcup)とし、それ以外の位置を空白とする。

一段でヘッドは高々一マス移動するため、

W(n)=n+T(n)+1W(n)=n+T(n)+1

と置けば、位置0,…,W(n)−10,\ldots,W(n)-1は初期入力の全セルと、時刻00からT(n)T(n)までにヘッドが訪れる全セルを含む。特にt<T(n)t<T(n)ではヘッド位置が高々t<T(n)≤W(n)−1t<T(n)\le W(n)-1であるため、位置W(n)W(n)は空白のままである。

内点j≥1j\ge1について、決定性遷移規則から、時刻t+1t+1の位置jjの内容は、時刻ttの位置j−1,j,j+1j-1,j,j+1の内容だけで決まる。実際、ヘッドが中央または隣接位置になければ記号は変わらず、ヘッドが三つの位置のいずれかにあれば遷移規則が書込み、状態、および移動先を一意に定める。正当な配置には現れない三つ組に対する値は任意に固定する。従って、固定した有限関数

F ⁣:A3⟶AF\colon A^3\longrightarrow A

が存在する。

左端位置00の次の内容は、現在の位置0,10,1の内容と、左端での左移動を位置00にとどめる規約から一意に定まる。正当な配置には現れない二つ組に対する値を任意に固定し、左端専用の有限関数を

FL ⁣:A2⟶AF^{\mathrm L}\colon A^2\longrightarrow A

とする。固定記号◃\triangleleftは、この関数が通常の三セル更新とは異なる左端更新を表すことを明示する。有限窓の右端位置W(n)−1W(n)-1では、位置W(n)W(n)の内容を固定空白⊔\sqcupとしてFFを用いる。

各時刻0≤t≤T(n)0\le t\le T(n)、位置0≤j<W(n)0\le j<W(n)、記号a∈Aa\in Aに対して、時刻ttの位置jjがaaであることを表す線zt,j,az_{t,j,a}を置く。各位置の線は、正当な計算では一つの要素を表す one-hot 符号である。n>0n>0の位置00では、(q0,0)(q_0,0)と(q0,1)(q_0,1)に対応する線をNOT⁡x1\operatorname{NOT}x_1とx1x_1から作る。位置1,…,n−11,\ldots,n-1では、記号0,10,1に対応する線をNOT⁡xj+1\operatorname{NOT}x_{j+1}とxj+1x_{j+1}から作る。n=0n=0では位置00の(q0,⊔)(q_0,\sqcup)に対応する線を定数11とする。n>0n>0では位置n,…,W(n)−1n,\ldots,W(n)-1を空白とし、n=0n=0では位置1,…,W(n)−11,\ldots,W(n)-1を空白とする。定数で指定した各位置では、指定した初期記号以外の線を定数00とする。また、入力ビットから指定した位置0,…,n−10,\ldots,n-1でも、上で挙げた二本以外の全ての線を定数00とする。従って、n=0n=0を含む全ての入力長で、初期層の各位置はAAの要素をちょうど一つ表す one-hot 符号になる。

AAはMMごとに固定されているので、内点1≤j<W(n)−11\le j<W(n)-1では、各a∈Aa\in Aについて

F(u,v,w)=aF(u,v,w)=a

となる有限個の三つ組を列挙し、それぞれの一致条件を AND で結び、得られた項を OR で結ぶことができる。この真理値表の回路化によりzt+1,j,az_{t+1,j,a}を計算する定数サイズ・定数深さの部分回路を得る。

左端j=0j=0では

FL(v,w)=aF^{\mathrm L}(v,w)=a

となる有限個の二つ組を列挙し、位置0,10,1の一致条件からzt+1,0,az_{t+1,0,a}を計算する境界専用の部分回路を置く。右端j=W(n)−1j=W(n)-1では

F(u,v,⊔)=aF(u,v,\sqcup)=a

となる有限個の二つ組を列挙し、位置W(n)−2,W(n)−1W(n)-2,W(n)-1の一致条件から右端の次状態を計算する。三種類の部分回路はいずれも定数サイズ・定数深さである。全てのt<T(n)t<T(n)について、位置の種類に応じた固定テンプレートを置く。

初期配置の線がMMの初期配置を表すことは構成から従う。時刻ttの線が正しい配置を表すと仮定すると、左端ではFLF^{\mathrm L}、内点と右端ではFFの定義により、時刻t+1t+1の線はMMの一意な次配置を表す。従って、時刻に関する帰納法により、最終層はMMの時刻T(n)T(n)の配置を表す。受理状態を含む記号に対応する最終層の線を二分木型の OR で結んで出力とする。停止配置は変化しないようにしたため、この出力はMMがxxを受理するとき、かつそのときに限り11となる。

各時刻・位置には∣A∣|A|本の線と定数個のゲートしかなく、∣A∣|A|はnnに依存しない。従って、得られた回路CnC_nのサイズは

O(T(n)W(n))+O(W(n))=O(T(n)(n+T(n)))O\bigl(T(n)W(n)\bigr)+O(W(n)) =O\bigl(T(n)(n+T(n))\bigr)

であり、多項式である。各遷移層の深さは定数であるため、深さもO(T(n)+log⁡W(n))O(T(n)+\log W(n))である。

最後に一様性を示す。入力1n1^nを受け取った生成器は、T(n)T(n)とW(n)W(n)を計算し、時刻、位置、記号の三重の反復によって、上で述べた固定テンプレートと配線番号を順に出力する。出力するゲート数はO(T(n)W(n))O(T(n)W(n))、各番号の長さはO(log⁡(T(n)W(n)+2))O(\log(T(n)W(n)+2))である。二進整数の計算を含めても、生成時間は

O(T(n)W(n)polylog⁡(T(n)W(n)+2))O\bigl(T(n)W(n)\operatorname{polylog}(T(n)W(n)+2)\bigr)

の多項式で抑えられる。従って、(Cn)n≥0(C_n)_{n\ge0}は P 一様である。

逆に、LLを決定する P 一様な回路族(Cn)n≥0(C_n)_{n\ge0}と生成器GGが存在するとする。入力x∈{0,1}nx\in\{0,1\}^nに対し、最初にG(1n)G(1^n)を実行してCnC_nの完全な記述を得る。生成時間をq(n+1)q(n+1)とすれば、出力記述長もq(n+1)q(n+1)以下である。次に命題 1.2の手続きでxxを入力したCnC_nを評価する。評価時間は回路記述長とnnの多項式であり、従って全時間もnnの多項式である。回路族がLLを決定するため、この機械はx∈Lx\in Lの場合に、かつその場合に限り受理する。従ってL∈PL\in\mathsf Pである。▨

前向きの構成が作るのは、入力xxごとの回路ではなく、変数x1,…,xnx_1,\ldots,x_nを残した一つの回路CnC_nである。この区別によって、同じ長さの全ての入力に共通の回路を用いるという回路族の要件が満たされる。また、局所遷移の部分回路が定数サイズである理由は、機械MMの状態集合とテープアルファベットを入力長によらず固定したことにある。

4 非一様な P/poly

定義 4.1. 言語L⊆{0,1}∗L\subseteq\{0,1\}^*が P/poly (P/poly) に属するとは、LLを決定する多項式サイズ Boolean 回路族(Cn)n≥0(C_n)_{n\ge0}が存在することをいう。一様性生成器の存在は要求しない。このような言語のクラスをP/poly\mathsf{P/poly}と書く。

定理 3.1からP⊆P/poly\mathsf P\subseteq\mathsf{P/poly}が従う。しかし、P/poly の回路CnC_nは入力長ごとに独立に選ぶことができ、回路列そのものを有限のアルゴリズムから生成することができるとは限らない。

命題 4.2. 任意の集合S⊆NS\subseteq\mathbb Nに対して、単項言語

LS={1n:n∈S}L_S=\{1^n:n\in S\}

はP/poly\mathsf{P/poly}に属する。特に、決定不能な言語もP/poly\mathsf{P/poly}に属し得る。

証明. 各nnについて、n∈Sn\in Sなら入力x1,…,xnx_1,\ldots,x_nの AND を出力し、n∉Sn\notin Sなら定数00を出力する回路CnC_nを選ぶ。n=0n=0では空語を101^0とみなし、0∈S0\in Sかどうかに応じた定数回路を選ぶ。二分木型の AND を用いると∣Cn∣≤n+1|C_n|\le n+1であり、CnC_nは1n1^nだけを、かつn∈Sn\in Sの場合だけ受理する。従って、この多項式サイズ回路族はLSL_Sを決定し、LS∈P/polyL_S\in\mathsf{P/poly}である。

Turing 機械の有限記述は可算個しかない一方、N\mathbb Nの部分集合は非可算個ある。従って、どの Turing 機械にも決定されない集合S⊆NS\subseteq\mathbb Nが存在する。LSL_Sの決定器が存在すれば、入力nnから1n1^nを作ってその決定器を実行することにより、n∈Sn\in Sを決定することができる。従って、このLSL_Sは決定不能であるが、上の線形サイズ回路族をもつ。▨

この命題は、P/poly の個々の回路CnC_nを効率的に評価することと、回路族全体を効率的に生成することが別の条件であることを示す。特定の自然な問題に対する回路下界を与えるものではない。

5 回路下界の量化

言語LLに対し、長さnnにおける特性関数

fL,n(x)={1(x∈L),0(x∉L)(x∈{0,1}n)f_{L,n}(x)= \begin{cases} 1 & (x\in L),\\ 0 & (x\notin L) \end{cases} \qquad (x\in\{0,1\}^n)

を計算する最小の Boolean 回路サイズをsL(n)s_L(n)と書く。Boolean 関数は真理値表から積和標準形の回路を作ることができるため、この最小値は全てのnnで存在する。

命題 5.1. 言語LLがP/poly\mathsf{P/poly}に属さないことと、任意の整数k≥0k\ge0と任意の実数c>0c>0に対して

sL(n)>c(n+1)ks_L(n)>c(n+1)^k

となるnnが無限個存在することは同値である。

証明.L∈P/polyL\in\mathsf{P/poly}なら、あるc>0c>0と整数k≥0k\ge0が存在して、全てのnnでsL(n)≤c(n+1)ks_L(n)\le c(n+1)^kとなる。従って、表示した無限性条件は成り立たない。

逆に、表示した無限性条件が成り立たないとする。このとき、あるc>0c>0と整数k≥0k\ge0について、sL(n)>c(n+1)ks_L(n)>c(n+1)^kとなるnnは有限個しかない。その有限集合をEEとし、

c′=max⁡(c,max⁡n∈EsL(n)(n+1)k)c'=\max\left( c, \max_{n\in E}\frac{s_L(n)}{(n+1)^k} \right)

と置く。EEが空なら二つ目の最大値を省く。すると全てのnnでsL(n)≤c′(n+1)ks_L(n)\le c'(n+1)^kである。各nnで最小回路を一つ選べば、LLを決定する多項式サイズ回路族を得るため、L∈P/polyL\in\mathsf{P/poly}である。対偶により結論を得る。▨

注意 5.2 (下界で固定すべき対象). 入力長nnごとに「サイズの大きい Boolean 関数が存在する」と示す量化は

∀n ∃fn\forall n\ \exists f_n

である。この量化だけでは、あらかじめ固定した一つの言語LLの特性関数列(fL,n)n≥0(f_{L,n})_{n\ge0}に対する下界にならない。さらに、一様な回路族だけを排除する下界と、全ての非一様な回路族を排除してL∉P/polyL\notin\mathsf{P/poly}を示す下界も異なる。ゲート集合、fan-in、サイズまたは深さ、一様性、および「全ての入力長」か「無限個の入力長」かを固定してから、下界の主張を記述する必要がある。

本記事は回路下界を証明するための量化を整理するところまでを扱う。定数深さ回路などに対する具体的な下界、有限構造上の論理による計算量の特徴付け、および量子回路は、それぞれ別の計算モデルを必要とするため扱わない。

6 演習

問題 6.1.

  1. 入力xxごとに、そのxxだけに正しい回路CxC_xを多項式時間で生成するという条件が、P 一様性の定義と異なる理由を説明せよ。
  2. 定理 3.1の前向きの構成で、一つの局所更新に必要なゲート数が入力長によらない理由を説明せよ。
  3. P/poly の定義から一様性を除くと、決定不能な単項言語を含み得る理由を説明せよ。
  4. 各nnについて大きい回路を必要とする関数が一つ存在するという主張だけでは、固定した言語の P/poly 下界にならない理由を、量化の順序を用いて説明せよ。
解答 (演習の要点).
  1. P 一様性の生成器はxxを受け取らず、1n1^nだけから長さnnの全入力に共通する回路を出力する。CxC_xを許す条件では、同じ長さの異なる入力に同一の回路を用いるという回路族の要件が失われる。
  2. 局所関数の入力集合はA3A^3であり、機械の状態集合とテープアルファベットを固定するとAAの大きさも固定される。従って、その真理値表を実装する部分回路のサイズは定数である。
  3. 各入力長の答えを定数回路へ一ビットずつ埋め込み、回路列を生成するアルゴリズムを要求しないためである。
  4. 前者では入力長ごとに別の関数fnf_nを後から選ぶことができる。固定した言語の下界では、最初に一つのLLを固定し、その特性関数列が任意の多項式上界を無限個の入力長で超えることを示す必要がある。

▨

参考文献

  1. Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach, Cambridge University Press, Cambridge, 2009.Boolean 回路、回路の一様性、および P/poly の定式化を参考にした。
  2. Heribert Vollmer, Introduction to Circuit Complexity, Springer, Berlin, 1999.回路族のサイズ、深さ、一様性、および回路下界の量化を参考にした。

前提記事