拟阵

( ext{Part.1}) 基本定义

定义(1.1)

(M=(S,I))表示一个定义在有限集(S)上,独立集的集合是(I)的拟阵。其中(Isubseteq2^{S})(即(I={Tsubseteq S|f(T)}))。若(M)满足下列公理,则我们称之为拟阵。

公理(1)(遗传性)

(forall Ain I,Bsubseteq ARightarrow Bin I)

公理(2)(扩张性)

(forall A,Bin Iwedge|B|>|A|,exists xin Bsetminus A,s.t. Acup{x}in I)

定义(1.2)

(Ain I),则我们称(A)是独立的,或者说(A)是独立集。否则称(A)是不独立的。
为了方便,我们认为(emptysetin I)

( ext{ex.1})(均匀拟阵)

令拟阵(U_n^k=(S,I)),其中(|S|=n,I={Tsubseteq S||T|le k})

( ext{ex.2})(无向图拟阵)

令无向图(G=(V,E)),无向图拟阵(M=(E,I)),其中(I={Fsubseteq E|F)无环(})

无向图拟阵的遗传性是显然的。
对于扩张性,由于(|B|>|A|),所以(A)的导出子图的连通块数一定比(B)的导出子图多,所以必然存在一个(B)的导出子图的连通块在(A)的导出子图中不连通,所以必然存在一条(B)的一条边可以加入(A)使得(A)无环。

( ext{ex.3})(有向图“拟阵”)

令有向图(G=(V,E)),有向图“拟阵”(M=(E,I)),其中(I={Fsubseteq E|F)无环(})

然而这并不是拟阵。

( ext{ex.4})(匹配拟阵)

令无向图(G=(V,E)),匹配拟阵(M=(V,I)),其中(I={Wsubseteq V|)存在一组匹配可以覆盖(W})

匹配拟阵的遗传性是显然的。
对于扩张性,可以考虑利用增广路来进行证明,具体留作读者自证。

( ext{ex.5})(向量拟阵)

(S)为一个(n)维向量的集合,令拟阵(M=(S,I)),其中(I={Tsubseteq 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)线性表示,由此可得向量拟阵满足扩张性。

( ext{Part.2}) 基&环

定义(2.1)

对于(M=(S,I))中的一个(Ain I),若(forall xin Ssetminus A,A+{x} otin I),则我们称(A)为拟阵(M)的一个基,或者叫极大独立集。
对于(M=(S,I))中的一个(Asubseteq S,A otin I),若(forall xin A,Asetminus{x}in I),则我们称(A)为拟阵(M)的一个环,或者叫极小非独立集。我们用(C(M))来表示拟阵(M)所有的环。

引理(2.1)

对于任意拟阵(M)(M)的所有基的大小相同。

定理(2.1)(基交换定理)

对于任意拟阵(M),若(M)有两个不相同的基(A,B),那么(forall xin Asetminus B,exists yin Bsetminus A,s.t. A-{x}+{y}in I)。即(A-{x}+{y})(M)的基。

推论(2.1)

(forall X,Yin C(M),Xsubseteq YRightarrow X=Y)

推论(2.2)

(forall X,Yin C(M)wedge X eq Y,forall ein Xcap Y,exists Cin C(M),s.t.Csubseteq Xcup Y-{e})

由推论(2.1)可知(Xsetminus Y)非空,设(fin Xsetminus Y)
假设(Xcup Y-e)是独立集,因为(X)是环,所以(X-{f})是独立集。
(Xcup Y)中最大的包含(X-{f})的独立集为(Z)
因为(Y)是环,所以(Y otsubseteq Z)
由此可得(|Z|le|Xcup Y-{f}|-1le |Xcup Y|-2<|Xcup Y-{e}|)
因此(Xcup Y-{e})一定不是独立集。命题得证。

推论(2.3)

(A)(M=(S,I))的一个基,(ein Ssetminus A),那么(A+{e})包含且仅包含一个环。

先证包含,由基和环的定义显然。
再证唯一,假如存在两个环(C_1,C_2),那么有(ein C_1cap C_2)
由推论(2.2)可得(C_1cup C_2-{e})包含环,与(A)是独立集矛盾。命题得证。

( ext{Part.3})

定义(3.1)

对于拟阵(M=(S,I))(M)的基的大小称为拟阵的秩。
(forall Tsubseteq S),定义秩函数(r(T))表示(T)中极大独立集的大小。

性质(1)(有界性)

(forall Tsubseteq S,0le r(T)le|T|)

性质(2)(单调性)

(forall Asubseteq Bsubseteq S,r(A)le r(B))

性质(3)(次模性)

(forall A,Bsubseteq S,r(Acup B)+r(Acap B)le r(A)+r(B))

(Z)(Acap B)的基,并由此扩展得到(Z_A)(A)的极大独立集,(Z_B)(B)的极大独立集,(Z_{AB})(Acup B)的极大独立集。
(Z_{AB})划分为(Acap B,Asetminus B,Bsetminus A)三部分。
由遗传性可知这三部分是独立的。且(Acup B)这部分的就是(Z)。我们再设(Asetminus B)部分的为(E_A)(Bsetminus A)部分的为(E_B)
那么有(r(Acup B)+r(Acap B)=|E_A|+|E_b|+|Z|+|Z|=(|E_a|+|Z|)+(|E_b|+|Z|)le r(A)+r(B))。命题得证。

如果存在一个满足(3)条性质的秩函数(r),那么通过这个函数我们可以直接定义出拟阵(M=(S,I),I={Asubseteq S|r(A)=|A|})

先证遗传性,令(B)为任意独立集,(Asubseteq 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(Acup B)=|A|)
首先我们有(r(Acup b_i)=|A|(iin[1,|B|]))
然后若已知(r(Acup{b_1,cdots,b_n})=|A|),由次模性可得(r((Acup{b_1,cdots,b_n})cup(Acup{b_{n+1}}))+r((Acup{b_1,cdots,b_n})cap(Acup{b_{n+1}}))le r(Acup{b_1,cdots,b_n})+r(Acup{b_{n+1}}))
(r(Acup{b_1,cdots,b_{n+1}})+|A|le|A|+|A|),所以(r(Acup{b_1,cdots,b_{n+1}})=|A|)
由此可知(r(Acup B)=|A|)。由单调性可知(|B|=r(B)le r(Acup B)),这导出了矛盾。故扩张性得证。

( ext{Part.4}) 拟阵上的最优化问题

给定拟阵(M=(S,I)),函数(f:S ightarrow R),定义一个(Tsubseteq S)的权值(f(T)=sumlimits_{ein T}f(e))。现在我们需要找一个(Ain I),最大化(f(A))

下面先不加证明地给出构造的算法:
(1.)(S)中的每个元素(e)按照(f(e))降序排序。
(2.)先令(A=emptyset),然后按顺序枚举(e),如果(Acup{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_icup{e_{i+1}}),那么命题得证。
否则考虑现在的一组基(A_{i+1}'),因为(|A_{i+1}'|>|A_{i+1}|),根据交换性,一定有一元素(xin A_{i+1}'setminus A_{i+1})可加入(A_{i+1})。因为(x)一定不可能是(e_{i+1}),所以一定有(xin 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')。命题得证。

( ext{Part.5}) 一些补充定义

定义(5.1)

对于拟阵(M=(S,I)),定义(M)的对偶拟阵(M^*=(S,I^*)),其中(I^*={Asubseteq S|)存在(M)中的基(Bsubseteq Ssetminus A})

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

定义(5.2)

对于拟阵(M=(S,I))和集合(Zsubseteq S),定义(M)删除子集(Z)的拟阵为((Ssetminus Z,I'),I'={Asubseteq Ssetminus Z|Ain I})。记为(Msetminus Z)

定义(5.3)

对于拟阵(M=(S,I))和集合(Zsubseteq S),定义(M)收缩子集(Z)的拟阵为((M^*setminus Z)^*)。记为(M/Z)

容易求得(r_{M/Z}=r_M(Zcup U)-r_M(Z))
不难发现收缩本质上就是钦定(Z)中的一组基,(M/Z)中的独立集的要求就是并上(Z)中的独立集之后仍是(M)的一个独立集。

对一个拟阵施以以上三种操作中任意一个得到的都是一个拟阵,可以通过秩函数证明,这里不做赘述。

定义(5.4)

对于拟阵(M),经过一系列删除和收缩操作得到的任意拟阵(M'),称作(M)的极小元。

( ext{Part.6}) 拟阵的交

定义(6.1)

给定两个定义在相同基础集上的拟阵(M_1=(S,I_1),M_2=(S,I_2)),定义(M_1)(M_2)的交是所有的集合(A),满足(A)同时在两个拟阵内都是独立的。

拟阵交问题一般是求两个拟阵的公共独立集中最大的独立集。这个问题的难点在于两个拟阵的交并不一定还是拟阵。接下来的一个定理可以解决这个问题。

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

(maxlimits_{Ain I_1cap I_2}|A|=minlimits_{Tsubseteq S}(r_1(T)+r_2(Ssetminus T)))

先给出(maxlimits_{Ain I_1cap I_2}|A|leminlimits_{Tsubseteq S}(r_1(T)+r_2(Ssetminus T)))的证明:
(|I|=|Icap T|+|Icap Ssetminus T|le r_1(T)+r_2(Ssetminus T))
然后如果我们能够给出一组(I,T)使得等号成立,那么我们就证明了这个定理。
接下来我们会给出算法构造性地证明该定理。

定义(6.2)

对于拟阵(M=(S,I))(Asubseteq S),定义(A)的闭包算子(cl(A)={ein S|r(Acup{e})=r(A)})

引理(6.1)

对于拟阵(M=(S,I)),如果(Asubseteq Bsubseteq S),那么(cl(A)subseteq cl(B))

假设有一个(ein cl(A))。由次模性可知(r(Acup{e})+r(B)ge r((Acup{e})cap B)+r((Acup{e})cup B)ge r(A)+r(Bcup{e}))
因为(r(Acup{e})=r(A)),所以(r(B)ge r(Bcup{e}))(r(B)=r(Bcup{e}))。因此(ein cl(B))。因为(forall ein cl(A)),有(ein cl(B)),所以(cl(A)subseteq cl(B))

引理(6.2)

对于拟阵(M=(S,I))(Asubseteq S,forall ein cl(A),cl(A)=cl(Acup{e}))

由引理(6.1)可知(cl(A)subseteq cl(Acup{e})),因此只需证(cl(Acup{e})subseteq cl(A))
具体证明类似于引理(6.1)的证明,此处不做赘述。

引理(6.3)

对于拟阵(M=(S,I))(Asubseteq S,cl(A)=cl(cl(A)))

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

定理(6.2)(强基交换定理)

对于任意拟阵(M),若(M)有两个不相同的基(A,B),那么(forall xin Asetminus B,exists yin Bsetminus A,s.t.A-{x}+{y},B-{y}+{x})都是(M)的基。

因为(B)是基,所以(B+{x})包含一个唯一的环(C)(xin C)。所以有(xin cl(C-{x}))。由引理(1)可得(cl(C-{x})subseteq cl((Acup C)-{x})),所以(xin cl((Acup C)-{x}))。由引理(2)可得(cl((Acup C)-{x})=cl(Acup C))
因为(A)是基,所以(Ssubseteq cl(A)subseteq cl(Acup C)),即(cl((Acup C)-{x})=cl(Acup C)=S)。因此(cl((Acup C)-{x}))一定包含一个基,记之为(A')
因为(A')(A-{x})都是独立集,且有(|A-{x}|<|A|=|A'|),所以一定存在(yin A'setminus(A-{x}),s.t.A-{x}+{y})是基。
因为(A'setminus(A-{x})subseteq C-{x}subseteq B),所以一定存在(yin B,s.t.A-{x}+{y})是基。同时由于(C)是环,所以(B-{y}+{x})也是基。命题得证。

接下来我们将提出一种算法。从空集开始扩展,直到得到最大的独立集(A)。同时还可以构造出(T),以此证明这就是我们要求的最大独立集。

定义(6.3)

对于拟阵(M=(S,I))和独立集(Ain I),定义(M)(A)的交换图(D_M(A))(G=(V,E))。其中(V=S,E={(y,x)|xin Ssetminus A,yin A,A-{y}+{x}in I})。很显然(G)是一个二分图。

引理(6.4)

(A,B)都是(M)的独立集且(|A|=|B|),那么(D_M(A))中存在一个关于(Asetminus B)(Bsetminus A)的完美匹配。

定义一个新的拟阵(M'=(S,I'),I'={A'in I||A'|le|A|})。那么(A,B)都是(M')的基。
然后利用强基交换定理即可递归证明。

定理(6.3)

(A)(M=(S,I))的独立集,(Bsubseteq Swedge|B|=|A|)(D_M(A))中存在唯一的(Asetminus B)(Bsetminus A)的完美匹配(Rightarrow Jin I)

先转有向图,把不属于这个匹配的边反向,那么这一定是个拓扑图,然后给每个点标号使得边都从小号到大号,然后再利用反证法即可。

定义(6.4)

对于矩阵(M_1=(S,I_1),M_2=(S,I_2))(Ain I_1cap I_2),定义(A)的交换图(D_{M_1M_2}(A)=(V,E))。其中(V=S,E={<y,x>|xin Ssetminus A,yin A,A-{y}+{x}in I_1}cup{<x,y>|xin Ssetminus A,yin A,A-{y}+{x}in I_2})

然后我们开始叙述算法流程。

( ext{1:})(A=emptyset),定义(X_1={x otin A|A+{x}in I_1},X_2={x otin A|A+{x}in I_2})

( ext{2:})每次在交换图(D_{M_1M_2})中找到一条(X_1)(X_2)的最短路(P),然后令(A)变为(ADelta P(ADelta B=(Acup B)setminus(Acap B)))
我们称这个过程为增广过程,每次增广会扩张恰好(1)个元素。

( ext{3:})重复增广过程直到找不到任意一条(X_1)(X_2)路径,此时我们就得到了最大的(A),并得到了(T={xin S|x)可以到达(X_2})

( ext{4:})如果(X_1cap X_2)非空,那么我们将会直接拓展一个(X_1cap X_2)中的元素。

然后来证明这个算法的正确性。我们需要证明两点:
一是最后算法运行结束之后,(|A|=r_1(T)+r_2(Ssetminus T))
二是算法运行中的任意一个时刻(ADelta P)都是独立集。
证明咕了,有空再说吧。
现在(假装)我们证明了上述算法的正确性,同时证明了最小最大定理,并给出了一个求拟阵交的算法。

时间复杂度

(r=max(r_1(S),r_2(S)),n=|S|),我们每次构建出来的图都是(n)个点,(rn)条边的图。
在无权图上找最短路的复杂度是(O(n+m))的,因此单次增广的复杂度就是(O(rn))的。
因为每次增广独立集中必然增加一个元素,所以增广次数不会超过(r)次。
因此拟阵交算法的复杂度为(O(r^2n))

带权拟阵交

给定(f:S ightarrowmathbb R),要求(maxlimits_{Ain I_1cap I_2}sumlimits_{ein A}f(e))

给交换图中的点定义点权(w(e))
(forall xin A,w(x)=-f(x))
(forall xin Ssetminus A,w(x)=f(x))
然后我们把增广找的路径变成:在路径上的点的点权和最大的情况下经过的边数最少的(X_1)(X_2)的路径即可。

复杂度

求增广路径由(O(n+m))变成(O(nm))(因为有负权边所以只能用SPFA),所以总复杂度就是(O(r^2n^2))

多个拟阵交

NP-Hard

拟阵的并

之后再说。

原文地址:https://www.cnblogs.com/cjoierShiina-Mashiro/p/11600544.html