擬陣


\(\text{Part.1}\) 基本定義

定義\(1.1\)

\(M=(S,I)\)表示一個定義在有限集\(S\)上,獨立集的集合是\(I\)的擬陣。其中\(I\subseteq2^{S}\)(即\(I=\{T\subseteq S|f(T)\}\))。若\(M\)滿足下列公理,則我們稱之為擬陣。

公理\(1\)(遺傳性)

\(\forall A\in I,B\subseteq A\Rightarrow B\in I\)

公理\(2\)(擴張性)

\(\forall A,B\in I\wedge|B|>|A|,\exists x\in B\setminus A,s.t. A\cup\{x\}\in I\)

定義\(1.2\)

\(A\in I\),則我們稱\(A\)是獨立的,或者說\(A\)是獨立集。否則稱\(A\)是不獨立的。
為了方便,我們認為\(\emptyset\in I\)

\(\text{ex.1}\)(均勻擬陣)

令擬陣\(U_n^k=(S,I)\),其中\(|S|=n,I=\{T\subseteq S||T|\le k\}\)

\(\text{ex.2}\)(無向圖擬陣)

令無向圖\(G=(V,E)\),無向圖擬陣\(M=(E,I)\),其中\(I=\{F\subseteq E|F\)無環\(\}\)

無向圖擬陣的遺傳性是顯然的。
對於擴張性,由於\(|B|>|A|\),所以\(A\)的導出子圖的連通塊數一定比\(B\)的導出子圖多,所以必然存在一個\(B\)的導出子圖的連通塊在\(A\)的導出子圖中不連通,所以必然存在一條\(B\)的一條邊可以加入\(A\)使得\(A\)無環。

\(\text{ex.3}\)(有向圖“擬陣”)

令有向圖\(G=(V,E)\),有向圖“擬陣”\(M=(E,I)\),其中\(I=\{F\subseteq E|F\)無環\(\}\)

然而這並不是擬陣。

\(\text{ex.4}\)(匹配擬陣)

令無向圖\(G=(V,E)\),匹配擬陣\(M=(V,I)\),其中\(I=\{W\subseteq V|\)存在一組匹配可以覆蓋\(W\}\)

匹配擬陣的遺傳性是顯然的。
對於擴張性,可以考慮利用增廣路來進行證明,具體留作讀者自證。

\(\text{ex.5}\)(向量擬陣)

\(S\)為一個\(n\)維向量的集合,令擬陣\(M=(S,I)\),其中\(I=\{T\subseteq S|T\)線性無關\(\}\)

向量擬陣的遺傳性是顯然的。
對於擴張性,考慮兩組線性無關的向量\(a_1,\cdots,a_n\)\(b_1,\cdots,b_{n+1}\)
如果向量擬陣不滿足擴張性,那么\(b_1,\cdots,b_{n+1}\)一定都能被\(a_1,\cdots,a_n\)線性表示。
現在將\(a_1,\cdots,a_n,c_1,\cdots,c_m\)作為該向量集合的一組新的基。(因為我們無法滿足\(a_1,\cdots,a_n\)能夠線性表示所有該向量集合中的所有向量,所以我們加入一些無關的其它向量)
然后我們用這組基將\(b_1,\cdots,b_{n+1}\)表示,得到的向量組所構成的矩陣的秩為\(n\),小於這組向量的個數\(n+1\),因此\(b_1,\cdots,b_{n+1}\)是一組線性相關的向量組,這與一開始定義的線性無關矛盾。
因此一定存在一個\(b_i\)滿足它不能被\(a_1,\cdots,a_n\)線性表示,由此可得向量擬陣滿足擴張性。

\(\text{Part.2}\) 基&環

定義\(2.1\)

對於\(M=(S,I)\)中的一個\(A\in I\),若\(\forall x\in S\setminus A,A+\{x\}\notin I\),則我們稱\(A\)為擬陣\(M\)的一個基,或者叫極大獨立集。
對於\(M=(S,I)\)中的一個\(A\subseteq S,A\notin I\),若\(\forall x\in A,A\setminus\{x\}\in I\),則我們稱\(A\)為擬陣\(M\)的一個環,或者叫極小非獨立集。我們用\(C(M)\)來表示擬陣\(M\)所有的環。

引理\(2.1\)

對於任意擬陣\(M\)\(M\)的所有基的大小相同。

定理\(2.1\)(基交換定理)

對於任意擬陣\(M\),若\(M\)有兩個不相同的基\(A,B\),那么\(\forall x\in A\setminus B,\exists y\in B\setminus A,s.t. A-\{x\}+\{y\}\in I\)。即\(A-\{x\}+\{y\}\)\(M\)的基。

推論\(2.1\)

\(\forall X,Y\in C(M),X\subseteq Y\Rightarrow X=Y\)

推論\(2.2\)

\(\forall X,Y\in C(M)\wedge X\neq Y,\forall e\in X\cap Y,\exists C\in C(M),s.t.C\subseteq X\cup Y-\{e\}\)

由推論\(2.1\)可知\(X\setminus Y\)非空,設\(f\in X\setminus Y\)
假設\(X\cup Y-e\)是獨立集,因為\(X\)是環,所以\(X-\{f\}\)是獨立集。
\(X\cup Y\)中最大的包含\(X-\{f\}\)的獨立集為\(Z\)
因為\(Y\)是環,所以\(Y\not\subseteq Z\)
由此可得\(|Z|\le|X\cup Y-\{f\}|-1\le |X\cup Y|-2<|X\cup Y-\{e\}|\)
因此\(X\cup Y-\{e\}\)一定不是獨立集。命題得證。

推論\(2.3\)

\(A\)\(M=(S,I)\)的一個基,\(e\in S\setminus A\),那么\(A+\{e\}\)包含且僅包含一個環。

先證包含,由基和環的定義顯然。
再證唯一,假如存在兩個環\(C_1,C_2\),那么有\(e\in C_1\cap C_2\)
由推論\(2.2\)可得\(C_1\cup C_2-\{e\}\)包含環,與\(A\)是獨立集矛盾。命題得證。

\(\text{Part.3}\)

定義\(3.1\)

對於擬陣\(M=(S,I)\)\(M\)的基的大小稱為擬陣的秩。
\(\forall T\subseteq S\),定義秩函數\(r(T)\)表示\(T\)中極大獨立集的大小。

性質\(1\)(有界性)

\(\forall T\subseteq S,0\le r(T)\le|T|\)

性質\(2\)(單調性)

\(\forall A\subseteq B\subseteq S,r(A)\le r(B)\)

性質\(3\)(次模性)

\(\forall A,B\subseteq S,r(A\cup B)+r(A\cap B)\le r(A)+r(B)\)

\(Z\)\(A\cap B\)的基,並由此擴展得到\(Z_A\)\(A\)的極大獨立集,\(Z_B\)\(B\)的極大獨立集,\(Z_{AB}\)\(A\cup B\)的極大獨立集。
\(Z_{AB}\)划分為\(A\cap B,A\setminus B,B\setminus A\)三部分。
由遺傳性可知這三部分是獨立的。且\(A\cup B\)這部分的就是\(Z\)。我們再設\(A\setminus B\)部分的為\(E_A\)\(B\setminus A\)部分的為\(E_B\)
那么有\(r(A\cup B)+r(A\cap B)=|E_A|+|E_b|+|Z|+|Z|=(|E_a|+|Z|)+(|E_b|+|Z|)\le r(A)+r(B)\)。命題得證。

如果存在一個滿足\(3\)條性質的秩函數\(r\),那么通過這個函數我們可以直接定義出擬陣\(M=(S,I),I=\{A\subseteq S|r(A)=|A|\}\)

先證遺傳性,令\(B\)為任意獨立集,\(A\subseteq B\)。由次模性可知\(|B|=r(B)\le r(A)+r(B-A)\),由有界性可知\(r(A)\le|A|,r(B-A)\le|B-A|\),因此\(r(A)=|A|,r(B-A)=|B-A|\),即\(A\)為獨立集。
再證擴張性,令\(A,B\)為獨立集,\(|A|<|B|\)\(B\)中元素分別為\(b_1,\cdots,b_{|B|}\)
先假設\(A\)加入\(B\)中任意一元素都不是獨立集。
接下來通過歸納證明\(r(A\cup B)=|A|\)
首先我們有\(r(A\cup b_i)=|A|(i\in[1,|B|])\)
然后若已知\(r(A\cup\{b_1,\cdots,b_n\})=|A|\),由次模性可得\(r((A\cup\{b_1,\cdots,b_n\})\cup(A\cup\{b_{n+1}\}))+r((A\cup\{b_1,\cdots,b_n\})\cap(A\cup\{b_{n+1}\}))\le r(A\cup\{b_1,\cdots,b_n\})+r(A\cup\{b_{n+1}\})\)
\(r(A\cup\{b_1,\cdots,b_{n+1}\})+|A|\le|A|+|A|\),所以\(r(A\cup\{b_1,\cdots,b_{n+1}\})=|A|\)
由此可知\(r(A\cup B)=|A|\)。由單調性可知\(|B|=r(B)\le r(A\cup B)\),這導出了矛盾。故擴張性得證。

\(\text{Part.4}\) 擬陣上的最優化問題

給定擬陣\(M=(S,I)\),函數\(f:S\rightarrow R\),定義一個\(T\subseteq S\)的權值\(f(T)=\sum\limits_{e\in T}f(e)\)。現在我們需要找一個\(A\in I\),最大化\(f(A)\)

下面先不加證明地給出構造的算法:
\(1.\)\(S\)中的每個元素\(e\)按照\(f(e)\)降序排序。
\(2.\)先令\(A=\emptyset\),然后按順序枚舉\(e\),如果\(A\cup\{e\}\)是獨立集,就把\(e\)加入\(A\)

證明分為兩部分:證明最后得到的\(A\)是擬陣的一個基,證明這個基是最優解。
第一部分考慮歸納證明。
\(U_i=\{e_1,\cdots,e_i\}\),我們證明對於任意時刻\(i\),都有\(r(U_i)=|A_i|\)
\(i=0\)時命題顯然成立。
現在假定命題\(i\)成立,需要證明命題\(i+1\)成立。
\(1.r(U_{i+1})=r(U_i)\),顯然成立,\(A_i\)不可能擴張。
\(2.r(U_{i+1})=r(U_i)+1\)。若\(A_i\cup\{e_{i+1}\}\),那么命題得證。
否則考慮現在的一組基\(A_{i+1}'\),因為\(|A_{i+1}'|>|A_{i+1}|\),根據交換性,一定有一元素\(x\in A_{i+1}'\setminus A_{i+1}\)可加入\(A_{i+1}\)。因為\(x\)一定不可能是\(e_{i+1}\),所以一定有\(x\in U_i\)。這說明之前存在一個大小\(>r(U_i)\)的獨立集,這導出了矛盾。故命題得證。
現在證明第二部分。假設最優解在某一步沒有選擇\(e_i\)而是選擇了\(e_{i'}(i'>i)\),那么因為\(f(e_i)\ge f_{e_{i'}}\)之后一定存在某個選擇\(f(e_j)\le f(e_{j'})(j'<j)\)。由於基交換定理,\(A-\{s_j\}+\{s_{j'}\}\)也是獨立集,因此該算法一定會選擇\(e_{j'}\),從而不劣於\(A'\)。命題得證。

\(\text{Part.5}\) 一些補充定義

定義\(5.1\)

對於擬陣\(M=(S,I)\),定義\(M\)的對偶擬陣\(M^*=(S,I^*)\),其中\(I^*=\{A\subseteq S|\)存在\(M\)中的基\(B\subseteq S\setminus A\}\)

容易求得\(r^*(U)=|U|-r(S)+r(S\setminus U)\)

定義\(5.2\)

對於擬陣\(M=(S,I)\)和集合\(Z\subseteq S\),定義\(M\)刪除子集\(Z\)的擬陣為\((S\setminus Z,I'),I'=\{A\subseteq S\setminus Z|A\in I\}\)。記為\(M\setminus Z\)

定義\(5.3\)

對於擬陣\(M=(S,I)\)和集合\(Z\subseteq S\),定義\(M\)收縮子集\(Z\)的擬陣為\((M^*\setminus Z)^*\)。記為\(M/Z\)

容易求得\(r_{M/Z}=r_M(Z\cup U)-r_M(Z)\)
不難發現收縮本質上就是欽定\(Z\)中的一組基,\(M/Z\)中的獨立集的要求就是並上\(Z\)中的獨立集之后仍是\(M\)的一個獨立集。

對一個擬陣施以以上三種操作中任意一個得到的都是一個擬陣,可以通過秩函數證明,這里不做贅述。

定義\(5.4\)

對於擬陣\(M\),經過一系列刪除和收縮操作得到的任意擬陣\(M'\),稱作\(M\)的極小元。

\(\text{Part.6}\) 擬陣的交

定義\(6.1\)

給定兩個定義在相同基礎集上的擬陣\(M_1=(S,I_1),M_2=(S,I_2)\),定義\(M_1\)\(M_2\)的交是所有的集合\(A\),滿足\(A\)同時在兩個擬陣內都是獨立的。

擬陣交問題一般是求兩個擬陣的公共獨立集中最大的獨立集。這個問題的難點在於兩個擬陣的交並不一定還是擬陣。接下來的一個定理可以解決這個問題。

定理\(6.1\)(最小最大定理)

\(\max\limits_{A\in I_1\cap I_2}|A|=\min\limits_{T\subseteq S}(r_1(T)+r_2(S\setminus T))\)

先給出\(\max\limits_{A\in I_1\cap I_2}|A|\le\min\limits_{T\subseteq S}(r_1(T)+r_2(S\setminus T))\)的證明:
\(|I|=|I\cap T|+|I\cap S\setminus T|\le r_1(T)+r_2(S\setminus T)\)
然后如果我們能夠給出一組\(I,T\)使得等號成立,那么我們就證明了這個定理。
接下來我們會給出算法構造性地證明該定理。

定義\(6.2\)

對於擬陣\(M=(S,I)\)\(A\subseteq S\),定義\(A\)的閉包算子\(cl(A)=\{e\in S|r(A\cup\{e\})=r(A)\}\)

引理\(6.1\)

對於擬陣\(M=(S,I)\),如果\(A\subseteq B\subseteq S\),那么\(cl(A)\subseteq cl(B)\)

假設有一個\(e\in cl(A)\)。由次模性可知\(r(A\cup\{e\})+r(B)\ge r((A\cup\{e\})\cap B)+r((A\cup\{e\})\cup B)\ge r(A)+r(B\cup\{e\})\)
因為\(r(A\cup\{e\})=r(A)\),所以\(r(B)\ge r(B\cup\{e\})\)\(r(B)=r(B\cup\{e\})\)。因此\(e\in cl(B)\)。因為\(\forall e\in cl(A)\),有\(e\in cl(B)\),所以\(cl(A)\subseteq cl(B)\)

引理\(6.2\)

對於擬陣\(M=(S,I)\)\(A\subseteq S,\forall e\in cl(A),cl(A)=cl(A\cup\{e\})\)

由引理\(6.1\)可知\(cl(A)\subseteq cl(A\cup\{e\})\),因此只需證\(cl(A\cup\{e\})\subseteq cl(A)\)
具體證明類似於引理\(6.1\)的證明,此處不做贅述。

引理\(6.3\)

對於擬陣\(M=(S,I)\)\(A\subseteq S,cl(A)=cl(cl(A))\)

利用引理\(6.2\)逐步將\(cl(A)\setminus A\)的元素加入\(A\)即可。

定理\(6.2\)(強基交換定理)

對於任意擬陣\(M\),若\(M\)有兩個不相同的基\(A,B\),那么\(\forall x\in A\setminus B,\exists y\in B\setminus A,s.t.A-\{x\}+\{y\},B-\{y\}+\{x\}\)都是\(M\)的基。

因為\(B\)是基,所以\(B+\{x\}\)包含一個唯一的環\(C\)\(x\in C\)。所以有\(x\in cl(C-\{x\})\)。由引理\(1\)可得\(cl(C-\{x\})\subseteq cl((A\cup C)-\{x\})\),所以\(x\in cl((A\cup C)-\{x\})\)。由引理\(2\)可得\(cl((A\cup C)-\{x\})=cl(A\cup C)\)
因為\(A\)是基,所以\(S\subseteq cl(A)\subseteq cl(A\cup C)\),即\(cl((A\cup C)-\{x\})=cl(A\cup C)=S\)。因此\(cl((A\cup C)-\{x\})\)一定包含一個基,記之為\(A'\)
因為\(A'\)\(A-\{x\}\)都是獨立集,且有\(|A-\{x\}|<|A|=|A'|\),所以一定存在\(y\in A'\setminus(A-\{x\}),s.t.A-\{x\}+\{y\}\)是基。
因為\(A'\setminus(A-\{x\})\subseteq C-\{x\}\subseteq B\),所以一定存在\(y\in B,s.t.A-\{x\}+\{y\}\)是基。同時由於\(C\)是環,所以\(B-\{y\}+\{x\}\)也是基。命題得證。

接下來我們將提出一種算法。從空集開始擴展,直到得到最大的獨立集\(A\)。同時還可以構造出\(T\),以此證明這就是我們要求的最大獨立集。

定義\(6.3\)

對於擬陣\(M=(S,I)\)和獨立集\(A\in I\),定義\(M\)\(A\)的交換圖\(D_M(A)\)\(G=(V,E)\)。其中\(V=S,E=\{(y,x)|x\in S\setminus A,y\in A,A-\{y\}+\{x\}\in I\}\)。很顯然\(G\)是一個二分圖。

引理\(6.4\)

\(A,B\)都是\(M\)的獨立集且\(|A|=|B|\),那么\(D_M(A)\)中存在一個關於\(A\setminus B\)\(B\setminus A\)的完美匹配。

定義一個新的擬陣\(M'=(S,I'),I'=\{A'\in I||A'|\le|A|\}\)。那么\(A,B\)都是\(M'\)的基。
然后利用強基交換定理即可遞歸證明。

定理\(6.3\)

\(A\)\(M=(S,I)\)的獨立集,\(B\subseteq S\wedge|B|=|A|\)\(D_M(A)\)中存在唯一的\(A\setminus B\)\(B\setminus A\)的完美匹配\(\Rightarrow J\in I\)

先轉有向圖,把不屬於這個匹配的邊反向,那么這一定是個拓撲圖,然后給每個點標號使得邊都從小號到大號,然后再利用反證法即可。

定義\(6.4\)

對於矩陣\(M_1=(S,I_1),M_2=(S,I_2)\)\(A\in I_1\cap I_2\),定義\(A\)的交換圖\(D_{M_1M_2}(A)=(V,E)\)。其中\(V=S,E=\{<y,x>|x\in S\setminus A,y\in A,A-\{y\}+\{x\}\in I_1\}\cup\{<x,y>|x\in S\setminus A,y\in A,A-\{y\}+\{x\}\in I_2\}\)

然后我們開始敘述算法流程。

\(\text{1:}\)\(A=\emptyset\),定義\(X_1=\{x\notin A|A+\{x\}\in I_1\},X_2=\{x\notin A|A+\{x\}\in I_2\}\)

\(\text{2:}\)每次在交換圖\(D_{M_1M_2}\)中找到一條\(X_1\)\(X_2\)的最短路\(P\),然后令\(A\)變為\(A\Delta P(A\Delta B=(A\cup B)\setminus(A\cap B))\)
我們稱這個過程為增廣過程,每次增廣會擴張恰好\(1\)個元素。

\(\text{3:}\)重復增廣過程直到找不到任意一條\(X_1\)\(X_2\)路徑,此時我們就得到了最大的\(A\),並得到了\(T=\{x\in S|x\)可以到達\(X_2\}\)

\(\text{4:}\)如果\(X_1\cap X_2\)非空,那么我們將會直接拓展一個\(X_1\cap X_2\)中的元素。

然后來證明這個算法的正確性。我們需要證明兩點:
一是最后算法運行結束之后,\(|A|=r_1(T)+r_2(S\setminus T)\)
二是算法運行中的任意一個時刻\(A\Delta P\)都是獨立集。
證明咕了,有空再說吧。
現在(假裝)我們證明了上述算法的正確性,同時證明了最小最大定理,並給出了一個求擬陣交的算法。

時間復雜度

\(r=\max(r_1(S),r_2(S)),n=|S|\),我們每次構建出來的圖都是\(n\)個點,\(rn\)條邊的圖。
在無權圖上找最短路的復雜度是\(O(n+m)\)的,因此單次增廣的復雜度就是\(O(rn)\)的。
因為每次增廣獨立集中必然增加一個元素,所以增廣次數不會超過\(r\)次。
因此擬陣交算法的復雜度為\(O(r^2n)\)

帶權擬陣交

給定\(f:S\rightarrow\mathbb R\),要求\(\max\limits_{A\in I_1\cap I_2}\sum\limits_{e\in A}f(e)\)

給交換圖中的點定義點權\(w(e)\)
\(\forall x\in A,w(x)=-f(x)\)
\(\forall x\in S\setminus A,w(x)=f(x)\)
然后我們把增廣找的路徑變成:在路徑上的點的點權和最大的情況下經過的邊數最少的\(X_1\)\(X_2\)的路徑即可。

復雜度

求增廣路徑由\(O(n+m)\)變成\(O(nm)\)(因為有負權邊所以只能用SPFA),所以總復雜度就是\(O(r^2n^2)\)

多個擬陣交

NP-Hard

擬陣的並

之后再說。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM