擬陣
考慮一個集合 \(U\), 定義一個子集族 \(\mathcal I\) 為獨立集集合
子集族:所有元素都是 \(U\) 的子集
- 空集是獨立集 \(\varnothing \in \mathcal I\)
- 獨立集的子集也是獨立集 \(I \in \mathcal I , J\subseteq I\Rightarrow J\in I\)
- 如果兩個獨立集 \(I,J\in \mathcal I\) 滿足 \(|I|<|J|\), 那麼存在一個元素 \(u\in J\setminus I\) , 使得 \(I\cup \{u\}\in \mathcal I\)
滿足上面三個性質的話, \((U,\mathcal I)\) 稱為擬陣
- \(\mathcal I = 2^{U}\)
- \(\mathcal I =\{I\subset U | |I|\leq k\}\)
- 一個圖的所有無環的邊集的子集構成獨立集
性質:
- 所有極大獨立集大小都相等
應用:最小/大權獨立集
有一個權值函式 \(\omega: U\to \mathbb R\), 要求權值和最小/大的獨立集
演算法:把 \(U\) 中元素從小到大加,只要加進去還是獨立集就加進去
證明:
設最小權獨立集是 \(X\), 其中元素從小到大是 \(x_1,x_2,\dots,x_n\)
記 \(X_k=\{x_1,\dots,x_k\}\)。 設該演算法途中得到的大小為 \(k\) 的獨立集是 \(S_k\)。歸納證明 \(\omega(X_k)\geq \omega(S_k)\)
- 當 \(k=0\), trival
- 當 \(k\geq 1\), 已知 \(S_{k-1}=X_{k-1}\), 設 \(u=S_k\setminus S_{k-1},\omega(S_k)=\omega(S_{k-1})+\omega(u)\leq \omega(X_{k-1})+\omega(u)=\omega(X_{k-1}\cup\{u\})\),只需要證明 \(\omega(X_{k-1}\cup\{u\})\leq \omega(X_k)\)
由性質 3, 存在 \(v\in S_k \setminus X_{k-1}\) 使得 \(X_{k-1}\cup \{v\}\in \mathcal I\), 有 \(\omega(X_{k-1}\cup \{v\})\leq \omega(X_k)\)
由於演算法流程,保證了 \(u\) 是最小的,