ロバストPCPとPCP of Proximity
PCP定理の証明を構成する二つの重要な要素
ロバストPCPと
PCP of Proximity (PCPP)について説明します. これらの概念を用いたPCP定理の証明の枠組みはBen-Sassonら[1]によって導入されましたが独立にDinurとReingold[2]のassignment testerと呼ばれる枠組みとほぼ同じです. どれも, 当時知られていた非常に複雑なPCP定理の証明[3]を整理して理解しようとする中で誕生した概念であり, 後にDinur[4]によってエクスパンダーグラフ上のランダムウォークに基づく非常に簡単な証明が与えられました. 彼女はこの業績で2019年に
ゲーデル賞を受賞しています.
1. 定義の準備
有限長の文字列の集合L\subseteq \{0,1\}^*を言語といいます. 計算量理論では, 言語を判定問題(与えられたx\in\{0,1\}^*に対してx\in Lかどうか判定せよという問題)と同一視します.
同じ長さの二つの文字列x,y\in\{0,1\}^nに対してその距離を正規化されたハミング距離で定めます. すなわち\mathrm{dist}(x,y)=\frac{1}{n}\sum_{i=1}^n \mathbf{1}_{x(i)\neq y(i)}とします. 文字列の集合\mathcal{C}\subseteq \{0,1\}^nとx\in\{0,1\}^nに対して\mathrm{dist}(x,\mathcal{C})=\min_{y\in\mathcal{C}}\mathrm{dist}(x,y)とします. 特に\mathcal{C}=\emptysetのときは\mathrm{dist}(x,\mathcal{C})=1と定義します. 関数D\colon\{0,1\}^n\to\{0,1\}に対してD^{-1}(1)=\{x\in\{0,1\}^n\colon D(x)=1\}とします.
言語Lに対する検証者とはオラクルアルゴリズムV^\pi(x)であってオラクル\piの助けを借りながらx\in Lかどうかを判定するものを指します. その際, オラクル\pi\in\{0,1\}^*はx\in Lを主張する証明として機能する文字列であり, インデックスiに対して\pi(i)\in\{0,1\}を返すオラクルとして解釈します. たとえばLが充足可能な論理式の全体であるならば, xが表す論理式の充足可能性を判断するために例えば\piとしてxの充足割当を持ってくれば証明として機能します. 検証者の能力によって様々なシチュエーションが考えられます.
NP検証者は決定的な多項式時間検証者V^\pi(x)であって以下を満たすものです:
- x\in Lならばあるオラクル\piが存在してV^\pi(x)=1.
- x\not\in Lならば任意のオラクル\piに対してV^\pi(x)=0.
条件1を満たすオラクル\piを本記事ではNP証明と呼ぶことにします. また, NP検証者を持つ言語の集合を\mathsf{NP}と表します. 有名な\mathsf{P}\neq\mathsf{NP}問題は任意のL\in \mathsf{NP}が決定的多項式時間で解けるかどうかを問うています.
PCP検証者は乱択な検証者V^\pi(x)であって以下を満たすものです:
- 任意のx\in Lに対してあるオラクル\piが存在して\Pr[V^\pi(x)=1]=1.
- ある定数s>0が存在して, 任意のx\not\in Lと任意のオラクル\piに対して\Pr[V^\pi(x)=0]\geq s.
- 任意のn\in\mathbb{N}, x\in\{0,1\}^nに対してV^\pi(x)は高々q(n)回のオラクルアクセスを行い, 高々r(n)ビットのランダムビットを使う.
条件3のr(n)をランダムネス複雑度, q(n)をVのクエリ複雑度と呼ぶことにします. このような検証者を持つような言語の集合を\mathsf{PCP}(r,q)と定義します. 条件1のオラクル\piをPCP証明と呼ぶことにします(*1).
(*1). PCPとはProbabilistic Checkable Proof (確率的検証可能な証明)の略なので, PCP証明という言葉は「証明」の部分が二重になり気持ち悪く本来はPC証明と呼ぶべきですが, そう呼んでしまうとあとでPCPPという用語も出てきてややこしくなるのであえてPCP証明と呼ぶことにします.
PCP定理は\mathsf{NP}=\mathsf{PCP}(O(\log n),O(1))を主張する定理です.
2. PCP検証者と制約充足問題
制約充足問題(CSP; Constraint Satisfaction Problem)とは大雑把にいうと「連立方程式の解を見つけよ」という問題です. nを変数の個数とし, [n]=\{1,\dots,n\}上の集合族\mathcal{S} (つまり各S\in\mathcal{S}はS\subseteq [n]) とそれで添字づけられた関数族(D_S)_{S\in\mathcal{S}}を考えます. ここで各D_S\colon \Sigma^S\to\{0,1\}とし, \Sigmaは有限集合とします (アルファベットと呼びます). 制約充足問題とは
あるx\in\Sigma^{[n]}が存在して全てのS\in\mathcal{S}に対しD_S(x|_S)=1となるか?
を判定する問題です. ここでx|_S\in\Sigma^SはxのSへの制限です.
特に\Sigma=\{0,1\}のときのCSPを二値CSP(binary CSP), 全てのS\in\mathcal{S}に対して|S|\leq qを満たすCSPをq-CSPと呼びます. 本記事では特に断りのない限り二値のq-CSPを考えます.
PCP検証者V^\pi(x)はある集合Sに対して\pi|_Sを見て出力を決めるので, インデックス集合S(ただし|S|\leq q)と関数D\colon \{0,1\}^n\to \{0,1\}をランダムに生成し, D(\pi|_{S})を出力するアルゴリズムと捉えることができます (\mathcal{S}やDは入力xに依存). これを, \mathcal{S}から適当な分布に従ってランダムに選んだSに対してD_S(\pi|_S)を出力すると捉えれば, PCP検証者は二値q-CSPのインスタンス(D_S)_{S\in\mathcal{S}}と同一視することができます. このCSPの変数は\piです. 簡単のためSの分布を一様分布とします(*2). このとき, PCP検証者の条件は以下のように書き換えられます:
- 任意のx\in Lに対してある\piが存在して全てのS\in\mathcal{S}に対してD_S(\pi|_S)=1.
- 任意のx\not\in Lと任意の\piに対して\Pr_S[D_S(\pi|_S)=0]\geq s. すなわち, D_S(\cdot)が充足されないようなSがs\cdot |\mathcal{S}|個ある.
- |\mathcal{S}|=2^rかつ|S|\leq qである (つまり\mathcal{S}上一様ランダムに選ぶときに長さrのランダムビットを使う).
このように捉えるとMAX-SAT(最も多くの節を充足する割当を見つける問題)の近似アルゴリズムの存在性とPCP定理が関係することがわかりやすくなるでしょう.
(*2). \mathcal{S}が多重集合であることを許容すればS\sim\mathcal{S}を一様分布とすることができます. 実際, ある集合S\in\mathcal{S}が選ばれやすいのであれば, その分だけSを\mathcal{S}に追加することで一様分布によってシミュレートすることができます.
3. PCP検証者のロバスト性
条件2の代わりに以下の条件2'を満たすPCP検証者をロバストなPCP検証者といいます:
- (条件2') ある定数s_1,s_2>0が存在して任意のx\not\in Lに対して\Pr_S[\mathrm{dist}(\pi|_S,D_S^{-1}(1))\geq s_1]\geq s_2.
条件2'はPCP検証者の条件2よりも強いことを要請しています. 実際, 検証者が条件2'を満たすならば\Pr[V^{\pi}(x)=0]=\Pr_S[\pi|_S\not\in D^{-1}(1)]\geq \Pr_S[\mathrm{dist}(\pi|_S,D^{-1}(1))\geq s_1]\geq s_2となるからです.
PCP定理の証明はあるNP完全問題Lに対してクエリ複雑度の大きいロバストなPCP検証者を構成し, これをPCP of Proximityと組み合わせてクエリ複雑度を下げることによって所望のPCP検証者を得るという流れになります.
4. PCP of Proximity (PCPP)
PCPP検証者とは, 関数D(を記述する回路), Dの割当x, 証明\piが与えられたときにD(x)=1かどうかを検証する乱択アルゴリズムです. ただし, xと\piが両方ともオラクルで与えられ, オラクルへのクエリアクセスの回数が制限されます(*3).
PCPP検証者とは乱択オラクルアルゴリズムV^{x,\pi}(D)であって以下を満たすものです:
- D(x)=1ならば, ある\piが存在して\Pr[V^{x,\pi}(D)=1]=1.
- \mathrm{dist}(x,D^{-1}(1))\geq c_1ならば\Pr[V^{x,\pi}(D)=0]\geq c_2.
- 任意のn\in\mathbb{N}, x\in\{0,1\}^n,Dに対してV^{x,\pi}(D)は高々q(n)回のオラクルアクセスを行い, 高々r(n)ビットのランダムビットを使う.
直感的にはPCPP検証者とは充足割当からの近さ(proximity)を判定する検証者です. 条件1を満たすオラクル\piをPCPP証明と, xを証明と呼ぶことにします. 条件2においてD^{-1}(1)=\emptyset(つまりDが充足不可能)のときは常に\mathrm{dist}(x,D^{-1}(1))\geq c_1が成り立つことに注意してください.
(*3). 実際にはペア言語L\subseteq \{0,1\}^*\times\{0,1\}^*を考え, (x,y)\in Lかどうかの検証者として定義されます. この例ではペア言語Lとして(D,x)\in L\iff D(x)=1と定義します.
命題. PCPP検証者が存在するならばSATに(同じr,q,sの)PCP検証者が存在する.
証明. SATに対するPCP検証者を構成すればよい. 入力の論理式C\colon\{0,1\}\to\{0,1\}に対し, その充足割当xを証明としてPCPP検証者V^{x,\pi}(C)をシミュレートすれば良い. 実際, Cが充足可能ならばその充足割当xを証明すればよく, 充足可能でないならばD^{-1}(1)=\emptysetとなり, PCPPの条件2より健全性も成り立つ.
5. ロバストなPCP検証者とPCPP検証者の合成
NP完全な言語Lに対してロバストなPCP検証者V_0であってクエリ複雑度がQ(n)\gg 1, ランダムネス複雑度Rなるものが存在するとします. さらに, クエリ複雑度q, ランダムネス複雑度rのPCPP検証者の存在性を仮定します (ここでそれぞれの条件2に出てくる定数についてc_1=s_1を仮定します).
- 2節で説明したようにV_0をCSPのインスタンス(D_S)_{S\in\mathcal{S}}と同一視します. ただし各|S|=Qです. V_0を走らせたときに得られるランダムなS\sim\mathcal{S}に対して関数D_Sを考えます.
- ペア言語(D_S,\pi|_S)に対してPCPP検証者を走らせます. ここで\pi|_Sは証明として扱います.
こうすると, 全体のクエリ複雑度はq, ランダムネス複雑度はR+rのPCP検証者を得ることができます. ちゃんとPCP検証者になっているか確認してみましょう.
- x\in Lならば全てのS\in\mathcal{S}に対してD_S(\pi|_S)=1となるため, PCPP検証者も必ず1を出力します.
- x\not\in Lならば, ロバスト性より確率s_2で\Pr_{S\sim\mathcal{S}}[D_S(\pi|_S)=0]\geq s_1となります. この事象で条件づけたとき, c_1=s_1の仮定より, 確率c_2でPCPP検証者は0を出力します. すなわち確率s_2c_2で上記の検証者は0を出力します.
以上の議論より, R+r=O(\log n), q=O(1)を満たすように作ればPCP定理が証明できたことになります.
6. まとめ
PCP検証者を構成するために, まず「充足割当からの近さ」を増加させるロバストPCP検証者と「充足割当からの近さ」を検証するPCPP検証者という概念を用いました. 距離に着目するアイデアは誤り訂正符号に基づいたものです.
参考文献
[1] E. Ben‐Sasson, O. Goldreich, P. Harsha, M. Sudan, and S. Vadhan. “Robust PCPs of Proximity, Shorter PCPs, and Applications to Coding.” SIAM Journal on Computing 36 (4): 889–974. https://doi.org/10.1137/S0097539705446810. (2006).
[2] I. Dinur, and O. Reingold. “Assignment Testers: Towards a Combinatorial Proof of the PCP Theorem.” SIAM Journal on Computing 36 (4): 975–1024. https://doi.org/10.1137/S0097539705446962. (2006).
[3] S. Arora, C. Lund, R. Motwani, M. Sudan, and M. Szegedy. “Proof Verification and the Hardness of Approximation Problems.” Journal of the ACM 45 (3): 501–55. https://doi.org/10.1145/278298.278306. (1998).
[4] I. Dinur, “The PCP Theorem by Gap Amplification.” Journal of the ACM 54 (3): 12 – es. https://doi.org/10.1145/1236457.1236459. (2007).