Skip to content

算法Algorithm

随机近似计数

Randomized approximate counting · FPRAS · 完全多项式随机近似方案 · DNF counting

在带项标签的样本空间中均匀抽样,为每个满足赋值保留唯一代表,从而在严格多项式时间内以高概率近似 DNF 的满足赋值数。

形式陈述 ​

设输入是显式给出的析取范式 F=T1∨⋯∨Tm,变量全集为 {x1,…,xn}。记 C=#F 为使 F 成立的完整 n 位赋值数。给定有理数精度 0<ε≤1 与失败概率 0<δ<1,完全多项式随机近似方案(FPRAS)输出非负有理数 C^,满足

Pr[(1−ε)C≤C^≤(1+ε)C]≥1−δ,

且运行时间关于输入长度、1/ε 与 log⁡(1/δ) 为多项式。概率针对算法内部的随机位;这是对每个固定输入成立的随机化算法保证。依赖 1/ε 与依赖 log⁡(1/ε) 是不同要求,不能因为精度以二进制输入,就把前者误读成后者。[1][2]

变量全集必须显式列出,或采用长度至少与 n 成正比的声明:即使某个变量未出现在任何项中,它仍参与完整赋值的计数。以下模型不允许只用二进制编码一个巨大 n,却把生成 n 位赋值的代价当成输入长度的多项式。

先规范化每个项:删除重复文字,并删除同时含某变量及其否定的矛盾项;其余项保持原有次序,重新编号为 1,…,m。重复的整项可以保留,空合取项也允许。若没有剩余项,立即返回精确值 0。否则每个项都可满足,所以 C>0;后面的相对误差分析只用于这一分支。记 ki 为项 Ti 固定的不同变量数,并定义

Ai={x∈{0,1}n:Ti(x)=1},ai=|Ai|=2n−ki,S=∑i=1mai.

算法使用带标签的覆盖空间

Ω={(i,x):1≤i≤m, x∈Ai}.

每轮先以概率 ai/S 选择项 i,再固定该项要求的变量,独立均匀填入其余 n−ki 位,得到 x。定义代表下标 c(x)=min{j:x∈Aj},仅当抽到最小下标的那份副本时记 B=1,否则记 B=0。使用彼此独立的新随机位重复 N 轮,返回

C^=SN∑t=1NBt.

这是 Karp–Luby–Madras 覆盖方法的 canonical-copy 估计器:每个满足赋值选定唯一代表。理想精确抽样下,取 N=⌈3mε−2ln⁡(2/δ)⌉ 即可;若以公平随机位实现抽样并要求每条执行都在规定时间内停止,则使用下文的截断版本。[1]

直觉

直接从全部 2n 个赋值中抽样,会把大量时间花在不满足公式的点上。例如只有一个包含全部变量的项时,命中的概率是 2−n。DNF 额外提供了一张“容易生成局部成功样本”的清单:每个自洽项的大小已知,在项内均匀抽样也很容易。算法利用这张清单,把抽样空间移到已知能满足某个项的赋值上。[3]

这样做产生的代价是重复覆盖。一个赋值若同时满足三个项,就在 Ω 中出现三次;直接报告 S 会把它计数三次。给每份副本保留项标签后,算法能够指定其中一份为代表,把另外两份记为零。它不必实际列出并集,只须检查抽到的赋值是否还满足更早的项。

四份副本,三个唯一代表

均匀性与无偏性。 对任意 (i,x)∈Ω,两阶段抽样给出

Pr[(i,x)]=aiS1ai=1S.

因此均匀的是带标签副本,而不是去重后的满足赋值。每个满足赋值恰有一个代表,故 Ω 的 S 个元素中恰有 C 个使 B=1。令 p=Pr[B=1],则

p=EB=CS,EC^=SN∑t=1NEBt=Sp=C.

这里使用期望的线性性。无偏只保证重复运行的平均值正确;一次运行要有相对误差保证,还必须控制样本均值偏离 p 的概率。

代表不会太稀少。 每个 Ai 都包含于满足赋值并集,所以 ai≤C,从而

C≤S≤mC,p=CS≥1m.

这个下界是效率的关键。C/2n 可以指数小,但 C/S 最多因 m 份重复覆盖而下降,不会比 1/m 更小。算法因此能在不知道答案 C 的情况下预先选择足够的样本数。

从集中界到相对误差。 令 Z=∑t=1NBt。独立抽样使 Bt 成为独立同分布的 Bernoulli 随机变量;对 0<ε≤1,乘法形式的 Chernoff 界给出

Pr[|Z−Np|>εNp]≤2exp(−Npε23)≤2exp(−Nε23m).

因为 C=Sp>0,事件 |C^−C|>εC 与 |Z−Np|>εNp 完全相同。取上述 N 便使右端不超过 δ,得到所需保证。这一步同时解释了平方精度代价 ε−2 与对数置信代价 log⁡(1/δ);仅有大数定律还不能给出这样的有限样本界。

例子与边界

取三个变量上的公式

F=(x1∧x2)∨(x2∧x3).

这里 A1={110,111},A2={011,111},所以 a1=a2=2、S=4,而去重后 C=3。两项各以 1/2 的概率选中,项内两种赋值也各以 1/2 的概率生成。四个带标签样本恰好等概率:

带标签样本 (i,x) 满足的项 代表下标 c(x) 指标 B
(1,110) 项 1 1 1
(1,111) 项 1、项 2 1 1
(2,011) 项 2 2 1
(2,111) 项 1、项 2 1 0

单轮缩放输出 Y=4B 以 3/4 的概率取 4,以 1/4 的概率取 0,因此 EY=3、Var(Y)=16(3/4)(1/4)=3。N 轮均值的方差为 3/N。原赋值空间中的满足率是 3/8,新空间中的代表比例是 3/4;两种概率回答不同问题,不能互相替换。

若 ε=0.2、δ=0.05,理想抽样的通用界给出 N=554。这保证的是多次独立运行中至少 95% 的输出落在 [2.4,3.6],并不要求输出为整数,也不声称 554 是此实例的最少样本数。

更极端地,若 F=x1∧⋯∧xn,直接赋值抽样的成功率仅为 2−n;覆盖空间却只有一个元素,S=C=1,B 恒为 1,一轮即得到精确答案。相反,将同一个自洽项重复 m 次,会得到 p=1/m,说明证明中的最坏下界确实能达到。删除重复整项可以改善这种输入,却不是正确性所需步骤。

空合取项覆盖全部 2n 个赋值,公式此时为真;算法仍然适用,也可以直接输出 2n。空析取或只含矛盾项的公式则必须走精确零分支:当 C=0 时,相对误差区间退化为 {0},不能除以 C,更不能用“绝对误差很小”替代精确零。

推论与应用

公平随机位下的抽样实现。 预先计算整数前缀和 si=∑j≤iaj。若能均匀生成整数 u∈{0,…,S−1},就选择唯一满足 si−1≤u<si 的项。这段整数区间恰有 ai 个元素,因此精确实现 ai/S 的权重,无需浮点概率。

当 S>1 时,令 q=⌈log2⁡S⌉,用 q 个新公平随机位生成 r∈{0,…,2q−1};若 r<S 就接受为 u,否则重试。一次接受率 S/2q>1/2,且每个可接受整数的概率相同,故接受结果严格均匀。S=1 时直接令 u=0。无限重试的平均次数小于 2,但它没有有限的最坏运行时间上界。

截断与失败预算。 要使每条随机执行都按时结束,改用

N=⌈3mε−2ln⁡4δ⌉,R=⌈log2⁡2Nδ⌉.

每轮整数抽样最多尝试 R 次;若仍未接受,就停止整个算法并返回 0,把这种情况计入失败。在刚才的数值例子中,这给出 N=658、R=15。其中 S=4 恰为二的幂,实际上每次尝试都会接受;R 是统一覆盖一般输入的预算。

证明时,为每轮预先安排相互独立的无限随机带,将截断算法与使用同一批随机带、无限重试的理想算法耦合。某轮前 R 次全被拒绝的概率至多 2−R,故至少一轮触发截断的概率至多 N2−R≤δ/2。没有截断时,两种算法的所有样本与输出逐项相同;理想算法的集中失败概率由新的 N 控制在 δ/2。因此截断算法的失败事件包含于“发生截断”与“理想估计失败”的并集,总概率至多 δ。证明不需要、也没有断言截断后的无条件样本仍然独立同分布。

比特成本。 设规范化后总文字数为 L,令 b=n+⌈log2⁡(m+1)⌉+1;S 和各前缀和都可用 O(b) 位存储。使用变量编号数组或排序可在输入长度的多项式时间内规范化,随后计算大小与前缀和花费 O(mb) 位操作。每轮至多 R 次生成和比较 q≤b 位整数,以前缀和二分定位项花费 O(blog⁡(m+1)) 位操作;填入赋值并检查更早各项,在通常索引访问模型下花费 O(n+L) 次基本操作。

为避免把机器字操作当成免费比特运算,可以保守地把整段单轮处理写成 poly(n+L+b) 位操作,再加 O(Rb) 的拒绝预算。循环总成本由 N 倍该式控制,累计 Z 与输出有理数 SZ/N 的整数运算只需关于 b+log⁡N 的多项式成本。N 关于 m,1/ε,log⁡(1/δ) 为多项式,R=O(log⁡N+log⁡(1/δ)),所以得到严格的最坏多项式时间保证。实现中可用可计算的向上有理界选择 N,R,无须假定对数能够以无限精度免费求值。

DNF 计数展示了精确计数与近似计数之间的边界:容易检查单个见证,不代表容易精确求出总数;精确问题的困难性也不自动排除高概率相对近似。这里的成功依赖显式给出的覆盖、每块已知的大小和可执行的均匀抽样;将任意布尔公式先展开为 DNF 可能产生指数多个项,因而不能据此推出一般 #SAT 的 FPRAS。

FPRAS 的“完全多项式”还与PTAS、FPTAS中的参数要求相呼应,但这里额外规定了失败概率。降低 δ 通过增加独立样本实现,属于概率放大的一种用途;数值估计应聚合为均值或采用另有证明的中位数方案,不能把不同数值直接当作判定答案进行多数投票。本页证明的是基本覆盖估计器,不将它的时间界混同于原论文进一步提出的自调整算法。

参考资料
  • Richard M. Karp、Michael Luby、Neal Madras,Monte-Carlo Approximation Algorithms for Enumeration Problems,Journal of Algorithms 10,1989,429–448,§§1–4:零一估计、唯一代表覆盖法及 DNF 计数。本文以标准乘法 Chernoff 界推导样本常数,并单独给出公平随机位抽样的截断证明。[1]
  • Michael Luby、Avi Wigderson,Pairwise Independence and Derandomization,§§6.1–6.2,印刷页 49–51:FPRAS、带标签样本空间与 S/C≤m 的覆盖界。[2]
  • MIT 6.856,Approximate Counting,Rare events 与 Coverage algorithm:稀有事件障碍和 DNF 覆盖抽样的教学解释。[3]
关系图谱11 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系