Arthur–Merlinプロトコル
計算複雑性理論におけるArthur–Merlinプロトコル("Arthur–Merlin protocol")あるいは、Merlin–Arthurプロトコル("Merlin–Arthur protocol")は、検証者のコイン投げが公開されている(使用する乱数が証明者に知られている)タイプの対話型証明プロトコルである。そのようなプロトコルを持つ言語のクラスとして、AM及びMAがそれぞれ定義され、本項では主にこのクラスについて説明する。によって導入された。
Arthur–Merlinプロトコルは、ArthurとMerlinがやりとりをして、与えられた問題を解く(受理する/拒否する)ようなプロトコルである。他の対話証明プロトコルと用語を合わせるため、以降、Arthurを検証者("Verifier")、Merlinを証明者("Prover")と呼ぶ。検証者は、確率的多項式時間で動く標準的なコンピュータであり、証明者は事実上無限の計算能力を持つオラクルである。ただし、証明者は質問に対し必ずしも正直に答えるわけではなく、検証者は回答をよく吟味しなければならない。このような状況下において、問題の答えが"Yes"ならば検証者が受理する確率が少なくとも2/3あり、答えが"No"ならば受理する確率が高々1/3となるようなプロトコルがArthur–Merlinプロトコルである。
Arthur–Merlinプロトコルの特徴的な点は、検証者の使う乱数(コイン)は公開と設定される所にある。プロトコルでは、検証者からの「質問(クエリ)」は、自身が動作するために使用する乱数のみを送る。よって、無限の計算能力がある証明者は、回答を受け取った検証者がどのように振る舞うのかを完璧に知ることができる。使うコインを秘密にした対話証明であるIPと対比できるが、能力にほぼ差がないことが知られている。
最初、どちらから情報を渡すかによって区別し、検証者から証明者への通信で始まるプロトコルをAMプロトコル、証明者から検証者への通信で始まるプロトコルをMAプロトコルと呼ぶ。通信がk回のAMプロトコルを持つ言語のクラス(あるいはMAプロトコルを持つ言語のクラス)をAM[k](あるいはMA[k])で表す。ただし、単にAM(あるいはMA)と言った場合、定数回moveのAM[const](あるいはMA[1])を表す。また、AM=AM[2]であることが知られているため、AMを2-moveのAMプロトコルを持つ言語のクラスとして扱うこともある。
その他の複雑性クラスとの関係は、
formula_1
であることが知られている。この内、分離(formula_2を示すこと)は難しく、逆の包含関係も証明されていない。一方で、AMとBP・NPの関係は、単なる定義の言い換えに留まらない。そもそもBabaiのAM導入の動機は、PとBPPの関係の如くNPを拡張できないかという点にあり、検証者が決定的に振る舞うNPに対して、AMは確率的に振る舞う。
他の確率的な複雑性クラスにも言えることだが、定義に現れる2/3や1/3と言った数字に大きな意味はない。複数回行うことによって、確率増幅が可能であるから1/2より有意に大きい(あるいは小さい)ことが重要である。
証明者(Prover, P)を無限の計算能力を持つチューリングマシン、検証者(Verifier, V)を確率的多項式時間チューリングマシンとする。PとVは互いに通信可能であり、P→Vの通信と、V→Pの通信をそれぞれ1-moveと数え、合わせて1ラウンドの対話と呼ぶ。Vは自分の持つランダムテープによって挙動が確率的となるが、このテープをV→Pの通信の際に送る。PとVは同一の入力xに対して、k-moveの通信後、Vが受理(accept)したとき、チューリングマシンのペア(P,V)(x)はxを受理するとする。次の条件を満たすとき、言語Lに対するAM[k](V→Pから始めた場合。P→Vから始めた場合はMA[k])対話プロトコルを構成しているといい、言語LはAM[k](あるいはMA[k])に属する。ある言語Lが複雑性クラスAM(=AM[2])に属するとき、次を満たす。ただし、M(・)は決定的多項式時間チューリングマシン、p(・)、q(・)は多項式を表す。
あるいは、次のようにしてもよい。
ある決定的チューリングマシンが存在し、次を満たす。
ある言語Lが複雑性クラスMA(=MA[1])に属するとき、次を満たす。ただし、M(・)は決定的多項式時間チューリングマシン、p(・)、q(・)は多項式を表す。
AMと同様に言い換える。
ある確率的チューリングマシンが存在し、次を満たす。
AMとMAの違いは、乱数を証明者が知ることができるか否かである。AMの場合、乱数が明らかになってから証拠を探すことができる(もはや証明者から見ると、確率的な挙動をしない)が、MAの場合は、検証者がどのように動くのか、証明者は知らない状態で、証拠を提示しなければならない。
また、健全性の定義は、
等としても同じことである。
複雑性クラス一般に、補問題のクラスを定義できる。AMもまた、co-AMというクラスを考えることができる。形式的には次のように表される。
AM=co-AMかは知られていないが、2つのクラスは異なっていると予想されている。
絶対完全性("perfect completeness")は、確率1で完全性が満たされることであり、これを満たす言語のクラスをformula_17と書くことにする。一方、絶対健全性("perfect soundness")は、確率1で健全性が満たされることであり、これを満たす言語のクラスをformula_18と書くことにする。AM及びAM[poly]は、絶対完全性の条件を課しても不変である。つまり、
が成り立つ。一方で、
である。
グラフ非同型問題(Graph Non-Isomorphism problem, GNI)は、2つのグラフformula_22が与えられたとき、同型でないことを判定する問題である。GNIは、AMに属する。具体的なAMプロトコルを構成するよりも、IP[const]プロトコルを構成した方が分かりやすい。上記のプロトコルは、IP[const]プロトコルである。2つのグラフが非同型のとき検証者は必ず受理し、同型のときどんな証明者でも検証者は1/2の確率で拒否する。
定数回moveのAM[const]及びMA[const]は、すべてAM[2]に潰れる。つまり、任意の定数k≧2に対して次が成り立つ。
以上の性質より、定数回moveのAM[const]を単にAM、MA[1](及びMA[2])を単にMAと表すことする。
また、周辺のクラスとの関係について次が知られている。
特に、formula_30は、によって定義された、任意のクラスformula_31に対するクラスformula_32を使うことによって、任意のk≧1に対して
と一般化できる(formula_30はk=1のケース)。従って、formula_36である。
MAがformula_37を包含することは明らかだが、逆は知られていない。MAの場合は、formula_3ならばあるwが存在して、Pr[M(x,w,r)=1]≧2/3を満たす多項式時間チューリングマシンM(x,w,r)が存在すればよい。対して、formula_37は、formula_3ならば、あるwが存在して、確率的多項式時間チューリングマシンM(x,w)が受理しなければならない(BPPは、任意の入力に対して高い確率で受理するかあるいは拒否するかが決まっていなければならない)。ここでは、(x,w)が入力であるから、任意のw'についても(意味があるかないかに関わらず)Pr[M(x,w',r)=1]は高いか低いかのどちらかであり、例えば1/2となることはない。
一方、IPとの関係では、任意のkについて
である。本来の定義上の差違は、公開コインを使うか否かという点であったが、実はほぼ差はなかったと言える。表記に統一性がないが、慣行上定数回の対話証明プロトコルを持つ言語はAM、多項式回の対話証明プロトコルを持つ言語はIPに属するという分け方をする。つまり、
とする。
ゼロ知識対話証明との関係について、が、formula_42を示した。さらに、は、formula_43を示した。2つの結果を合わせると、
となる。
は次を示した。
一般に多項式階層は崩壊しないと考えられているので、co-NPがAMに包含されていないだろうと考えられている。また、別証明としても知られている。
一般化すると、k≧1についてformula_46(あるいはformula_47)ならば、formula_48である。
formula_49は多項式時間チューリング還元(Cook還元)で閉じている。つまり、
である。