弦圖 學習筆記
定義
弦圖中任意 \(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)\),若 \(\exist v, v < u, C(v)\supseteq C(u)\),則 \(u\) 非極大團。
等價於 $\exist, w, w < u, u = \text{arcmin} N(w), C(w)\supseteq C(u) $,則 \(u\) 非極大團。
等價於 \(\exist, w, w < u, u = \text{arcmin} N(w), |N(w)| = |N(u)| + 1\),則 \(u\) 非極大團。
根據以上引理可以得到求出所有極大團的線性演算法,即從前往後掃,打標記。