用线性代数击落连通性 DP

对于点集 \(V\) 的两个 (任意多块) 划分 \(P, Q\in \Pi(V)\), 我们定义它们的 join \(P\sqcap Q\) 是把这两个连通性加在一块得到的划分.

如果有两族划分 \(\mathcal P, \mathcal Q \subseteq \Pi(V)\), 每个划分有一个权值 \(w_P, v_Q\), 问: 怎么找出最大的 \(w_P+v_Q\), 使得 \(P\sqcap Q\) 是整个连通的?

这个问题非常的基本, 关乎各种连通性 DP 问题. 由于很多连通性 DP 需要合并信息, 我们实际上似乎要考虑这样一个推广: 对于每个划分 \(R\) 求出 \(R=P\sqcap Q\) 中最大的 \(w_P+v_Q\).

但是如果要维护这样的 DP 信息, 那么集合划分最多已经有可能有 Bell 数 \(B_n=n^{\Theta(n)}\) 那么多了. 所以这个问题的复杂度是不是 \(O(B_n)\), \(\tilde O(B_n)\), \(B_n^{\alpha}\), 还是什么呢...

等等, 谁说一定要存下来所有数了?

Bodlaender, Cygan, Kratsch 和 Nederlof 做出了如下的一个深刻的观察: 我们总是可以把 DP 过程中的集合划分保留一个不超过 \(2^{n-1}\) (\(n=|V|\)) 大小的子集 \(\mathcal P' \subseteq \mathcal P\), 不影响最后全局连通性的答案.

我们如此定义一个 "保留了全部信息" 的子集 \(\mathcal P'\subseteq \mathcal P\): 对于每个 \(Q\in \Pi(V)\), 我们要求在 \(\mathcal P'\) 中找到的最大的 \(w_P : P\sqcap Q\) 连通, 和在 \(\mathcal P\) 中找到的最优解等价.

这样的子集被称为代表集合 (representative set).

我们首先考虑一个简单一点的问题---无权情况: 我们希望总是能找到一个不大的子集 \(\mathcal P'\subseteq \mathcal P\), 使得任何 \(Q\), 如果 \(P\sqcap Q\) 连通能在 \(\mathcal P\) 里找到解, 那么也能在 \(\mathcal P'\) 里找到解.

我们考虑这么一个矩阵 \(M[P, Q]\), 它的值就是如果 \(P\sqcap Q\) 连通, 则为 \(1\), 否则值为 \(0\).

观察. 对于每个 \(P\in\mathcal P\), 看 \(M[P, -]\) 这个行向量, 只需保留一组线性无关组.

为什么呢? 因为设线性无关组外的一个向量为 \(M[P', -]\), 设它能表为线性组合 \(\sum a_i M[P_i, -]\). 那么如果 \(Q\) 满足 \(M[P',Q] = 1\), 则必然存在 \(M[P_i, Q] \neq 0\).

这说明集合 \(\mathcal P'\) 总是不需要大于矩阵 \(M\) 的秩. 但是 \(M\) 的秩真的会小吗?

定理. \(M\)\(\mathbb F_2\) 上的秩不超过 \(2^{n-1}\).

证明. 我们考虑如下求和: 计数有多少把 \(V\) 划分为两块 (\(R\)) 的方案, 使得 \(P\sqcap Q\) 的每个连通块都包含于 \(R\) 的某个连通块, 我们记为 \(P\sqcap Q\sqsubseteq R\).

显然, 如果 \(P\sqcap Q\)\(k\) 个连通块, 那么这个方案数是 \(2^{k-1}\). 而好的地方来了: 我们可以拆成

\[\sum_{R} [P\sqcap Q\sqsubseteq R] = \sum_R [P\sqsubseteq R] [Q\sqsubseteq R]. \]

这说明这个矩阵的秩不超过 \(R\) 的数量, 也即 \(2^{n-1}\). 把这个矩阵 \(\bmod 2\), 我们就得到了 \(M\). \(\square\)

这个方法也直接告诉了我们如何求出带权情况的 \(\mathcal P'\).

定理.\(\mathcal P\) 的元素从权值高到低考虑, 每个 \(P\) 考虑 \([P \sqsubseteq R]_R\) 这个 \(\mathbb F_2\) 上的向量. 和前面的元素线性无关的加到 \(\mathcal P'\) 里, 这样就得到了一个不超过 \(2^{n-1}\) 大小的代表集合.

证明留给读者作为练习.

这个算法是相当难得的: 它第一次将带权 Steiner 树和 TSP 问题做到了 \(2^{O(\mathtt{tw})} n^{O(1)}\) 的复杂度 (如果记住所有状态, 复杂度就带 \(\mathtt{tw}^{O(\mathtt{tw})}\) 了), 而很多连通性的 DP 需要随机化算法, 而且没法让复杂度和权值无关.

甜点

组合学里有这么一个趣味结果, 一般是用概率方法证明的:

Bollobas 引理. 如果有集合 \(P_1,\dots, P_n, Q_1,\dots,Q_n\) 满足 \(P_i\) 的大小都是 \(p\), \(Q_i\) 的大小都是 \(q\), 且 \(P_i\cap Q_j=\varnothing\) 当且仅当 \(i=j\), 那么 \(n \leq \binom{p+q}{p}\).

现在我们用线性代数来证明一遍这个结果: 不妨设集合都在某个有限集 \(\Sigma\) 里, 我们给每个 \(\Sigma\) 里的元素 \(\sigma\) 分配一个一般的 \(p+q\) 维向量 \(v_\sigma\). 那么对于 \(P_i = \{u_1,\dots,u_p\}\)\(Q_j=\{v_1,\dots,v_q\}\), 我们定义矩阵 \(M[i, j]\)

\[M[i,j] = (u_1 \wedge \cdots \wedge u_p) \wedge (v_1\wedge \cdots \wedge v_q), \]

因为 \(\bigwedge^{p+q}\mathbb F^{p+q}\) 是一维的, 所以我们将它识别为一个数.

这个矩阵是 \(\bigwedge^p \mathbb F^{p+q}\)\(\bigwedge^q \mathbb F^{p+q}\) 的 "内积", 这个线性空间维度是 \(\binom{p+q}{p}\).

而集合的给定条件说明 \(M\) 是严格的对角矩阵. 证毕.

posted @ 2026-01-13 11:23  EntropyIncreaser  阅读(133)  评论(1)    收藏  举报