Processing math: 0%

2022年4月19日火曜日

ランダム行列の行列積 part 3

Part1, Part2に引き続き, 有限体\mathbb{F}_q上の二つの独立な一様ランダムな行列A,B\sim\mathbb{F}_q^{n\times n}が与えられた時に積ABを計算せよという問題は最悪計算量 (任意の与えられたA,Bに対してABを計算する時の計算量) とほぼ一致することを見ました. 具体的にはPart1,2で以下の二つの定理を証明しました.

定理1(BLR93).
あるT(n)時間アルゴリズム\mathcal{A}が存在して\Pr_{A,B\sim\mathbb{F}_q^{n\times n}}[\mathcal{A}(A,B)=AB]\geq 1-\epsilonを満たすならば, あるO(T(n))時間乱択アルゴリズム\mathcal{A}'が存在して全てのA,B\in\mathbb{F}_q^{n\times n}に対して\Pr[\mathcal{A}'(A,B)=AB]\geq 1-4\epsilonを満たす. ここで確率は\mathcal{A}'の乱択を考える.


定理2(folklore; explicitly in [Asadi, Golonev, Gur, Shinkar, STOC22]).
あるT(n)時間アルゴリズム\mathcal{A}が存在して\Pr_{A,B\sim\mathbb{F}_q^{n\times n}}[\mathcal{A}(A,B)=AB]\geq \alphaを満たし, かつq>\lceil6/\alpha\rceilならば, あるO(T(n)/\alpha^2)時間乱択アルゴリズム\mathcal{A}'が存在して全てのA,B\in\mathbb{F}_q^{n\times n}に対して\Pr[\mathcal{A}'(A,B)=AB]\geq 0.99を満たす. ここで確率は\mathcal{A}'の乱択を考える.

これら二つの定理はそれぞれ
  • 定理1では\mathcal{A}の成功確率は0.75以上でなければ意味をなさない.
  • 定理2では\mathbb{F}_qのサイズが大きくなければならない.
という課題を抱えていました. この二つの課題は[Asadi, Golonev, Gur, Shinkar, STOC22]によって次のように解決されました:

定理3([Asadi, Golonev, Gur, Shinkar, STOC22]).
あるT(n)時間アルゴリズム\mathcal{A}が存在して\Pr_{A,B\sim\mathbb{F}_q^{n\times n}}[\mathcal{A}(A,B)=AB]\geq \alphaを満たすならば, あるq^{O(\log^4(1/\alpha)}\cdot T(n)時間乱択アルゴリズム\mathcal{A}'が存在して全てのA,B\in\mathbb{F}_q^{n\times n}に対して\Pr[\mathcal{A}'(A,B)=AB]\geq 0.99を満たす. ここで確率は\mathcal{A}'の乱択を考える.

定理3の帰着\mathcal{A}'の計算時間はqに依存しますが, qが大きい場合は定理2を使えば良いです.

本記事では定理3の計算時間を少し遅くした以下の定理を証明します.

定理4(weark ver of [Asadi, Golonev, Gur, Shinkar, STOC22]).
あるT(n)時間アルゴリズム\mathcal{A}が存在して\Pr_{A,B\sim\mathbb{F}_q^{n\times n}}[\mathcal{A}(A,B)=AB]\geq \alphaを満たすならば, あるq^{O(\alpha^{-2})}\cdot T(n)時間乱択アルゴリズム\mathcal{A}'が存在して全てのA,B\in\mathbb{F}_q^{n\times n}に対して\Pr[\mathcal{A}'(A,B)=AB]\geq 0.99を満たす. ここで確率は\mathcal{A}'の乱択を考える.

定理4の証明のために二つの道具を用意します. 一つは前回の記事で証明した確率的Bogolyubov--Ruzsaの補題です.

補題1 (確率的Bogolyubov--Ruzsaの補題).
集合D\subseteq \mathbb{F}_q^n|D|\geq \delta |\mathbb{F}_q^n|を満たすならば, \dim V\geq n-\delta^{-2}を満たす線形部分空間Vであって,
任意のx\in Vに対して\Pr_{a,b,c,d\sim \mathbb{F}_q^n}[a,b,c,d\in D|a+b-c-d=x]\geq \delta^5
を満たすものが存在する.

もう一つの道具はランダム低ランク行列です. パラメータkを受け取り以下のアルゴリズムによって生成された行列をR_kとします.
  • v_1,\dots,v_k\sim\mathbb{F}_q^nを一様ランダムに生成する.
  • v_{k+1},\dots,v_nをそれぞれv_1,\dots,v_kのランダムな線形結合とする (結合の各係数が\mathbb{F}_q上一様ランダム).
  • v_1,\dots,v_nを並べた行列をR_kとして出力する.
この時, 以下が成り立ちます (証明は省略).

補題2.
\dim(V)\geq N-kを満たす任意の線形部分空間Vと任意の行列C\in\mathbb{F}_q^Nに対し, \Pr[C+R_k\in V]\geq \frac{1}{2q^k}.



定理4の証明.
N=n^2とし, 行列全体の集合\mathbb{F}_q^{n\times n}=\mathbb{F}_q^Nを線形空間とみなします. S=\{(A,B)\colon \mathcal{A}(A,B)=AB\}\mathcal{A}が成功する入力の集合とします. 行列A\in\mathbb{F}_q^Nを固定し,
D_A = \{B\in\mathbb{F}_q^N\colon (A,B)\in S\}
とします. A\sim\mathbb{F}_q^Nが一様ランダムに与えられたときの|D_A|の期待値は \geq\alpha|\mathbb{F}_q^N|です.

最後に, D=\{A\in\mathbb{F}_q^N\colon |D_A|\geq (\alpha/2)|\mathbb{F}_q^N|\}とします. 直感的には, A\in D\mathcal{A}にとって(平均的に)解きやすいインスタンスであるといえます. A\sim\mathbb{F}_q^Nの時の確率変数|D_A|/|\mathbb{F}_q^N|に対して逆マルコフの不等式(Part2, 補題2参照)を適用すると\Pr_{A\sim\mathbb{F}_q^N}[|D_A|\geq (\alpha/2)|\mathbb{F}_q^N|]\geq \alpha/2が成り立ちます. すなわち|D|\geq (\alpha/2)|\mathbb{F}_q^N|となります.

ここまでで二つの集合D,D_Aを定義しました. ここからは二段階に分けた帰着を考えます.
  1. A\in Dを満たす任意の入力(A,B)に対してABを計算するアルゴリズム\mathcal{A}_1を構成する.
  2. \mathcal{A}_1をサブルーチンとして呼び出すことでA\not Dに対してもABを計算できるアルゴリズム\mathcal{A}_2を構成する.
ケース1: A\in D.

この時は|D_A|\geq \alpha/2となります. D_Aに対して補題1を適用すると, \dim(V)\geq N-4\alpha^{-2}を満たすある線形部分空間Vが存在して
\forall x\in V,\Pr_{a,b,c\sim \mathbb{F}_q^N,d=a+b-c-x}[a,b,c,d\in D_A]\geq \alpha^5/32
です (ここではa+b-c-d=x \iff d=a+b-c-xに注意). a,b,c,d\in D_Aならば\mathcal{A}は行列積Aa,Ab,Ac,Adを正しく計算できることになるので, Ad=Aa+Ab-Ac-Axに注意するとAxを計算することができます.

さらに, 与えられたBに対して補題2より
\Pr[B+R_k\in V]\geq \frac{1}{2q^{4\alpha^{-2}}}
となります. よってx=B+R_kとして上の議論を適用することができます.

まとめると\mathcal{A}_1B\in\mathbb{F}_q^Nを受け取って次のように計算します.
  • R_kS_1,S_2,S_3\sim \mathbb{F}_q^Nをサンプリングし, S_4=S_1+S_2-S_3-(B+R_k)とする.
  • AR_kを計算する (R_kのランクが小さくサンプリングした時に線形結合もわかっているのでO(kn^2)時間で計算できる).
  • C=\mathcal{A}(A,S_1)+\mathcal{A}(A,S_2)-\mathcal{A}(A,S_3)-\mathcal{A}(A,S_4)-AR_kとする. AB=CかどうかをFreivaldのアルゴリズムで確認し, Yesならば出力. そうでなければ最初のステップに戻る.
各繰り返しはO(T(n))時間で計算可能です. 最初のステップでB+R_k\in VかつS_1,S_2,S_3,S_4\in D_Aを満たせば最後のステップでC=ABとなります. これが起こる確率は上記の解析よりq^{-O(\alpha^{-2})}です. 従って全体の繰り返し回数をq^{O(\alpha^{-2})}でとれば成功確率を0.99にでき, この時の\mathcal{A}_1の計算時間はq^{O(\alpha^{-2})}T(n)です.

ケース2: A\not\in D.

ケース2もケース1とほぼ同じです. ここでは\mathcal{A}_1をサブルーチンとして使います. |D|\geq \alpha/2より, Dに対して補題1を適用すると, \dim(V')\geq N-4\alpha^{-2}を満たすある線形部分空間V'が存在して
\forall x\in V',\Pr_{a,b,c\sim \mathbb{F}_q^N,d=a+b-c-x}[a,b,c,d\in D]\geq \alpha^5/32
です. a,b,c,d\in Dならば\mathcal{A}_1は任意のBに対して行列積aB,bB,cB,dBを正しく計算できることになるので, dB=aB+bB-cB-xBに注意するとxBを計算することができます.

さらに, 与えられたAに対して補題2より
\Pr[A+R_k\in V']\geq \frac{1}{2q^{4\alpha^{-2}}}
となります. よってx=A+R_kとして上の議論を適用することができます.

まとめると\mathcal{A}A,B\in\mathbb{F}_q^Nを受け取って次のように計算します.
  • R_kS'_1,S'_2,S'_3\sim \mathbb{F}_q^Nをサンプリングし, S_4=S_1+S_2-S_3-(A+R_k)とする.
  • R_kBを計算する (R_kのランクが小さくサンプリングした時に線形結合もわかっているのでO(kn^2)時間で計算できる).
  • C=\mathcal{A}_1(S_1,B)+\mathcal{A}_1(S_2,B)-\mathcal{A}_1(S_3,B)-\mathcal{A}(S_4,B)-R_kBとする. AB=CかどうかをFreivaldのアルゴリズムで確認し, Yesならば出力. そうでなければ最初のステップに戻る.
ケース1と同じ解析により, アルゴリズム\mathcal{A}の計算時間はq^{O(\alpha^{-2})}\cdot T(n)になります. (証明終).







0 件のコメント:

コメントを投稿

講義資料をNotionで書いてみた

 プログラミング応用という名前の講義を受け持っており, そこで組合せ最適化のベーシックな話題とそのPythonでの実装を教えているのですが, 資料をNotionで書いてみました. 講義資料をNotionで公開しているのでアルゴリズムの基礎とかNP困難性とかを勉強したい人はどう...