Processing math: 100%

2023年2月22日水曜日

高次元エクスパンダー: 単体複体とマトロイド

理論計算機科学では近年、高次元エクスパンダーという概念が流行しています。以前の記事マトロイドの基の一様サンプリングの論文を名前だけ述べました. 理論的な背景としてマトロイドの独立集合族の「エクスパンダー性」が重要になるのですが, この辺りについて最近勉強したので整理していきます.

全体の要約:
  • 部分集合で閉じた集合族を単体複体(または独立性システム)という. 特にマトロイドは単体複体の特殊ケースである.
  • グラフに対して定義されるエクスパンダー性という性質を単体複体に拡張する.
  • マトロイドの独立集合族はそのエクスパンダー性を満たす.
  • 飛び道具を使うと基上のランダムウォークのrapid mixingが言えてMCMCが可能になる.
最終目標は証明まで理解することです. 本記事ではその準備として, 単体複体の基本概念を定義していきます.

単体複体

有限集合Vとその上の部分集合族\mathcal{F}\subseteq 2^Vの組X=(V,\mathcal{F})を考える. \mathcal{F}が部分集合で閉じている(すなわち, \tau\subseteq \sigmaかつ\sigma\in\mathcal{F}ならば\tau\in\mathcal{F})とき, X単体複体(simplicial complex)といいます.

単体複体X=(V,\mathcal{F})に対し, \sigma\in\mathcal{F}面(face)といい, その次元\dim\sigma = |\sigma|-1で定めます. \max_{\sigma\in\mathcal{F}}\dim\sigma=dのとき, Xd次単体複体といいます. 全ての極大な面の次元が同じとき, X純粋(pure)であるといいます. 各0\leq k\leq dに対してX(k)=\{\sigma\in\mathcal{F}\colon \dim\sigma=k\}とします. 純粋なd次単体複体X=(V,\mathcal{F})と各0\leq k\leq dに対してX(k)=\{\sigma\in\mathcal{F}\colon \dim\sigma=k\}とします. 

幾何的に解釈すると, 0次の面は点\{v\}, 1次の面は線分\{u,v\}, 2次の面は三角形\{u,v,w\}, ...など, 一つ一つの面は単体とみなすことができます.




純粋なd次単体複体Xに対して, 関数w_d\colon X(d)\to\mathbb{R}_{\geq 0}を考えます. 0\leq k\leq d-1に対してw_k\colon X(k)\to\mathbb{R}_{\geq 0}
  • w_k(\sigma) = \sum_{\tau\in X(k+1),\tau\supset \sigma} w_{k+1}(\tau)
で再帰的に定義し, 重み関数w\colon \mathcal{F}\to\mathbb{R}_{\geq 0}w(\sigma)=w_{\dim(\sigma)}(\sigma)で定義します.

\sigma\in\mathcal{F}リンクX_\sigma=(V_\sigma,\mathcal{F}_\sigma)
\begin{align*} V_\sigma &= \{v\in V\setminus\sigma\colon \sigma\cup \{v\}\in\mathcal{F}\},\\ \mathcal{F}_\sigma &= \{\tau\setminus \sigma\colon \tau\in \mathcal{F},\tau\supseteq \sigma\} \end{align*}
と定義します. リンクもまた単体複体になっており, Xが純粋なd次単体複体ならばX_\sigmaは純粋なd-|\sigma|次単体複体となります.

重み付き単体複体はそのリンクX_\sigmaに対して以下のように重みw^\sigma\colon X_\sigma\to\mathbb{R}_{\geq 0}を誘導します:
w^\sigma(\alpha)= \frac{w(\sigma\cup \alpha)}{w(\alpha)}.

単体複体に対して以下のような包含関係を表した階層構造(ハッセ図)を想起するのが良いと思います. 



例1. マトロイド

単体複体の重要な例としてマトロイドがあります. 定義などの丁寧な説明はこちらのページにもありますが, 本記事でも簡単に紹介します. マトロイドとは単体複体(V,\mathcal{F})であって次の性質を満たすものです:

|\sigma|<|\tau|を満たす任意の\sigma,\tau\in\mathcal{F}に対してあるv\in\tau\setminus\sigmaが存在して\sigma\cup\{v\}\in \mathcal{F}.

この性質よりマトロイドは純粋な単体複体です. 実際, 二つの相異なる極大な面\sigma,\tau\in\mathcal{F}|\sigma|<|\tau|を満たすならば上の性質より\sigmaの極大性に反します. マトロイドを純粋な単体複体とみなしたときの次元に1を加えたものを階数(rank)といいます.

. グラフG=(U,E)の辺部分集合であって閉路を含まないもの全体からなる辺部分集合族はマトロイドになり, 特にグラフ的マトロイド(graphic matroid)といいます.

. 体K上の行列A\in K^{n\times m}の各行を[n]=\{1,\dots,n\}で番号付けし, 各行ベクトルをa_1,\dots,a_nとします. [n]上の部分集合族\mathcal{F}\subseteq 2^{[n]}を, 
F=\{i_1,\dots,i_k\}\in\mathcal{F}\iffa_1,\dots,a_{i_k}が線形独立
で定義したとき, ([n],\mathcal{F})はマトロイドになり, 特に線形マトロイド(linear matroid)と呼びます.

Remark: 単体複体の文脈では台集合Vは頂点とみなしますが, (組合せ最適化の文脈における)マトロイドは台集合は辺とみなしEで表すことが多いです. 

例2. マトロイド交叉

同じ台集合上の二つのマトロイド(V,\mathcal{F}_1),(V,\mathcal{F}_2)に対し,
\mathcal{F}_1\cap \mathcal{F}_2 = \{F\subseteq V\colon F\in \mathcal{F}_1\cap \mathcal{F}_2\}
共通独立集合と呼びます. 組合せ最適化の文脈では共通独立集合のうち要素数最大のものを求める問題はマトロイド交叉問題と呼ばれ, 独立性オラクル(部分集合が\mathcal{F}_iに属すかどうかを返すオラクル)があれば多項式時間で解けることが知られています.

共通独立集合の族\mathcal{F}に対し, (V,\mathcal{F})は単体複体になりますが, 考えるマトロイドによっては必ずしも純粋になるとは限りません.

2023年2月5日日曜日

ロバストPCPとPCP of Proximity

ロバストPCPとPCP of Proximity

PCP定理の証明を構成する二つの重要な要素ロバストPCPPCP of Proximity (PCPP)について説明します. これらの概念を用いたPCP定理の証明の枠組みはBen-Sassonら[1]によって導入されましたが独立にDinurとReingold[2]のassignment testerと呼ばれる枠組みとほぼ同じです. どれも, 当時知られていた非常に複雑なPCP定理の証明[3]を整理して理解しようとする中で誕生した概念であり, 後にDinur[4]によってエクスパンダーグラフ上のランダムウォークに基づく非常に簡単な証明が与えられました. 彼女はこの業績で2019年にゲーデル賞を受賞しています.

1. 定義の準備

有限長の文字列の集合L\subseteq \{0,1\}^*言語といいます. 計算量理論では, 言語を判定問題(与えられたx\in\{0,1\}^*に対してx\in Lかどうか判定せよという問題)と同一視します. 

同じ長さの二つの文字列x,y\in\{0,1\}^nに対してその距離を正規化されたハミング距離で定めます. すなわち\mathrm{dist}(x,y)=\frac{1}{n}\sum_{i=1}^n \mathbf{1}_{x(i)\neq y(i)}とします. 文字列の集合\mathcal{C}\subseteq \{0,1\}^nx\in\{0,1\}^nに対して\mathrm{dist}(x,\mathcal{C})=\min_{y\in\mathcal{C}}\mathrm{dist}(x,y)とします. 特に\mathcal{C}=\emptysetのときは\mathrm{dist}(x,\mathcal{C})=1と定義します. 関数D\colon\{0,1\}^n\to\{0,1\}に対してD^{-1}(1)=\{x\in\{0,1\}^n\colon D(x)=1\}とします.

言語Lに対する検証者とはオラクルアルゴリズムV^\pi(x)であってオラクル\piの助けを借りながらx\in Lかどうかを判定するものを指します. その際, オラクル\pi\in\{0,1\}^*x\in Lを主張する証明として機能する文字列であり, インデックスiに対して\pi(i)\in\{0,1\}を返すオラクルとして解釈します. たとえばLが充足可能な論理式の全体であるならば, xが表す論理式の充足可能性を判断するために例えば\piとしてxの充足割当を持ってくれば証明として機能します. 検証者の能力によって様々なシチュエーションが考えられます.

NP検証者は決定的な多項式時間検証者V^\pi(x)であって以下を満たすものです:
  1. x\in Lならばあるオラクル\piが存在してV^\pi(x)=1.
  2. x\not\in Lならば任意のオラクル\piに対してV^\pi(x)=0.
条件1を満たすオラクル\piを本記事ではNP証明と呼ぶことにします. また, NP検証者を持つ言語の集合を\mathsf{NP}と表します. 有名な\mathsf{P}\neq\mathsf{NP}問題は任意のL\in \mathsf{NP}が決定的多項式時間で解けるかどうかを問うています.

PCP検証者は乱択な検証者V^\pi(x)であって以下を満たすものです:
  1. 任意のx\in Lに対してあるオラクル\piが存在して\Pr[V^\pi(x)=1]=1.
  2. ある定数s>0が存在して, 任意のx\not\in Lと任意のオラクル\piに対して\Pr[V^\pi(x)=0]\geq s.
  3. 任意のn\in\mathbb{N}, x\in\{0,1\}^nに対してV^\pi(x)は高々q(n)回のオラクルアクセスを行い, 高々r(n)ビットのランダムビットを使う.
条件3のr(n)ランダムネス複雑度, q(n)Vクエリ複雑度と呼ぶことにします. このような検証者を持つような言語の集合を\mathsf{PCP}(r,q)と定義します. 条件1のオラクル\piPCP証明と呼ぶことにします(*1).

(*1). PCPとはProbabilistic Checkable Proof (確率的検証可能な証明)の略なので, PCP証明という言葉は「証明」の部分が二重になり気持ち悪く本来はPC証明と呼ぶべきですが, そう呼んでしまうとあとでPCPPという用語も出てきてややこしくなるのであえてPCP証明と呼ぶことにします.

PCP定理\mathsf{NP}=\mathsf{PCP}(O(\log n),O(1))を主張する定理です.

2. PCP検証者と制約充足問題

制約充足問題(CSP; Constraint Satisfaction Problem)とは大雑把にいうと「連立方程式の解を見つけよ」という問題です. nを変数の個数とし, [n]=\{1,\dots,n\}上の集合族\mathcal{S} (つまり各S\in\mathcal{S}S\subseteq [n]) とそれで添字づけられた関数族(D_S)_{S\in\mathcal{S}}を考えます. ここで各D_S\colon \Sigma^S\to\{0,1\}とし, \Sigmaは有限集合とします (アルファベットと呼びます). 制約充足問題とは

あるx\in\Sigma^{[n]}が存在して全てのS\in\mathcal{S}に対しD_S(x|_S)=1となるか?

を判定する問題です. ここでx|_S\in\Sigma^SxSへの制限です. 

特に\Sigma=\{0,1\}のときのCSPを二値CSP(binary CSP), 全てのS\in\mathcal{S}に対して|S|\leq qを満たすCSPをq-CSPと呼びます. 本記事では特に断りのない限り二値のq-CSPを考えます.

PCP検証者V^\pi(x)はある集合Sに対して\pi|_Sを見て出力を決めるので, インデックス集合S(ただし|S|\leq q)と関数D\colon \{0,1\}^n\to \{0,1\}をランダムに生成し, D(\pi|_{S})を出力するアルゴリズムと捉えることができます (\mathcal{S}Dは入力xに依存). これを, \mathcal{S}から適当な分布に従ってランダムに選んだSに対してD_S(\pi|_S)を出力すると捉えれば, PCP検証者は二値q-CSPのインスタンス(D_S)_{S\in\mathcal{S}}と同一視することができます. このCSPの変数は\piです. 簡単のためSの分布を一様分布とします(*2). このとき, PCP検証者の条件は以下のように書き換えられます:

  1. 任意のx\in Lに対してある\piが存在して全てのS\in\mathcal{S}に対してD_S(\pi|_S)=1.
  2. 任意のx\not\in Lと任意の\piに対して\Pr_S[D_S(\pi|_S)=0]\geq s. すなわち, D_S(\cdot)が充足されないようなSs\cdot |\mathcal{S}|個ある.
  3. |\mathcal{S}|=2^rかつ|S|\leq qである (つまり\mathcal{S}上一様ランダムに選ぶときに長さrのランダムビットを使う).
このように捉えるとMAX-SAT(最も多くの節を充足する割当を見つける問題)の近似アルゴリズムの存在性とPCP定理が関係することがわかりやすくなるでしょう.

(*2). \mathcal{S}が多重集合であることを許容すればS\sim\mathcal{S}を一様分布とすることができます. 実際, ある集合S\in\mathcal{S}が選ばれやすいのであれば, その分だけS\mathcal{S}に追加することで一様分布によってシミュレートすることができます.

3. PCP検証者のロバスト性

条件2の代わりに以下の条件2'を満たすPCP検証者をロバストなPCP検証者といいます:
  • (条件2') ある定数s_1,s_2>0が存在して任意のx\not\in Lに対して\Pr_S[\mathrm{dist}(\pi|_S,D_S^{-1}(1))\geq s_1]\geq s_2.
条件2'はPCP検証者の条件2よりも強いことを要請しています. 実際, 検証者が条件2'を満たすならば\Pr[V^{\pi}(x)=0]=\Pr_S[\pi|_S\not\in D^{-1}(1)]\geq \Pr_S[\mathrm{dist}(\pi|_S,D^{-1}(1))\geq s_1]\geq s_2となるからです.

PCP定理の証明はあるNP完全問題Lに対してクエリ複雑度の大きいロバストなPCP検証者を構成し, これをPCP of Proximityと組み合わせてクエリ複雑度を下げることによって所望のPCP検証者を得るという流れになります.

4. PCP of Proximity (PCPP)

PCPP検証者とは, 関数D(を記述する回路), Dの割当x, 証明\piが与えられたときにD(x)=1かどうかを検証する乱択アルゴリズムです. ただし, x\pi両方ともオラクルで与えられ, オラクルへのクエリアクセスの回数が制限されます(*3).

PCPP検証者とは乱択オラクルアルゴリズムV^{x,\pi}(D)であって以下を満たすものです:
  1. D(x)=1ならば, ある\piが存在して\Pr[V^{x,\pi}(D)=1]=1.
  2. \mathrm{dist}(x,D^{-1}(1))\geq c_1ならば\Pr[V^{x,\pi}(D)=0]\geq c_2.
  3. 任意のn\in\mathbb{N}, x\in\{0,1\}^n,Dに対してV^{x,\pi}(D)は高々q(n)回のオラクルアクセスを行い, 高々r(n)ビットのランダムビットを使う.
直感的にはPCPP検証者とは充足割当からの近さ(proximity)を判定する検証者です. 条件1を満たすオラクル\piPCPP証明と, xを証明と呼ぶことにします. 条件2においてD^{-1}(1)=\emptyset(つまりDが充足不可能)のときは常に\mathrm{dist}(x,D^{-1}(1))\geq c_1が成り立つことに注意してください.

(*3). 実際にはペア言語L\subseteq \{0,1\}^*\times\{0,1\}^*を考え, (x,y)\in Lかどうかの検証者として定義されます. この例ではペア言語Lとして(D,x)\in L\iff D(x)=1と定義します.

命題. PCPP検証者が存在するならばSATに(同じr,q,sの)PCP検証者が存在する.
証明. SATに対するPCP検証者を構成すればよい. 入力の論理式C\colon\{0,1\}\to\{0,1\}に対し, その充足割当xを証明としてPCPP検証者V^{x,\pi}(C)をシミュレートすれば良い. 実際, Cが充足可能ならばその充足割当xを証明すればよく, 充足可能でないならばD^{-1}(1)=\emptysetとなり, PCPPの条件2より健全性も成り立つ.

5. ロバストなPCP検証者とPCPP検証者の合成

NP完全な言語Lに対してロバストなPCP検証者V_0であってクエリ複雑度がQ(n)\gg 1, ランダムネス複雑度Rなるものが存在するとします. さらに, クエリ複雑度q, ランダムネス複雑度rのPCPP検証者の存在性を仮定します (ここでそれぞれの条件2に出てくる定数についてc_1=s_1を仮定します).
  • 2節で説明したようにV_0をCSPのインスタンス(D_S)_{S\in\mathcal{S}}と同一視します. ただし各|S|=Qです. V_0を走らせたときに得られるランダムなS\sim\mathcal{S}に対して関数D_Sを考えます.
  • ペア言語(D_S,\pi|_S)に対してPCPP検証者を走らせます. ここで\pi|_Sは証明として扱います.
こうすると, 全体のクエリ複雑度はq, ランダムネス複雑度はR+rのPCP検証者を得ることができます. ちゃんとPCP検証者になっているか確認してみましょう.

  • x\in Lならば全てのS\in\mathcal{S}に対してD_S(\pi|_S)=1となるため, PCPP検証者も必ず1を出力します.
  • x\not\in Lならば, ロバスト性より確率s_2\Pr_{S\sim\mathcal{S}}[D_S(\pi|_S)=0]\geq s_1となります. この事象で条件づけたとき, c_1=s_1の仮定より, 確率c_2でPCPP検証者は0を出力します. すなわち確率s_2c_2で上記の検証者は0を出力します.

以上の議論より, R+r=O(\log n), q=O(1)を満たすように作ればPCP定理が証明できたことになります.

6. まとめ

PCP検証者を構成するために, まず「充足割当からの近さ」を増加させるロバストPCP検証者と「充足割当からの近さ」を検証するPCPP検証者という概念を用いました. 距離に着目するアイデアは誤り訂正符号に基づいたものです.

参考文献

[1] E. Ben‐Sasson, O. Goldreich, P. Harsha, M. Sudan, and S. Vadhan. “Robust PCPs of Proximity, Shorter PCPs, and Applications to Coding.” SIAM Journal on Computing 36 (4): 889–974. https://doi.org/10.1137/S0097539705446810. (2006).

[2] I. Dinur, and O. Reingold. “Assignment Testers: Towards a Combinatorial Proof of the PCP Theorem.” SIAM Journal on Computing 36 (4): 975–1024. https://doi.org/10.1137/S0097539705446962. (2006).

[3] S. Arora, C. Lund, R. Motwani, M. Sudan, and M. Szegedy. “Proof Verification and the Hardness of Approximation Problems.” Journal of the ACM 45 (3): 501–55. https://doi.org/10.1145/278298.278306. (1998).

[4] I. Dinur, “The PCP Theorem by Gap Amplification.” Journal of the ACM 54 (3): 12 – es. https://doi.org/10.1145/1236457.1236459. (2007).

2023年2月4日土曜日

モーメント母関数を使わないChernoff boundの証明

Chernoff boundは, 独立な確率変数X_1,\dots,X_nの和X_1+\dots+X_nが期待値から外れる確率がnに関して指数的に小さくなることを主張する不等式です. Chernoff boundの証明はモーメント母関数\mathbf{E}[\exp(\lambda X)]の評価し, それとマルコフの不等式を組み合わせることで与えられます (例えばこのページ参照)

本記事ではImpagliazzoとKabanets(2010)によって与えられた面白い証明を紹介します.

定理.
X_1,\dots,X_n\{0,1\}値をとる独立な確率変数で\mathbf{E}[X_1]=pとする. 任意のc>0に対して
\begin{align*} \Pr[X_1+\dots+X_n\geq cn] \leq \mathrm{e}^{-nD(c||p)}.\end{align*}
ここで, D(c||p)=c\log\frac{c}{p} + (1-c)\log\frac{1-c}{1-p}\geq 2(c-p)^2.

(証明)
パラメータq\in[0,1]に対し, 各i\in[n]を独立に確率qで含むランダムな部分集合Sを考え, 確率変数
\begin{align*}Z = \prod_{i\in S}X_i \end{align*}
とします (SXのランダムネスを考える). 定義より
\begin{align*}\mathbf{E}[Z]&=\mathbf{E}_S\left[\mathbf{E}_X\left[\prod_{i\in S}X_i\right]\right] \\ &= \mathbf{E}_S\left[p^{|S|}\right] \\ &= (qp+1-q)^n.\end{align*}
\mathcal{E}X_1+\dots+X_n\geq cnという事象とします. \mathcal{E}で条件づけたとき,
\begin{align*}\mathbf{E}[Z|\mathcal{E}] &= \mathbf{E}_X\left[\mathbf{E}_S\left[\prod_{i\in S}X_i\middle|\mathcal{E}\right]\middle|\right] \\ &=\mathbf{E}_X\left[\Pr_S[\overline{S}\text{ contains all }i\text{ satisfying }X_i=0|\mathcal{E}]\middle|\mathcal{E}\right] \\ &\geq (1-q)^{(1-c)n}.\end{align*}
最後の不等式は, \mathcal{E}で条件づけたときにX_i=0となるiは高々(1-c)n個あり, それら全てが\overline{S}に含まれる確率で下から抑えることで得ています.

条件付き期待値の性質から\mathbf{E}[Z]\geq\mathbf{E}[Z|\mathcal{E}]\Pr[\mathcal{E}]より
\begin{align*}\Pr[X_1+\dots+X_n\geq cn]\leq \frac{(pq+1-q)^n}{(1-q)^{(1-c)n}}\end{align*}
を得ます. 右辺はq=\frac{c-p}{c(1-p)}のとき最小となり, \mathrm{e}^{-D(c||p)}となる. (証明終)

参考文献

R. Impagliazzo and V. Kabanets, Constructive Proofs of Concentration Bounds, RANDOM2010.


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

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