- 各$S\in\mathcal{S}$に対して$|S|=n$.
- 各$S\neq T\in \mathcal{S}$に対して$|S\cap T|\leq d$.
理論計算機科学 (Thoerotical Computer Science) の色んな定理やアルゴリズムを紹介していきます. 基本的には日本語の資料がほとんどないような知見を解説していきます.
2022年7月4日月曜日
combinatorial designの構成
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では$\mathcal{A}$の成功確率は$0.75$以上でなければ意味をなさない.
- 定理2では$\mathbb{F}_q$のサイズが大きくなければならない.
- $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$として出力する.
- $A\in D$を満たす任意の入力$(A,B)$に対して$AB$を計算するアルゴリズム$\mathcal{A}_1$を構成する.
- $\mathcal{A}_1$をサブルーチンとして呼び出すことで$A\not D$に対しても$AB$を計算できるアルゴリズム$\mathcal{A}_2$を構成する.
- $R_k$と$S_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ならば出力. そうでなければ最初のステップに戻る.
- $R_k$と$S'_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ならば出力. そうでなければ最初のステップに戻る.
2022年4月18日月曜日
Bogolyubov-Ruzsaの補題 (加法的組合せ論)
- $D+D = \{a+a'\colon a,a'\in D\}$.
- $-D = \{-a\colon a\in D\}$.
- $k\in\mathbb{N}$に対して$kD=\{a_1+\dots+a_k\colon a_1,\dots,a_k\in D\}$.
- $D-D = D+(-D) = \{a-a'\colon a,a'\in D\}$.
- $v=0$
- $v\in R_\epsilon$
- それ以外 ($v\not\in R_\epsilon\cup\{0\}$)
- $v=0$の時は$\chi_0\equiv 1$より$\widehat{\mathbb{1}}_D(0)\chi_0(x)=\langle \mathbb{1}_D,1\rangle = \delta$である.
- $v\in R_\epsilon$の時は, $V$の定義より$\langle x,v\rangle = 0$なので$\widehat{\mathbb{1}}_D(v)\chi_v(x)=\widehat{\mathbb{1}}_D(v)$である.
2022年4月15日金曜日
ランダム行列の行列積 part 2
前回の記事に引き続き, 独立一様ランダムな二つの行列$A,B\sim\mathbb{F}_q^{n\times n}$が与えられた時に積$AB$を計算せよという問題を考えます.
前回は[Blum, Luby, Rubinfeld, 1993]による以下の定理を証明しました. ここで有限集合$S$に対して$x\sim S$と書いた時は$x$は$S$上一様ランダムに選ばれた元と解釈してください.
1. 準備
2. 定理2の証明
- $R,S\sim\mathbb{F}_q^{n\times n}$を一様ランダムな行列とする.
- $f(t)=A+tR,g(t)=B+tS$とし, $m=\lceil 6/\alpha \rceil$とする.
- 各$t=1,\dots,m$に対して$C_t=\mathcal{A}(f(t),g(t))$を計算し, 補題1のアルゴリズムを使って$f(t)g(t)=C_t$かどうかをチェックし, $f(t)g(t)=C_t$となるような最初の三つの$t$を$t_1,t_2,t_3$とする. そのような$t_i$が三つとれなければステップ1に戻る.
- $f(t_1)g(t_1), f(t_2)g(t_2), f(t_3)g(t_3)$を使って$f(t)g(t)$の各成分を多項式補間し, $f(0)g(0)$を出力する.
2022年4月14日木曜日
理論計算機科学におけるフーリエ解析 (定義)
フーリエ変換とは関数の良い基底を使って線形和で表すことを指します. 競技プログラミングの文脈などでは畳み込みのフーリエ変換と積の関係が非常に有名だと思いますが, それ以外にも様々な応用があります. 基本的にフーリエ変換と聞くと$\sin$や$\cos$が混じった積分がでてくるというイメージだと思いますが, 理論計算機科学では離散的なものを扱う都合上そういったものは(文脈によるが)登場せず, 全てが初等的に定義されるのでより親しみやすいと個人的に思います.
本記事では定義と基本的な事実だけ紹介します. 将来的にフーリエ変換を使った証明等を書く時にこの記事を参照していきます.
$n\in\mathbb{N}$に対し$[n]=\{1,\dots,n\}$と略記します. 有限集合$S$上で一様ランダムに$x$が選ばれることを$x\sim S$で表します.
$\mathbb{F}_q$を素体とし, $\omega=\mathrm{e}^{\frac{2\pi i}{q}}$とします. 二つの関数$f,g\colon\mathbb{F}_q^n\to\mathbb{C}$に対し, その内積を
$$\langle f,g\rangle := \mathbb{E}_{x\sim\mathbb{F}_q^n}[f(x)\overline{g(x)}] = \frac{1}{|\mathbb{F}_q^n|}\sum_{x\in\mathbb{F}_q^n}f(x)\overline{g(x)} $$
最後に, $f\colon\mathbb{F}_q^n\to\mathbb{C}$と$1\leq p\leq\infty$に対して$f$の$\ell_p$ノルムを$$\|f\|_p=\left(\mathbb{E}_{x\sim\mathbb{F}_q^n}[|f(x)|^p]\right)^{1/p}$$で定めます.
本記事では$\mathbb{F}_q^n$上の関数を対象にしていましたが, より一般にアーベル群上の関数に対して群の表現を考えることで似たような枠組みを考えることができます.
ランダム行列の行列積 part 1
二つの行列$A,B\in\mathbb{F}_q^{n\times n}$が与えられたときにその積$AB$を計算せよという問題はこれまで多くのアルゴリズムが提案されており, 2022年4月現在では[Alman, Williams, SODA2021]による$O(n^{2.37286})$時間が(漸近的な意味で)最速のアルゴリズムとされています. 行列積は$n^2$個の値を計算する問題なので明らかに$\Omega(n^2)$時間かかるので, $2$と$2.37286$の間に限界があるというわけです.
本記事では「$A,B$が$\mathbb{F}_q^{n\times n}$上一様ランダムに与えられた時に$AB$を計算せよ」というランダム行列に対する行列積を計算する問題を考えます.
幾つかの問題ではランダムなインスタンスに対して比較的効率的に問題が解けるということが知られています. 例えばランダムグラフの文脈ではErdős–Rényiグラフ$G(n,p)$上では$O(n^{4+o(1)})$時間でハミルトン閉路を検出し見つけることができます [Bollobás, Fenner, Frieze, Combinatorica, 1987].
果たして行列積は簡単になるでしょうか?
実は答えは(ある意味で)否です. というのも, ランダムな行列の行列積を高速に計算するアルゴリズムがあればそれとほぼ同等の時間で全ての行列に対して行列を計算する乱択アルゴリズムが存在します.
本記事では以下を証明していきます.
- 一様ランダムな行列$R_1,S_1\sim \mathbb{F}_q^{n\times n}$をサンプリングし, $R_2=A-R_1,S_2=B-S_1$とする.
- $\sum_{i,j\in\{1,2\}}\mathcal{A}(R_i,S_j)$を出力する.
2022年2月24日木曜日
Goldreich-Levinの定理 (アルゴリズム的側面の紹介)
1. 線形関数の復元
2. Goldreich-Levinの定理
- 2行目で生成したランダムベクトルに対し, $g(r_1),\dots,g(r_t)$の値はオラクルに聞いていないので分からないが, 4行目で$\{0,1\}^t$を列挙しているためどれか一つの$b$に対しては$b_i=g(r_i)$ ($\forall i$) が成り立ちます. 以後この条件を満たす$b$に対して話を進めます.
- 7行目で与えた$b_S$は$g$の線形性より$b_S=g\left(\sum_{i\in S}r_i\right)=g(r_S)$が成り立ちます. ここまでの議論は任意の線形関数$g$で成り立ちます.
- 9行目では, ベクトル$r_1,\dots,r_t$の一様ランダム性により$r_S+e_i$の分布も一様ランダムです. なのでオラクル$\mathcal{O}$の性質により, $\Pr[c_S=g(e_i)]\geq 0.5+\epsilon$です ($b_S=g(r_S)$の仮定の下で).
Markovの不等式とChebyshevの不等式
今後の記事で参照できるようにするために, 確率に関する非常に基礎的な不等式であるMarkovの不等式とChebyshevの不等式を紹介します. Markovの不等式さえ覚えていればChebyshevの不等式は非常に簡単に導出できます.
定理 (Markovの不等式). $X$を平均が有限であるような非負の確率変数$X$とする. 任意の$a>0$に対し$\Pr[X\geq a]\leq \mathrm{E}[X]/a$.
2022年2月16日水曜日
McDiarmidの不等式(小記事)
確率集中不等式の文脈でよく知られているMcDiarmidの不等式について解説します.
準備: 集中不等式でよくある設定
McDiarmidの不等式
2022年2月7日月曜日
von Neumannのmin-max定理に基づくhardcore lemmaの証明
Impagliazzoのhardcore lemmaに関する以前の記事ではboosting algorithmとして解釈できる証明を与えました. 本記事ではvon Neumannのmin-max定理に基づく証明を与えます. この証明はImpagliazzo(95)に書いてありますが, アイデア自体はNisanによって与えられたものらしいです. Impagliazzoの元論文やArora--Barakの本にも同様の議論が紹介されていますが, これらを自分なりにかなり噛み砕いて説明していきます.
1. hardcore lemmaの復習
- 関数$f\colon\{0,1\}^n\to\{0,1\}$と入力分布$D$を考える. 任意のサイズ$s$以下の回路$C$に対し $\Pr_{x\sim D}[C(x)=f(x)]\leq 1-\delta$が成り立つとき, $f$は$D$上でサイズ$s$に対して$\delta$-hardであるという.
- 関数$M\colon\{0,1\}^n\to[0,1]$をmeasureと呼ぶ. $|M|:=\sum_{x\in\{0,1\}^n}M(x)\geq \delta 2^n$を満たすとき$M$は$\delta$-denseであるという.
- measure $M$ が誘導する以下の$\{0,1\}^n$上の確率分布を考える: 各$x\in\{0,1\}^n$が選ばれる確率は$M(x)/|M|$. これを$x\sim M$と表す.
- $\{0,1\}^n$上の一様分布を$U_n$で表す.
定理2の証明の準備としてvon Neumannのmin-max定理の特殊ケースとして得られる以下の補題を述べておきます.
定理2の証明
- ケース1: $\min_{\mathcal{H}}\max_{\mathcal{C}} c(\mathcal{H},\mathcal{C})<1/2+\epsilon$.
- ケース2: $\max_{\mathcal{C}}\min_{\mathcal{H}} c(\mathcal{H},\mathcal{C})\geq 1/2+\epsilon$.
ケース1: $\max_\mathcal{C}$の混合戦略の部分を純粋戦略に置き換えても期待報酬は上がらないので, $\min_{\mathcal{H}}\max_{C} c(\mathcal{H},C)<1/2+\epsilon$です (ここで$C$はサイズ$s'$以下の回路全体を動きます). また, $\mathcal{H}$は$\{0,1\}^n$の分布$D$を以下のように誘導します: まず$H$を$\mathcal{H}$に従って選択し, $H$上の一様分布を出力する.
2022年2月3日木曜日
単純ランダムウォークの到達時間と全訪問時間のまとめ
概要
1. 用語と定義
例(単純ランダムウォーク)
1.1. 到達時間, 全訪問時間, 混交時間
1.2. SRWに対する有名なバウンド
hardcore lemmaとその証明
1. 導入
Impagliazzoのhardcore lemmaと呼ばれる非常に面白いメッセージ性を持つ平均計算量理論において有名な結果[Impagliazzo, FOCS95]を紹介し, その証明をします. 直感的に言えばこの結果は「任意の"まぁまぁ困難な"計算問題に対して"めちゃくちゃ難しい"インスタンスの集合$H$であって密なものが存在する」ということを主張します.
平均計算量理論については以前の記事で触りだけ紹介しています. 本記事では問題として判定問題$f\colon \{0,1\}^n\to\{0,1\}$を考え, 入力分布としてある有限集合$H$ (例えば$H=\{0,1\}^n$) 上の一様分布を考えます. また, 計算モデルとしては回路を考え, その効率性を回路サイズ (=ゲートの個数) で測ります. これを回路計算量と呼びます. アルゴリズムの時間計算量と回路計算量の関係性は非自明で以前の記事で触れていますが, 任意のアルゴリズムはその動作を回路で(少しのオーバーヘッドがあるものの)シミュレーションできるため, 「時間計算量が小さいならば回路計算量が小さい」は成り立ちます (逆は必ずしも成り立たちません).
2. Hardcore lemmaの主張
3. 証明
3.1. Hardcore measure
注釈: measureは集合$H\subseteq \{0,1\}^n$を"連続化したもの"と解釈できます. 例えば$M$として$H$の指示関数 ($M(x)=1$ if $x\in H$, $M(x)=0$ if $x\not\in H$) をとれば, $M$が$\delta$-dense $\iff$ $|H|\geq \delta 2^n$ となります.
まず, 定理1の代わりにそれのmeasure版となる以下の結果を証明します:
有向グラフ$G$ |
3.2. Hardcore measure $\Rightarrow$ Hardcore set
4. 教師有り学習のブースティングとの関係
講義資料をNotionで書いてみた
プログラミング応用という名前の講義を受け持っており, そこで組合せ最適化のベーシックな話題とそのPythonでの実装を教えているのですが, 資料をNotionで書いてみました. 講義資料をNotionで公開しているのでアルゴリズムの基礎とかNP困難性とかを勉強したい人はどう...
-
0. 概要 本記事では ランダムグラフ理論の動機と応用 ランダムグラフ理論のさわり ランダムグラフの面白い定理 について書きます. 1. ランダムグラフ理論の動機と応用 ランダムグラフ理論の主な動機としては 「とある性質Pを満たすグラフ...
-
0. 概要 グラフマイナー定理とは 有限グラフの全体は, マイナー順序によってよい擬順序になっている (well-quasi-ordered) という定理です. ...さてこれは何を言ってるんでしょうか. 本記事では現代のグラフ理論において最も重要な定理の一つで...
-
1. 全点対最短経路問題の計算量の外観 グラフ $G$ が与えられたときに 全点対最短経路 ( APSP : all pair shortest paths)を求めたいときがあります. そんなときはほとんどの人がワーシャル・フロイド法または各点ダイクストラなどを使うかと...