弦图 学习笔记
弦图 学习笔记
定义
弦图中任意 \(k\ge 4\) 阶环都有弦,等价于对于任意导出子图都不是 \(k\ge 4\) 阶环。
单纯点
单纯点的邻域是团。
完美消除序列(aka peo)
点的排列,使得 \(\forall i, v_i\) 在 \(\{v_i, v_{i + 1}, ..., v_n\}\) 的诱导子图中是单纯点。
点割集
\((u, v)\) 的点割集是点集,使得删除点割集之后的诱导子图中 \(u, v\) 不连通。
性质
- 弦图的诱导子图是弦图(Lemma 1)。
- 弦图中 \((u, v)\) 的极小点割集 \(A\) 是团(Lemma 2)。
证明:
设删去点割集之后 \(u, v\) 所在连通块是 \(V_1, V_2\)。
观察:点割集中任意点与 \(V_1, V_2\) 有连边(否则可以删去此点)。
对于点割集中任意两点 \(x, y\),存在 \(x_1, y_1\in V_1\) 且与 \(x, y\) 相邻,同理 \(x_2, y_2\)。
则找到 \(x_1 \rightarrow y_1, y_2\rightarrow x_2\) 的最短路,此时形成环,若 \(x, y\) 无边则不是弦图,得证。
- 弦图有至少一个单纯点,且非完全图有至少 2 个不相邻单纯点(Lemma 3)。
证明:
归纳。
任取不相邻 \(u, v\),由于对称,证明 \(V_1\) 有一个单纯点即可。
如果 \(V_1\) 是团,显然成立,否则根据归纳假设,\(V_1\cup A\) 中有二不相邻单纯点,其中必有一个在 \(V_1\) 中,证毕。
- 图 \(G\) 是弦图当且仅当 \(G\) 拥有完美消除序列。
证明:必要性显然。
充分性:根据 Lemma 1,3,不断选取弦图中的单纯点即可。
求完美消除序列
- LEX-BFS 算法
从后往前确定 peo,先随便选一个点作为 BFS 起点,然后每次选取一个点,使得它邻域中已确定 peo 的点的 peo 字典序最大。
需要用点集分裂的思想,维护链表套链表,可以做到 \(O(n + m)\)。
正确性证明:
如果对于 \(i\) 的邻点 \(i_1, i_2\) 他们的 peo 在 \(i\) 后面,假设 \(i_1, i_2\) 无边。
则一定存在 \(i_3\) 使得与 \(i_1\) 相邻而不与 \(i\) 相邻,此时 \(i_2, i_3\) 无边否则非弦图,则可以如此构造下去,peo是无限序列,假设不成立,得证。
- MCS 算法
每次选取邻域被确定点最多的点。
可以简单地用优先队列带个 log 或用桶做到线性。
判定弦图
定义 \(u\) 邻域为 peo 在 \(u\) 后面且与 \(u\) 相邻的点集。
求出完美消除序列,从后往前类似归纳地每次对于一个点 \(u\),选择它最近的邻域点,判断此点邻域是否被 \(N(u)\) 包含。
NP-Hard 问题在弦图上的解决
- 最大团,\(\omega(G)\)
- 色数,\(\omega(G) \le X(G)\)
- 最大独立集,\(\alpha (G)\)
- 最小团覆盖,\(\alpha(G)\le K(G)\)。
在弦图中这些不等式都取等号。
- 色数
从后往前对peo贪心,每点颜色取邻域色 \(\text{mex}\)。
- 最大独立集
从前往后对peo贪心,每次给邻域打标记。
- 求所有极大团
观察:极大团是 \(v\cup N(v)\) 形式的。
则考虑标记非极大团。
对于 \(u\),定义 \(C(u) = u\cup N(u)\),若 \(\exists v, v < u, C(v)\supseteq C(u)\),则 \(u\) 非极大团。
等价于 $\exists w, w < u, u = \text{arcmin} N(w), C(w)\supseteq C(u) $,则 \(u\) 非极大团。
等价于 \(\exists w, w < u, u = \text{arcmin} N(w), |N(w)| = |N(u)| + 1\),则 \(u\) 非极大团。
根据以上引理可以得到求出所有极大团的线性算法,即从前往后扫,打标记。