1. 擬似ランダム生成器
平均時計算量では分布のランダムっぽさを, その分布が任意の効率的な敵対者(=アルゴリズム)に対して一様分布と識別できないという性質によって定義する定式化があります. ここでは主に敵対者としてサイズsの回路を考えます. 前回の記事でも紹介しましたが分布の擬似ランダム性を以下で定義します:
定義1 (擬似ランダム性).
\{0,1\}^\ell上の分布Dがサイズsに対して\epsilon-擬似ランダムであるとは, 任意のサイズsの回路Cに対して
\begin{align*} |\mathbf{E}_{x\sim D}[C(x)]-\mathbf{E}_{x\sim U_n}[C(x)]| \leq \epsilon \end{align*}
が成り立つことをいう (ここでU_nは\{0,1\}^n上の一様分布).
定義2 (擬似ランダム生成器).
関数G\colon \{0,1\}^n\to\{0,1\}^\ellは, \{0,1\}^\ell上の分布G(U_n)がサイズsに対して\epsilon-擬似ランダムであるとき, サイズsに対する\epsilon-擬似ランダム生成器であるという.
擬似ランダム生成器は短いランダム文字列を受け取って長い擬似ランダム文字列を返す関数です. 例えば\ellビットのランダム文字列rを使う乱択アルゴリズム\mathcal{A}(x;r)を考えたとき, rとしてランダム文字列の代わりにG(U_n)を用いたアルゴリズム\mathcal{A}(x;G(U_n))もまた元の乱択アルゴリズム\mathcal{A}(x;r)とほぼ同じ振る舞いをすることが示せます (そうでないとすると, \mathcal{A}(x;\cdot)を使ってG(U_n)とU_\ellを識別できるので). 全てのnビットのシードを列挙すれば, 2^n倍のオーバーヘッドでアルゴリズムを脱乱択することができます. このように考えると, \ellが大きいかつ\epsilonが小さいほど擬似ランダム生成器は良いということになります.
2. 簡単な例
2.1. 1ビットだけ伸ばす
前回の記事の定理(Yaoのnext-bit predictor)により, 関数f\colon\{0,1\}^n\to\{0,1\}がサイズsに対して(1/2-\epsilon)困難であるならば, 関数G\colon x\mapsto (x,f(x))はサイズs-O(1)に対して\epsilon-擬似ランダム生成器になります. この関数Gは\ell=n+1なので, 1ビットだけ伸ばす擬似ランダム生成器です.
定理1.
関数f\colon\{0,1\}^n\to\{0,1\}がサイズsに対して(1/2-\epsilon)-困難ならば, 関数G\colon x\mapsto (x,f(x))はサイズs-O(1)に対して\epsilon-擬似ランダム生成器である.
2.2. 2ビットだけ伸ばす
関数G\colon \{0,1\}^{2n}\to \{0,1\}^{2n+2}を
\begin{align*} G(x,y)=(x,f(x),y,f(y)) \end{align*}
としてみます (ここでは入力を前半と後半のnビットずつに区切り, それぞれをx,y\in\{0,1\}^nとしている). 同様の議論を使うとこれは2ビットだけ伸ばす擬似ランダム生成器になることが示せます.
定理2.
関数f\colon\{0,1\}^n\to\{0,1\}がサイズsに対して(1/2-\epsilon/2)-困難ならば, 関数G\colon (x,y)\mapsto (x,f(x),y,f(y))はサイズs-O(1)に対して\epsilon-擬似ランダム生成器である.
証明:
背理法で示す. あるサイズs'の回路Cが存在して
\begin{align*} \mathbf{E}_{(x,y)\sim U_{2n}}[C(x,f(x),y,f(y)] - \mathbf{E}_{(z,w)\sim U_{2n+2}}[C(z,w)]>\epsilon \end{align*}
となるとする (必要があれば出力ビットを反転することで絶対値を外せる). 期待値の線形性およびランダム文字列をそれぞれz=(x,b),w=(y,c)と書き直すと
\begin{align*} \mathbf{E}_{(x,b,y,c)\sim U_{2n+2}}[C(x,f(x),y,f(y)) - C(x,b,y,c)] > \epsilon \end{align*}
を得ます. この式の左辺は, 同じ値を足したり引いたりすることで
\begin{align*} \mathrm{(LHS)} &= \mathbf{E}[C(x,f(x),y,f(y))] - \mathbf{E}[C(x,f(x),y,c)] \\ &\hspace{1em}+ \mathbf{E}[C(x,f(x),y,c)] - \mathbf{E}[C(x,b,y,c)] > \epsilon \end{align*}
を得ます. よって, 前半の差と後半の差の少なくとも一方は>\epsilon/2です. すなわち
\begin{align*} &\mathbf{E}[C(x,f(x),y,f(y))] - \mathbf{E}[C(x,f(x),y,c)] > \epsilon/2 \\ &\hspace{10em}\text{ or }\\ &\mathbf{E}[C(x,f(x),y,c)] - \mathbf{E}[C(x,b,y,c)] > \epsilon/2 \end{align*}
です. もし前者が成り立つならば, あるx^*\in\{0,1\}^nが存在して回路C'(y,c):=C(x^*,f(x^*),y,c)を考えると, これは二つの分布(y,f(y))とU_{n+1}をアドバンテージ>\epsilon/2で識別する. これは定理1に反する. 後者が成り立つ場合でも同様に, 回路Cにおいてうまく(y,c)\in\{0,1\}^{n+1}を選んで固定して得られる回路C'は定理1に反する.
(証明終)
コメント1. 上記の証明において, 回路の入力を部分的にうまく選んで固定して新しい回路を得ていました. 例えば前半のケースではxを固定していましたが, このときのxの選び方は(y,c)の選び方には依存しないことに注意してください. また, xを固定するとf(x)\in\{0,1\}も自動的に固定されます. このように回路の入力を部分的にうまく選んだ値に固定することをハードワイヤ (hardwire)するといいます.
コメント2(適当に読み飛ばしてください). 上記の証明においては同じ値を足したり引いたりしてうまく式変形した後に, 二つのケースに分けてそれぞれについて(U_n,f(U_n))とU_{n+1}を識別する回路C'を構成しました. このときの式変形では,
\begin{align*} \mathbf{E}[C(D)]-\mathbf{E}[C(D')]>\epsilon \end{align*}
の形をした左辺を二つの差分の和として表現していて, それぞれの差分では構成要素が一つしか異ならないテレスコープサムのような形に変形しています. このように, 二つのDとD'を補間するような分布列D_0=D,D_1,\dots,D_k=D'を用意して
\begin{align*}\mathbf{E}[C(D)]-\mathbf{E}[C(D')]=\sum_{i=1}^k \mathbf{E}[C(D_{i-1})-C(D_i)] >\epsilon \end{align*}
と式変形して議論することをハイブリッド議論 (hybrid argument)と呼び, 分布列D_0,\dots,D_kをハイブリッド分布と呼びます (平均時計算量の脱乱の分野では頻出です).
コメント3. 上記の証明ではあくまでも回路の存在性のみをいっていて, その回路が効率的に構築できるかどうか (つまり元となる回路Cを入力として受け取って所望の回路C'を出力するアルゴリズムの存在性) については何も言っていないことに注意してください. 例えばx=x^*にハードワイヤする際にf(x^*)も同時にハードワイヤしましたが, このときf(x^*)を計算する手間は考えていません (x^*を固定したら一意に定まるから).
2.3. 2ビット伸ばす (続)
2.2節では2nビットのランダム文字列を受け取って2n+2ビットの擬似ランダム文字列を出力する擬似ランダム生成器を紹介しました. ここでは, 次の章のために別の擬似ランダム生成機G\colon \{0,1\}^{2n-d} \to \{0,1\}^{2n-d+2}を紹介します (dはパラメータ).
まず, 2n-dビットの入力z\in\{0,1\}^{2n-d}の前半nビットをx, 後半nビットをyとします. 関数G(z)は(z,f(x),f(y))を出力します.
d=0のときは2.2節と同じになりますが, ここではxとyの取り方にオーバーラップを許している点が異なります. このように構成されたG''もdが小さければ擬似ランダム生成器になることが示せます:
定理3.
関数f\colon\{0,1\}^n\to\{0,1\}がサイズsに対して(1/2-\epsilon/2)-困難であるならば,上記で定義された関数Gはサイズs-2^{O(d)}に対して\epsilon-擬似ランダム生成器である.
証明する前にまず, そもそも2.2節の議論で示せないか考えてみましょう. 2.2節の議論では, 二つの分布(x,f(x),y,f(y))と(x,b,y,c)\sim U_{2n+2}が識別できるならばうまく(y,c)\in\{0,1\}^{n+1}をハードワイヤすることで(x,f(x))とU_{n+1}を識別する回路が作れて定理1に反するという方針でした. つまり, 入力を部分的に固定することで(x,f(x))とU_{n+1}を識別する回路が作れてしまうというのが2.2節の議論のミソでした (下図).
2.2節の議論で構成した回路C' (二つ目のケースを図示).
今回のG''にこの議論を適用してみましょう. つまり, (z,f(x),f(y))と(z,b,c)を識別する回路Cが作れたとします. 本来であれば(y,c)をうまくハードワイヤして得られた回路C'は(x,f(x))とU_{n+1}を識別することを言いたいのですが, xとyにはサイズdのオーバーラップがあるので, yに該当するnビットを固定してしまうとxの最後のdビットも巻き込まれてハードワイヤされてしまいます. 従って, (y,c)をハードワイヤして得られる回路はC'\colon \{0,1\}^{n-d+1}\to\{0,1\}となっており, そもそも入力として(x,f(x))を受付けてくれません.
単純なアイデアですが, この問題点はxとオーバーラップしていない部分をハードワイヤすることによって解決できます.
命題2の証明.
ビット列w\in\{0,1\}^\ellおよび1\leq a\leq b\leq \ellに対してw[a:b]をwの第a番目からb番目までの部分文字列とする.
G(U_{2n-d})とU_{2n-d+2}をアドバンテージ>\epsilonで識別する回路をCとする. 与えられたz\in\{0,1\}^{2n-d}に対し, 前のnビットをx=z[1:n], 後ろのnビットをy=z[n-d,2n-d]とする. 定義より, b,c\sim U_1とすると,
\begin{align*} \mathbf{E}[C(z,f(x),f(y)) - C(z,b,c) > \epsilon. \end{align*}
この式の左辺は
\begin{align*} (\mathrm{LHS}) &= \mathbf{E}[C(z,f(x),f(y))] - \mathbf{E}[C(z,f(x),c)] \\ &\hspace{1em}+\mathbf{E}[C(z,f(x),c)]-\mathbf{E}[C(z,b.c)] > \epsilon \end{align*}
より,
\begin{align*} &\mathbf{E}[C(z,f(x),f(y))] - \mathbf{E}[C(z,f(x),c)] > \epsilon/2 \\&\hspace{10em}\text{ or }\\&\mathbf{E}[C(z,f(x),c)]-\mathbf{E}[C(z,b,c)] > \epsilon/2\end{align*}
を得る.
(i). 前者が成り立つ場合, xの前からn-dビットx[1:n-d]をあるw^*\in\{0,1\}^{n-d}にハードワイヤする. このとき, xはw^*とy[1:d]を結合した文字列となるので, f(x)=f(w^*,y[1:d])の形で書くことができる. yが変数ならばこの値はd個の変数にしか依存しない値なので, サイズ2^{O(d)}の回路で計算できる (つまり, 固定したw^*に対して関数(w^*,y[1:d])\mapsto f(w^*,y[1:d])を計算するサイズ2^{O(d)}が存在する). この回路をCのf(x)を受け取る部分にくっつけます(下図).
このようにして得られた回路をD(y,c)とすると, Dのサイズはs'+2^{O(d)}となり, (y,f(y))と(y,U_1)をアドバンテージ>\epsilon/2で識別する.
(ii). 後者が成り立つ場合も同様にして(x,f(x))と(x,U_1)をアドバンテージ>\epsilon/2で識別する回路を構成できる. こちらは単純にyの後ろn-dビットとcをハードワイヤすればよい.
ケース(i),(ii)どちらにしても所望の回路が構成できたので, 主張を得る.
(証明終)
3. Nisan-Wigderson生成器
ここまで定義した擬似ランダム生成機は2ビット程度しか伸ばさない, 少々心許ないものでしたが, 実は次数的に伸ばせることが知られています. NisanとWigdersonによるとても格好良いタイトルの論文「Hardness vs Randomness」は, 非常に困難な関数fを使って擬似ランダム生成器を構成する手法を提案しています. この手法によって構成された擬似ランダム生成器はNisan-Wigderson生成器と呼ばれ, 非常に強力なツールとして知られています.
2.2節と2.3節で紹介した擬似ランダム生成器Gはどれも入力zからnビットの文字列x,yを二つ取り出し, (z,f(x),f(y))を出力するというものでした. また, xとyのオーバーラップの長さdが小さくてもサイズ2^{O(d)}の回路をくっつければGの擬似ランダム性を示せることを2.3節で示しました. ここで, そもそも取り出す文字列は二つでなく三つ以上でも同様の証明が機能するという点に着目します. これをもとに設計されたのがNisan-Wigderson生成器です.
3.1. Combinatorial Design
定義4.
台集合[m]上の部分集合族\mathcal{S}=\{S_1,\dots,S_\ell\}が以下を満たすとき, (m,n,d)-デザインと呼ぶ:
(1). 各S_iは|S_i|=n.
(2). 全ての1\leq i<j\leq \ellに対し, |S_i\cap S_j|\leq d.
(m,n,d)-デザインは2.3節で考えた部分文字列の取り出し方を一般化したものになっています.
定理5 (Nisan-Wigderson生成器).
\mathcal{S}=\{S_1,\dots,S_\ell\}を(m,n,d)-デザインとし, f\colon\{0,1\}^n\to\{0,1\}を(1/2-\epsilon/\ell)-困難であるとする. 関数G^f_{\mathcal{S}}\colon \{0,1\}^m\to\{0,1\}^\ellを
\begin{align*} G^f_\mathcal{S}(x) = (f(x|_{S_1}), \dots, f(x|_{S_\ell})) \end{align*}
で定義する (x|_S\in\{0,1\}^{|S|}はxのSへの制限. このとき, Gはサイズs-\ell 2^{O(d)}に対し\epsilon-擬似ランダム生成器である.
証明は定理3と同様なので, 概略だけ記します.
証明概略. G^f_{\mathcal{S}}(U_m)とU_\ellをアドバンテージ>\epsilonで識別する回路をCとします. 簡単のため, x_i=x|_{S_i}と表します. b_1,\dots,b_\ell\sim U_1とします. 定義より
\begin{align*} \mathbf{E}[C(f(x_1),\dots,f(x_\ell))] - \mathbf{E}[C(b_1,\dots,b_\ell)]>\epsilon. \end{align*}
ハイブリッド議論を見据えて式変形しましょう. D_i=(f(x_1),\dots,f(x_i),b_{i+1},\dots,U_\ell)とすると, D_0=(b_1,\dots,b_\ell)かつD_\ell=(f(x_1),\dots,f(x_\ell))なので
\begin{align*}(\mathrm{LHS})&= \mathbf{E}[C(D_\ell)]-\mathbf{E}[C(D_0)] \\&=\sum_{i=1}^\ell\mathbf{E}[C(D_i)-C(D_{i-1})] > \epsilon\end{align*}
より, あるi\in[\ell]に対して
\begin{align*} &\mathbf{E}[C(f(x_1),\dots,f(x_{i-1}),f(x_i),b_{i+1},\dots,b_\ell)] - \\ &\mathbf{E}[C(f(x_1),\dots,f(x_{i-1}),b_i,b_{i+1},\dots,b_\ell)] > \epsilon/\ell \end{align*}
です. Cの引数はi番目だけ異なっていることに注意してください. 変数名をx_i=yと変えて, yに対応する部分以外全てのビットをハードワイヤします (つまりx|_{[m]\setminus S_i}=w^*と固定する). さらに, b_{i+1},\dots,b_\ellもハードワイヤします. すると, f(x_1),\dots,f(x_{i-1})はそれぞれ, y\in\{0,1\}^nのうち高々dビットにしか依存しません (\mathcal{S}が(m,n,d)-デザインだから). よってこれらはサイズ2^{O(d)}の回路で計算できるので, これらをCにくっつけることによって(y,f(y))と(y,U_1)をアドバンテージ>\epsilon/\ellで識別する回路を得ました.
(証明終).
3.2. デザインの存在性
以前の記事で証明しましたが, パラメータn,d\in\mathbb{N}に対し, \ell=n^{d+1}個の集合からなる(n^2,n,d)-デザイン\mathcal{S}=\{S_1,\dots,S_\ell\}が存在します. このデザインを使うとNisan-Wigderson生成器は
\begin{align*} G\colon \{0,1\}^{n^2}\to \{0,1\}^{n^{d+1}} \end{align*}
となります.
4. Hardness vs Randomness
ここまでの定理では
\exists 平均的に非常に困難な関数 \Rightarrow \exists擬似ランダム生成器
という形の結果を証明しました. このように, 関数の困難性を利用して擬似ランダムネスを生み出す枠組みはHardness vs Randomnessと呼ばれ, 平均時計算量の理論で近年も活発に研究されています.
0 件のコメント:
コメントを投稿