Featured image of post Lecture 2

Lecture 2

Testing Polynomial Identities

给定某个域下2个 $n$ 元多项式 $P,Q$ ,判定是否 $P \equiv Q$ 。

作差后问题等价于判定 $P \equiv 0$ 是否成立,同时给出条件 $deg(P) \leq d$ 。

确定性算法的复杂度较高,考虑随机算法。

一个随机算法是随机选一项 $x_1^{d_1}x_2^{d_2} \ldots x_n^{d_n}$ ,检查 $P$ 中以上项的系数是否是 $0$ ,这是一个one-sided error,计算一个值是线性时间的,很快。

考虑正确率,最坏情况下,需要遍历所有多项式的项数,不被我们接受。

考虑另一个随机算法,从有限集 $S$ 中均匀取值 $r_1,r_2,\ldots,r_n$ ,并代入 $P$ 计算。

下面计算一下正确率,首先给出结论,如果 $P \neq 0$ ,则 $Pr[P(r_1,\ldots,r_n)=0] \leq \frac{d}{|S|}$ ,这里 $d=deg P$ 。

考虑数学归纳法,当 $n=1$ 时显然至多有 $d$ 个根,结论成立。

设 $k$ 是 $P$ 关于 $x_1$ 的最大度数,则 $P(x_1,\ldots,x_n)=M(x_2,\ldots,x_n)x_1^k+N(x_1,\ldots,x_n)$

其中 $deg M \leq d-k$

若 $M(x_2,\ldots,x_n)=0$ ,则由归纳假设, $Pr[M(x_2,\ldots,x_n)] \leq \frac{d-k}{|S|}$ 。

若 $M(x_2,\ldots,x_n) \neq 0,$ 则固定 $x_2,\ldots,x_n$ 时,能使 $P=0$ 的 $x_1$ 不超过 $k$ 个,则 $Pr[P(x_1,\ldots,x_n)=0] \leq \frac{k}{|S|}$ 。

对以上两者使用 Union Bound 即得证。

思路:代入随机输入。

Bipartie Matching

给定一个二分图 $G= \langle V_1,V_2,E \rangle,|V_1|=|V_2|=n$ ,问是否存在完美匹配?

完美匹配概念回顾:图中每一个顶点都被选出的边独立集覆盖到了。

考虑二分图的邻接矩阵,现在对原本矩阵中的 $1$ 赋为一个变量,只需要检查它的行列式恒不为0即可,这个矩阵也被称为 $Tutte$ 矩阵。

为什么只需要检查它的行列式恒不为0?

设构造出的 $n \times n$ 矩阵为 $A$ ,行代表 $V_1$ 中的点,列代表 $V_2$ 中的点。若 $i \in V_1, j \in V_2$ 之间有边相连,则 $A_{ij} = x_{ij}$ ( $x_{ij}$ 是一个独立的变量),否则 $A_{ij} = 0$ 。这个矩阵在二分图的情况下也被称为 Edmonds 矩阵。

根据线性代数中行列式的定义(莱布尼茨公式):

$$ \det(A) = \sum_{\sigma \in S_n} \text{sgn}(\sigma) \prod_{i=1}^n A_{i, \sigma(i)} $$

其中 $\sigma$ 是一个对列的全排列,对应了从 $V_1$ 到 $V_2$ 的一种映射。

仔细观察乘积项 $\prod_{i=1}^n A_{i, \sigma(i)}$ :它不为0当且仅当每一项 $A_{i, \sigma(i)}$ 都不为0,这意味着图 $G$ 中存在边 $(i, \sigma(i))$ 。因为 $\sigma$ 是一个全排列,这就相当于在图中找到了 $n$ 条互不相交的边,即一个完美匹配

更关键的是,由于每个非零元素 $x_{ij}$ 都是独立的变量,所以没有任何两个不同的全排列 $\sigma_1$ 和 $\sigma_2$ 能够产生相同的单项式变量组合。因此,在求和过程中,这些单项式绝对不会互相抵消

综上所述:

  • 如果图 $G$ 不存在完美匹配,那么对于任何全排列,乘积项中都一定包含至少一个 $0$,导致 $\det(A) \equiv 0$ 。
  • 如果图 $G$ 存在完美匹配,那么其中至少存在一项为非零单项式,导致多项式 $\det(A) \not\equiv 0$ 。

然后运用上文中判断多项式是否为0的方法即可。

这个算法是易于并行的,论文中提到在 $O(n^{3.5})$ 个处理器上用双log时间计算。

现在,要找到具体的完美匹配,怎么使用并行算法进行处理?

对于每一条边 $(i,j)$ ,检查 $A_{-ij}$ 的行列式是否为0。

现在,将每个边权随机为 $2^w$ ,则 $det=2^{w_1+w_2+\ldots +w_n}+\ldots +2^{w_1’+w_2’+\ldots +w_n}$ ,每一个非零的乘积项刚好对应一个完美匹配。

为了防止随机后的匹配导致刚好碰到行列式为0,因此指数随机后,如果存在最小完美匹配,可以更好地防止抵消。

假设最小完美匹配唯一,则最后 $det(A)=2^w \cdot odd$ 。

根据这个性质,提出新的并行算法,对于每一条边,检查 $2^{w_{ij}} det(A_{-ij})$ 是否等于 $2^w \cdot odd’$ ,如果是,那么加入到答案集合。

现在令 $w_{ij}$ 的取值集合为 $S$ ,给出以下结论:高概率存在唯一最小完美匹配,这个概率的下界是 $\frac{(|S|-1)^{|E|}}{|S|^{|E|}}$ 。

关于这一下界的证明思路(隔离引理 Isolation Lemma 的核心):

在这个定理中,目标是证明“由于边权的随机性,最小权重完美匹配极大概率是唯一的”。

这里运用到了延迟决策的技巧。我们单独盯住图中的任意一条边 $e$ 。

假设上帝已经抛好了骰子,除了边 $e$ 以外的所有其他边的权重都已经固定

在剩余图固定的情况下,图中所有的完美匹配分为两类:

  • 一类是必须包含边 $e$ 的匹配,由于其他边已固定,这些匹配中其他边的权重和会有一个最小值,记为 $W_{\text{包含}}(e)$ 。
  • 另有一类是绝对不包含边 $e$ 的完美匹配,它在剩余图中也有一个最小权重,记为 $W_{\text{不包含}}(e)$ 。

注意以上两个值完全是由其他边决定的,跟 $e$ 自己最终抽到的权重 $w_e$ 毫无关系。

此时,上帝来揭晓 $w_e$ 的值:

  • 若 $w_e + W_{\text{包含}}(e) < W_{\text{不包含}}(e)$,则全局真正的最小匹配必定包含 $e$ 。
  • 若 $w_e + W_{\text{包含}}(e) > W_{\text{不包含}}(e)$,则全局真正的最小匹配必定不包含 $e$。

唯一会造成麻烦的是平局: 当且仅当 $w_e + W_{\text{包含}}(e) = W_{\text{不包含}}(e)$ ,即 $w_e = W_{\text{不包含}}(e) - W_{\text{包含}}(e)$ 时,包含与不包含 $e$ 的最小匹配权值相等,从而导致最小匹配不唯一(发生歧义)。

但是,由于 $w_e$ 是从大小为 $|S|$ 的集合中均匀随机抽取的,它刚好抽中这个“唯一能造成平局的特定差值”的概率至多为 $\frac{1}{|S|}$ 。

也就是说,不发生扯皮(边 $e$ 很“安全”)的概率至少是 $1 - \frac{1}{|S|} = \frac{|S|-1}{|S|}$ 。

更进一步,要求图中所有 $|E|$ 条边都不发生扯皮(即不管怎么选,都不存在权重相同的并列第一名组合)。由于每条边的分析界都是如此,将它们连乘后,即可得到全局唯一最小完美匹配的概率下界为:

$$ \left( \frac{|S|-1}{|S|} \right)^{|E|} $$

隔离引理的另一种严谨证明(单射构造法)

除上述延迟决策法外,我们可以通过构造映射计算方案数的方法提供一个非常干净的证明:

设有 $|S|$ 个元素,每个元素在 $\{1,2,\dots,l \}$ 之间均匀随机抽取权值。

所有可能的权值分配方案集合记为 $\mathcal{W}$ ,显然 $|\mathcal{W}| = l^{|S|}$ 。

我们再定义一个保守的赋值方案子集 $\mathcal{W}^+$ :要求所有元素的权值都严格大于 1(即在 $\{2,\dots,l \}$ 中取值)。

显然,保守方案的总数为 $|\mathcal{W}^+| = (l-1)^{|S|}$ 。

由于对于任意 $w \in \mathcal{W}^+$,都至少存在一些总权值最小的集合(可能不唯一)。我们人为在这些最小集合中任选一个作为代表,记为 $S_*$ 。

接着构造一种从“保守方案集合”到“拥有唯一最小集合方案”的映射函数,获得新的权重分配方案 $w’$ 。

$$ w'_{x} = \begin{cases} w_x - 1 & (x \in S_{\ast}) \\\\ w_x & (x \notin S_{\ast}) \\\\ \end{cases} $$

此时, $w’$ 这个新分配方案具有极强的特性:它必定有唯一的最小集合,且这个集合就是刚才的 $S_*$。因为我们把原本可能并列第一的若干选手中的仅仅一个(即 $S_*$ 里包含的所有元素)强制减轻了重量(减去1),就强行将它塑造成了唯一的冠军。

由于原本 $w \ge 2$ ,减 1 后权重依然合法。

更重要的是,对于做完手术的 $w’$,我们通过找出它的这个唯一最小集合 $S_*$,然后给该集合的元素统统加上 1,就能完美复原出原本的 $w$ 。

这说明该映射是一个单射

由此可知,“拥有唯一最小集合的好方案”必然存在,且数量大于等于源头样本也就是保守方案 $\mathcal{W}^+$ 的数量!

因此,满足条件的概率:

$$ Pr \ge \frac{|\mathcal{W}^+|}{|\mathcal{W}|} = \frac{(l-1)^{|S|}}{l^{|S|}} = \left( \frac{l-1}{l} \right)^{|S|} $$

立刻得证。此映射技巧非常精妙,它避免了处理复杂的概率事件交集,而是直接通过降维数方案的基数实现证明。

刚才提到对于每一条边,检查 $2^{w_{ij}} \det(A_{-ij})$ 与原多项式首项的关系。在计组算术与工程实现中,这其实等价于常见的 lowbit(取最低位二进制中 1 的位置)操作:

  1. 为了找最小完美权匹配,我们令原本不带权邻接矩阵中的元素转为带幂次的独立数字方案: $A_{ij} = 2^{w_{ij}}$ ,新矩阵记为 $B$。

  2. 此时,当 $\det(B) \neq 0$ (存在完美匹配时),全局最小完美匹配的权值之和 $\omega$ ,实际上就等于 $\det(B)$ 提取出来的末尾全 0 部分:

$$ \text{lowbit}(|\det(B)|) = 2^{\omega} \ (\text{即 } 2^{\text{minimal weights perfect match}})$$

  1. 求解出匹配边的并行算法步骤即可提炼为:
    • Step 1: 首先计算 $2^\omega = \text{lowbit}(|\det(B)|)$ 提取全局最小值对应的 2 次幂基准线。
    • Step 2: 并行地扫描或派发所有的边 $(i, j)$,计算对应余子式,如果满足: $$2^{w_{ij}} \times \text{lowbit}(|\det(B_{ij})|) == 2^\omega$$ 也就是说:当强制把这条边加进去以后,得到的新图全域最小匹配,连一点额外的重量(幂次)都没加上,跟全局最优解严丝合缝对标上了
    • Step 3: 满足该等式的边 $(i, j)$,就是那“唯一最小完美匹配”里的合法成员,将其输出!
本博客已稳定运行
发表了56篇文章 · 总计355.57k字
使用 Hugo 构建
主题 StackJimmy 设计