某道图论题中的数学原理
参考博客。一句话解释:图的回路空间与割空间互为正交补。
- 边空间:即幂集 \(2^{E}\),可视为 \(\mathbb{GF}(2)\) 上的线性空间。
- 回路空间:使得每个点的度数为偶数的边集的子集。可视为 “边空间” 的子空间,记为 \(\mathcal C\) 。
- 割空间:所有 \(\{(u,v):u\in S,\;v\notin S\}\),其中 \(S\subseteq V\) 。也可以视为 “边空间” 的子空间,记为 \(\mathcal D\) 。
Proof. 注意到 \(S\) 的割边集就是 \(S\) 内每个点的邻边集的对称差,因此 \(\mathcal D\) 对 \(\oplus\) 封闭。\(\blacksquare\)
给出图的任意生成树 \(T\) 。有如下性质。
- 非树边 \((a,b)\) 与 \(T\) 上 \(a\leadsto b\) 的路径的并集被称为 “基环”。则所有 “基环” 构成 \(\mathcal C\) 的基。
- 任意给 \(T\) 定根,\(T\) 的子树 \(S\) 对应的割被称为 “基础割”。则所有 “基础割” 构成 \(\mathcal D\) 的基。
- 内积 \(E_1\cdot E_2=|E_1\cap E_2|\bmod 2\),毕竟基域为 \(\mathbb{GF}(2)\) 。则 \(\forall c\in\mathcal C,d\in\mathcal D\) 有 \(c\cdot d=0\) 。
Proof. 根据割 \(d\) 构造二部图,显然环 \(c\) 必须经过 “边界线” 偶数次。\(\blacksquare\) - 边集 \(x\subseteq E\) 满足 \(x\in\mathcal D\) 当且仅当 \(\forall c\in\mathcal C\) 有 \(x\cdot c=0\) 。——即 \(\mathcal D\) 是 \(\mathcal C\) 的正交补。
Proof. 注意到 \(\dim\mathcal C=|E|-|V|+1\) 而 \(\dim\mathcal D=|V|-1\),二者都在 \(\dim=|E|\) 的 “边空间” 内,由上一条知 \(\mathcal D\) 恰为 \(\mathcal C\) 的正交补。\(\blacksquare\)
课后习题:试证明,边空间是 \(\mathcal C\) 和 \(\mathcal D\) 的直和,当且仅当生成树数量为奇数。按:我不会。
回到原题上,需判定是否有 \(d\subseteq x\) 满足 \(d\in\mathcal D\) 。设 \(S_x\) 为哪些基环与 \(x\) 的内积为 \(1\),则条件等价于 \(\exists d\subseteq x\) 使得 \(\bigoplus_{i\in d}S_i=\varnothing\) 。相当于询问集合内的元素是否都成对出现。
于是有经典做法:给每个元素赋随机权 \(\omega_x\),令 \(\omega(S):=\bigoplus_{i\in S}\omega_i\),则 \(\bigoplus_{i}\omega(A_i)=0\) 和 \(\bigoplus_{i}A_i=\varnothing\) 可以被认为是相同的(单次错判的概率是 \(2^{-k}\) 其中 \(k\) 是 \(\omega_x\) 的 \(\rm bit\) 长度)。然后只要检测是否线性无关。
当 \(e\) 是树边时,\(S_e\) 就是 “经过 \(e\) 树边” 的非树边对应的基环;当 \(e\) 是非树边时,\(S_e\) 就是 \(e\) 对应的基环。因此可以用树上差分求出所有 \(\omega(S_x)\) 了。
时间复杂度 \(\mathcal O(n+qk+q\log_2{1\over\epsilon})\),其中 \(\epsilon\) 是被容许的错误率,如 \(10^{-18}\) 。
从 \(\rm matroid\) 出发,可以得到相同的结论。目标是判断 \(x\) 是否在图拟阵的对偶拟阵中独立。
根据拟阵相关知识,我们知道图拟阵是正则拟阵,可以在 \(\mathbb{GF}(2)\) 上被线性表出。任取生成树 \(T\),设其为前 \((n{-}1)\) 条边,则 \((n{-}1)\times m\) 的线性表出矩阵 \(A\) 满足:前 \((n{-}1)\times(n{-}1)\) 方阵是 \(I\),后 \((m{-}n{+}1)\) 列上每列为 \(1\) 的元素是与该非树边构成环(“基环”)的树边。
因此 \(\mathcal M^\ast\) 的 \((n{-}m{+}1)\times m\) 线性表出矩阵为:前 \((n{-}1)\) 列上,每列为 \(1\) 的元素是与该树边构成基环的非树边(即 “经过该树边” 的非树边基环),后 \((m{-}n{+}1)\times(m{-}n{+}1)\) 方阵是 \(I\) 。
不难发现这和上面的结论是相同的。
如果这篇文章对你有帮助,那么作者是:OneInDark,原文在:https://www.cnblogs.com/OneInDark/p/16472699.html,否则我也不知道这是谁的文章。