6
大学数学基礎解説
文献あり

PCP定理とその証明 (紹介編)

1146
0

1. はじめに

本記事は計算量理論において非常に重要なPCP定理と呼ばれる定理の紹介をします. 前提知識として「多項式時間アルゴリズム」「クラスNP」「NP完全」といった用語がなんとなくわかっていることを想定しています. 以下に書いたクラスNPのinformalな定義を読んで内容がなんとなくわかるならば大丈夫です:

クラスNP

判定問題Lは, 以下の性質を満たす決定的多項式時間アルゴリズムVと多項式p:NNが存在するとき, クラスNPに属すといい, LNPと表す:

  • 任意のYesインスタンスxに対してあるy{0,1}p(|x|)が存在してV(x,y)=1.
  • 任意のNoインスタンスxと任意のy{0,1}p(|x|)に対し, V(x,y)=0.

ここで|x|はインスタンスxのサイズを表す.
Yesインスタンスxに対して上記一つ目の条件を満たす文字列y{0,1}p(|x|)NP証拠と呼び, アルゴリズムVNP検証者と呼ぶ.

本当はアルゴリズム(とその計算モデル), 計算時間, 判定問題などの用語を定義しないと上の定義は厳密にならないのですが, 一般に普通のC言語などのプログラムを考えてもらえればとりあえず大丈夫です.

直感的にいえば, クラスNPに属す問題は, YesインスタンスがYesたりうる多項式長の証拠を持つ問題といえます. 上記の定義で考えるアルゴリズムV(x,y)はインスタンスxxLであることの「証拠」yを受け取ったとき, 本当にxLであるならば1を出力, そうでないならば0を出力するアルゴリズムです.

グラフの3彩色

有限な単純無向グラフG=(V,E)に対し, 関数c:V{1,,k}であって, 全ての辺{u,v}Eに対しc(u)c(v)を満たすものをGk彩色(k-coloring)という. グラフGは, k彩色が存在するならばk彩色可能(k-colorable)であるという.

「与えられたグラフが3彩色可能であるか?」という判定問題を3彩色問題と呼ぶ. この問題はクラスNPに属する. 実際, 任意のYesインスタンス(=3彩色可能なグラフ)G=(V,E)に対し, その3彩色c:V{1,2,3}を表現する文字列をyとすれば, yは高々|V|log23=O(|V|)ビットで表現できる. 検証者はグラフG=(V,E)と関数c:V{1,2,3}を表す文字列を受け取り, cGの3彩色かどうかを判定すれば良い. これは全ての辺の両端点の色を比較するだけなので, Gのサイズに関する多項式時間で計算できる.

なお, 3彩色の判定問題はNP完全であることが知られている.

充足可能性判定問題(SAT)

n変数論理式ϕ(x)に対し, ϕ(a)=trueとなる割当a{true,false}n充足割当(satisfying assignment)という. 与えられた論理式ϕが充足割当を持つかどうかを判定する問題を充足可能性判定問題(SAT; satisfiability problem)という. SATはクラスNPに属する. 実際, 与えられたYesインスタンスϕに対しその充足割当を証拠として持ってくればよい.

特に, 論理式ϕ
ϕ(x1,,xn)=i=1n(i1i2i3)
の形で表せるとき, 3CNF形式であるといいます. ここでijは適当な変数xに対しij{x,x}を満たす論理式で, リテラルと呼ばれる.

与えられた3CNF形式に対する充足可能性判定問題は特に3CNFと呼ばれる. この問題はNP完全問題であることが知られている.

制約充足問題(CSP)

グラフの彩色問題とSAT問題の共通の一般化として制約充足問題(CSP; constraint satisfaction problem)というものが知られており, PCP定理の証明においても重要な役割を果たす. パラメータkNに対し, k-CSPと呼ばれる問題では, 有限集合Σ(アルファベットと呼ばれる)上に値をとるn個の変数x1,,xn上のm個の関数P1,,Pm:Σn{true,false}が入力として与えられる. ただし各Pix1,,xnのうち高々k個の変数の値にのみ依存する関数であるとする. kCSPは, 全てのi[m]に対してPi(x1,,xn)=trueを満たすようなx1,,xnΣnが存在するかどうかを判定する問題として定義される. 要するに連立方程式の解が存在するかどうかを判定する問題である.

例えば3彩色問題はΣ=[3]に対する2-CSPの特殊ケースになる. ここでは, 変数xvは頂点vに割り当てられる色を表すとし, 各辺e=uvEに対してPe(x1,,xn)xu=xvならばtrue, そうでなければfalseを返す関数と定義すれば2-CSPとして表現できる. 3CNFはΣ={true,false}に対する3CSPの特殊ケースである. 一般にk-CSPを議論する際はアルファベットサイズ|Σ|と引数の個数kは入力長に依存しない定数とする.

1. PCP定理

PCPとはProbabilistic Checkable Proofの略で, 確率的検証可能な証拠のことを表します. 要するにとある良い性質を満たす証拠なのですが, そのような証拠を持つ問題のクラスをクラスPCPと呼びます. PCP定理とは, クラスがクラスNPに一致するということを主張する定理です.

1.1. informalな定義

分かり易さのために, まずinformalにクラスPCPを定義し, 次の節でちゃんとした定義を載せます.

PCP定理(informal)

判定問題LNPを考える. 以下を満たす乱択検証アルゴリズムVと多項式p:NNが存在するとき, LクラスPCPに属すといい, LPCPと表す:

  • 任意のYesインスタンスxに対し, あるy{0,1}p(|x|)が存在して, Pr[V(x,y)=1]=1
  • 任意のNoインスタンスxと文字列y{0,1}p(|x|)に対してPr[V(x,y)=0]1/2.
  • 任意のインスタンスxと文字列y{0,1}p(|x|)に対し, V(x,y)は文字列y{0,1}p(|x|)のうち, たかだか100文字しか見ない.

Yesインスタンスxに対して上記の一つ目の条件を満たす文字列yPCPまたはPC証拠と呼び, 乱択アルゴリズムVPCP検証者と呼びます.

クラスNPの定義(定義1)と比較すると, 以下の二つの違いに気づきます:

  • NP検証者は決定的(すなわちランダムネスを使わない)だったのに対し, PCP検証者はランダムネスを使え, Noインスタンスの拒否確率は1/2であれば良い (従ってこの点においてはNP検証者よりも条件は弱い)
  • PCP検証者Vは証明y{0,1}p(|x|)のうち, 100文字しか見ることができない (この点においてはNP検証者よりも非常に強い条件が課されている). なお, 100や1/2という定数は分かり易さのため書いているだけであり意味はありません. 問題の入力サイズ|x|に依存しない定数であれば良いです.

PCP検証者は証明!FORMULA[101][38383][0]の中で見ることのできる文字数が制限されている. その代わりにサイコロをふることができる. PCP検証者は証明yの中で見ることのできる文字数が制限されている. その代わりにサイコロをふることができる.

すなわち, ランダムネスの部分では条件を緩めている一方で証拠へのアクセス回数においては条件を厳しくしています. 一見するとアクセス制限がものすごく強そうな気がするのですが, PCP定理はNP=PCPを主張します.

PCP定理

PCP=NP

3彩色問題の確率的検証

PCP定理の非自明さをさらに納得するために3彩色問題(3COL)について考えてみましょう. 3彩色問題とはグラフG=(V,E)が与えられてそれが3彩色可能かどうかを判定する問題でした. この問題のNP証拠としては3彩色c:V{1,2,3}をもってくれば良いです. この関数cが本当に彩色の条件を満たすかどうかを検証するには全頂点の色を見なければなりませんでした.

ここで, 一様ランダムに辺{u,v}Eを選んでその両端点でc(u)c(v)ならば受理し, そうでなければ拒否する乱択アルゴリズムVを考えてみましょう. この検証者は確かに2頂点の色しか見ておらず, しかもcが3彩色だった場合は確率1で受理します. 一方, cが彩色でなかった場合はc(u)=c(v)となる辺{u,v}が存在し, このような辺を引き当てた場合のみVは拒否します. しかしそのような辺が1本のみだった場合, Vの拒否確率は1/|E|=Θ(1/|V|2)となってしまい, 1/2からは程遠い値となってしまいます.

では, ランダムに辺をk本選んでその中で両端点が同じ色になるものが存在するかどうかによって判定するのはどうでしょうか? この場合, 見る頂点の個数は高々2k個であり, Noインスタンスを拒否する確率は1(11/|E|)k1exp(k/|E|)となり, やはり定数1/2からは程遠いです (kを増やすとこの確率は定数にできる一方で見る頂点の個数は増えてしまう).

PCP定理によると3COLPCPなので, 実際にPCPを持ちます. 重要なのはPCPの存在性であり, それは先ほど考えたNP証拠の関数cと同じであるとは限らないという点です.

1.2. 厳密な定義

ここでは厳密な定義を載せますが, 要するに2.1の内容をちゃんとした形で述べ直しただけなので, 読み飛ばしても大丈夫です.

オラクルアルゴリズム

文字列z{0,1}に対し, 計算途中でzの文字を参照する(すなわち, 何らかのインデックスiに対してziにアクセスする)ようなアルゴリズムA(zオラクルを持つ)オラクルアルゴリズムといい, Azで表す. この参照をクエリ(query)と呼ぶ.

関数q:NNと入力xを受け取るオラクルアルゴリズムAz(x)を考えます. 任意のxに対してAz(x)のクエリ回数が高々q(|x|)回であるとき, Azのクエリ計算量は高々q(n)であるといいます.
乱択オラクルアルゴリズムAzのクエリ計算量は, ありうる全てのランダムネスの中で最も多いときのクエリ回数として定義します.

例えばクラスNPの定義における検証アルゴリズムV(x,y)は, yをオラクルと見立たとき, オラクルアルゴリズムVy(x)とみなすこともできます. yの文字全てを見る可能性があるので, クエリ計算量は最悪ケースで|y|です.

クラスPCP

二つの関数p,r:NNを考える. 判定問題Lは, 以下の性質を満たす多項式時間乱択オラクルアルゴリズムVと多項式p:NNが存在するとき, PCP(r,q)に属すといい, LPCP(r,q)と表す:

  • 任意のYesインスタンスxに対してあるy{0,1}p(|x|)が存在してPr[Vy(x)=1]=1.
  • 任意のNoインスタンスxと任意のy{0,1}p(|x|)に対してPr[Vy(x)=0]1/2.
  • Vのクエリ計算量は高々q(|x|)であり, Vが使うランダムビットは高々r(|x|)ビット.
PCP定理

PCP(O(logn),O(1))=NP.

PCP(O(logn),O(1))NPは自明です. 実際, rビットのランダムネスを使いクエリ計算量qのPCP検証者がいた場合, 全てのランダムビットを列挙してそれぞれでPCP検証者を決定的にシミュレーションして出力の多数決をとれば決定的な検証者が作れます. この検証者の計算時間は2rq=2O(logn)=poly(n)となり確かに多項式時間です.

1.3. 応用

PCP定理を用いると, PNPの仮定の下で, 多項式時間アルゴリズムによる近似率の限界を証明することができます. 詳しくは こちらのページの4章 などを参照してください.

1.4. 背景

大雑把に言えば, 計算量理論の目標とは特定のタスクをこなすのに必要な計算資源の量(時間, メモリ量, 乱択や量子性の有無など)を明らかにすることです. その中でクラスNPのような 「答えがあっているかどうかを検証する」というタスクの計算量が注目を集めました. 例えば関数fに対してf(x)の値を外部のスーパーコンピュータに計算してもらった時にyという値が帰ってきたとして, ではそのスーパーコンピュータが信頼できるか(それが本当に正しくf(x)=yを満たすのか)を検証するにはどうすれば良いでしょうか?

一つの方法として対話証明という方法があります. これは検証者(=乱択アルゴリズム)のほかに証明者(例えば上記のスーパーコンピュータ)という登場人物が存在していて, 検証者は証明者に何度も(多項式回の)質問をすることができます. 検証者はその質問に対する返答と自身の持つランダムネスを使って解があっていれば確率1で受理, そうでなければ確率1/2で拒否します. このような乱択検証が多項式時間でできるような判定問題のクラスをIP (interactive proof) といいます. 例えばクラスNPはNP証拠を出力する証明者を考えれば対話証明できるので, NPIPです.

ところがクラスIPはNPとは違ってランダムネスを使える上に証明者に何度も質問することができます. これによってクラスIPはどこまで広くなるでしょうか? 驚くべきことに1990年に Sha92LFKN92によってクラスIPはPSPACEと呼ばれるクラスと一致するという定理が示されました. PSPACEとは多項式ビットのメモリを用いて解ける判定問題のクラスで, NPよりもはるかに難しい(と予想されている)問題を含むとても広いクラスです. 要するにNP検証者に対話とランダムネスを付与すればその計算能力がものすごく向上することになります (NPPSPACEは知られていますがこの包含関係が真かどうかは残念ながら未解決ですが...).

PCP定理とは, IP=PSPACEにおいて, 左辺をNPに置き換えたときに右辺がどうなるか?という疑問からスタートして研究されてきました. IPにおける証明者とは質問を表す文字列x{0,1}poly(n)を与えたときに0または1を返す関数P:{0,1}poly(n){0,1}とみなすことができます(注1). ここで, この関数Pをその真理値表(この文字列は2poly(n)ビットの文字列になる)と同一視したとき, 検証者はPという文字列にpoly(n)回アクセスして乱択を使って受理か拒否を判定することになります. これは, 長い証拠の高々100文字だけをみて乱択で出力を決定するPCP検証者と非常に似た設定を考えていることになります.

(注1) 証明者の返答がビットあるような対話証明において, xという質問を(x,i)という質問を「xに対する返答のiビット目は何か?」という質問に置き換えれば返答を1ビットに制限したものに置き換えることができます.

なお, PCP定理はAroraらALMSS98によって証明されましたが, この証明は代数的な手法に基づく非常に複雑なものでした. 現在ではDinurDin07による比較的単純な証明が知られており, 本記事の証明も彼女の証明を紹介するというものになります. なお, この業績でDinurは2019年にゲーデル賞を受賞しています.

2. CSPとPCP

CSPのインスタンスCと割り当てσΣnに対して,
UNSAT(C,σ)=Pri[m][Pi(x)=false]
とし, UNSAT(C)=minσΣnUNSAT(C,σ)とします. つまりUNSAT(C,σ)は割当σによって充足されない制約の割合を意味し, その中で最悪な割当を持ってきた時の割合をUNSAT(C)とします. 明らかに,

  • Cが充足可能UNSAT(C)=0
  • Cが充足可能でないUNSAT(C)1m

が成り立ちます. 本記事で最終的に証明するのは次の定理です.

PCP定理の別の形

ある定数c>0,kN, 多項式p:NN, 有限集合Σ0と, 与えられた2-CSPのインスタンスCを以下の性質を満たす別のk-CSPのインスタンスCに変換する多公式時間アルゴリズムが存在する: 任意の2-CSPインスタンスCに対し,

  • UNSAT(C)=0UNSAT(C)=0
  • UNSAT(C)>0UNSAT(C)c
  • Cの変数の個数をnとすると, Cの変数の個数は高々p(n).
  • CのアルファベットはΣ0.

定理3を用いた定理1の導出

3彩色問題がNP完全であるという事実を証明なしで使います. この事実により, 3彩色問題に対してPCP検証者を構成すれば定理1が証明されます. PCP検証者Vとして以下のものを考えます. Cを入力とします.

  1. 定理3のアルゴリズムを用いてCを変換して定理3の条件を満たす別の2-CSPインスタンスCを得る.
  2. PCP検証者が受け取る証明yCに対する割り当てとする.
  3. Cから一様ランダムに制約Pを選び, yPを充足するならば1, そうでなければ0を出力する.

この検証者はPCP検証者となります. 実際, Vが見る文字数は高々O(klog2|Σ0|)であり, これは入力サイズに依存しない定数です. 次にこれがPCPの条件を満たすことを確認します:

  • 元のインスタンスCが充足可能ならば, Cも充足可能なので, yをその充足割り当てとすれば確率1でVは1を出力します.
  • 元のインスタンスCが充足可能でないならば, Pr[V outputs 0]=UNSAT(C)cです.

なお, PCPの定義では拒否確率が1/2となっていますが, これは上記のPCP検証者をO(log(1/c))回動かして1度でも0を出力すれば0を出力するというようにすれば良いです.

定理3定理1の議論では, CSPに関する定理3を使ってPCP検証者を構成しましたが, 逆にPCP検証者を使ってCSPのインスタンスを構成することができます. qクエリのPCP検証者を考えます. 実は厳密なPCP定理(定理1.2)よりPCP検証者はr=O(logn)ビットのランダムビットを使うため, ありうる2r=nO(1)通りのランダムシードを全て列挙してそれぞれのランダムシードにおいてこのPCP検証者をシミュレートすると, それぞれは証明y{0,1}poly(n)のうちq文字だけをみて受理か拒否を決定します. ですので, y{0,1}poly(n)を変数とみなすと, 2r個の制約からなるq-CSPのインスタンスが構成できたことになります.

このq-CSPのインスタンスは, それが充足可能でないならば任意の割当σ{0,1}poly(n)に対して高々半分の制約しか満たされないという性質を持ちます.
このように見ると, あたかも純粋な計算量理論の結果に見える定理1,2は実はCSPという組合せ論っぽい側面を持っていることがわかります.

定理3のえらいところ

要するに定理3はCSPを別のCSPに変換できるということを主張していますが, 特に最後の条件「UNSAT(C)>0UNSAT(C)c」という部分が難しいです. 一つでも充足されないCの制約が存在すればその性質がCの多くの制約に伝播することを意味します. このように, 局所的な性質が大域的に伝播する (local-to-global)という性質が非自明なポイントであり, これはある種のエクスパンダー性とみなすことができます.

参考文献

[1]
Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach
[4]
Carsten Lund , Lance Fortnow , Howard Karloff , Noam Nisan, Algebraic methods for interactive proof systems, Journal of the ACM
投稿日:2023816
更新日:2024815
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

knewknowl
knewknowl
22
6517
東工大助教. 理論計算機科学.

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 1. はじめに
  2. 1. PCP定理
  3. 1.1. informalな定義
  4. 1.2. 厳密な定義
  5. 1.3. 応用
  6. 1.4. 背景
  7. 2. CSPとPCP
  8. 参考文献