NP証明の一様サンプリング(続き)
前回のエントリの続きです.
言語に対してそのYESインスタンスを入力として与えられたときに,そのに対する証明集合[tex: R_x = \{ w\in\{0,1\}^m:
大まかな流れは以下の通りです.
- ランダムなハッシュ(実際には m-wise independent hash) を選び,条件「異なるが存在してがの証明でかつが成立する」か となるまで,ハッシュの値域を制御するパラメータを0から開始して1づつ増加させながらこのランダムなハッシュ選択を繰り返す.ここでである.
- 一様ランダムにから選んでその逆像を全て列挙し,それらの中から一様ランダムに要素を選んで出力する.
ステップ2で適当なハッシュ関数が選べたときの状況が下の図です.ここでポイントなのは,まずランダムなハッシュを持ってきて良く分からない集合を潰したときに,その逆像のサイズは高い確率である程度揃っているという点です.そのサイズが多項式で押さえられればNPオラクルで逆像のサイズをチェックしたり逆像を全て列挙することが可能となります.この辺は後でもう少し詳しく書きます.