擬陣學習總結
By Tuifei_oier
Part 1 定義
首先給出一些基本的定義:
一、子集系統
給定二元組 \(M=(S,I)\),若滿足以下條件:
- \(S\) 為一個有限集。
- \(I\) 為一個元素為 \(S\) 的子集的有限非空集,空集屬於 \(I\)。
- \(\forall A\in I,B\subseteq A\) 滿足 \(B\in I\)。
則稱 \(M\) 為一個子集系統。
其中,第三條性質一般稱為遺傳性。
特別地,稱 \(I\) 中元素為獨立集。
稱一個集合 \(A\) 為極大獨立集,當且僅當 \(\forall x,A\cup\{x\}\notin I\),也稱極大獨立集為基。
定義秩函數 \(r(U)\) 為 \(U\) 中最大獨立集的大小,事實上,通過秩函數的性質,我們可以反過來推導出原子集系統的性質,例如:證明其為一個擬陣。
二、擬陣
給定一個子集系統 \(M=(S,L)\),若滿足:
\(\forall A\in L,B\in L,|A|<|B|,\exist\;x\in B-A\),滿足 \(A\cup\{x\}\in L\)。
則稱 \(M\) 為一個擬陣。
其中,該性質一般稱為交換性。
三、對偶擬陣
稱 \(M^*\) 為 \(M=(S,I)\) 的對偶擬陣,即 \(M^*=(S,I^*)\),其中 \(I^*=\{x:\) 存在 \(M\) 中的一個極大獨立集 \(A\subseteq S\backslash x\}\)。
以及,我們可以定義一系列擬陣的運算:
- 刪除:對於 \(M=(S,I),Z\subseteq S\),定義 \(M\backslash Z\) 為 \(M\) 刪除子集 \(Z\) 的擬陣,即 \(M\backslash Z=(S\backslash Z,I')\),其中 \(I'\) 的定義與 \(I\) 類似,實質是把原來的 \(S\) 變為 \(S\backslash Z\),其他的定義不變。
- 收縮:對於 \(M=(S,I),Z\subseteq S\),定義 \(M/Z\) 為 \(M\) 關於子集 \(Z\) 收縮后的擬陣,即 \(M/Z=(M^*\backslash Z)^*\),可以證明收縮的意義為 \(M/Z\) 的任意一個獨立集並上 \(Z\) 中的任意一個獨立集后仍然是原 \(M\) 中的一個獨立集,可以利用秩函數來研究它。
事實上,這兩個運算一般用於證明擬陣。
Part 2 性質
擬陣有一些優美的性質:
- 次模性:\(r(A\cup B)+r(A\cap B)\le r(A)+r(B)\)。
- 擬陣 \(M=(S,I)\) 中 \(I\) 中的所有極大獨立集大小相等。
當然,並不止這些,它最適用於我們的性質將在下文提到。
一些經典的擬陣:
-
均勻擬陣 \(U^k_n=(S,I)\),其中 \(|S|=n,I=\{x\subseteq S:|x|\le k\}\),不難證明這是一個擬陣。
-
圖擬陣:對於無向圖 \(G=(V,E)\),令 \(M=(E,I),I=\{x\subseteq E:x\) 無環 \(\}\),則 \(M\) 為擬陣,證明如下:
- 遺傳性證明顯然;
- 對於交換性,由 \(|A|<|B|\) 知 \(A\) 連成的連通塊數量大於 \(B\),因此一定存在一個 \(A\) 中不連通而 \(B\) 中連通的塊,加入該邊即可。
需要注意的是,對於有向圖是不成立的。
-
匹配擬陣:對於無向圖 \(G=(V,E)\),匹配擬陣 \(M=(V,I),I=\{x\subseteq V:x\) 中所有點可被至少一個匹配完全覆蓋 \(\}\),證明略去。
-
連通擬陣:對於無向圖 \(G=(V,E)\),考慮刪邊角度,連通擬陣 \(M=(E,I),I=\{x:\) 刪除 \(x\) 中邊后圖連通 \(\}\),不難證明其為擬陣(類似圖擬陣)。事實上,連通擬陣就是圖擬陣的對偶擬陣。
Part 3 OI 應用
在 OI 中,擬陣目前有兩種常用用法:
一、擬陣與貪心
對於擬陣 \(M=(S,I)\),給定一個函數 \(w:S\rightarrow N^*\),定義 \(S\) 一個子集的權值 \(w(x)=\sum_{e\in x}w(e)\),擬陣的最優化問題即找一個最大的 \(w(x)\) 滿足 \(x\in I\)。
如果可以證明一個組合優化問題本質是擬陣的最優化問題,就可以套用下面的貪心算法來求解:
- 將 \(S\) 中元素 \(e\) 按 \(w(e)\) 從大到小排序。
- 維護集合 \(A\),初始為空集, 依次考慮每個 \(e\),如果 \(A\cup\{e\}\in I\),則 \(A\gets A\cup\{e\}\),最后答案即為 \(w(A)\)。
證明略過,讀者自證(查資料)不難。
以下是一些可以被證明等價於擬陣最優化問題的問題:
- 最小/大生成樹。
- 二分圖匹配。
只要構造出擬陣,問題就可以被大大簡化了。
二、擬陣交
首先定義擬陣交。
對於兩個擬陣 \(M_1=(S,I_1),M_2=(S,I_2)\),稱集合 \(A=\{x:x\in I_1\) 且 \(x\in I_2\}\) 為擬陣 \(M_1,M_2\) 的交。
此時,我們就有兩種最優化問題:
- 求 \(A\) 中的最大獨立集。
- 定義函數 \(w:S\rightarrow N^*\),求 \(A\) 中權值最大的獨立集的權值。
對於兩種問題,我們有一個相同的算法來求解,先介紹求 \(A\) 種最大獨立集的算法。
-
初始有一個集合 \(A=\emptyset\)。
-
每次將屬於 \(A\) 的元素放在左部點,將屬於 \(S\backslash A\) 的元素放在右部點,同時新建起點 \(s\) 和終點 \(t\),按以下方式連邊:
a. 對於右部點 \(y\),如果滿足 \(A\cup\{y\}\in I_1\),由 \(s\) 向 \(y\) 連邊;如果滿足 \(A\cup\{y\}\in I_2\),由 \(y\) 向 \(t\) 連邊。
b. 對於左部點 \(x\) 和右部點 \(y\),如果滿足 \(A\backslash\{x\}\cup\{y\}\in I_2\),由 \(y\) 向 \(x\) 連邊;如果滿足 \(A\backslash\{x\}\cup\{y\}\in I_1\),由 \(x\) 向 \(y\) 連邊。
-
之后,每次找一條從 \(s\) 到 \(t\) 的最短路,將該路徑上原本屬於 \(A\) 的元素從 \(A\) 中刪除,不屬於 \(A\) 的元素加入 \(A\)(稱該操作為增廣),然后重新建圖,直至不存在最短路。
-
此時 \(A\) 即為擬陣交中的一個最大獨立集。
算法的正確性在此略去證明,大致可以發現每次增廣后 \(|A|\) 恰好 \(+1\)。
設 \(r=max(r_1(S),r_2(S)),n=|S|\),則增廣次數不超過 \(r\),每次增廣的復雜度為 \(O(rn)\),於是復雜度為 \(O(r^2n)\)。
對於第二個問題,我們使用與上文類似的算法:每個節點賦點權,左部點的權值為 \(-w(e)\),右部點的權值為 \(w(e)\),然后將找 \(s\) 到 \(t\) 的最短路改為找 \(s\) 到 \(t\) 的最大點權路徑,在此基礎上盡可能短即可,此時由於存在負點權,使用 spfa,時間復雜度為 \(O(r^2n^2)\)(當然也可以是 \(O(r^2nk)\),雖然但是,\(k=n\))。
事實上可以證明,每次增廣后的 \(A\) 都是大小為 \(|A|\) 時的一個最優解。
Part 4 例題
Pro A Rainbow Graph
給定一張 \(n\) 個點 \(m\) 條邊的無向圖,每條邊有三種顏色 R,G,B 之一,同時帶有邊權 \(w_i\),選擇恰好 \(k\) 條邊使得分別保留選出邊中顏色為 R,G 的邊和顏色為 G,B 的邊時,都使得所有點連通,同時選出的 \(k\) 條邊的邊權和最小,對於 \([1,m]\) 每一個 \(k\) 求出最小權值和。
\(tips:1\le n,m\le100,1\le w_i\le1000\)。
Pro B Colorful Graph
給定一張 \(n\) 個點 \(m\) 條邊的無向圖,每條邊有兩個屬性:\(w_i\) 表示邊權,\(c_i\) 表示顏色。
選出一個邊集,滿足:
- 該邊集連通所有點;
- 每種顏色在邊集中至少出現一次;
求最小的邊集權值和。
\(tips:1\le n\le m\le200,1\le c_i\le m,1\le w_i\le10^9\)。
Pro C 二分圖匹配
給定二分圖 \(G=(V,E)\),其中 \(V=V_1+V_2\),求最大匹配。
Part 5 例題題解
Pro A
設 R,G,B 顏色邊集分別為 \(E_R,E_G,E_B\),則構造連通擬陣 \(M_1=(E_R+E_G,I),M_2=(E_G+E_B,I)\),然后帶權擬陣交即可,由於每次增廣后當前 \(A\) 都是大小為 \(|A|\) 時的一個最優解,直接將當前的 \(w(A)\) 作為 \(Ans_{m-|A|}\) 即可。
時間復雜度 \(O(r^2n^2)\)。
Pro B
構造擬陣 \(M_1\) 為連通擬陣,\(M_2=(E,I),I=\{x:\) 每種顏色在 \(x\) 中都沒有全部出現 \(\}\),則直接求帶權擬陣交即可。
Pro C
考慮構造 \(M_1=\{E,I_1\},I_1=\{x:V_1\) 中所有點在圖 \((V,x)\) 中度數 \(\le1\}\),類似定義 \(M_2\),然后最大擬陣交即可。
Part 6 后記
咕了。
