Processing math: 100%

2024年11月27日水曜日

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

 プログラミング応用という名前の講義を受け持っており, そこで組合せ最適化のベーシックな話題とそのPythonでの実装を教えているのですが, 資料をNotionで書いてみました.



ちなみに授業の内容としては, アルゴリズムを教えて演習課題として競技プログラミングのような問題を出題しています. 例えば無向グラフの四角形の有無を, 頂点数 n に対して O(n^2) 時間で判定せよという問題を難問枠で出題しています. これらの問題をipynbファイルで作成し, 学生には google colab などでPythonで実装してもらうという形をとっています. 見た目としてはこんな感じです:



多くの講義では, 各回のLaTeXで作成した講義資料を別々のpdfにして配布するというスタイルをとっています. しかしながらpdfだと

  • 他のpdfファイルへのリンクが貼れない (全ての講義資料をまとめて作り, 各回ごとに分割して配布するというやり方もあるが, それだと最初に全て作るのがとても大変)
  • この部分のように証明の表示/非表示の切り替えができない (長い証明は一旦読み飛ばし, 資料の大枠を最初に俯瞰したい場合が多々ある)
  • アルゴリズムのデモを動画として表示できない
  • なんとなくデザインがイケてない (おい)
といった点が個人的に気に入りませんでした. そこで

見た目も良い感じで個人的にはかなり気に入っているのですが, 資料作成を通じて感じたメリット/デメリットを連ねておきます. 講義資料作成の参考になればと思います.

Notionとは?

簡単に言うとイケてる資料をweb上で作成できるサービスです. 私は以前から勉強した内容や論文を書く時のメモに使っています. 実際に講義資料を見てもらえると分かりやすいと思います.

メリットとしては

  1. 全体的にイケてる
  2. 数式が簡単に埋め込める. LaTeXの記法がそのまま使えるし, \begin{align*}...\end{align*}とかもそのまま使える.
  3. コールアウトと呼ばれる装飾を使えば, 定理などの主張を簡単に書ける
  4. ブロック毎に文を管理しており, それぞれのブロックへのリンクが簡単に貼れるので, 「フォード・ファルカーソン法では実行時間が遅くなるが存在したが...」といった文が書けます.
  5. トグルというブロックを使うことで, この部分のように表示のオン/オフを切り替えることができる.
  6. 図や動画がドラッグ&ドロップで簡単に貼れる.
  7. draw.ioからこんな感じで, 自信のPCに保存することなく直接ページに図を埋め込める

このように見ると非常に素晴らしい選択肢のように思えるのですが, 一方でいくつか考えなければならない点をかかえています:
  1. そもそもNotionが落ちたら資料が見れなくなる
  2. ネットに公開する必要があるので, 公開できない内容は書けない
  3. LaTeXのnewcommandとかができない (個人的にこれはかなり痛い)
  4. VSCodeで執筆できないのでスニペットとかが使えない (Notionページのビューワーはあるらしい)
講義資料を作る最初の1,2週間は特に気にならなかったのですが, ずっとやってると上記の3と4はかなり辛くなってきました.

あとやはりNotionは重いらしいので, GitHub Pages + Foam とかも試してみようかなと思っています.

2024年8月6日火曜日

Håstadのスイッチング補題

回路計算量の理論における重要な結果の一つである Håstadのスイッチング補題 を紹介します. 簡潔にいうとこの補題は, 99%の変数をランダムに固定することによってDNFの決定木が小さくなることを主張する結果です. 応用としてparity関数に対する\mathrm{AC}^0回路 (非有界fan-inをもつ定数段回路のクラス)に対するタイトな下界を証明できます. 証明の本質には決定木が深くなるようなDNFの部分代入は短い長さで記述できる (従ってそのような部分代入の個数は相対的に少ない) というアイデアを使っています.

スイッチング補題は海外の大学に講義資料があり, 本記事もそれらを参考にしました:
  • lecture note by O’Donnell … 長いがかなり丁寧.
  • lecture note by Jonathan Katz … 証明は短く簡潔. O’Donellの証明の要約
  • lecture note by Lovett … 証明はしていないがさまざまな帰結をFourier analysisの視点から紹介

1. 準備

CNF, DNF, 決定木など必要な概念を定義していきます. ここではn変数の論理関数といえば\{0,1\}^n \to \{0,1\}を意味し, true/falseをそれぞれ1/0で表します.

定義1.1 (CNF, DNF).
  • 論理変数\mathrm{x}に対して, \mathrm{x}\overline{\mathrm{x}}リテラル (literal) と呼ぶ.
  • 複数のリテラルを\lorで繋げたもの \ell_1 \lor \dots \lor \ell_w節 (clause) と呼ぶ. 同様に, 複数のリテラルを\landで繋げたもの \ell_1 \land \dots \land \ell_w項 (term) と呼ぶ. このとき, 繋げたリテラルの個数w幅 (width) と呼ぶ.
  • 複数の節 C_1, \dots, C_m\land で繋げた論理式の表現形式を連言標準形 (CNF) と呼ぶ. 同様に, 複数の項 T_1,\dots,T_m\lor で繋げたものを選言標準形 (DNF) と呼ぶ. この記事ではそれぞれをCNF, DNFと呼ぶことにする.
  • 特に, 全ての節 (項) の幅がw以下であるCNF (DNF) をw-CNF (DNF)という.
ド・モルガンの法則より, CNFの否定をとるとDNFになります. 従って, 本記事ではCNFとDNFはDNFに焦点をあてて説明しますが, 否定をとることによってCNFに変換しても同じことが成り立ちます.
図1. 3-DNFの例


CNFやDNFはあくまでも論理式のフォーマットの一つです. n変数の論理式は全部で2^{2^n}個あるので, その全てを表現しようとすると2^nビット必要となりますが, 項がm個のw-DNFはO(mw\log n)ビットで表現できるので, mwが小さいときのDNFは論理式のコンパクトな表現になっています. 逆に, 任意の論理関数は2^n個の項をもつn-DNFで表現できます.

図2. 真理値表からDNFへの変換



定義1.2 (決定木).
次の性質を持つ二分木を決定木 (deceision tree) という:
  • 葉には0または1のラベルがついていて, 葉以外の頂点はどれかの変数でラベル付けされている.
  • 葉以外の各頂点から子に向かう二本の辺には0または1のラベルがついている.
決定木による計算では, 根から開始して入力に応じて葉に向かって遷移していき, たどり着いた葉のラベルを出力する. 遷移の規則は次のようにして定める: 現在いる頂点のラベルの変数x_iに対し x_i=b \in \{0,1\}ならばラベルbの辺に沿って子に遷移する.

論理関数 f\colon \{0,1\}^n\to\{0,1\}と等価な決定木の中での最小の深さをfの決定木複雑性と呼び, \mathsf{DT}(f)で表す.

図3. 決定木の例.

決定木複雑性が小さい回路は幅の小さいDNFで表現できます.

観察1.3 (決定木\RightarrowDNF).
論理関数f\mathsf{DT}(f) \le wを満たすならば, fw-DNFで表現できる.

図4. 各1の葉に対し, そこに至るパスに対応する割り当てを1にする項を作る. これらの項をORでつなげればよい.

同様に, 否定を考えることによって, 幅の小さいCNFも構成できます.

任意のn-変数の論理関数fは全ての変数の割り当てを列挙することによって深さnの決定木で表現できます. これをf自明な決定木と呼ぶことにします. 自明な決定木は深さnの完全平衡二分木です.

2. Håstadのスイッチング補題


Håstadのスイッチング補題は, 幅の小さいDNFの変数をいくつかランダムに選んでランダムに0または1を代入すると決定木複雑性が小さくなるということを主張します. 結果をフォーマルに述べるために, ランダム制限という概念を以下で定義します.

定義2.1 (制限).

パラメータn,s\in\mathbb{N}に対し, n変数のs-制限 (または部分割り当て) とは関数\alpha\colon [n] \to \{0,1,\star\}であって, s個のi\in[n]に対して\alpha(i) = \starを満たすものである. s-制限全体の集合を\mathcal{R}_sとする (ここではnは固定して考える. \mathcal{R}はrestrictionの略). \mathcal{R}_sから一様ランダムに選ばれた制限をランダムs-制限と呼ぶ.

s-制限\alphaは部分的に変数に代入を行う操作 (\alpha(i)=0ならばx_i\leftarrow 0, \alpha(j)=1ならばx_j\leftarrow 1) として捉える. 変数x_1,\dots,x_nをもつ論理関数 f\colon \{0,1\}^n \to \{0,1\} に対してこの部分的な代入操作を行なって得られるs変数論理関数をf|_\alphaとする.

s-制限とはs変数関数にするという操作です. ランダムs-制限とは, ランダムにn-s個の変数を選んで0または1をランダムに代入するという操作です.

図5. 1-制限の例.



定理2.2 (スイッチング補題 [Håstad, 1986]).
w-DNFで表現される論理関数 f \colon \{0,1\}^n \to \{0,1\} に対するランダムs-制限\alphaは以下を満たす:
\begin{align*} \Pr_\alpha\left[ \mathsf{DT}(f|_\alpha) > d \right] \le \left(\frac{4w s}{n-s} \right)^d \end{align*}

冒頭にも述べたとおり, Håstadのスイッチング補題とは幅の小さいDNFの変数をランダムにいくつか選んでランダムに代入操作を施すと, 得られる関数は浅い決定木で表現できるという結果です.


応用の一つとしてparity関数のAC0回路下界の証明にあります. AC0回路とは, 定数段でfan-in (各素子の入次数) が非有界なものです. parity関数とは入力の中の1の個数の偶奇を出力する関数です. 
図6. AC0回路のイメージ. 途中の\neg素子は省略.

スイッチング補題および観察1.3より, ランダムな制約を考えるとDNFをCNFに変換することができます. これをAC0回路の最下段に適用すると, \lor\landの切り替えの回数を一つだけ減らせます. これを定数回だけ繰り返すとAC0回路は最終的には定数関数になってしまいます. 一方でparity関数はs>0である限り, どのようなs-制限を考えても定数関数になりません. この差異によって回路下界を証明するという算段です. 詳細は省略します.

3. スイッチング補題の証明


3.1. 証明の方針

w-DNF fs-制限\beta \in \mathcal{R}_s\mathsf{DT}(f|_\beta)>d を満たすとき, \betabadであると呼びます. badなs-制限の集合を\mathcal{B}とし, |\mathcal{B}|が小さいことを証明していきます. そのために, DNFのbadな制限は簡潔な記述を持つことを証明します.

フォーマルに述べると, サイズの小さいある集合\Omegaに対して単射\varphi \colon \mathcal{B} \to \Omegaを構成することで|\mathcal{B}|\le |\Omega|を示します. さらに, |\Omega| \le \left(\frac{10sw}{n}\right)^d\cdot |\mathcal{R}_s| となることを示せたとすると, 所望の確率は
\begin{align*} \Pr_\beta\left[ \mathsf{DT}(f|_\beta) > d \right] \le \frac{|\mathcal{B}|}{|\mathcal{R}_s|} \le  \frac{|\Omega|}{|\mathcal{R}_s|} \le \left(\frac{10sw}{n}\right)^d. \end{align*}
となり, 主張を得ます.

3.2. 準備

w-DNF fの各項が順序づけられており, f=T_1 \lor T_2 \lor \dots T_mとします. さらに, 各項T_iに含まれるリテラルも変数の番号によるデフォルトの順序があるとします. 例えばT_1=x_1\lor \overline{x_3} \lor x_5ならばx_1,x_3,x_5という順があります.

badのs-制限\betaに対してf|_\betaもまたw-DNFであり, これを
\begin{align*} f|_\beta = T_{i_1} \lor \dots \lor T_{i_\ell} \end{align*}
とします. ここで, \betaによってT_i\equiv 1となる項が存在するとf|_\beta\equiv 1となってしまいbadであることに矛盾してしまいます. 同様に「全ての項が0に固定されてしまう」こともありません. 従って上記のような形でf|_\betaを表現できます.
図7. canonicalな決定木の構成.


f|_\betaの項T_{i_1},\dots,T_{i_\ell}の幅がそれぞれd_1,\dots,d_\ellとします. このとき, canonicalな決定木\mathcal{T}を以下で定義します: 先頭の項T_{i_1}d_1変数の論理関数とみなしたとき, その自明な決定木を\mathcal{T}_1とします. T_{i_1}は項なので, 充足割り当てはただ一つしか存在しません. 従ってこの決定木\mathcal{T}_1はただ一つの1の葉を持っています. この唯一の葉を\mathcal{T}における1の葉とします. 残りの2^{d_1}-1個の0の葉に対して, これを根としてT_{i_2}, T_{i_3},\dotsの順で同様の操作を続けていきます. ただし, 固定された変数はそれ以降の項でも固定します. 例えば\mathcal{T}_1のある葉においてx_1=0と固定されている場合は, その葉に続けて構成していく\mathcal{T}_2,\mathcal{T}_3,\dotsにおいても常にx_1=0として扱います. なお, この固定によって途中でT_{i_j}の値が0に固定されてしまった場合はそのままスルーしてT_{i_{j+1}}に移動します. これは, 例えばT_{i_1},T_{i_2}での操作によってx_1からx_5までの変数が全て固定されていたときにT_{i_3}に含まれる変数がx_2,x_3,x_5であった場合などに起こりえます.

図8. canonicalな決定木上の長いパスP.

部分割り当て\betaがbadであるため, このように構成されたcanonicalな決定木\mathcal{T}の深さはdを超えます. 従って根を始点として子に伝っていく長さdのパスが一つ以上存在します. そのようなパスの中で割り当てが辞書順最小のものをPとします. ここで, canonicalな決定木はその構成から, 代入される変数の順番は固定長のパスの中ではどのパスを選んでも同じになります (固定の仕方によっては途中で1の葉に行き着く可能性もあるので, パス長は固定して考える). 従って長さdのパスが固定する変数はどれも同じ変数を選ぶため, 辞書順最小な割り当てを持つパスPが一意に定まります.

このパスPが経由する項を順番にT_{i_1},\dots,T_{i_k}とします. パスPはちょうどd個の変数の値を固定するため, 最後の行T_{i_k}は部分的に値が固定される可能性があります.

3.3. badな制限のencoding

図9. badな制限の記述


3.2で定義されたパスPが経由する項をT_{i_1},\dots,T_{i_k}とします. badなs-制限\betaの部分割り当てを次のように拡張して得られる(s-d)-制限を\gammaとします: 制限\betaからスタートします. まず, 項T_{i_1}に対してT_{i_1}\equiv 1となる唯一の割り当て (T_{i_1}は項なのでそのような割り当ては一意に存在する) を\betaに追加して得られる(s-d_1)-制限を\beta_1とします. 同様の操作を続いてT_{i_2},T_{i_3},\dotsに適用していき, d個の変数を固定した段階で得られる(s-d)-制限を\gammaとします (ちょうどd個の変数を固定するので, 最後の行はいくつかの変数が未固定になりえます).

図10. \mathsf{info}の例. 元の項の何番目の変数に何を代入したかという情報を保持している.


j回目の繰り返しにおいてT_{i_j}の何番目の変数に何を代入したか, という情報をj=1からkまで記述した情報\mathsf{info}と表すことにします.

各行T_{i_j}に含まれるリテラルにはデフォルトの順序がついているので, \mathsf{info}の情報を見ると\beta\gammaの差分がわかります.

\Omegaを, \betaを動かしたときにありうる(\gamma, \mathsf{info})全体の集合とし, 単射\varphi\colon \mathcal{B}\to \Omega
\begin{align*} \varphi \colon \beta \mapsto (\gamma,\mathsf{info}) \end{align*}
とします. この写像が実際に単射となっていることを確認します. つまり, (\gamma,\mathsf{info})から元のs-制限\betaが復元できることを確認します. この復元操作では, \betaを知らず(\gamma,\mathsf{info})のみを知っている状態なので, canonicalな決定木\mathcal{T}\betaによって固定されない項T_{i_1},T_{i_2},\dotsや辞書順最小のパスPは分からないことに注意してください. なお, 関数fはわかっているのでfの情報 (T_1,\dots,T_m) も用いてよいです.

3.4. (f,\gamma,\mathsf{info})から\betaの復元


方針としては, \gamma\betaに追加していくつかの変数に代入を施して得られる部分割り当てです. この「追加して固定した変数は何か」がわかれば\betaを復元できます. そこで\gamma\betaの違いに着目していきます.

では, 両者の差分はどこに現れるでしょうか? \betaはbadな割り当てなので, f|_\betaの全ての項は未固定もしくは0に固定されます. 一方で\gammaf|_\betaの項を先頭から順に1になるよう固定することで構成されています.

図11. 復元アルゴリズム.


w-DNF fのcanonicalな決定木を考えます. ここで考えるfのcanonicalな決定木とは, 項T_1,T_2,\dotsの順番で部分木を繋げていき, 各部分木では対応する項に含まれる変数をそのデフォルトの順序で固定していくという決定木です. 決定木を(s-d)-制限\gammaに沿って辿っていきます. 部分木を通過する際にその部分木の葉のラベルが01かで場合分けをします. 

1. 葉のラベルが0のとき
そのまま次の部分木に移動して同様に辿っていきます.

2. 葉のラベルが1のとき
この部分木において, \beta\gammaの差分が現れています. この差分は\mathsf{info}によって取得し, 全てのラベル0の葉に対して再び辿っていきます. 具体的には, \mathsf{info}の先頭の情報 「j_1番目の変数にb_1を代入, j_2番目の変数にb_2を代入, ...」に対し, 項T_ij_1番目, j_2番目, ... の変数への代入操作を\gammaから除去します. さらに, \mathsf{info}から先頭の情報を削除します. そして, 部分木の0の葉を全て列挙し, それぞれの葉について同様に\gammaに沿って部分木を辿っていきます. (復元アルゴリズムの効率性は考慮していません).

これを繰り返し, \gammaの全ての部分割り当てを追跡したときのパスを考えます. ケース2での列挙により, 多くのパスが列挙されることになりますが, その中で割り当ての辞書順最小のパスを再び先頭から同じ方法で\gammaに基づいて辿ることで, \gammaで固定したが\betaで固定しなかった変数が全てわかり, \betaの情報を復元することができます.

3.5. 記述長

最後に, \gamma,\mathsf{info}の記述長を考えます. \gammas-d-制限なので, ありうる\gammaの総数は|\mathcal{R}_{s-d}| = \binom{n}{s-d}\cdot 2^{n-s+d} です. 次にありうる\mathsf{info}の総数を考えます. \mathsf{info}では「i番目の変数にb_iを代入する」という情報をd個含んでおり, 1\le i \le wのため, ありうる\mathsf{info}の総数は高々(2w)^dとなります.

一方で, s-制限の個数は全部で\binom{n}{s}\cdot 2^{n-s}個なので, 求める確率は
\begin{align*} \Pr_\alpha[\mathsf{DT}(f|_\alpha)>d] &\le \frac{(2w)^d\cdot \binom{n}{s-d}\cdot 2^{n-s+d}}{\binom{n}{s}\cdot 2^{n-s}} \\ &\le \left(\frac{4w s}{n-s} \right)^d \end{align*}
となり, 主張を得ます.

2024年8月2日金曜日

KLダイバージェンスの優モジュラ性と確率集中不等式

「エントロピーは劣モジュラ性をもつ」という事実は界隈の中ではとても有名で, エントロピーを最大化するということはある意味で多様性を大きくするということとみなせることから, この事実は劣モジュラ関数最大化の応用の一つとなりえます (この問題はNP困難ですが). 相互情報量の非負性とみなせるという説明がされることもありますが, 本記事ではこの事実をKLダイバージェンスの優モジュラ性の観点からと捉えます. この観点の利点として, Chernoff boundが導出できます. そもそも相互情報量はKLダイバージェンスの形で表すことができ, KLダイバージェンスは常に非負であることがJensenの不等式から簡単に示せるので, 突き詰めるとJensenにいきつきます. 凸って偉い.

注1. エントロピーはKLダイバージェンスの符号を逆にして定数を足した値なので, エントロピーの劣モジュラ性はKLダイバージェンスの優モジュラ性から直ちに従います. この意味でちょっとだけ一般化していると言えます.

注2. 実は優モジュラ性はChernoff boundの証明においては少しオーバーキルで, 実は優加法性から導出できます.

1. エントロピーと劣モジュラ性



定義1.1 (エントロピー).
有限集合\Omega上に値をとる確率変数Xエントロピー\mathrm{H}(X)とは
\begin{align*} \mathrm{H}(X) = \sum_{x\in \Omega}\Pr[X=x]\log\frac{1}{\Pr[X=x]} \end{align*}
によって定義される値である.

総和の各項\log\frac{1}{\Pr[X=x]}は事象“X=x"の情報量と呼ばれる値です. logの底は文脈によってまちまちですがここでは自然対数を考えることとします (底を2とするのがスタンダードですが, 文脈によっては自然対数を考えた方が便利なことがあります). 事象の確率が小さいほどその情報量は大きい値になっており, 直感的にはその事象が起きたときのびっくり具合を意味する値になっています. エントロピーとは情報量の期待値として定義されます.

定義1.2 (劣モジュラ性).
有限集合Vに対し, 部分集合族上の関数 f\colon 2^V \to \mathbb{R} が以下の条件を満たすとき劣モジュラ性をもつという:
\begin{align*} {}^{\forall}I,J \subseteq V,\,f(I\cup J)+f(I\cap J) \le f(I) + f(J). \end{align*}
上記の不等号を\geに置き換えたときの性質を満たすとき, f優モジュラ性をもつという.

言い換えれば, -fが劣モジュラ性をもつならばfは優モジュラ性をもつと定義します.

命題1.3 (エントロピーの劣モジュラ性).
自然数n\in\mathbb{N}に対し\Omega^n上に値をとる確率変数X=(X_1,\dots,X_n)を考え, 集合I \subseteq [n]に対しX_I=(X_i)_{i\in I}Iへの射影とする. このとき, 関数I \mapsto \mathrm{H}(X_I)は劣モジュラ性をもつ.


2. KLダイバージェンスと優モジュラ性



有限集合\Omega上に値をとる二つの確率変数X,Yを考えそれぞれの周辺分布を\mu_X,\mu_Yとします. ここで, \mu_X\colon \Omega\to [0,1]は関数\mu_X(x)=\Pr[X=x]によって定まる関数です. 確率変数Xの台 (support) を\mathsf{supp}(X) =  \{x\in \Omega \colon \mu_X(x) > 0 \}で定めます.

定義2.1 (KLダイバージェンス).
\mathsf{supp}(X)\subseteq \mathsf{supp}(Y)を満たす二つの確率変数X,YKLダイバージェンスとは以下で定義される量である:
\begin{align*} \mathrm{KL}(X||Y) &= \sum_{a \in \Omega} \Pr[X=a] \log\frac{\Pr[X=a]}{\Pr[Y=a]} \\ &= \mathbb{E}_{a \sim X}\left[ \log\frac{\mu_X(a)}{\mu_Y(a)} \right] \end{align*}
ただし, 0\log 0=0として扱う.

(分子と分母がどっちかどっちか分からなくなるときがありますが, 私はfrac{}{}と同じ順番と覚えています)

KLダイバージェンスとはそれぞれの確率変数の分布から定まるので, XYが独立かどうかによって値が変化することはありません. エントロピーとKLダイバージェンスの間にはつぎの関係がなりたちます (簡単な計算から確認できます):

命題2.2 (エントロピーとKLダイバージェンス).
確率変数U\Omega上の一様分布に従う確率分布とする. \Omega上に値をとる任意の確率変数Xのエントロピー\mathrm{H}(X)は,
\begin{align*} \mathrm{H}(X) = \mathrm{H}(U) - \mathrm{KL}(X || U). \end{align*}

なお, 一様分布ならばU=aという事象は全て同じ情報量\log|\Omega|を持つので, \mathrm{H}(U)=\log|\Omega|です. 従って, エントロピーは一様分布からのKLダイバージェンスの符号を変えて並行移動したものと捉えることができます. ここで符号を変えたことで劣モジュラ性と優モジュラ性が入れ替わります.

命題2.3 (KLダイバージェンスの優モジュラ性).
二つのベクトル値確率変数X=(X_1,\dots,X_n), Y=(Y_1,\dots,Y_n)およびI\subseteq [n]に対し, \mathrm{KL}(I) \colon 2^{[n]} \to \mathbb{R}
\begin{align} \mathrm{KL}(I) = \mathrm{KL}(X_I || Y_I) \end{align}
と定める. 確率変数Y_1,\dots,Y_nが独立ならば, 関数\mathrm{KL}(\cdot)は優モジュラ性をもつ.

ここで, 確率変数Y_1,\dots,Y_nが独立であるとは, 任意のy_1,\dots,y_n \in \Omegaに対して
\begin{align*} \Pr\left[ {}^\forall i\in[n],\,Y_i = y_i \right] = \prod_{i\in [n]}\Pr[Y_i=y_i] \end{align*}
が成り立つことを言います.

\Omega^n上の一様分布U=(U_1,\dots,U_n)を考えるとU_1,\dots,U_nは独立かつそれぞれのU_i\Omega上一様ランダムです. 従ってY=UとしてKLダイバージェンスの優モジュラ性(命題2.3)を適用すると, I \mapsto \mathrm{KL}(X_I || U_I)は優モジュラ性をもちます. ところで, エントロピーとKLダイバージェンスの関係 (命題2.2) より
\begin{align*} \mathrm{H}(X_I) = \mathrm{H}(U_I) - \mathrm{KL}(X_I || U_I) \end{align*}
が成りたつため, I \mapsto \mathrm{H}(X_I)は劣モジュラ性を満たします (-1倍して並行移動しているだけなので). これは命題1.3を導出します.

ちなみに, 関数\mathrm{KL}(I)は単調性をもちます:
\begin{align*} {}^{\forall} I \subseteq J\subseteq[n],\, \mathrm{KL}(I) \le \mathrm{KL}(J). \end{align*}
この事実は射影関数(x_j)_{j \in J} \mapsto (x_i)_{i\in I}に対してKLダイバージェンスのデータ処理不等式を適用することで得られます.

3. KLダイバージェンスの優モジュラ性とChernoff bound


実はやることは以前の記事で紹介した, KLダイバージェンスに基づくChernoff boundの証明と全く同じです. 式変形の一部の不等式を優モジュラ性として解釈できることを説明します.

定理3.1 (Chernoff bound).
実数値をとる独立な確率変数Y_1,\dots,Y_nに対し, \mu=\frac{1}{n}\sum_{i\in[n]}Y_iとすると,
\begin{align} & \Pr\left[\frac{1}{n} \sum_{i\in[n]} Y_i \ge \mu + \varepsilon \right] \le \exp\left( - n \mathrm{KL}(\mu+\varepsilon||\mu)\right),\\ & \Pr\left[\frac{1}{n} \sum_{i\in[n]} Y_i \le \mu - \varepsilon \right] \le \exp\left( - n \mathrm{KL}(\mu-\varepsilon||\mu)\right). \end{align}
ただし, p,q\in[0,1]に対し\mathrm{KL}(p||q)=\mathrm{KL}(\mathrm{Ber}(p)||\mathrm{Ber}(q)) = p\log\frac{p}{q} + (1-p)\log\frac{1-p}{1-q}はBernoulli試行のKLダイバージェンスである.

二つの確率変数X=(X_i)_{i\in[n]}, Y=(Y_i)_{i\in[n]}に対し, (1)の定まる関数\mathrm{KL}(I)を考えます. Y_1,\dots,Y_nが独立ならばこの関数は優モジュラ性をもつ, すなわち
\begin{align*} {}^{\forall} I,J\subseteq [n],\,\mathrm{KL}(I\cup J) + \mathrm{KL}(I \cap J) \ge \mathrm{KL}(I) + \mathrm{KL}(J) \end{align*}
を満たします. 特にI\cap J=\emptysetのときは\mathrm{KL}(I\cup J) \ge \mathrm{KL}(I) + \mathrm{KL}(J)なので, 特に優加法性
\begin{align} \mathrm{KL}([n]) \ge \sum_{i \in [n]} \mathrm{KL}(i) \end{align}
を満たします (ここでは\mathrm{KL}(\{i\})\mathrm{KL}(i)と略記しています).

定理3.1の証明に戻ります. ここでは(2)式のみを示しますが, (3)式も同様に示せます. 事象\mathcal{E}\mathcal{E}=\left\{\frac{1}{n}\sum_{i \in [n]} Y_i \geq \mu+\varepsilon\right\}とし, X=Y|_Eとします. つまり, Y|_Eとは, \mathcal{E}を満たす(y_1,\dots,y_n)\in\Omega^nに対し

\begin{align*} \Pr[Y|_\mathcal{E} = (y_1,\dots,y_n)] = \Pr[Y=(y_1,\dots,y_n)|\mathcal{E}] = \frac{\Pr[Y=(y_1,\dots,y_n)]}{\Pr[\mathcal{E}]} \end{align*}
によって定まる確率変数です.

X',Y'を, 一様ランダムに選ばれたi\sim[n]に対しX'=X_i, Y'=Y_iと定義される確率変数とします. 簡単な計算から\log\frac{1}{\Pr[E]}=\mathrm{KL}(X||Y)=\mathrm{KL}([n])が示せます. 実際,
\begin{align*} \mathrm{KL}(X||Y) &= \mathbb{E}_{a \sim X} \left[ \log\frac{\Pr[X=a]}{\Pr[Y=a]} \right] \\ &= \mathbb{E}_a \left[ \log\frac{\Pr[Y=a|\mathcal{E}] }{\Pr[Y=a]}  \right] \\ &= \log\frac{1}{\Pr[\mathcal{E}]} \end{align*}

従って, (4)より
\begin{align*} \log\frac{1}{\Pr[E]} &= \mathrm{KL}(I) \\ &\geq \sum_{i \in [n]} \mathrm{KL}(i) \\ &= n\mathbb{E}_{i\sim[n]}\left[ \mathrm{KL}(Y_i||X_i)\right] \\ &\geq n D(Y'||X'). \end{align*}
ここで, 以前の記事の議論よりD(Y'||X')\geq \mathrm{KL}(\mu+t||\mu)となり, (2)式を得ます.

4. むすびに



KLダイバージェンスの優モジュラ性からエントロピーの劣モジュラ性とChernoff boundが導出できることを解説しました. KLダイバージェンスの優モジュラ性は条件付きKLダイバージェンスを考えることによって証明できますが, 今回の記事では省いています.

KLダイバージェンスの一般化としてf-ダイバージェンスという概念が知られていますが, 命題2.3が成り立つようなf-ダイバージェンスを優モジュラf-ダイバージェンスと言い, これに基づいた集中不等式が証明されています (cf. [Masiha, Gohari, Yassaee, 2023]).

離散凸の文脈では劣モジュラ関数はある意味で凸な関数と見做されているため, この観点でいうとKLダイバージェンスは凹関数となります. 一方でKLダイバージェンス\mathrm{KL}(\mu || \nu)を二つの分布を受け取って実数値を返す関数とみなすと, \mathrm{KL}\colon \Delta^2\to\mathbb{R} となります (\Deltaは確率単体). このとき\mathrm{KL}(\cdot)は凸関数となります. KLの凸性はものすごく重要です.

付録. 優モジュラ性の証明


ここではKLダイバージェンスの優モジュラ性 (命題2.3) を証明します. 準備として条件付きKLダイバージェンスの概念を導入します.

定義A.1 (条件付きKLダイバージェンス)
二つの確率変数のペア(X_1,X_2), (Y_1,Y_2)に対し, 条件付きKLダイバージェンスを以下で定義する:
\begin{align*} \mathrm{KL}(X_1|X_2||Y_1||Y_2) = \mathbb{E}_{x\sim X_2}\left[ \mathrm{KL}(X_1|_{X_2=x} || Y_1|_{Y_2=x}) \right]. \end{align*}

条件付きKLダイバージェンスの重要な二つの性質を導入します.
補題A.2 (Chain rule).
\begin{align*} \mathrm{KL}((X_1,X_2) || (Y_1,Y_2)) = \mathrm{KL}(X_2||Y_2) + \mathrm{KL}(X_1|X_2 || Y_1|Y_2) \end{align*}

証明.
気合いで計算して証明します. \mu,\nuをそれぞれ(X_1,X_2), (Y_1,Y_2)の分布とし, \mu_i,\nu_iをそれぞれX_i,Y_iの周辺分布とします. このとき
\begin{align*} &\mathrm{KL}((X_1,X_2)||(Y_1,Y_2)) - \mathrm{KL}(X_2||Y_2) \\ &= \mathbb{E}_{(a,b)\sim\mu}\left[\log\frac{\mu(a,b)}{\nu(a,b)}\right] - \mathbb{E}_{b\sim\mu_2}\left[\log\frac{\mu_2(b)}{\nu_2(b)}\right] \\ &= \mathbb{E}_{(a,b)\sim\mu}\left[\log\frac{\mu(a,b)}{\nu(a,b)}\right] - \mathbb{E}_{(a,b)\sim\mu}\left[\log\frac{\mu_2(b)}{\nu_2(b)}\right] \\ &= \mathbb{E}_{(a,b)\sim \mu}\left[ \log\frac{\mu(a,b)/\mu_2(b)}{\nu(a,b)/\nu_2(b)}\right] \\ &= \mathbb{E}_{(a,b)\sim \mu} \left[\log\frac{\Pr[X_1=a|X_2=b]}{\Pr[Y_1=a|Y_2=b]}\right] \\ &=\mathbb{E}_{b\sim X_2}\left[\mathbb{E}_{a\sim X_1}\left[ \log\frac{\Pr[X_1=a|X_2=b]}{\Pr[Y_1=a|Y_2=b]} \middle| X_2=b\right]\right] \\ &= \mathrm{KL}(X_1|X_2||Y_1||Y_2). \end{align*}
(証明終).

補題A.3 (conditioning increases KL).
二つの確率変数Y_1Y_2が独立ならば
\begin{align*} \mathrm{KL}(X_1|X_2||Y_1|Y_2)\geq \mathrm{KL}(X_1||Y_1). \end{align*}

証明.
KLダイバージェンスを関数\mathrm{KL}\colon \Delta^2\to \mathbb{R}とみなしたとき, 凸性を持つことから, Jensenの不等式より
\begin{align*} \mathrm{KL}(X_1|X_2||Y_1|Y_2)&=\mathbb{E}_{x\sim X_2}[\mathrm{KL}(X_1|_{X_2=x}||Y_1|_{Y_2=x})] \\ &\geq \mathrm{KL}(\mathbb{E}_x[X_1|X_2=x]||\mathbb{E}_x[Y_1|Y_2=x]) & & \text{(Jensen)}\\ &=\mathrm{KL}(X_1||Y_1) \end{align*}
なお, 最後の等号においてY_1Y_2の独立性を使っています.
(証明終)

実は, 二つの確率変数X_1,X_2の相互情報量をI(X_1;X_2)とすると, \mathrm{KL}(X_1|X_2||Y_1|Y_2) - \mathrm{KL}(X_1||Y_1) = I(X_1;X_2)が成り立ちます (計算で確認できます). 相互情報量I(X_1;X_2)とは,
\begin{align*} I(X_1;X_2) = \mathrm{KL}(\mu||\mu_1 \otimes \mu_2) \end{align*}
で定義される値です. つまり(X_1,X_2)がどれだけ直積分布から離れているかを測る量であり, \mathrm{KL}の非負性から常に非負です.

以上で優モジュラ性の証明の準備がおわりました.
命題2.3の証明.
任意のI,J\subseteq[n]に対し, chain rule (補題A.2) より
\begin{align} \mathrm{KL}(I\cup J) - \mathrm{KL}(I) = \mathrm{KL}(X_{I\cup J}|X_I || Y_{I\cup J}|Y_I) = \mathrm{KL}(X_{J\setminus I}|X_I || Y_{J\setminus I}|Y_I) \end{align}
最後の等号では, X_Iが与えられたとき, X_{I\cup J}のランダムネスはX_{J\setminus I}にあることを用いています. 同様に
\begin{align} \mathrm{KL}(J)-\mathrm{KL}(I\cap J) = \mathrm{KL}(X_J|X_{I\cap J}||Y_J|Y_{I\cap J})=\mathrm{KL}(X_{J\setminus I}|X_{I\cap J}||Y_{J\setminus I}|Y_{I\cap J}). \end{align}
補題A.3より, (5)\ge (6)となるので主張を得ます.

2024年7月5日金曜日

埋め込みクリーク問題

与えられたグラフG=(V,E)に含まれる最大クリークを求めよという問題はKarp's 21 Complete Problemの一つであり, おそらく最も有名なNP困難な問題の一つとして知られています. 本記事ではこの問題の平均時困難性について考えます. すなわち, 与えられたグラフがErdos-RenyiランダムグラフG(n,1/2)のときの最大クリーク(を見つける問題)について紹介し, 関連問題として埋め込みクリーク問題を紹介します.

ランダムグラフ上の最大クリーク問題

Erdős--RényiグラフG(n,1/2)を考えます. このグラフはn個の頂点からなり, 各頂点のペアは独立に確率1/2で辺を持ちます. 言い換えれば, n頂点の頂点ラベル付きグラフの中から一様ランダムに選ばれたグラフがG(n,1/2)です. このように, 入力がランダムに生成された時に問題が効率的に解けるかどうかを議論する枠組みを平均時計算量といいます.

最大クリーク問題に戻りましょう. Erdős--RényiグラフG(n,1/2)は高確率でおよそサイズ2\log_2 nのクリークを持つことが示せます. ここでは厳密な証明はしませんが, なぜ2\log_2 nという値が出るかについて, k-クリークの個数の期待値を使って簡単に説明します. グラフG(n,1/2)に含まれるk-クリークの個数をX_kとします. X_k>0ならば最大クリークのサイズはk以上であり, X_k=0ならばk未満となります. 頂点部分集合S\subseteq[n]に対し, SがクリークであるかどうかのindicatorをX_Sとします. すなわちSG(n,1/2)内でクリークになっているならばX_S=1, そうでなければX_S=0です. 固定したSに対してX_S=1となる確率は(1/2)^{\binom{|S|}{2}}です. さて, X_k = \sum_{S\subseteq[n],|S|=k} X_S と書けます. 期待値の線形性より, X_kの期待値は
\begin{align*} \mathbb{E}[X_k] &= \sum_{S\subseteq[n],|S|=k} \Pr[X_S=1] \\ &= \binom{n}{k}\cdot 2^{-\binom{k}{2}} \\ &\approx \frac{n^k}{k!} 2^{-k^2/2} \\ &\approx 2^{-k\log_2 n - k^2/2} \\ &\approx 2^{-k(\log_2 n - k/2)} \end{align*}
となります. 途中で突然k!が消えたのは, k!=2^{(1-o(1))\cdot k\log k}2^{-\binom{k}{2}}に比べて無視できるほど小さいからです. k\gg \log_2 nならば指数部が負となりX_kの期待値は非常に0に近い値となります. k\ll \log_2 nならば期待値は非常に大きい値となるので, G(n,1/2)k-クリークを含むだろうことがわかります. 前半の議論(非存在性)はMarkovの不等式, 後半の議論(存在性)はChebyshevの不等式を使うと厳密な議論にできます. 詳しく知りたい方はこちらの記事を参照してください.

すなわち, 入力がG(n,1/2)だと最大クリークのサイズはおよそ2\log_2 nであることがわかります. では, この2\log_2 n-クリークを見つけられるでしょうか?

成功確率の枠組み

そもそも「ランダムグラフ上で問題を解く」とはどういうことなのでしょうか?

最悪時計算量の枠組みでは, 「全ての入力に対して正しい答えを出力する」効率的なアルゴリズムの構成が焦点になっていました. 一方で平均時計算量では「全ての入力に対して」という部分を「多くの入力に対して」に緩和した枠組みを考えます. 本当はerrorless/error-proneの二つの概念があるのですが, ここではerror-proneの枠組みを考えます.

定義 (成功確率)
決定的アルゴリズムAは以下を満たすとき, 成功確率\gammaG(n,1/2)上で最大クリークを解くという:
\begin{align*} \Pr_{G \sim G(n,1/2)} [ A(G) \text{ outputs a maximum clique in }G]\ge \gamma. \end{align*}
Aが乱択アルゴリズムのとき, 上の確率において入力G\sim G(n,1/2)およびAの内部のランダムネスについての確率をとることで成功確率を定義する.

直感的に言えば成功確率とはアルゴリズムAが解く(固定サイズの)入力の割合を意味します. 平均時計算量の理論では, 効率的(例えば多項式時間)なアルゴリズムの中で最大の成功確率\gammaをもつものが研究の対象となります.

入力によって解けるか解けないかが決まるので, 乱択アルゴリズムのように
「繰り返して成功確率を増幅させる」ことはできない.

例えば, 成功確率\gamma=1のアルゴリズムは最悪時の意味において最大クリーク問題を解くことを意味します. これはNP困難なので, \gamma=1を満たす多項式時間アルゴリズムは存在しないと広く信じられています. 従って\gamma<1の範囲で考えます. この記事では確率1-o(1)を「高確率」と呼ぶことにします(注1).

(注1). 「高確率」という言葉は専門用語として扱われることが多いです. ランダムグラフの文脈では漸近的に確率1で成り立つことを「a.a.s. (asymptotically almost surely)」「w.h.p. (with high probability)」と言うことがあります. また, 乱択アルゴリズムの文脈では, 何らかの定数c>0が存在して確率1-n^{-c}で成り立つことを「高確率」ということもあります.

上の定義では誤った答えを出力しうるものの常に多項式時間で終了するアルゴリズムを考えていました. このようにアルゴリズムの「誤りうる」という性質をerror-proneと言います. 一方で, 常に正しい答えを出力するが入力によっては指数時間かかりうるという性質をerrorlessといいます. 乱択アルゴリズムの文脈で例えるとラスヴェガス法か, モンテカルロ法かという話です. 

最悪時と平均時のギャップ

さて, G(n,1/2)上での最大クリーク問題に話を戻しましょう. 証明はしませんが, G(n,1/2)は確率1-n^{-\Omega(\log n)}で最大クリークのサイズが高々2.01\log_2 nであることが証明できます. 従って, サイズ2.01\log_2 n以下の頂点部分集合S \subseteq [n] を全て列挙し, クリークをなしたSの中で最大のものを出力すると, n^{O(\log n)}時間で成功確率1-n^{-\Omega(\log n)}G(n,1/2)上で最大クリークを解けます.

最悪時の世界では最大クリーク問題はETH(強指数時間仮説)の下では2^{\Omega(n)}時間かかると予想されていますが, 平均時の世界では単純なbrute-forceを考えればn^{O(\log n)}時間で高確率で解くことができます.

貪欲法

最大クリーク問題に対する最も単純なアプローチが貪欲法です. 何でも良いので極大クリークを一つ選び, 出力するというアルゴリズムです. 例えばクリークに追加できる頂点のうち, インデックスが一番若い頂点を選んで追加するというルールを考えてみましょう.

定理 (Karp, 1976, informal).
入力G(n,1/2)上の貪欲法で得られる極大クリークをSとすると, 確率1-o(1)|S| = (1\pm o(1))\log_2 nを満たす.

すなわち, 貪欲法は"ほぼ2近似"アルゴリズムであるといえます. 最悪時の世界では, 任意の小さな定数c>0に対して最大クリークを多項式時間でn^{1-c}近似するのはNP困難であることが知られているので, この定理もまた最悪時と平均時の世界のギャップを意味します.

証明(の概要).
貪欲法のt回目の反復で得られる頂点部分集合をS_tとします. すなわち, S_0=\emptysetであり, S_{t+1}S_t\cup \{u\}がクリークになるような頂点uのうち最もインデックスが若いものとします (例えば一番最初に追加される頂点は必然的に最もインデックスの若いv_1になります). S_tの要素数はtなので, 貪欲法が終了したときのステップ数tの上下界を求めればよいことになります.

この「若い頂点を優先する」貪欲法は, 頂点をv_1,\dots,v_nの順に見ていき初めて追加できる頂点を見つけたらそれを追加するというように実装することができます. この実装では, 例えば時刻tで頂点v_iが追加されたとすると, その反復までにアルゴリズムは以降の頂点v_{i+1},\dots,v_nを見ていないことになります (もちろんこれは実装依存ですが, v_{i+1},\dots,v_nを見ないように実装したものと同じ出力を得るので, 見ていないということを仮定できます). すなわち, この反復までの挙動は誘導部分グラフG[\{v_1,\dots,v_i\}]にのみ依存するのであって, v_{i+1},\dots,v_nに接続する辺の情報とは独立です. ですので, 頂点v_{i+1}を見たとき, その時初めて辺\{v_{i+1},v_j\} (j=1,\dots,n\}) に関する入力の情報をサンプルする (つまり, 入力を生成→アルゴリズムの解析, ではなく, アルゴリズムの反復に応じて入力を徐々に生成していく) という確率過程によってアルゴリズムの振る舞いを解析ができます.

時刻tにおける反復においてS_tの要素数はtであり, S_tの全ての頂点と隣接している頂点が新たにS_{t+1}に加わるわけですが, 固定した頂点v_jが追加される確率は(1/2)^tです. 従って, 任意の定数c>0に対しt\ge (1+c)\log_2 nならば, v_j \in [n]に関するunion boundより一つも頂点が追加されないので, t \le (1+c)\log_2 nを得ます. 逆に, t<(1-c)\log_2 nならばこの確率はn^{-1+c}となり, 追加できる頂点の個数の期待値はおよそn^cで非常に大きいので, そのような頂点は高確率で存在することになります.

v_jS_tの全ての頂点と隣接していればクリークに追加できる.
(証明終)

衝撃的なことに, 本質的に貪欲法より良い多項式時間アルゴリズムはいまだに知られていません (それどころか存在しないと予想されています). 具体的には, 以下の主張が正しいかどうかは非常に重要な未解決問題です.

ある定数\varepsilon>0と多項式時間アルゴリズムが存在して, G(n,1/2)上で(1+\varepsilon)\log_2 n-クリークを確率2/3で見つける.


埋め込みクリーク問題

Erdős--RényiグラフG(n,1/2)上の最大クリーク問題の変種として, k-クリークが埋め込まれたランダムグラフからk-クリークを復元する問題を考えます. 具体的には, 入力として次の操作によって得られるランダムグラフG(n,k,1/2)が与えられます:

  1. Erdős–Rényiグラフ G(n,1/2)を生成する, ランダムにk個の頂点v_1,\dots,v_kを選び, C=\{v_1,\dots,v_k\}とする.
  2. 1\leq i<j\leq kに対して辺\{v_i,v_j\}を追加してCをクリークにする (元々\{v_i,v_j\}が辺をなす場合は追加しない).
ここで埋め込むクリークサイズkk \gg \log nとします. Erdős--RényiグラフG(n,1/2)はサイズがO(\log n)のクリークを持つので, 直感的にはサイズkのクリークをランダムに埋め込むと一意になる気がします.

最大クリークのときと同様に, アルゴリズムの成功確率を以下のように定義します.

定義 (成功確率)
決定的アルゴリズムAは以下を満たすとき, G(n,k,1/2)上で成功確率\gammaで埋め込みクリーク問題を復元するという:
\begin{align*} \Pr_{G \sim G(n,k,1/2)} [ A(G,k) \text{ outputs the planted $k$-clique $C$ in }G]\ge \gamma. \end{align*}
ここでは, 簡単のため, アルゴリズムAはクリークサイズk知っていると仮定する.
Aが乱択アルゴリズムのとき, 上の確率において入力G\sim G(n,k,1/2)およびAの内部のランダムネスについての確率をとることで成功確率を定義する.


情報理論と計算量理論のギャップ

例えばk=2の場合はただの辺が埋め込まれただけなので, ランダムな辺を出力するしかできないので情報理論的に成功確率の上回はO(1/n^2)となります. 一方で任意の定数c>0に対し, k\ge (2+c)\log_2 nのとき, G(n,k,1/2)は確率1-2kn 2^{-k/2}kクリークを一つだけ含むことが初等的な数え上げで示すことができます. このとき, 全探索によって高確率で埋め込んだクリークを復元できます.

実は, G(n,1/2,k)上でもk\ge (2+c)\log_2 nであれば (k=n^{0.1}とかであっても), n^{O(\log n)}時間でk-クリークを確率1-o(1)で解くことができます. 一方でk \le 2\log_2 nのときはErdős--RényiグラフG(n,1/2)2\log_2 nクリークを持つので情報理論的に埋め込まれたk-クリークCを復元することはできません.

命題.
任意の定数c > 0およびk\ge (2+c)\log_2 nに対し, G(n,1/2,k)上で成功確率1-o(1)で埋め込みクリーク問題を解くn^{O(\log n)}時間アルゴリズムが存在する. 

証明.
アルゴリズムは非常にシンプルです: サイズ2\log_2 nの頂点部分集合S \subseteq Vを列挙し, もしもSG(n,1/2,k)においてクリークをなすならば貪欲法によって極大クリークを一つ選び, そのサイズがkと等しいならばその極大クリークを出力する. 最終的にサイズkのクリークが見つからなかったら特別な記号\bot (見つからなかった, を意味する)を出力する.

列挙した各Sに対して一つの極大クリークしか考えないので計算時間はn^{O(\log n)}です. あとはこれで「取りこぼしがない」ことを証明する必要があります. Cを埋め込まれたクリークとします. 列挙したときにあるS \subseteq C に対して, C以外の頂点が貪欲法で追加され得ないことを示せばよいです. フォーマルに言うと, あるS\subseteq C,|S|=2\log_2 nが存在して, Cの外側の頂点vであって\Gamma(v) \supseteq Sを満たすものがないことを示せば, V\setminus Cの頂点が貪欲法で追加され得ないため必ず極大クリークはCになります.

こうなるようなSの存在性を示したい.

埋め込む位置CV\setminus Cの間の辺は全て独立なコイントスによって決まります. そこで固定したCで条件つけたときに所望のS\subseteq Cが高確率で存在することが言い, その後にC \sim \binom{[n]}{k}に関する期待値をとればG(n,1/2,k)上の確率を抑えたことになります.

固定したC\subseteq [n]に対し, S\subseteq VC内からインデックスの若い2\log_2 n個の頂点からなる集合とします. Cは固定されているためSもまた固定されています. 従って, 各v \in V \setminus CについてvSの全ての頂点に隣接している確率は(1/2)^{2\log_2 n}\le n^{-2}です (これはSが固定されているため, Sの情報と辺の有無の情報が独立だから成り立つ). vについてのunion boundより, 確率1-O(n^{-2})\Gamma(v)\supseteq Sを満たすv \in V\setminus Cは存在しません. すなわち, このSの構成は高確率で所望の性質を満たします. なお, この議論は\log_2 nの係数が1より真に大きければ同様に適用できます.

以上より, G(n,1/2,k)において, 埋め込んだクリークCの中からインデックスの若い順に2\log_2 n個の頂点集合をSとすれば, Sを含む極大クリークはCのみになりますので, 確かに列挙するアルゴリズムは埋め込みクリークを解きます. (証明終)

ここまでで単純な列挙によってn^{O(\log n)}時間で埋め込みクリーク問題はk\ge 2.01\log_2 nならば高確率で解けることを確認し, k\le 2\log_2 nでは情報論的に解けないことを見てきました. これはk=2\log_2 nが情報理論的に解けるかどうかの境界になっていると解釈できます. では, 同様の範囲のkで埋め込みクリーク問題を多項式時間で解けるでしょうか?

結論から言うとk\ge \sqrt{n}であれば確率1-o(1)で埋め込みクリーク問題は多項式時間で解けることが知られている[Alon, Krivelevich, Sudakov, '98]のですが, k = o(\sqrt{n})に対して多項式時間で解けるかどうかは30年来の未解決問題で, 実はあるc>0に対してk=n^{1/2-c}に対して多項式時間で確率2/3で埋め込みクリーク問題を解く多項式時間アルゴリズムは存在しないのではないかと予想されています (埋め込みクリーク予想).

ここではAlonらの結果より少し弱い, k\ge 10\sqrt{n\log n}のときに埋め込みクリーク問題を解くアルゴリズム[Kučera, 95]を紹介します.

命題.
k\ge 10\sqrt{n\log n}のとき, G(n,1/2,k)上の埋め込みクリーク問題を高確率で解く多項式時間アルゴリズムが存在する.

証明 (概要).
アルゴリズムは「次数の大きい順に頂点をk個出力する」です. 埋め込まれたクリークCに属する頂点は, クリークの分だけ次数が大きくなるはずであり, k\ge 10\sqrt{n\log n}ならばその差が有意であるという議論をします.

頂点v \not\in Cの次数の周辺分布は二項分布\mathrm{Bin}(n,1/2)なので, Hoeffdingの不等式およびvに関するunion boundより
\begin{align*} \Pr[\exists v\not\in C,\deg(v) > n/2 + \sqrt{n\log n}] \le n\cdot \exp(-2\log n) \le n^{-1} \end{align*}
を得ます. 一方, v\in Cの次数の周辺分布はk+\mathrm{Bin}(n-k,1/2)なので, 同様にHoeffdingの不等式より, 任意のt>0に対し
\begin{align*} \Pr\left[\exists v\in C,\deg(v) < \frac{n-k}{2}+k-t\right] \le n\exp\left(-\frac{2t^2}{n}\right). \end{align*}
特にt=4\sqrt{n\log n}を代入すると, 確率1-o(1)で全てのv\in C\deg(v) \ge \frac{n}{2} + \sqrt{n\log n}を満たします. 従ってk\ge 10\sqrt{n\log n}のとき確かに次数を見ることでCが復元できます. (証明終)

Appendix. 埋め込みクリークの一意性


ランダムグラフG(n,k,1/2)は埋め込まれたものが一つあるので, kクリークを一つ以上部分グラフとして含みます. ここではk\ge (2+c)\log_2 nの場合は高確率でkクリークが一つであることを証明します.

この主張は直感的には自明に思えます. Erdős--RényiグラフG(n,1/2)の最大クリークは2\log_2 nなので, それより大きいk-クリークを埋め込むと確かに埋め込まれたクリーク以外にk-クリークは登場しなさそうです. ところが, k-クリークを埋め込むことによって非自明に大きいクリークが発生しうる懸念をケアしなければなりません.

G(n,1/2,k)における他のクリークのサイズはどのくらいになるのでしょうか? 埋め込まれたクリークを表す頂点部分集合をCとします. 任意の頂点v \not \in CC内におおよそk/2個の隣接点を持ちます.
これは, vCの間の辺は独立に確率1/2で生起するので, \Gamma(v)vの隣接点の頂点集合とすると, |\Gamma(v) \cap C|の周辺分布は\mathrm{Bin}(k,1/2)になり, これにHoeffdingの不等式を適用することでわかります (より詳しくいうと, 確率1-n^{-100}で, 全ての頂点vに対し|\Gamma(v) \cap C| \le k/2 + 100\sqrt{k\log n}がいえる.)

また, \{v\} \cup \Gamma(v)G(n,k,1/2)内でクリークをなすので, C以外にもk/2-クリークを持つことがわかります. 実はC以外のクリークのサイズは全てk/2 + O(\sqrt{k\log n}) \approx (1+o(1))k/2以下になります.

この議論に基づくと, k\ge 100\log_2 nに対してk-クリークの一意性が証明できます (特に, Hoeffdingの不等式でネイピア数が出てくるのでlogの底に関して慎重にならなければなりません). k\ge (2+c)\log_2 nに対して一意性を示すにはもう少し丁寧な議論が必要です.

命題 [Theorem 4, Jerrum '92]. 任意のkに対して, G(n,k,1/2)が二つ以上のkクリークを含む確率は高々2kn2^{-k/2}である.

証明 (概要).
V=[n]を頂点集合, C\subseteq Vを埋め込まれたkクリークとします. Cとは別のk-クリークC' \neq Cの個数をXとし, その期待値を考えます. すなわち
\begin{align*} \mathbb{E} = \sum_{C'\in \binom{V}{k},C'\neq C} \Pr[C'\text{ is a $k$-clique}] \end{align*}
を上から抑えます. 各t=0,1,\dots,k-1に対し, |C'\cap C|=tなるC'を列挙してtに関する和を考えると




期待値\mathbb{E}[X]
\begin{align*} \mathbb{E}[X] &= \sum_{t=0}^{k-1} \binom{k}{t}\binom{n-k}{k-t}\cdot 2^{-\binom{k}{2} + \binom{t}{2}} \\ &\le \sum_{t=0}^{k-1} \left(kn 2^{-k/2}\right)^{k-t} \\ &\le kn 2^{-k/2} \cdot \sum_{t=0}^\infty (1/2)^t \\ &\le 2kn 2^{-k/2} \end{align*}
を得ます.

2024年7月4日木曜日

STOC2日目以降の感想 (主にsunflower conjecture周り)

STOCが終わったので記憶が残っているうちに勢いに任せて前回に引き続きSTOC参加記(2日目〜5日目)を駆け足で書いていきます. 聴講して特に印象に残ったものについて記載しています. 勢いに任せて書いているのでテクニカルな内容はありません. ただし, sunflower lemmaの話については結構面白いと思ったので自分が理解した範囲で定義とかを書いていきます.

2日目


朝にLength-Constrained Expandersというワークショップに参加しました. 近年巷を騒がせているエクスパンダー分解や小直径分解という概念があるのですが, length-constrained expanderとはどちらの性質も同時に兼ね備えた分解を与える概念のようです. どちらの分解でも共通して頂点部分集合の分割\mathcal{P}=(P_1,\dots,P_\ell)であって, 各部分集合P_iのなる誘導部分グラフG[P_i]が小直径または(Cheeger定数の意味で)エクスパンダーグラフとなるようなものを求めます. そして各P_iを縮約して得られるグラフに対して再帰的に分解を適用することによって, エクスパンダーからなる階層構造が得られます.


端的に言えば, 最悪時の問題例を分解によってエクスパンダー上で解くことに帰着するみたいなことをするようです. length-constrained expanderとは小直径分解とエクスパンダー分解両方の嬉しい性質を同時に達成するような分解らしいです.

2日目の午後は自分の発表を行いました. その次のセッションはランダムウォークなど確率解析のセッションでした. 時差ボケであまりちゃんと聞けなかったのですが最後の発表
が印象的でした. この論文ではランダム幾何グラフとErdős--Rényiグラフの識別問題に対してよく知られる計算量と情報理論のギャップ (computational-statistical gap) について議論しており, low-degree polynomialと呼ばれるアルゴリズムのクラスでは両者のギャップが埋まる, という話でした.

3日目


午後は誤り訂正符号のセッションに行きました. 近年のTCSでは3クエリのlocally correctable codeのレートに関する効率性の下界を, これまで知られていたものより指数的に改善したという論文
の発表がありました. これはTCSの符号界隈で非常に大きな話題になりました.

その次のセッションは
Complexity-Theoretic Implications of Multicalibration, (Sílvia Casacuberta, Cynthia Dwork, Salil Vadhan)
でした. この論文はarXivに出た瞬間から個人的に注目していた論文です. additive combinatoricsにおけるdense model theorem (Green-Taoの定理の証明で重要な役割を果たした定理), Impagliazzoのhardcore補題, そしてFrieze-Kannanの正則化補題がどれも同じような構成的証明を与えていることに着目して共通の一般化を与えたという論文があるのですが, この論文はそれをmulticalibrationの観点でさらに一般化したというものです. この論文もquanta magazineの記事で紹介されています.

4日目


Applications of Turán-type problems in Theoretical Computer Scienceというワークショップに参加しました. Turánの定理とは完全グラフK_rを部分グラフとして含まないグラフのうち最も辺数が多いものは, 等分割された完全(r-1)部グラフであるという主張です. 例えば三角形を含まないグラフの中で最もデンスなのは完全二部グラフです.

この問題は次のような自然な設定で登場します:
n個の電池があり, そのうちr個のみが充電されていて他は全て充電が空なのですが, どれが充電されていてどれが空か分からないとします. 手元には懐中電灯があり, 充電されている電池を2個入れると光ります. n個の中から二つの電池を入れて試すという試行を何回か行って懐中電灯を光らせたいとき, 最も試行回数を少なくするにはどうすればよいか?

グラフの言葉に翻訳すると以下になります: n個の頂点があってサイズrの独立点集合を含まないグラフのうち最も辺数が少ないものは何か? グラフを一つ固定したとき, 各辺は懐中電灯の一回の試行に対応します. このグラフがもしもサイズrの独立点集合Iを持つならば, この頂点部分集合Iが「充電された電池」であったときにこの試行で懐中電灯を光らせることができません. この解となるグラフの補グラフをとるとTuránの定理の設定になります.

Turán-typeな問題とは, 固定されたグラフHを含まないグラフの中で最も密なものは何かという極値グラフ理論の問題です. 例えば奇数長の閉路は完全二部グラフを考えれば辺数\Omega(n^2)を達成しますが, 四角形を含まない任意のn頂点グラフは辺数がO(n^{1.5})になります (こちらの記事で証明しています). 応用として, ワークショップではErdősの内周予想やそれの最近の進展について取り上げられていました. 特に興味深かったのはH=C_8のときは未解決であるということでした. つまり, 長さ8の閉路を含まないn頂点グラフのうち最大辺数を\mathrm{ex}(n;C_8)とすると現在知られている最善のバウンドが
\Omega(n^{6/5}) \le \mathrm{ex}(n;C_8) \le O(n^{5/4})
となっており, このギャップを埋めるのはこの分野の中心的な未解決問題らしいです.

5日目


前日に引き続きTuranのワークショップに参加しました. とあるpseudorandomnessを満たす部分集合族を使ってsunflower lemmaの改善を与えた論文の話がありました. 集合S_1,\dots,S_r \subseteq [n]は, 全てのi\neq jに対してS_i \cap S_j = S_1 \cap \dots \cap S_rを満たすとき, r-ひまわりと呼びます. 

[n]上の集合族\mathcal{S}=\{S_1,\dots,S_m\}は, あるS_{i_1},\dots,S_{i_r}\in\mathcal{S}r-ひまわりをなすとき, r-ひまわりを含むといいます. r-ひまわりを含まない部分集合族\mathcal{S}であって最も多くの集合を持つものはどのようなものになるでしょうか?

定理 (Erdős-Rado, '60)
集合族\mathcal{S}=\{S_1,\dots,S_m\}|S_i|\le wを満たすとする. もし|\mathcal{S}| > w! \cdot (r-1)^wを満たすならば, \mathcal{S}は必ずr-ひまわりを含む.

このmのバウンドw!\cdot (r-1)^wを漸近的に改善できるのではないか? というのがひまわり予想です.

予想 (Erdős-Rado, '60).
集合族\mathcal{S}=\{S_1,\dots,S_m\}|S_i|\le wを満たすとする. 各r \ge 3に対してある定数C>0が存在して, |\mathcal{S}|>C^wを満たすならば, 集合族\mathcal{S}は必ずr-ひまわりを含む.

Alweiss, Lovett, Wu, and Zhang (STOC20) はErdős-Radoの定理のバウンドを改善し以下の定理を証明しました:

定理 (Alweiss, et al. (2021)).
集合族\mathcal{S}=\{S_1,\dots,S_m\}|S_i|\le wを満たすとする.  各r \ge 3に対してある定数C>0が存在して, |\mathcal{S}|>(Cr^3 \log w \log\log w)^wを満たすならば, 集合族\mathcal{S}は必ずr-ひまわりを含む.

ワークショップではこの定理の証明の雰囲気が紹介されました. まず, 集合族\mathcal{S}の擬似ランダム性を以下で定義します:

定義.
[n]上の部分集合族\mathcal{S}=\{S_1,\dots,S_m\}|S_i|\le wを満たすとする. この集合族\mathcal{S}は, 任意のT\subseteq[n]に対して
\begin{align*} \Pr_{S \sim \mathcal{S}} [ S \supseteq T ] \le \kappa^{|T|} \end{align*}
を満たすとき, \kappa-spreadという.

部分集合族\mathcal{S}=\{S_1,\dots,S_m\}およびT\subseteq[n]に対し, Tのリンク\mathcal{S}_Tとは, 部分集合族であって,
\begin{align*} \mathcal{S}_T = \{S\setminus T \colon T \subseteq S\in\mathcal{S} \} \end{align*}
によって定まるものです. リンクの言葉を使うと, \mathcal{S}\kappa-spreadであるというのは, 任意のTのリンク\mathcal{S}_T
\begin{align*} |\mathcal{S}_T| \ge \kappa^{-|T|}\cdot |\mathcal{S}| \end{align*}
を満たすことを意味します (\mathcal{S}_Tの要素数はTを含む\mathcal{S}に属す部分集合の個数に等しいから).

重要な観察として, もしもリンク\mathcal{S}_Tr-ひまわり\{S'_1,\dots,S'_r\}を含むとしましょう. すると, S'_1\cup T, \dots, S'_r \cup T\mathcal{S}におけるr-ひまわりになっているはずです. すなわち, リンクをとった後にひまわりがあるならば元の集合族に復元することができます.

適切な\kappaを選びます. もしも今持っている集合族\mathcal{S}\kappa-spreadでないとするならば, 定義よりあるTが存在して|\mathcal{S}_T| > \kappa^{|T|}\cdot |\mathcal{S}|となります. このリンク\mathcal{S}_Tに対してひまわりの存在性を言えば, \mathcal{S}がひまわりを持つことが示せます. これを再帰的に繰り返していくと, \kappa-spreadingな集合族に対して議論すれば良いことになります. Alweissらの貢献は\kappa-spreadingな集合族に対してはdisjointな部分集合S_{i_1},\dots,S_{i_r}がとってこれることを示したこと(らしい)です. disjointな部分集合族はひまわりをなすので, これで定理の主張が証明できたことになります.





2024年6月25日火曜日

STOC1日目の感想 (LLMの話とbest paper sessionのまとめ)

せっかくSTOCに参加しているので日記を書こうと思いたち, 勢いに任せて筆を進めています. 2日目以降は筆が乗らないかもしれません.

今回のSTOCは最初のワークショップではLLMなどのAI分野においてアルゴリズムの理論研究がどのように貢献できるのかという話をしていました. 以下に続く文章はそのWSを聞いて私が解釈したものですので, 内容の正確性は保証しません. あくまでも私が解釈したものなので, AIに関して何かを述べる際はこの記事を情報源にはしないでください.

例えば文章が途中まで与えられた「次の単語は何か?」を学習する際, まず単語ごとに区切りそれぞれの単語を高次元ベクトルに埋め込み (多分Word2Vecみたいな話), 次に出てくる単語の条件付き分布を推定するということをします. この条件付き分布は何らかの分布に従うと仮定しており, 通常はある高次元のパラメータ\thetaを持ちます (例えば正規分布は平均と分散で二つのパラメータをもつ). 深層学習とはこの「何らかの分布」のテンプレートの一例にすぎず, そのテンプレの中で尤度関数を最適化するという作業に他なりません. 具体的には線形作用と成分毎の非線形作用を交互に組み合わせる分布を考えており, この線形作用の重みがパラメータに対応します. chatGPTとかをみるとあたかも魔法のようなことをしているように見えますが, 実際は次の単語の条件付き分布がある特定のテンプレに従うと仮定し, 与えられたデータセットに最も近いテンプレを見つけるにすぎません.

教師あり学習だと点とそのラベルの組があらかじめデータセットとして与えられ, 未知の点が当てられたときにその点のラベルは何かを推測するということを考えます. この問題点は高精度な推測をするためには多くのデータセットが必要になるという点です. しかしながら, 膨大な点とそれに対応するラベルの組を得るという作業は大変です.

ところが「次の単語は何か?」という問題の場合はインターネット上のデータ (wikiの記事など) から文を持ってくれば膨大なデータセットを容易に得ることができるので, 前段落の問題点は解消されます. あとはこの膨大なデータセットを用いていかに効率よく最適なパラメータを得るかというアルゴリズムのタスクが勝負になります. ここではスーパーコンピュータなどを用いて大規模な並列計算を行うことも視野に入れて「並列化しやすい」アルゴリズムを設計するみたいなことも視野に入れます.

ワークショップではdiffusion modelについての話も出ました. なんとなく「diffusion model」と聞くとたいそうに聞こえますが端的に言えば空間上のただのランダムウォークだと私は思っています. 例えば「子犬と遊ぶ子供」という文からそれに対応する画像を生成するタスクを考えてみましょう. このとき, 任意の画像全体の空間\mathbb{R}^Nを考え, その上で点x \in \mathbb{R}^Nに対し小さなランダムなノイズを加えるという操作を繰り返しましょう. t回繰り返して得られるベクトルをx_tとすると, 十分大きなtに対してx_tは標準正規分布N(0,I)に近いです. diffusion modelとはノイズを除去する過程のモデルであり, x_tが与えられたときのx_{t-1}の条件付き確率が平均\mu_t(x_t,t), 分散\sigma_t(x_t,t)の正規分布に従うと仮定してこのパラメータを最適化するという作業に他なりません. このようにすることで「子犬と遊ぶ子供」という文から実際にそれを表現する画像をサンプリングすることができます. データセットは「子犬と遊ぶ子供」の画像からなります. このデータセットはまずネットサーフィングして画像と脚注の組を得ます. 次に脚注の文章を高次元に埋め込みます. この埋め込みは意味が似てる二つの文章は埋め込んだ後も何らかの意味で距離が近いものになっているとします. すると「子犬と遊ぶ子供」に対応する点に近い点に対応する脚注を持つ画像を抽出することで大量のデータセットを用意することができます (この辺は少し私の理解が曖昧なので不正確かもしれません).

ワークショップの二人目の発表はAtri Rudraでした. 彼はEssential Coding Theoryの著者の一人なので私の中では誤り訂正符号をやってる人というイメージだったので, このような分野で研究をされているというのは意外でした. 今日「Transformer」と呼ばれる技術を算術回路に落とし込み, 効率的な算術回路を提案することでより学習を効率的に行うという旨の話でした.

Transformerでは, まず与えられた文章をN個の単語に分解し, それぞれの単語をd次元ベクトルに埋め込みます. こうして得られたN個のベクトルを並べて得られる行列をX \in \mathbb{R}^{N \times d} とします. 深層学習では各レイヤーで, XNd次元のベクトルとみなしてX_t \leftarrow \sigma (W_t X_{t-1})という更新式に基づいてX_Tを出力するときの行列W_tを最適化で求めるわけですが, TransformerのAttentionと呼ばれるプロセスでは
X_t \leftarrow \sigma (Q_tX_{t-1}X_{t-1}^{\top} K_t)
という更新式 (ここでQ_t,K_tは行列) を繰り返します (これが何でうまくいくかは分かりません). このQ_tK_tがパラメータになっており, 学習ではこのパラメータを最適化します. あまりちゃんとわかっていませんがここでの行列がある種の対称性を持っていれば効率的に更新できるみたいな感じの話だと思います. ただしここでは行列への要請として対称性だけではなく, (勾配法の適用を念頭に)パラメータでの微分可能性も要請されていました (行列かけるだけだったら常に微分可能なんじゃないの?と思ったけどよくわからなかった). この辺の話では面白いことにSETH-hardnessの論文があったりするようです.

LLMのワークショップの後はbest paper sessionがありました. 今回のSTOCは3件のbest paperがあり, それぞれ

  • Single-Source Shortest Paths with Negative Real Weights in \tilde{O}(mn^{8/9}) Time, Jeremy Fineman.
  • Near Optimal Alphabet-Soundness Tradeoff PCPs, Dor Minzer and Kai Zhe Zheng.
  • Parameterized Inapproximability Hypothesis under Exponential Time Hypothesis, Venkatesan Guruswami, Bingkai Lin, Xuandi Ren, Yican Sun, Kewen Wu.
でした.

一つ目の論文は負辺持ちグラフ上の単一始点最短経路問題に対してBellman-Fordより速いアルゴリズムを提案するというものです. この問題は2022年のFOCSの論文\tilde{O}(m\cdot \mathrm{poly}\log W)時間で解くアルゴリズム (Wは最大絶対値重み) が提案されていましたが, このアルゴリズムは反復回数が\mathrm{poly}\log Wに依存するためいわゆる「弱多項式」時間アルゴリズムです. 一方でこちらの論文は一反復の計算に\tilde{O}(m n^{2/9})時間かかる操作をO(n^{2/3})回繰り返すというものであり, いわゆる「強多項式」時間アルゴリズムです.

二つ目の論文はPCP定理のアルファベットサイズとsoundnessのトレードオフに関する論文です. PCP定理についてはこちらの記事で説明をしていますが, 「SATは確率的検証可能できる」ことを主張する定理です. SAT (より一般にクラスNPの問題) は, 入力がYesインスタンスのときにYesたりうる証拠たりうる文字列 (例えばSATなら充足割り当て) が存在しそれをみたときは受理し, Noインスタンスのときはどんな文字列が与えられても拒否する検証者(verifier)が存在します. 確率的検証とは証拠として与えられた文字列のうちランダムに選んだq=O(1)個だけをみて受理/拒否を判定する検証を指します. 検証者の受理確率について, 入力がYesインスタンスならば確率\approx 1で受理し, Noインスタンスに対しては確率\le \deltaで受理するものを考えます. ここのパラメータ\deltaをsoundnessといいます. soundnessパラメータ\deltaは小さければ小さいほどよいです.
PCPはそのアルファベットサイズ|\Sigma|を大きくすることによってクエリ数qを保ったままsoundnessを小さくしていく (Razのpararrel repetition) ことができますが, |\Sigma|\deltaの間のほぼ最適なトレードオフを見つけたというのが今回の論文の主張のようです.

三つ目の論文もPCP定理の改善の話で, パラメタ化計算量の文脈におけるPCP定理の話でした. PCP定理ではNPのwitnessを「符号化」して確率的検証できる証明に変換するのですが, この「符号化」で追加する冗長性をいかに短くできるかという文脈を考えます. パラメタ化計算量の文脈では考える入力のクラスを制限してより効率的なアルゴリズムを得るという研究をしますが, 一方でその困難性についてもいろいろわかってきており, 「NP困難性」に対応する概念として「W[1]困難性」という概念があります. 一般にW[1]困難な問題はFPT時間では解けないだろうと予想されており, 代表的な問題としてk-クリーク問題があります. そしてW[1]困難な問題に対しても近似アルゴリズムを設計したり何らかの仮定の下での近似不可能性を示す研究もあります. この近似不可能性の文脈でよく出てくるのが PIH (parameterized inapproximatability hypothesis) という予想です. これはMAXSATのギャップ問題のようなパラメタ化問題がFPT時間で解けないという予想です. 今回の論文は指数時間仮説(ETH)の下でPIHが成り立つことを示しており, パラメタ化計算量における「PCP定理」を証明したという論文のようです. 普通のPCP定理の証明を考えるとNP証明を「符号化」するということを考えますが, この符号化によって対応するCSPのインスタンスのパラメタがめちゃくちゃになってしまうのが難しいポイントだと私は解釈しています. 代わりにW[1]困難な問題 vector CSPというものを考えるようです. 一般にNP証明からPCPに符号化する際のオーバーヘッドが定数倍で済むならば\mathsf{ETH} \Rightarrow \mathsf{Gap}\text{-}\mathsf{ETH}\Rightarrow \mathsf{PIH}が成り立つと思うのですが, このholy grailにはまだまだ遠いようです.

こうしてみるとbest paperのうち2/3はPCP定理なので今回はSymposium on Theory of pCp theorem (STOC) なのかもしれません.

best paper sessionの後はTCS4Allのイベントがありました. 本来ならばLuca Trevisanが話をする予定だったのですが残念なことに先週亡くなってしまったため, Pravesh KothariがLucaの作成したスライドに基づいてスペクトルグラフ理論の話をしていました. ほとんど知っている内容だったのですが改めて聞くとやはりLucaの偉大さが感じられる非常に素晴らしい内容でした.

coffee breakや懇親会ではいろんな人と話をしましたが, Yuhao Liとの雑談でTFNPにおけるPCP定理の話が興味深かったです (重要な未解決問題らしい). また, 私は加法的組合せ論に基づく平均時から最悪時への帰着が好きなので, その研究グループの一人のIgor Shinkarと話ができたのがとても良かったです. 大阪さんから聞いた遷移問題のPCPの話も面白かったです.

2024年6月20日木曜日

Luca Trevisanについて

Luca Trevisanが癌で52歳の若さで亡くなったという衝撃的なニュースが飛び込んできました.


直接の面識は全くないのですが, 彼の多くの論文や結果, それにまつわる深い洞察は私の数学に重要な影響を与えており, 来週のSTOCでのワークショップでの彼の講演を直接見れるのをものすごく楽しみにしていただけに非常に残念に思います. STOCのワークショップでのスライドは準備されていたとのことですので, まさに「生涯現役」の研究者であるといえるでしょう. 理論計算機科学は世界的に非常に重要なリーダーの一人を喪失してしまいました.

彼の有名なブログ in theory は計算量理論, 加法的組合せ論, エクスパンダーグラフなど幅広い理論の最近の動向や手法を概説してくれるとても素晴らしいものであり, Terrence TaoのWhat's new や Boaz Barak の Windows On Theory などと並んで私のブログのスタイルに大きな影響を与えた存在でです.

計算量理論では, 例えばこちらのページのランダム抽出器の節で紹介した[Trevisan, 2001]や, こちらのページで紹介しているHardness vs. Randomnessに対して誤り訂正符号のlocal list-decodingに基づくアプローチを提案した[Sudan, Trevisan, Vadhan, 2001]が非常に有名です (もちろん, これに限らずもっと色々ありますが). また, Bogdanovと一緒に平均時計算量の非常に有名な教科書も執筆しています.

他にもスペクトルグラフ理論の文脈でよく知られるhigher-order Cheeger inequality (普通のCheeger不等式はグラフの頂点集合を二分割したときのカット辺の本数に関する不等式だが, higher-orderではグラフをk分割したときのカット辺の本数に着目する) の論文[Lee, Gharan, Trevisan, 2014]も有名です. この話はTrevisanによる解説記事があります.

また, 加法的組合せ論とその理論計算機科学への応用にまつわる様々な解説記事や講義ノート

も出しており, 私はこれらから加法的組合せ論の多くを学びました.

最近ではBecchettiらの研究グループでグラフ上の合意ダイナミクスと呼ばれるマルコフ連鎖やそれに基づくコミュニティ検出についての研究も精力的に行っており, 私の研究分野に非常に近い論文

を出しており, その多くがSODAなどのトップ会議に採択されています.

私はTrevisanと直接交流したことはないのですが, 理論計算機科学の幅広い文脈でいつも見てよく資料で勉強させていただいた先生が若くして亡くなられたという事実に深い悲しみを覚え哀悼の意を捧げたいと思います.


2024年5月31日金曜日

高次元エクスパンダーの集中講義をしました

東北大数学科で高次元エクスパンダーに関する集中講義を行いました。講義資料は私のページから誰でも無料で見れるようになっています。集中講義ではランダムウォークを定義し、エクスパンダーグラフを定義しAlon-Boppanaの定理の証明概要を与えてラマヌジャングラフの話だけをして、単体複体の定義とそのエクスパンダー性を定義して、最後にマトロイドを定義し基交換ウォークの混交性を証明しました。高次元エクスパンダーに関する日本語のちゃんとした解説資料は自分の知る限り全くといって良いほどないので、この概念を日本に輸入する上で非常に大きな意義のある講義/講義資料になっていると自負しています。嬉しいことに資料も非常に多くの人に好評をいただけました。

そもそも集中講義を受講したことがなくどのようなものかすら全く知らなかったのですが、私が行った集中講義ではまず最初に談話会と呼ばれる1時間程度の講演を行い、その翌日から4日間、15時から19時くらいまで黒板を使って定理の証明とかキモチを語るというものでした。実際やってみるまでどのような雰囲気かわからなかったのでとりあえず全力で講義資料を準備したおかげで講義そのものは全体的にスムーズに進み、マトロイドの基交換ウォークの混交性の証明までちゃんと話せたのは非常に良かったです。ちなみに談話会では自己紹介的な側面もあるらしく、どんな内容でも良いもののある程度自分の研究トピックに絡んだものであるのが良さそうです。聴衆はピュアマスの人が多いでしょうから、やはりピュアマスのTCSにおける応用の話をするとものすごく食いつきが良かったです。

ピュアマスの方々は黒板での議論を好むというイメージは昔からなんとなくあったものの、予想以上でした。最適化理論のサマースクールという位置付けで毎年夏に行われる組合せ最適化セミナーでは3日間、各日にそれぞれ1名の講演者が計3時間の講義をスライドを用いて行うというものがあるのですが、私の集中講義は毎日4時間を4日間の計16時間あったわけですので時間の単純計算で組合せ最適化セミナーの講師を5回務めたことになったわけです(講義資料の準備も考えるともっとありそう)。

一方でスライドでの発表と違って聴衆の咀嚼のスピードに合わせてこちらの講義のスピードも調節できるというのが黒板発表の大きなメリットであるように感じました。もちろん、これは聴衆が忍耐強く頑張って咀嚼してくれるというのが前提の話になりますが。

聴衆はそれなりに多くの方に来ていただけました。何人かの学生にも積極的に核心をついた質問やご指摘をいただき、自分の講義資料のどの部分が良くないかなどを見直す良いきっかけになりました。

数学科で集中講義をするという機会はなかなかないかもしれませんが、やはり応用を見据えていくにつれこのような機会は将来的に他の方も経験するようなことがあるかもしれません。(当たり前なことも含まれていますが)板書で講義をする機会のある人のためにいくつか助言を残しておくと

  • 講義資料はちゃんと作った方がよい(特に、各日にどこからどこまで話すかは事前に決めるべき)
  • 私の資料の各章はある程度具体例をスキップしても話すと1日4時間くらいかかります。これが目安になると思います
  • やはり細かい証明を与える前にまずその概要とか道筋を話すと聴衆の食いつきが良い
  • 一方で直感的な説明や式変形だけを資料に書いてしまうと、厳密に式を追いたい人は満足しないので、資料には書いておいた方が良い
  • 既存結果は誰がいつ発表したものかはちゃんと把握しておいた方が良い (誰が証明したのか?と聞かれることもある)
  • 基本的に白と黄色で説明するのが多分良い (教室依存だけど赤とかだと場所によっては見づらくなりうる)
などでしょうか。おかげさまで講義終了後に飲んだビールと食べた牛タンはめちゃくちゃ美味しかったです。ありがとうございました。



2024年4月9日火曜日

凸共役と集中不等式

 凸解析のツールの一つとして凸共役という概念があります. I\subseteq \mathbb{R}上で定義された実関数fの凸共役とは
f^*(a) = \sup_{x\in I}\{ax - f(x)\}
で定義されます. 通常はI=\mathbb{R}I=(0,\infty)を考えます. ここでは凸解析の理論には踏み込まず, この概念が確率集中不等式の文脈でどのように登場するかを説明します.

確率集中不等式とは, 実確率変数Xがある点 (通常は期待値\mathbb{E} X) から離れる確率がどれくらい小さくなるかを評価する不等式です. (本記事では基本的に確率変数は全て期待値や分散が存在するものを考えます). 次の不等式を使います:

補題1 (マルコフの不等式).
Xを非負確率変数と任意の正の数z>0に対し, \Pr[X \ge z] \le \frac{\mathbb{E}X}{z}.

本記事の目標は\Pr[X \ge \mathbb{E} X  + a]を上から抑えることです. 簡単な式変形により, 任意の\lambda>0に対し
\begin{align*} \Pr[X \ge \mathbb{E} X + a] &= \Pr\left[ \mathrm{e}^{\lambda (X - \mathbb{E} X)} \ge \mathrm{e}^{\lambda a}\right] \\ &\le \mathrm{e}^{-\lambda a} \cdot \mathbb{E} \mathrm{e}^{\lambda ( X - \mathbb{E} X)  } \end{align*}
を得ます (一つ目の不等式では\lambda>0を利用し, 二つ目の不等式でマルコフの不等式を用いた). ここで, \lambda>0に対し\psi_X(\lambda):=\log\mathbb{E}\mathrm{e}^{\lambda (X - \mathbb{E} X)}とおくと,
\begin{align*} \log \Pr[X \ge \mathbb{E} X + a ] \le - (\lambda a - \psi_X(\lambda)). \end{align*}
この不等号は任意の\lambda > 0で成り立つので, 最適な\lambda>0を選ぶと
\begin{align*} \log \Pr[X \ge \mathbb{E} X + a ] \le - \sup_{\lambda > 0}\{\lambda a - \psi_X(\lambda)\} \end{align*}
となり, 右辺はまさに凸共役 \psi_X^*(a)になっています. 従って以下を得ます:

命題2.
確率変数Xに対し, そのlogMGFを\psi_Xとする. このとき, \Pr[X\ge \mathbb{E} X + a] \le \mathrm{e}^{ - \psi_X^*(a)}.

以上より, 凸共役\psi_X^*(a)の下界が得られればそこから集中不等式を導出できます. なお, \lambda \le 0に対しても\psi_X(\lambda)を定義することは可能でそこからlower tailを得ることができます. また, \psi_Xは凸関数であることが知られており (ヘルダーの不等式を用いると示せる), 凸共役の性質より凸共役を2回とると元に戻ります.

独立な確率変数X_1,\dots,X_nに対してX=X_1+\dots+X_nと表せたとします. このとき
\mathbb{E}\mathrm{e}^{\lambda X} = \prod_{i=1}^n \mathbb{E}\mathrm{e}^{\lambda X_i}
となることから\psi_X(\lambda) = \sum_{i=1}^n \psi_{X_i}(\lambda)を得ます.


例1. 劣ガウシアン性を持つ確率変数


劣ガウシアン性とは裾分布が正規分布のそれ以下のオーダーで減衰していく性質を意味し, 確率集中不等式の文脈では非常に重要なクラスをなします.

定義3 (劣ガウシアン分布).
パラメータv>0に対し, Xv-sub-gaussianであるとは, 任意の\lambda\in \mathbb{R}に対して\psi_X(\lambda) \le \frac{v\lambda^2}{2}であることをいう.

簡単に言うと劣ガウシアン性は\psi_X(\lambda) = O(\lambda^2)となるような確率変数のクラスです. ちなみに\psi_X(\lambda) = \log\frac{1}{1-\lambda/a}の形になっているという性質を劣指数性と呼びます.

さて, 簡単な平方完成から
\begin{align*} \psi_X^*(a) &= \sup_{\lambda > 0}\{a\lambda - \psi_X(\lambda)\} \\ &\ge \sup_{\lambda > 0}\left\{ a \lambda - \frac{v\lambda^2}{2} \right\} \\ &\ge \frac{a^2}{2v} \end{align*}
を得ます (最後の等号では\lambda = \frac{a}{v}を代入).


例2. ポアソン分布

平均vのポアソン分布に従う確率変数X\sim\mathrm{Po}(v)を考えます. すなわち, 任意の非負整数kに対し
\begin{align*} \Pr[ X = k ] = \mathrm{e}^{- v} \frac{v^k}{k!} \end{align*}
です. このとき, \psi_X(\lambda) = v(\mathrm{e}^{\lambda} - \lambda - 1)であり, \lambda = \log\left( 1+\frac{a}{v} \right)を代入すると次の凸共役を得ます:
\begin{align*} \psi_X^*(a) = v h\left(\frac{a}{v}\right). \end{align*}
ただしh(x) = (1+x)\log(1+x) - x.

上記のバウンドはBennetの不等式でよく見る形の関数になっています. 有名な不等式として
h(x) \ge \frac{x^2}{1+x/3}
というものがあります (この形で表現される集中不等式としてBernsteinの不等式と呼ばれる非常に有名なものがあります).

例3. ベルヌーイ試行

Xを成功確率pのベルヌーイ試行とします. すなわち, X\in\{0,1\}であり
\begin{align*} \Pr[X = b] = \begin{cases} 1 & \text{with probability }p,\\ 0 & \text{with probability }1-p. \end{cases} \end{align*}

導出過程は省略(自分で手計算すると簡単に確認できる)しますが,
\begin{align*} \psi_X(\lambda)  = \lambda p + \log(p\mathrm{e}^\lambda + 1 - p) \end{align*}
となり, \lambda = \log\frac{(1-p)(p+a)}{p(1-p+a)}を代入すると凸共役\psi^*_X(a)が得られ,
\begin{align*} \psi_X^*(a) = (p+a)\log\frac{p+a}{p} + (1-p-a)\log\frac{1-p-a}{1-p} \end{align*}
となります. この式の右辺はベルヌーイ試行のKLダイバージェンスと等しいです. \mathrm{Ber}(p)\mathrm{Ber}(q)のKLダイバージェンスを\mathrm{KL}(p||q)と書くと, この値は
\mathrm{KL}(\mathrm{Ber}(p) || \mathrm{Ber}(q)) = p\log\frac{p}{q} + (1-p)\log\frac{1-p}{1-q}
で定義され, これを用いると\psi_X^*(a) = \mathrm{KL}(p+a||p)と書くことができます. このことから以下のChernoff bound (の特殊ケース)を得ます:

定理4 (Chernoff bound)
X\sim\mathrm{Bin}(n,p)のとき, \Pr[X\ge np + n a] \le \mathrm{e}^{-n\mathrm{KL}(p+a||p)}.

ここにPinskerの不等式\mathrm{KL}(p||q)\ge 2(p-q)^2を代入するとHoeffding boundになります.

2024年3月1日金曜日

解の個数を減らす帰着 (Valiant--Vaziraniの定理)

2月に冬のLAに参加してこれまで5,6年くらい常に取り組みようやく身を結んだ共同研究を発表してきました.

自分の発表には全く関係ないことですが, LAに参加していてValiant--Vaziraniの定理がいまいち知名度がないということを初めて認識しました. これまでもこの定理をブログ記事にしたいと常々思っていたので重い腰をあげて解説しようと思います.

充足可能性判定問題 (SAT)とUSAT

n個の変数x_1,\dots,x_nを持つ論理関数\phi\colon\{0,1\}^n\to\{0,1\}が与えられたときに\phi(x)=1を満たすxが存在するかを問う問題を充足可能性判定問題(SAT)と言います (ここでは論理式は回路として与えられると思ってください. CNFでもOKです.).

一般に充足可能性判定問題は解の存在性を判定するだけです. では特殊ケースとして「充足割当が高々一つしか存在しないことが保証されている論理関数」に対するSATは効率的に解けるのでしょうか?

このような判定問題をUSAT (unique SAT)と言います. 厳密にはUSATは約束問題です. すなわち, 与えられた論理関数\phiが以下で定義される二つの集合U_{\mathrm{yes}},U_{\mathrm{no}}のどちらに属するかを判定する問題です:
\begin{align*} &U_{\mathrm{yes}} = \{\phi\colon \phi\text{ has a unique satisfying assignment}\},\\ &U_{\mathrm{no}} = \{\phi\colon \phi\text{ has no satisfying assignments}\}. \end{align*}
与えられた\phiがこの二つの集合どちらにも属していない場合はYES/NOどちらを答えても正解としてみなします. U_{\mathrm{yes}}, U_{\mathrm{no}}はdisjointですがU_{\mathrm{yes}}\cup U_{\mathrm{no}}は必ずしも入力全体の集合になるわけではありません. yesインスタンス全体とnoインスタンス全体の和集合が入力全体になる決定問題を判定問題と呼び, そうとは限らない決定問題を計算量理論では約束問題 (promise problem)といいます (約束問題は判定問題を特殊ケースとして含んでいます). 細かい注意ですが, \mathsf{P}とか\mathsf{NP}は判定問題の計算量クラスなので「\mathrm{USAT}\in\mathsf{P}」という主張は文法がおかしく, 正しくは 「\mathrm{USAT}\in\mathsf{prP}」です (promise P).

Valiant--Vaziraniの定理

Valiant--Vaziraniの定理とは乱択を許したときにUSATがSATに帰着できることを主張する定理です. 例えばその帰結として

USATが多項式時間で解ける \Rightarrow SATが乱択多項式時間で解ける

が得られますので, USATはいわば"乱択NP困難" (これはofficialな用語ではない!)ということになります. ValiantはPAC学習を定義したりマッチング数え上げの#P困難性を証明した方で, Vaziraniは近似アルゴリズムの本で有名なVaziraniです. どちらも非常に偉大な方です. 原著論文はこちらです.

定理1 (Valiant--Vaziraniの定理)
論理関数を別の論理関数に変換する多項式時間乱択アルゴリズムRとある多項式pが存在し, 任意の論理関数\phi\colon\{0,1\}^n\to\{0,1\}に対し, 
  • \phi\in \mathrm{SAT} ならば, \Pr[R(\phi)\in U_{\mathrm{yes}}]\ge \frac{1}{p(n)}.
  • \phi\not\in\mathrm{SAT} ならば, 確率1でR(\phi)\in U_{\mathrm{no}}.
ただし\mathrm{SAT}は充足可能な論理式全体を表す.

仮にUSATが多項式時間アルゴリズムAで解けたとしましょう. このアルゴリズムAを定理1のアルゴリズムRと組み合わせることで以下のようにしてSATを解くことができます:

  1. 与えられた論理関数\phiを入力としてRを走らせ, 別の論理関数\phi'を得る.
  2. \phi'を入力としてAを走らせ, YESを出力したらそのままYESを出力する.
  3. そうでなければステップ1に戻る. これを100p(n)回繰り返しても終わらない場合はNOを出力する.
上述の乱択アルゴリズムは任意のSATインスタンス\phiに対し99%の確率で正解を出力します. 元の\phi\phi\in\mathrm{SAT}ならば, 100p(n)回の繰り返しの中で全てR(\phi)\not\in U_{\mathrm{no}}となってしまう確率は(1-1/p(n))^{100p(n)}\le \exp(-100)<0.01だからです (ここでは\forall x\in\mathbb{R},1+x\le \exp(x)を使っている).

証明のアイデア


証明の直感を養うために, 効率性を無視した次の帰着を考えます:
  1. \phi\colon\{0,1\}^n\to\{0,1\}を与えられた論理関数とする.
  2. 適切に設定されたパラメータmに対し, f\colon\{0,1\}^n\to\{0,1\}^mを一様ランダムな関数とする (すなわち, 各x\in\{0,1\}^nに対してf(x)は独立一様ランダムなmビット文字列を出力する関数.
  3. \phi'(x) = \phi(x) \land \langle f(x)=1^m \rangleとする. ここで\langle E \rangleは事象Eの指示関数とする.
明らかに, \phiが充足可能でないならば\phi'もまた充足可能ではありません. 一方で\phiが充足可能であるとき, 充足割当の個数をNとすると, \phi'の充足割当の個数N'\mathbb{E}[N']=N/2^mを満たします. ですので, m=\log_2 Nとすれば期待値が1になります. N'の実際の分布は二項分布\mathrm{Bin}(N,1/N)であり, \Pr[\mathrm{Bin}(N,1/N)=1]\ge \mathrm{const}が成り立つ (N\to\inftyの極限では\mathrm{Bin}(N,1/N)\to\mathrm{Po}(1)に収束する). なお, ステップ3の\langle f(x)=1^m \rangleにおける1^mは特に1^mである必然性はありません.

この帰着ではNの値を知る必要があるのですが, そこもまたランダムに与えれば良いです. 一様ランダムにm\sim[n]をとると確率1/n2^{m-1}\le N \le 2^mを満たします. このmを用いて上の帰着を実行すれば, 同じようなポアソン近似により確率\mathrm{const}\cdot (1/n) \ge \mathrm{poly}(n)\phi'\in U_{\mathrm{yes}}を満たすことが確認できます.

しかしながら, 上述の帰着では一様ランダムな関数fをサンプリングするには少なくともm2^nビットのランダムビットが必要なので, 指数時間かかってしまいます. そこでこのサンプリングに必要なランダムビット数を\mathrm{poly}(n)ビットまで削減することを目指していくことになります. すなわち, 一様ランダムな関数と同等の性質を持つ別のランダム関数を短いランダムシード長でサンプリングすることを目標にします.

これはpairwise independent hash functionという, 脱乱択化(derandomization)の分野では標準的な関数を考えることによって解決できます. まず, 確率変数のpairwise independent性について解説します. 

ペア独立性 


この記事では確率変数といえばデフォルトで離散値をとるものを考えます (計算機では全てが離散で処理されるので).

二つの確率変数X,Yは, 任意のx,yに対して\Pr[X=x\text{ and }Y=y]=\Pr[X=x]\Pr[Y=y]を満たすとき独立であると言います. より一般に確率変数X_1,\dots,X_nが独立であると言ったとき, それは任意のx_1,\dots,x_nに対して
\begin{align*} \Pr[X_i = x_i \text{ for all }i\in [n]]=\prod_{i\in [n]}\Pr[X_i=x_i] \end{align*}
を意味します. 独立という代わりに相互に独立(mutually indepedent)であると言うこともあります.

一方で, 任意の1\le i<j\le nx_i,x_jに対し
\begin{align*} \Pr[X_i=x_i\text{ and }X_j=x_j]=\Pr[X_i=x_i]\Pr[X_j=x_j] \end{align*}
が成り立つとき, X_1,\dots,X_nペア独立 (pairwise independent) であると言います. pairwise independenceにはこれといったスタンダードな和訳は(私の知る限り)ないと思いますが, ここではこちらのページから拝借しております. なお, 上の定義ではi\neq jとしていることに注意してください.

ペア独立ハッシュ関数

ハッシュ関数と聞くとPythonの辞書などを想起されますが, 計算量の文脈ではハッシュ関数と言ったらある分布に従って生成されたランダムな関数を指すものと思ってください.

ランダムな関数f\colon\{0,1\}^n\to\{0,1\}^mに対し, 2^n個の確率変数f(0^n),\dots,f(1^n)がペア独立であるとき, fペア独立ハッシュ関数であると言います.

単にfがペア独立ハッシュ関数であると言った場合は単にペア独立性だけを指しますが, しばしば, 任意に固定したx\in\{0,1\}^nに対してf(x)の分布は一様ランダムであることが多いです.

例えば, 証明のアイデアで考えた「各x\in\{0,1\}^nに対し独立一様ランダムなmビット文字列をf(x)として出力する関数」はペア独立ハッシュ関数です. この例は生成に指数長のランダムシードを要しますが, よりrandomness-efficientなものも構成できます.

ランダムな直線

有限体\mathbb{F}=\mathbb{F}_{2^n}上の関数を考えます. ここでは\mathbb{F}_{2^n}の厳密な定義を理解しておく必要はありません. 掛け算と足し算ができて, 非ゼロな元では割り算ができて, これらの演算がnに関する多項式時間でできて, しかも|\mathbb{F}_{2^n}|=2^nになっているので\{0,1\}^nと一対一対応がある, という事実だけを使います. 一様ランダムにa,b\sim\mathbb{F}をサンプリングしてランダム関数f\colon \mathbb{F}\to\mathbb{F}
f(x) = ax+b
で定めます. 有限体を\mathbb{F}_{2^n}\cong \{0,1\}^nで同一視するとfnビット文字列からnビット文字列への関数とみなせます.

補題2.
一様ランダムなa,b\sim\mathbb{F}に対し, f\colon x\mapsto ax+bはペア独立ハッシュ関数である. すなわち, |\mathbb{F}|個の確率変数(f(x))_{x\in \mathbb{F}}はペア独立である. さらに, 固定したx\in \mathbb{F}に対してf(x)の分布は\mathbb{F}上一様ランダムである.

証明. 任意のx_1\neq x_2\in \mathbb{F}y_1,y_2\in\mathbb{F}に対して
\Pr[f(x_1)=y_1 \text{ and }f(x_2)=y_2] = \Pr[f(x_1)=y_1]\Pr[f(x_2)=y_2]
を示せば良いです. f(x_i)=y_i (i=1,2)という等式を行列を用いて表すと
\begin{bmatrix} x_1 & 1 \\ x_2 & 1 \\ \end{bmatrix} \begin{bmatrix} a \\ b \end{bmatrix} = \begin{bmatrix} y_1 \\ y_2 \end{bmatrix}
となります. ヴァンデルモンドの行列式から係数行列は正則なので, [a\,b]^{\top}はある特定のベクトルになっていなければならず, a,b\sim\mathbb{F}は一様ランダムなのでこれが起こる確率は1/|\mathbb{F}|^2となります.

一方で\Pr[f(x_i)=y_i]=1/|\mathbb{F}|なので, 確かに(f(x))_{x\in \mathbb{F}}はペア独立であることが確認されました. (証明終)

補題2で構成したペア独立ハッシュ関数はnビット文字列からnビット文字列への写像でしたが, 出力のnビットのうち最初のmビットだけを取り出した (m\le n) 文字列を出力するようにすれば, 値域を\{0,1\}^mにしつつペア独立になるようにできます.

補題3.
ペア独立ハッシュ関数f\colon \{0,1\}^n\to\{0,1\}^nと固定したパラメータm\le nに対し, f'(x)\in\{0,1\}^mf(x)の先頭mビットからなる文字列と定義する. このとき, f'\colon\{0,1\}^n\to\{0,1\}^mはペア独立ハッシュ関数である.

証明. 確率変数(f(x))_{x\in\{0,1\}^n}がペア独立であることを利用して(f'(x))_{x\in\{0,1\}^n}がペア独立であることを示します. ペア独立性の定義から, 任意のx_1\neq x_2\in\{0,1\}^ny_1,y_2\in\{0,1\}^mに対して
\Pr[f'(x_1)=y_1\text{ and }f'(x_2)=y_2]=\Pr[f'(x_1)=y_1]\Pr[f'(x_2)=y_2]
が成り立つことを示せばよいです.

文字列y\in\{0,1\}^mに対して, 先頭mビットがyになるようなnビット文字列の全体をS(y)\subseteq\{0,1\}^nとします. f'(x)f(x)の先頭m文字を取り出すことから, f'(x)=y \iff f(x)\in S(y)です. 従って
\begin{align*} \Pr[f'(x_1)=y_1\text{ and }f'(x_2)=y_2] &= \sum_{z_1\in S(y_1),z_2\in S(y_2)} \Pr[f(x_1)=z_1\text{ and }f(x_2)=z_2] \\ &= \sum_{z_1\in S(y_1),z_2\in S(y_2)} \Pr[f(x_1)=z_1]\Pr[f(x_2)=z_2] & & \text{pairwise independence of $f$} \\ &= \Pr[f(x_1) \in S(y_1)]\Pr[f(x_2)\in S(y_2)] \\ &= \Pr[f'(x_1)=y_1]\Pr[f'(x_2)=y_2] \end{align*}
より主張が得られます. (証明終)

補題2,3を組み合わせると, 以下の命題が成り立つことがわかります.

補題4.
任意のm\le nに対し, \{0,1\}^nから\{0,1\}^mへのペア独立ハッシュ関数fであって, 全てのx\in\{0,1\}^nに対してf(x)の分布が\{0,1\}^m上一様ランダムになるようなものが存在する. さらにx\mapsto f(x)の計算は\mathrm{poly}(n)時間で計算できる.


Valiant--Vaziraniの定理の証明

いよいよ定理1を証明します. \phi\colon\{0,1\}^n\to\{0,1\}を与えられた論理関数とし, 以下の帰着を考えます:

  1. m\sim\{1,\dots,n\}を一様ランダムに選ぶ.
  2. f\colon\{0,1\}^n\to\{0,1\}^mを補題4で保証されるペア独立ハッシュとする.
  3. \phi'(x)=\phi(x)\land \langle f(x)=1^m\rangleで定義される論理関数\phi'を出力する.

ステップ3では, Cook-Levinの定理の証明からコンピュータで計算できるアルゴリズムはその内部(レジスタや読み込みテープの位置など)の動きを回路で表現できることを用います. すなわち, 補題4ではx\mapsto f(x)は多項式時間で計算できるので, この計算を回路で表現することによってBoolean関数x\mapsto \langle f(x)=1^m\ranglenに関する多項式サイズの回路で表現することができます (SATを考えると, このようにペア独立ハッシュ関数の計算過程を表現できるというuniversalityが役にたつというわけです!). 従って\phi\mapsto \phi'を計算する上記の乱択アルゴリズムは多項式時間アルゴリズムです.

正当性の証明

\phi'の正当性を証明します. 与えられた論理関数\phiが充足不可能ならば\phi'を充足する割当も存在しません. 従って\phiが充足可能であるときに\phi'が充足可能である確率を評価すればよいです.

\phiが充足可能であるとし, 1\le N \le 2^n\phiの充足割当の個数とします. 充足割当が非常に多く, 例えばN\ge 2^{n-3}を満たすならば一様ランダムなx\sim\{0,1\}^nに対して\phi(x)=1かどうかをチェックすれば\phiの充足可能性が簡単に解けて, \phiが充足可能ならば定数1\phi'として出力すればよいので, N\le 2^{n-3}を仮定します.

m\sim[n]が一様ランダムに選ばれているので, 確率1/n
\begin{align} 2^{m-3}\le N \le 2^{m-2} \end{align}
を満たします. 以後はmが(1)を満たすと仮定して議論を進めます.

\phiの充足割当の全体をa_1,\dots,a_N (a_i\in\{0,1\}^n) とし, 確率変数X_i=\langle f(a_i)=1^m \rangleを考えると, X=\sum_{i\in[N]} X_i\phi'の充足割当の個数に等しいです. ですので \Pr[X=1]\ge 1/\mathrm{poly}(n)を示すのが目標です. Nmの関係(1)より, 1/8 \le \mathbb{E}[X] \le 1/4です.

任意のx\in\{0,1\}^nに対して\Pr[f(x)=1^m]=1/2^mなので, \mathbb{E}[X]=N/2^mを満たします. 従って
\begin{align*} \Pr[X=1] &= \Pr[\exists i,X_i=1\text{ and }\forall j\neq i,X_j=0] \\ &= \sum_i \Pr[X_i=1\text{ and }\forall j\neq i,X_j=0] \\ &= \sum_i \Pr[\forall j\neq i,X_j=0\,|\,X_i=1]\Pr[X_i=1] \\ &= \sum_i (1-\Pr[\exists j\neq i,X_j=1\,|\,X_i=1])\Pr[X_i=1] \\ &\ge \sum_i \Pr[X_i=1] (1-\sum_{j\neq i} \Pr[X_j=1\,|\,X_i=1]\Pr[X_i=1]) \\ &= \sum_{i}\Pr[X_i=1]-\sum_{i\neq j} \Pr[X_i=1]\Pr[X_j=1] & & \text{pairwise independence}\\ &\ge \mathbb{E}[X] - \mathbb{E}[X]^2 \\ &\ge \frac{1}{8} - \frac{1}{16} & & \text{(1)}\\ &\ge \frac{1}{16} \end{align*}
を得ます. mが一様ランダムなので, (1)が成り立つ確率は1/nです. 従って, \phiが充足可能のときに\phi'\in U_{\mathrm{yes}}となる確率は少なくとも\frac{1}{16n}となります. (証明終)

グラフ問題に対するペア独立性の応用

Valiant--Vaziraniの定理はSATに対してペア独立な関数を制約に加えることによって解の個数を減らすという帰着でしたが, 似たようなアイデアに基づいてグラフ上の部分グラフ数え上げ問題に対して解の個数を減らす帰着を与えることができます (ただし帰着後の問題は元の問題とは違う問題になってしまう).

次の二つの問題を考えます:

  1. 与えられたグラフG=(V,E)が三角形を含むかどうかを判定せよ (\mathrm{TRI})
  2. 有限体\mathbb{F}_qに対し, 各辺e\in E\mathbb{F}_qの元を重みとして持つ辺重みグラフ\tilde{G}を考え, 辺重みの総和が0になるような三角形(以後はゼロ三角形と呼ぶ) の存在性を判定せよ (\mathrm{ZWT}_q)
問題1は隣接行列の三乗を計算して対角成分を見ればよいのでO(n^{\omega})時間で計算できます. 問題2は精緻な計算量 (fine-grained complexity) の文脈で難しい問題とされていて, qが十分大きいときは任意の定数\varepsilon>0に対してO(n^{3-\varepsilon})時間で解けないと予想されています. ですので, 本質的には\mathrm{TRI}\mathrm{ZWT}_qの間にはギャップがありそうだと思われており, \mathrm{ZWT}の方が難しいと思われています.

ここで, 問題2においてゼロ三角形が高々一つであることを保証する問題を\mathrm{UZWT}とします. q\approx 3\log nのとき, \mathrm{TRI}から\mathrm{UZWT}_qへの乱択帰着が存在します.

証明のアイデア. 与えられた\mathrm{TRI}のインスタンスG=(V,E)に対し, 各辺に\mathbb{F}_q上一様ランダムな重みを付与したグラフ\tilde{G}=(V,\tilde{E})を考えます. Gの各三角形(u,v,w)に対し, この三角形が\tilde{G}においてゼロ三角形になる確率は1/q^2です. なので適当な範囲からqをランダムに選ぶと, ある程度の確率でq^2Gの三角形の個数と大体同じくらいになります. また, Gの三角形Tに対してX_Tを三角形T\tilde{G}においてゼロ三角形になるかどうかの指示関数とすると, (X_T)_Tはペア独立になります!

この事実を確認するために, 相異なる二つの三角形T\neq T'を考えます. TT'が辺を共有しない場合はX_TX_{T'}は独立です. 仮にこの二つの三角形が辺を共有していたとしても, T\neq T'より共有している辺の本数は必ず1本になり, これ以外の辺の重みは独立に決まるのでX_TX_{T'}は独立になります.

従って, ランダムに重みを付与したZWTのインスタンス\tilde{G}はある程度の確率でゼロ三角形を唯一含みます.




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

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