Skip to content

模型Model

随机化算法

Randomized algorithm

把随机比特作为额外输入并分析输出正确率或运行时间分布的算法。

形式陈述 ​

随机化算法把随机比特或其他指定随机量作为额外输入。写作 A(x;R) 时,x 是待处理实例,R 是算法使用的随机源;固定 x 后,输出与运行时间 T(x;R) 仍可能变化。概率由指定的随机源分布和概率公理解释;正确性与时间保证必须说明概率针对哪一部分取,例如

∀x,PrR[A(x;R) 满足规格]≥1−ε.

它要求每个固定输入都具有该成功率,并不假定输入本身均匀随机。

两类常用保证控制的对象不同。Las Vegas 算法在返回答案时总是正确,并以概率一终止;通常进一步要求对每个输入的期望运行时间有限或满足给定上界。Monte Carlo 算法在指定时间界内完成,但允许小概率返回错误答案。Las Vegas 的随机性主要体现在工作量上,Monte Carlo 的随机性还体现在答案是否正确上。

对判定问题,错误只发生在“是”或“否”一侧,称为单侧错误;两侧都可能出错则为双侧错误。若算法允许返回显式的“本次未完成”,应单独计入失败事件,而不是把这个标记说成问题的正确答案。

直觉

随机化改变的是算法面对固定输入时的选择方式。一个排列可以让“总选第一个元素作枢轴”反复遇到极端划分,但未必能让“每次从当前元素中均匀选枢轴”也以高概率持续失衡。算法不需要输入天然友好,而是自己控制随机分布,再证明不利选择累计发生的可能性。

这与平均情形分析不同。平均情形分析对输入分布取平均;随机算法分析可以把输入完全固定,只平均内部随机选择。二者也能同时使用,但需要写成两层随机量,不能在证明中悄悄互换。

分析时可以先把所有随机选择收集成一条“随机带” R。固定它以后,算法就是确定的执行过程,可以逐步验证循环、递归和输出;随后再计算哪些随机带导致昂贵运行或错误答案。这样,功能不变量和概率估计各自承担明确工作,不会因为流程中出现随机选择就免除正确性证明。

输入、随机源与输出保证
例子与边界

随机快排:答案不随机,代价随机 ​

对互异元素,每轮随机选择枢轴、正确划分并递归的快速排序,无论选到什么枢轴,最终排序结果都正确。若总选到当前最小或最大值,工作量仍可达到 Θ(n2);但这种坏轨迹不会推翻期望 O(nlog⁡n) 的结论。

把元素按最终秩记为 1,…,n。秩为 i<j 的两项会直接比较,当且仅当区间 i,…,j 中最先被选作枢轴的是这两个端点之一,概率为 2/(j−i+1)。把所有元素对的比较指标相加,得到

EC=∑i<j2j−i+1=O(nlog⁡n).

这里使用期望的线性性,不需要假设不同元素对的比较事件相互独立。大量重复值时应使用正确处理相等块的划分方式,不能直接照搬互异秩的这段计数。

Freivalds 检验:少量随机投影检查矩阵乘法 ​

设 A,B,C 是某个域上的 n×n 矩阵,整数 n≥1。要检查 AB=C,独立均匀选取 r∈{0,1}n,比较

A(Br)=?Cr.

一次检验只需矩阵—向量乘法,共 O(n2) 次域运算。若等式真实成立,检验总通过;若 D=AB−C≠0,选一行中非零的系数 Dij。固定 r 的其他坐标后,方程

Dijrj+∑k≠jDikrk=0

在 rj=0,1 两个候选中至多成立一次。因此 Pr[Dr=0]≤1/2,错误矩阵误通过的概率至多一半。这是单侧错误:拒绝给出确实不相等的证据,通过则带有明确的误接受概率。

例如在实数域上取 A=B=I2,却声称 C=diag(1,2)。四个等可能向量为 (0,0),(1,0),(0,1),(1,1);前两个误通过,后两个检测到第二坐标不符。差异确实存在,但某些投影完全没有观察到它,所以“一次通过”无法成为确定性等式证书。若把差异放到其他位置,证明仍需固定那个非零系数,其余随机坐标的值不影响至多一个候选能消去差异的事实。

这段证明使用精确域运算。O(n2) 计的是域运算次数;在有理数实现中还要计入分子分母的位长增长。若把等号改为浮点容差比较,还需另外分析舍入和阈值,原来的概率界不会自动覆盖新判定规则。

独立重复与重复同一次实验 ​

对上面的错误矩阵,使用 k 个彼此独立的新向量,并要求每次均通过,误接受概率至多为 2−k。反复使用同一个 r,或者把同一随机种子重置到同一状态,得到的仍是同一次检验,不能把错误概率继续相乘。

双侧错误通常用多数投票放大。若每轮独立、每轮正确率至少为 1/2+γ,其中 0<γ≤1/2,Hoeffding 界给出整数 k≥1 轮多数投票失败概率至多 e−2kγ2。独立性和正的正确率间隙都承担实际作用,仅说“重复很多次”还没有证明放大。

最坏输入与最坏随机选择 ​

表达式 maxxERT(x;R) 先固定一个输入,再平均随机性;ERmaxxT(x;R) 则允许针对已经出现的随机结果挑选输入,可能更大。例如 x,R∈{0,1},R 均匀,当 x=R 时成本为 M>1,否则为 1。两个表达式分别为 (M+1)/2 与 M。量词先后描述不同环境,不能靠形式交换消除差别。

推论与应用

有限期望时间可以转成带失败概率的时间界。取 0<δ<1。若 Las Vegas 算法满足 ET(x;R)≤t(x)<∞ 且 t(x)>0,运行至预算 ⌈t(x)/δ⌉ 仍未结束就停止,则 Markov 不等式给出停止失败概率至多 δ。已返回的答案仍正确;对判定问题,超时后返回一个固定布尔答案,就得到时间有界、错误率至多 δ 的 Monte Carlo 版本。t(x)=0 时非负运行时间几乎必然为零,单独直接处理。执行截断还须有可计算的预算上界,并计入计算该预算的开销。

随机种子有利于复现实验,但复现与概率保证处在不同层次。固定种子后,执行本身已经确定;理论保证针对规定的抽样分布。使用伪随机生成器时,应区分“按数学模型独立抽样”的定理与“具体实现如何近似或实现所需随机性质”的说明。

Moser–Tardos 重采样算法给出另一种 Las Vegas 构造:反复修复当前坏事件,返回时所有约束都满足。它把随机带按变量排成重采样表,用见证树控制期望修复次数;要得到期望时间界,还须计入抽样、收集受影响约束和重新检查的成本。

通用哈希通过函数族的碰撞概率控制搜索结构,随机选择通过枢轴质量控制剩余规模,随机检验通过投影避免计算全部结果。三者使用随机性的机制不同;应分别明确抽样对象、坏事件和成本,而不是把“加入随机数”当作效率证明。

随机线性网络编码随机选择局部有限域系数,终点通过验秩判断是否收到足够独立信息。其失败概率可由非零行列式多项式的零点界控制;失败可以显式检测并重试,而不是在秩不足时输出未经验证的数据。域大小、网络结构与随机系数分布共同决定概率保证。

参考资料
  • Jeff Erickson,Algorithms 随机化讲义:Nuts and Bolts:平均输入与内部随机性的区别、随机选择和快速排序。
  • Rajeev Motwani 与 Prabhakar Raghavan,Randomized Algorithms,1995,Chapter 1:Las Vegas、Monte Carlo 与随机验证;进一步阅读。
  • Rūsiņš Freivalds,“Fast Probabilistic Algorithms”,Mathematical Foundations of Computer Science,1979,pp. 57–69:矩阵乘法随机检验的原始工作。
关系图谱92 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

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