拟阵
\(\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
拟阵的并
之后再说。