Jerrum–Sinclair 全有或全无定理

1 Jerrum–Sinclair 全有或全无定理

在本文中,我们证明 Jerrum–Sinclair 全有或全无定理:

一个具有自归约性的计数问题,要么可以任意 \(1\pm\varepsilon\) 近似,要么不可以任何 \(n^{\pm C}\) 近似。

我们以独立集计数问题作为例子:

给定一张 \(n\) 个顶点的简单无向图 \(G\),我们想要计算它的独立集个数 \(I(G)\)

定理给出的结论是:

对于任意非负实数 \(C\geq0\),如果存在一个随机化算法 \(A\),对于任何输入 \(G\) 都可以在 \(\textsf{poly}(n)\) 时间内有至少 \(\frac34\) 概率输出一个估计 \(I_{\text{(est)}}\) 使得 \(n^{-C}\cdot I\leq I_{\text{(est)}}\leq n^C\cdot I\);那么可以用 \(A\) 作为子过程,构造另外一个随机化算法 \(B\),对于任何输入 \(G\) 以及参数 \(0<\varepsilon,\delta<1\),都可以在 \(\textsf{poly}\left(n,\varepsilon^{-1},\log\delta^{-1}\right)\) 时间内有至少 \(1-\delta\) 概率输出一个估计 \(I_{\text{(est)}}\) 使得 \((1-\varepsilon)\cdot I\leq I_{\text{(est)}}\leq(1+\varepsilon)\cdot I\)

更一般地,这个定理可以推广到一切具有自归约性的计数问题。


我们首先希望把 \(A\) 变成一个确定性算法。这样做有两个好处:

  1. \(A\) 的答案永远不会出错(误差过大);
  2. 对于相同的输入,\(A\) 始终返回相同的答案。

为了纠正第一个问题,我们需要把这个 \(\frac34\) 的正确率放大。方法是用独立的随机比特重复运行 \(A\)​​ 若干次,最后直接返回结果的中位数作为答案。

假设我们运行 \(2M-1\) 次,那么我们只需要其中有 \(\geq M\) 个落在 \(n^{\pm C}\cdot I\)​ 里的「正确结果」,那么中位数的位置就一定会被某个正确结果占据。

假设在后续过程中我们一共需要查询 \(n^D\) 个答案,那么我们需要保证至少 \(1-\frac{\delta}{2}\) 概率全部 \(n^D\) 个答案都正确(还需要分出 \(\frac{\delta}{2}\) 的错误率留给后续过程)。也就是说,单个答案的错误率不能超过 \(\frac{\delta}{2n^D}\)

根据 Hoeffding 不等式,这只需要 \(M=\left\lceil2.8\left(1+\log\delta^{-1}+D\log n\right)\right\rceil\) 即可。

为了纠正第二个问题,我们只需要用一个 \(\textsf{map}\) 存下所有已经出现过的询问,再次出现时强制返回相同的答案即可。对于没有出现过的新询问,我们再从随机池子里拿出新的随机比特去运行 \(A\),取中位数,最后把答案存进 \(\textsf{map}\) 里面。

在后文中,我们把上面这个纠正后的算法,替代原来的算法叫做 \(A\)。在牺牲/消耗掉 \(\frac{\delta}{2}\) 的错误率以后,我们可以直接把 \(A\) 看作一个确定性算法。与此同时,时间复杂度只乘以了 \(O\left(\log\delta^{-1}+D\log n\right)\),因此不是问题。


现在我们直接假设 \(A\) 是一个确定性算法。

想象一棵 \(n+1\) 层的满二叉树 \(T\),用来表示 \(G\) 的所有独立集。其中第 \(i(i=1,\cdots,n)\) 层的每个结点都有两个儿子,分别叫做 \(0\) 儿子和 \(1\) 儿子,表示钦定 \(i\)​ 这个点是否选进独立集。

\(T\) 中,根结点 \(\tau\) 到每个结点的竖直路径表示对一个前缀所有点的钦定。如果是到叶子,则钦定了一个完整方案。

我们定义点权:每个叶子的点权是 \(0/1\),表示这个完整方案是否是一个独立集。一个点的点权 \(w(u)\)​ 等于它子树内所有叶子点权的和,也就等于完全符合这个前缀的独立集个数。

对于 \(T\) 中的任意一个结点 \(u\),我们可以调用 \(A\) 来得到一个估计 \(\hat{w}(u)\) 满足 \(n^{-C}\cdot w(u)\leq\hat{w}(u)\leq n^C\cdot w(u)\)。注意到如果 \(w(u)=0\),那么 \(A\) 必须返回 \(\hat{w}(u)=0\)。除此之外,对于叶子结点 \(u\),我们总是可以让 \(\hat{w}(u)\in\{0,1\}\)

(这一步用到了自归约性:钦定了一些点以后,满足限制的独立集个数总是等于另外一张点数严格更小的无向图本身的独立集个数。)

现在想象另外一棵满二叉树 \(T'\)\(T'\) 的形状与 \(T\) 相同,只是每个点的点权从 \(w(u)\) 换成了 \(\hat{w}(u)\)

我们在 \(T'\) 上定义一个马尔可夫随机过程 \(\{X_n\}_{n\in\mathbb N}\):固定 \(X_0\) 等于 \(T'\) 的根结点 \(\tau'\),每个 \(X_i(i\geq1)\) 等于 \(X_{i-1}\) 随机游走一步得到的结点。具体来说,对于每一步,如果我们当前站在 \(u\) 结点,我们首先按照 \(\frac13,\frac13,\frac13\) 等概率选择 \(u\) 的一个邻居 \(v\),然后以 \(\min\left\{1,\frac{\hat{w}(v)}{\hat{w}(u)}\right\}\) 的概率走到 \(v\),以 \(1-\min\left\{1,\frac{\hat{w}(v)}{\hat{w}(u)}\right\}\) 的概率停在 \(u\)(根结点 \(\tau'\) 必须加一个自环把度数补到 \(3\),叶子结点必须加两个自环把度数补到 \(3\))。

可以看到,在实际进行这个随机游走的时候,我们只会访问多项式个数的结点,每访问到一个节点,我们再查询它未查询的邻居 \(\hat{w}(u)\) 的值。

那么根据 Metropolis–Hastings 算法的性质,这个随机过程存在唯一的平稳分布 \(\mu\) 满足 \(\mu(u)=\frac{\hat{w}(u)}{\sum_{i\in T'}\hat{w}(i)}\),并且关于 \(\mu\)​ 具有时间反转对称性。为了对它的拌和时间给出一个上界,我们考虑对它的传导率给出一个多项式倒数级别的下界。

按照定义,\(T'\) 的传导率等于(\(\textsf{P}\) 表示转移概率矩阵)

\[\Phi(\textsf{P})=\min_{S\subseteq\Omega:\mu(S)\leq\frac{1}{2}}\Phi(S) \]

其中

\[\Phi(S)=\frac{\sum_{u\in S,v\in\Omega\setminus S}\mu(u)\textsf{P}(u\to v)}{\sum_{u\in S}\mu(u)} \]

直观解释:\(S\) 中的点走一步走出 \(S\) 概率的按 \(\mu\) 加权平均数。

我们注意到 \(\Phi(\textsf{P})\geq\min\limits_{S\subseteq\Omega\setminus\{\tau'\}}\Phi(S)\),而对于任意 \(S\subseteq\Omega\setminus\{\tau'\}\),我们可以把 \(S\) 拆成连通块 \(S=C_1\cup C_2\cup\cdots\cup C_t\)。那么根据糖水原理我们有 \(\min\Phi(C_i)\leq\Phi(S)\leq\max\Phi(C_i)\)。对于单个 \(C_i\),假设 \(a\)\(C_i\) 中深度最小的结点,那么

\[\Phi(C_i)\geq\frac{\mu(a)\textsf{P}(a\to\text{fa}(a))}{\sum_{b\in\text{subtree}(a)}\mu(b)}=\frac{\min\left\{\hat{w}(a),\hat{w}(\text{fa}(a))\right\}}{3\sum_{b\in\text{subtree}(a)}\hat{w}(b)}\geq\frac{1}{3n^{2C+1}} \]

因此 \(\Phi(\textsf{P})\geq\frac{1}{3n^{2C+1}}\)。根据 Cheeger 不等式 \(\frac{1}{2}\Phi(\textsf{P})^2\leq\gamma\leq2\Phi(\textsf{P})\),我们有 \(\gamma\geq\frac{1}{18n^{4C+2}}\)​。

最后我们用懒化矩阵 \(\textsf{P}'=\frac{\textsf{Id}+\textsf{P}}{2}\) 替换 \(\textsf{P}\)(修改上述算法,使得每一步有 \(\frac12\) 的概率直接停在原地,剩下 \(\frac16,\frac16,\frac16\) 的概率走向三个邻居)。

这样做了之后,由于 \(\gamma_*(\textsf{P}')=\gamma(\textsf{P}')=\frac{\gamma(\textsf{P})}{2}\geq\frac{1}{36n^{4C+2}}\),并且 \(\mu(\tau')=\frac{1}{n+1}\),我们得到拌和时间上界

\[\text{T}_\text{mix}(\eta)\leq36n^{4C+2}\left(\log n+\log\eta^{-1}\right) \]

在后文中「采样 \(\Rightarrow\) 计数」这一章节,我们介绍如何使用这个结果得到一个 \(\textsf{FPRAS}\) 可以估计 \(I\)


2 Cheeger 不等式

在本文中,我们证明 Cheeger 不等式 \(\frac{1}{2}\Phi(\textsf{P})^2\leq\gamma\leq2\Phi(\textsf{P})\)

考虑一个转移概率矩阵为 \(\textsf{P}\)、平稳分布为 \(\mu\)、关于 \(\mu\) 具有时间反转对称性的马尔可夫随机过程 \(\{X_n\}_{n\in\mathbb N}\)

这样一个随机过程一定满足详细平衡方程

\[\mu(x)\textsf{P}(x\to y)=\mu(y)\textsf{P}(y\to x)=w(x,y) \]

可以视作一个在边权为 \(w(x,y)\) 的简单无向图上进行的(按边权比例的)随机游走。


对于任意一个函数 \(f:\Omega\to\mathbb{R}\)​,定义它的狄利克雷能量

\[\mathfrak{D}_1(f)=\frac12\sum_{x,y\in\Omega}w(x,y)\big|f(x)-f(y)\big|,\qquad\mathfrak{D}_2(f)=\frac12\sum_{x,y\in\Omega}w(x,y)\big(f(x)-f(y)\big)^2 \]

我们首先证明结论

\[\gamma=\inf_{f\text{ not constant}}\frac{\mathfrak{D}_2(f)}{\text{Var}_\mu(f)} \]

定义 \(N=|\Omega|\)。考虑矩阵 \(\textsf{P}\) 的特征值 \(1=\lambda_1>\lambda_2\geq\cdots\geq\lambda_{N}>-1\) 以及它们对应的(以 \(\langle\cdot,\cdot\rangle_\mu\) 为内积)规范正交特征基 \(f_1,f_2,\cdots,f_{N}\)

分解 \(f=\sum_{i=1}^{N}\alpha_if_i\) 可得

\[\mathfrak{D}_2(f)=\big\langle f,(\textsf{Id}-\textsf{P})f\big\rangle_\mu=\sum_{i=2}^N(1-\lambda_i)\alpha_i^2,\qquad\text{Var}_\mu(f)=\big\langle f,f\big\rangle_\mu-\big\langle f,\mathbf{1}\big\rangle_\mu^2=\sum_{i=2}^{N}\alpha_i^2 \]

可见 \(\frac{\mathfrak{D}_2(f)}{\text{Var}_\mu(f)}\) 实际上就是 \(\{1-\lambda_i\}_{i=2,\cdots,N}\) 的按 \(\alpha_i^2\) 加权平均数。

因此其最小值显然在 \(f=\alpha_2f_2\)\(\alpha_3=\cdots=\alpha_N=0\))时取到,此时 \(\frac{\mathfrak{D}_2(f)}{\text{Var}_\mu(f)}=1-\lambda_2=\gamma\)​。


2.1 \(\gamma\) 的上界:\(\gamma\leq2\Phi(\textsf{P})\)

对于任意一个非空子集 \(S\) 满足 \(\mu(S)\leq\frac12\),我们直接取

\[f(x)=[x\in S]=\begin{cases} 1&\text{if }x\in S\\ 0&\text{if }x\not\in S \end{cases} \]

对于这个函数 \(f\) 我们有

\[\frac{\mathfrak{D}_2(f)}{\text{Var}_\mu(f)}=\frac{\sum_{x,y\in\Omega}w(x,y)(f(x)-f(y))^2}{\sum_{x,y\in\Omega}\mu(x)\mu(y)(f(x)-f(y))^2}=\frac{w(S,\Omega\setminus S)}{\mu(S)\mu(\Omega\setminus S)}=\frac{\Phi(S)}{\mu(\Omega\setminus S)}\leq2\Phi(S) \]

因此 \(\gamma\leq\frac{\mathfrak{D}_2(f)}{\text{Var}_\mu(f)}\leq2\Phi(S)\)。既然这对于所有 \(\mu(S)\leq\frac12\) 都成立,因此 \(\gamma\leq2\Phi(\textsf{P})\) 得证。


2.2 \(\gamma\) 的下界:\(\gamma\geq\frac{1}{2}\Phi(\textsf{P})^2\)

我们直接取 \(f=\max\{f_2,\mathbf{0}\}\)(逐点取最大值)。

(我们假设 \(\sum_{x\in\Omega,f_2(x)>0}\mu(x)\leq\frac{1}{2}\);如果 \(f_2\) 不满足这个条件,那么 \(-f_2\) 一定满足。这个假设会在后面的小节用到。)

我们首先证明对于任意 \(x\in\Omega\) 都有 \((\textsf{Id}-\textsf{P})f(x)\leq\gamma f(x)\)。这是因为

  1. 如果 \(f(x)=0\),那么 \((\textsf{Id}-\textsf{P})f(x)=-\textsf{P}f(x)\leq0\)
  2. 如果 \(f(x)=f_2(x)\),那么 \((\textsf{Id}-\textsf{P})f(x)=f_2(x)-\textsf{P}f(x)\leq(\textsf{Id}-\textsf{P})f_2(x)=(1-\lambda_2)f_2(x)=\gamma f(x)\)

因此 \(\big\langle(\textsf{Id}-\textsf{P})f,f\big\rangle_\mu\leq\gamma\big\langle f,f\big\rangle_\mu\),故而 \(\gamma\geq\frac{\langle(\textsf{Id}-\textsf{P})f,f\rangle_\mu}{\langle f,f\rangle_\mu}=\frac{\mathfrak{D}_2(f)}{\|f\|_\mu^2}\ (\boldsymbol{*})\)


接下来我们证明

\[\mathfrak{D}_1\big(f^2\big)\geq\Phi(\textsf{P})\|f\|_\mu^2\ (\boldsymbol{**}) \]

注意到

\[\big|f(x)-f(y)\big|=\int_{-\infty}^{+\infty}\big[\min\{f(x),f(y)\}\leq t\leq\max\{f(x),f(y)\}\big]dt \]

因此我们有(这其实就是横着积分等于竖着积分)

\[\mathfrak{D}_1\big(f^2\big)=\int_{-\infty}^{+\infty}w\big(S_t,\Omega\setminus S_t\big)dt \]

其中 \(S_t=\big\{x\in\Omega:f(x)^2\geq t\big\}\) 表示 \(t\) 时刻的竖截面。

注意到

  1. 对于任意 \(t\leq0\) 都有 \(S_t=\Omega\),因此贡献为 \(0\)
  2. 由于我们假设了 \(\sum_{x\in\Omega,f_2(x)>0}\mu(x)\leq\frac12\),因此对于任意 \(t>0\) 都有 \(\mu(S_t)\leq\frac12\)

那么使用 \(\Phi(\textsf{P})\) 的定义即可直接得到

\[\mathfrak{D}_1\big(f^2\big)\geq\Phi(\textsf{P})\int_{0}^{\max f^2}\mu(S_t)dt=\Phi(\textsf{P})\sum_{x\in\Omega}\mu(x)f(x)^2=\Phi(\textsf{P})\|f\|_\mu^2 \]


最后一步我们通过组合 \((\boldsymbol{*}),(\boldsymbol{**})\) 来得到 \(\gamma\geq\frac{1}{2}\Phi(\textsf{P})^2\)

展开计算

\[\mathfrak{D}_1\big(f^2\big)=\frac12\sum_{x,y\in\Omega}w(x,y)\big|f(x)^2-f(y)^2\big| \]

根据柯西不等式

\[\left(\sum_{x,y\in\Omega}w(x,y)\big|f(x)^2-f(y)^2\big|\right)^2\leq\left(\sum_{x,y\in\Omega}w(x,y)\big(f(x)-f(y)\big)^2\right)\left(\sum_{x,y\in\Omega}w(x,y)\big(f(x)+f(y)\big)^2\right) \]

也就是说

\[\mathfrak{D}_1\big(f^2\big)^2\leq\mathfrak{D}_2(f)\Big(2\|f\|_\mu^2-\mathfrak{D}_2(f)\Big) \]

根据 \((\boldsymbol{**})\),我们可以替换左侧

\[\Phi(\textsf{P})^2\|f\|_\mu^4\leq\mathfrak{D}_2(f)\Big(2\|f\|_\mu^2-\mathfrak{D}_2(f)\Big) \]

两边同时除以 \(\|f\|_\mu^4\),我们得到

\[\Phi(\textsf{P})^2\leq\left(\frac{\mathfrak{D}_2(f)}{\|f\|_\mu^2}\right)\left(2-\frac{\mathfrak{D}_2(f)}{\|f\|_\mu^2}\right) \]

根据 \((\boldsymbol{*})\),我们可以替换右侧(备注:这是因为函数 \(h(x)=x(2-x)\)\(x\in[0,1]\) 的范围内严格递增。如果 \(\gamma\geq1\) 的话,那么命题 \(\gamma\geq\frac{1}{2}\Phi(\textsf{P})^2\) 显然成立;反之只要 \(\gamma\leq1\),那么根据 \(h(x)\) 严格递增,可以替换。)

\[\Phi(\textsf{P})^2\leq\gamma(2-\gamma) \]

因此 \(\gamma\geq\frac{\Phi(\textsf{P})^2}{2-\gamma}\geq\frac{1}{2}\Phi(\textsf{P})^2\) 得证。


3 计数与采样的等价性

我们仍然以独立集计数问题作为例子:

  1. 一个 \(\textsf{FPTAS}\) 指的是一个确定性算法 \(A\),对于任何输入 \(G\) 以及参数 \(0<\varepsilon<1\),都可以在 \(\textsf{poly}\left(n,\varepsilon^{-1}\right)\) 时间内输出一个估计 \(I_{\text{(est)}}\) 使得 \((1-\varepsilon)\cdot I\leq I_{\text{(est)}}\leq(1+\varepsilon)\cdot I\)
  2. 一个 \(\textsf{FPRAS}\) 指的是一个随机化算法 \(A\),对于任何输入 \(G\) 以及参数 \(0<\varepsilon,\delta<1\),都可以在 \(\textsf{poly}\left(n,\varepsilon^{-1},\log\delta^{-1}\right)\) 时间内有至少 \(1-\delta\) 概率输出一个估计 \(I_{\text{(est)}}\) 使得 \((1-\varepsilon)\cdot I\leq I_{\text{(est)}}\leq(1+\varepsilon)\cdot I\)
  3. 一个 Las Vegas Sampler 指的是一个随机化算法 \(A\),对于任何输入 \(G\),都可以在期望 \(\textsf{poly}(n)\) 时间内输出一个独立集 \(S\),使得 \(\textsf{Law}(S)=\mu\)
  4. 一个 Monte Carlo Sampler 指的是一个随机化算法 \(A\),对于任何输入 \(G\) 以及参数 \(0<\eta<1\),都可以在 \(\textsf{poly}\left(n,\eta^{-1}\right)\) 时间内输出一个独立集 \(S\),使得 \(\|\textsf{Law}(S)-\mu\|_\textsf{TD}\leq\eta\)​。

显然所有 \(\textsf{FPTAS}\) 都自动是 \(\textsf{FPRAS}\);把一个 Las Vegas Sampler 运行 \(\eta^{-1}\) 倍期望时间,未停机则直接输出 \(\varnothing\),即可变成一个 Monte Carlo Sampler。


3.1 采样 \(\Rightarrow\) 计数

我们证明 Monte Carlo Sampler \(\Rightarrow\) \(\textsf{FPRAS}\)​。

假设 \(A\) 是一个 Monte Carlo Sampler。定义

\[p_i=\frac{I(G\setminus\{1,\cdots,i\})}{I(G\setminus\{1,\cdots,i-1\})} \]

那么 \(I(G)=\prod_{i=1}^np_i^{-1}\)。想要估计 \(I(G)\),只需要分别给出对 \(p_1,\cdots,p_n\) 的估计 \(\hat{p}_1,\cdots,\hat{p}_n\)。同时可以看到,估计 \(p_i\) 就相当于在 \(G\setminus\{1,\cdots,i-1\}\) 上估计 \(p_1\)(重标号)。

我们考虑怎么估计 \(p_1\)。首先注意到 \(p_1\geq\frac12\)

设置一个参数 \(\eta\),然后用独立的随机比特重复运行 \(A\),一共 \(M\) 次。我们直接取 \(\hat{p}_1\) 等于不包含 \(1\) 的独立集在 \(A\) 返回的 \(M\) 个独立集当中的占比。对于待定的参数 \(0<\varepsilon',\delta'<1\),我们希望这样得到的 \(\hat{p}_1\)\(\geq1-\delta'\) 的概率是一个对真正 \(p_1\)\(1\pm\varepsilon'\) 乘性近似。

这需要 \(M\) 取多少?相当于是一枚硬币,它有某个固定 \(p_\text{fix}\in[p_1-\eta,p_1+\eta]\)​ 的概率抛出正面。

现在抛 \(M\) 次,根据 Hoeffding 不等式

\[\Pr\big[\big|S_M-p_\text{fix}M\big|\geq t\big]\leq2\exp\left(-\frac{2t^2}{M}\right) \]

我们可以取 \(\eta=\frac{\varepsilon'}{4}\)。这样一来对于 \(t=\frac{\varepsilon'}{4}\cdot M\),事件 \(\big|S_M-p_\text{fix}M\big|\leq t\) 的发生一定是好的。因为此时 \(\Big|\frac{S_M}{M}-p_\text{fix}\Big|\leq\frac{\varepsilon'}{4}\),同时 \(\big|p_\text{fix}-p_1\big|\leq\frac{\varepsilon'}{4}\),因此 \(\Big|\frac{S_M}{M}-p_1\Big|\leq\frac{\varepsilon'}{2}\leq\varepsilon'p_1\),也就是说 \(\hat{p}_1\) 一定是一个对真正 \(p_1\)\(1\pm\varepsilon'\) 乘性近似。

我们现在令 \(2\exp\left(-\frac{2t^2}{M}\right)\leq\delta'\),代回 \(t=\frac{\varepsilon'}{4}\cdot M\) 可得 \(M\geq8{\varepsilon'}^{-2}\ln\left(2{\delta'}^{-1}\right)\)

因此我们取 \(M=\left\lceil5.6{\varepsilon'}^{-2}\left(1+\log\left({\delta'}^{-1}\right)\right)\right\rceil\geq8{\varepsilon'}^{-2}\ln\left(2{\delta'}^{-1}\right)\) 一定可行。

这样一来,我们得到的 \(\hat{p}_1,\cdots,\hat{p}_n\) 各自有 \(\geq1-\delta'\) 的概率是一个对真正 \(p_1,\cdots,p_n\)\(1\pm\varepsilon'\) 乘性近似。我们希望的是 \(I_{\text{(est)}}=\prod_{i=1}^n\hat{p}_i^{-1}\)\(\geq1-\delta\) 的概率是一个对 \(I=\prod_{i=1}^np_i^{-1}\)\(1\pm\varepsilon\) 乘性近似。因此我们需要

\[1-\varepsilon\leq\left(1+\varepsilon'\right)^{-n},\quad\left(1-\varepsilon'\right)^{-n}\leq1+\varepsilon,\quad\left(1-\delta'\right)^n\geq1-\delta \]

注意到取 \(\varepsilon'=\frac{\varepsilon}{2n},\ \delta'=\frac{\delta}{n}\) 一定可行(需要一些计算验证)。

代回原式,上述过程调用 \(A\) 的次数不超过

\[22.4n^3\varepsilon^{-2}\left(1+\log\delta^{-1}+\log n\right)\in\textsf{poly}\left(n,\varepsilon^{-1},\log\delta^{-1}\right) \]

因此上述过程本身就是一个 \(\textsf{FPRAS}\)


3.2 计数 \(\Rightarrow\) 采样

我们首先证明 \(\textsf{FPTAS}\) \(\Rightarrow\)​ Las Vegas Sampler。

假设 \(A\) 是一个 \(\textsf{FPTAS}\)。想要采样一个独立集 \(S\),只需要依次决定 \(1,\cdots,n\) 是否放进 \(S\)。在决定 \(i\) 的时候,定义

\[p_i=\frac{符合当前\ (i-1)\ 前缀并且包含\ i\ 的独立集个数}{符合当前\ (i-1)\ 前缀的独立集个数} \]

设置一个参数 \(\varepsilon\),直接调用 \(A\) 分别得到分子、分母的 \(1\pm\varepsilon\) 乘性近似,除一下得到 \(\hat{p}_i\)。然后我们直接以 \(\hat{p}_i\) 的概率选 \(i\),以 \(1-\hat{p}_i\) 的概率不选 \(i\) 即可。

我们使用拒绝采样减小误差。假设这个算法返回 \(S\) 的概率是 \(\nu(S)\),那么看到 \(S\) 以后我们以 \(\alpha(S)\propto\frac{\mu(S)}{\nu(S)}\) 的概率接受 \(S\) 这个采样,以 \(1-\alpha(S)\) 的概率拒绝(重新运行)。

假设 \(q_i\in\big\{p_i,1-p_i\big\}\) 表示 \(i\) 这个决策实际的占比,\(\hat{q}_i\in\big\{\hat{p}_i,1-\hat{p}_i\big\}\) 表示 \(i\) 这个决策估算的占比。那么

\[\frac{\mu(S)}{\nu(S)}=\prod_{i=1}^n\frac{q_i}{\hat{q}_i}\in\left[\left(\frac{1+\varepsilon}{1-\varepsilon}\right)^{-n},\left(\frac{1+\varepsilon}{1-\varepsilon}\right)^{n}\right] \]

因此设置 \(\alpha(S)=\left(\frac{1+\varepsilon}{1-\varepsilon}\right)^{-n}\left(\frac{\mu(S)}{\nu(S)}\right)\) 可以保证 \(\left(\frac{1+\varepsilon}{1-\varepsilon}\right)^{-2n}\leq\alpha(S)\leq1\)

但是我们无法计算 \(\mu(S)=\frac{1}{I(G)}\),所以我们只能使用 \(I_{\text{(est)}}\)。那么设置 \(\alpha(S)=\left(\frac{1+\varepsilon}{1-\varepsilon}\right)^{-(n+1)}\left(\frac{1}{I_{\text{(est)}}\nu(S)}\right)\) 可以保证 \(\left(\frac{1+\varepsilon}{1-\varepsilon}\right)^{-2(n+1)}\leq\alpha(S)\leq1\)

由于 \(\nu(S)\alpha(S)\propto\mu(S)\),可以保证 \(\textsf{Law}(S)=\mu\) 确实成立。上述过程的期望采样个数不超过

\[\frac{1}{\min\alpha(S)}\leq\left(\frac{1+\varepsilon}{1-\varepsilon}\right)^{2(n+1)} \]

我们直接设置 \(\varepsilon=\frac{1}{6(n+1)}\),此时 \(\left(\frac{1+\varepsilon}{1-\varepsilon}\right)^{2(n+1)}\leq\large{2}\),那么期望调用 \(A\) 的次数不超过 \(4(n+1)\),并且调用 \(A\) 的时间复杂度是某个多项式 \(T_A\left(n,\frac{1}{6(n+1)}\right)\in\textsf{poly}(n)\)

因此上述过程本身就是一个 Las Vegas Sampler。


我们接着证明 \(\textsf{FPRAS}\) \(\Rightarrow\)​ Monte Carlo Sampler。

我们分出 \(\frac{\eta}{2}\) 错误率给 \(\textsf{FPRAS}\) 的错误答案,剩下 \(\frac{\eta}{2}\) 错误率给 Monte Carlo 的截断误差。

如何保证截断误差 \(\leq\frac{\eta}{2}\)?由于 Las Vegas 的分布就是 \(\mu\),也就是只有 \(\frac{\eta}{2}\) 的概率不结束。

那么需要运行 \(2\eta^{-1}\) 倍的期望时间,也就是 \(4\eta^{-1}\) 个采样。(如果还没结束,直接输出 \(\varnothing\),立刻停机。)

那么调用 \(A\) 的次数严格不超过 \(8\eta^{-1}(n+1)\),因此单次可以承受 \(\frac{\eta^2}{16(n+1)}\) 的错误率。

那么我们设置 \(\delta=\frac{\eta^2}{16(n+1)}\),此时调用 \(A\) 的时间复杂度是某个多项式 \(T_A\left(n,\frac{1}{6(n+1)},4+\log\left(n+1\right)+2\log\eta^{-1}\right)\in\textsf{poly}\left(n,\log\eta^{-1}\right)\)

(注意到:运行时间这里是 \(\log\eta^{-1}\),调用次数那里是 \(\eta^{-1}\),这说明截断误差问题大于错误答案问题。)

因此上述过程本身就是一个 Monte Carlo Sampler。


3# 完成 Jerrum–Sinclair 证明

对于任意非负实数 \(C\geq0\),如果存在一个随机化算法 \(A\),对于任何输入 \(G\) 都可以在 \(T_A(n)\in\textsf{poly}(n)\) 时间内有至少 \(\frac34\) 概率输出一个估计 \(I_{\text{(est)}}\) 使得 \(n^{-C}\cdot I\leq I_{\text{(est)}}\leq n^C\cdot I\)

那么可以用 \(A\) 作为子过程,构造另外一个随机化算法 \(B\),对于任何输入 \(G\) 以及参数 \(0<\varepsilon,\delta<1\)​,都可以在

\[T_B(n)=2500(4C+6)n^{4C+6}\varepsilon^{-2}\left(4+\log n+\log\varepsilon^{-1}+\log\delta^{-1}\right)^4T_A(n)\in\textsf{poly}\left(n,\varepsilon^{-1},\log\delta^{-1}\right) \]

时间内有至少 \(1-\delta\) 概率输出一个估计 \(I_{\text{(est)}}\) 使得 \((1-\varepsilon)\cdot I\leq I_{\text{(est)}}\leq(1+\varepsilon)\cdot I\)


posted @ 2025-10-25 23:01  叶语星辰  阅读(85)  评论(0)    收藏  举报