拟阵理论选学

\(\mathrm{By DaiRuiChen007}\)

1. 拟阵的定义

1a. 拟阵的定义

拟阵(Matroid)\(M=(E,\mathbf I)\),其中 \(\mathbf I\)\(E\) 的某些子集构成的集合,其中 \(\mathbf I\) 中的元素一般也被称为独立集。

\(M=(E,\mathbf I)\) 需要满足如下公理才能被称为拟阵:

  • 非空性:\(\varnothing\in \mathbf I\)
  • 遗传性:\(\forall I\in \mathbf I,J\subseteq I\implies J\in \mathbf I\)
  • 交换性:\(\forall A,B\in\mathbf I\)\(|A|<|B|\)\(\exists x\in B\setminus A\) 使得 \(A\cup\{x\}\in\mathbf I\)

1b. 常见拟阵

均匀拟阵(Uniform Matroid):\(E=\{1,2,\dots,n\}\)\(I\in\mathbf I\iff |I|\le k\),容易验证该矩阵具有遗传性和交换性。

图拟阵(Graphic Matroid):\(E\) 是图的边集,\(I\in\mathbf I\) 当且仅当 \(I\) 中无环,即 \(\mathbf I\) 是图中所有森林构成的集合,下证该拟阵满足拟阵公理:

首先 \(I\) 的子集一定也是森林,因此遗传性显然成立。

然后考虑交换性:考虑 \(|A|<|B|\) 且不存在这样的 \(x\),那么 \(B\) 中的每条边一定只能连接 \(A\) 中相同连通块中的点,此时一定有 \(|B|\le |A|\),故交换性也成立。\(\square\)

向量拟阵(Vector Matroid):\(E\) 为若干向量,\(I\in\mathbf I\) 当且仅当 \(I\) 中向量线性无关,根据线性代数的只是可以证明拟阵公理成立。

常规拟阵(Regular Matroid):在任何域上都能通过 Vector Matroid 表示的拟阵,对于图拟阵,我们可以对第 \(i\) 条边取 \(x_{i,u_i}=1,x_{i,v_i}=-1\) 从而表示。

任何 Regular Matroid 都能通过行列式计算 \(|\mathbf I|\) 的大小,在图拟阵上,这就是矩阵树定理。




2. 拟阵的基

2a. 拟阵基的定义

拟阵的基(Basis)是 \(\mathbf I\) 中极大的若干独立集,即 \(S\in\mathbf I\)\(\forall S\subsetneq S'\) 都有 \(S'\not\in\mathbf I\),记所有的基构成的集合为 \(\mathbf B\)

一个性质是一个拟阵所有的基大小都相等,否则取 \(I,J\in\mathbf B\)\(|I|>|J|\),可以根据矩阵交换性找到 \(x\) 使得 \(J+x\in \mathbf I\),从而违背 \(J\) 的极大性。

2b. 拟阵基公理

拟阵的基 \(\mathbf B\) 满足如下两条公理:

  • 非空性:\(|\mathbf B|>0\)
  • 基交换性:\(\forall X,Y\in \mathbf B,X\ne Y\)\(\forall x\in X\setminus Y,\exists y\in Y\setminus X\) 使得 \(X-x+y\in \mathbf B\)

下证任意拟阵 \(M=(E,\mathbf I)\) 的基都满足如下公理:

首先非空性是显然成立的。

其次对于基交换性,可以考虑 \(A=X-x\)\(Y\) 两个独立集,根据拟阵交换性知道存在 \(y\in Y\setminus A\) 使得 \(A+y\in \mathbf I\)

又因为 \(x\in X\setminus Y\),因此 \(Y\setminus X=Y\setminus(Y\cap X)=Y\setminus(Y\cap A)=Y\setminus A\),因此此时的 \(y\) 即为所求。\(\square\)

2c. 拟阵的基定义

事实上拟阵 \(M\) 可以由 \(E\)\(\mathbf B\) 定义得到,即已知任何一个满足上述基公理的集合 \(\mathbf B\),都能唯一确定一个拟阵 \(M=(E,\mathbf B)\) 使得 \(M\) 的基恰好是 \(\mathbf B\)

首先证明满足基公理的 \(\mathbf B\) 中的每个元素大小一定都相等:

一个显然的事实是 \(\forall X,Y\in \mathbf B\),一定不存在 \(Y\subsetneq X\),即 \(\mathbf B\) 中没有元素有真子集关系,否则 \(Y\setminus X=\varnothing\),必然违背基交换性。

反证法考虑 \(X,Y\in \mathbf B\)\(|X|<|Y|\),由于基交换性,我们可以取 \(x\in X\setminus Y,y\in Y\setminus X\),使得 \(X'=X-x+y\in \mathbf B\)

此时 \(|X'|=|X|<|Y|\),且 \(X'\setminus Y\) 严格减小,因此可以不断递归直到 \(|X\setminus Y|=0\),此时即有 \(X\subsetneq Y\),导出矛盾,因此原命题成立。\(\square\)

可以猜测通过 \((E,\mathbf B)\) 构造出来的拟阵 \(M=(E,\mathbf I)\) 应该满足 \(\mathbf I=\{X\mid X\subseteq B,B\in \mathbf B\}\),即 \(\mathbf B\) 中元素的子集并,以下给出证明:

先证明 \(M=(E,\mathbf I)\) 是一个拟阵:首先根据定义,很自然的有遗传性和非空性,因此我们只要证明交换性即可。

我们考虑证明以下两个条件不可能同时发生:

  1. \(\exists A,B\in \mathbf I\)\(|A|<|B|\)
  2. \(\forall b\in B\setminus A\),总有 \(A+b\not\in\mathbf I\)

那么反证法,我们进一步证明:总存在一组 \(A,B\),在满足条件 (1),(2) 的基础上,还能满足下述的条件 (3):

  1. \(\forall a\in A\setminus B\),总有 \(B+a\not\in \mathbf I\)

对于一组满足 (1),(2) 的 \(A,B\),假设 \(\exists a\in A\setminus B\) 使得 \(B+a\not\in I\),那么我们令 \(B'= B+a\),此时条件 (1) 仍然满足,条件 (2) 由于仍然有 \(B'\setminus A=B\setminus A\),也是成立的。

因此不断递归下去,\(|B|\) 的大小不可能无限增长,因此必然在某个时刻存在这样的 \(A,B\) 同时满足条件 (1),(2),(3)。

进一步还能找到一个同时满足条件 (1),(2),(3),(4) 的 \(A,B\),其中条件 (4) 是:

  1. \(B\in \mathbf B\)

可以调整,由于 \(B\not\in \mathbf B\),因此一定有 \(x\) 使得 \(x+B\in \mathbf I\),此时考察 \(A+x\)

  • \(A+x\in \mathbf I\)\(x\in A\),取 \(A'=A+x,B'=B+x\)

    首先条件 (1) 显然满足。

    由于 \(B'\setminus A'=B\setminus A\),那么 \(A'+b=A+b+x\not\in\mathbf I\),因此条件 (2) 满足。

    由于 \(A'\setminus B'=A\setminus B\),因此 \(B'+a=B'+a+x\not\in\mathbf I\),因此条件 (3) 满足。

  • 否则取 \(A'=A,B'=B+x\)

    条件 (1) 显然满足。

    由于 \(B'\setminus A'=B\setminus A+x\),那么 \(b\ne x\) 时一定有 \(A+b\not\in\mathbf I\),又因为 \(A+x\not\in \mathbf I\),因此条件 (2) 满足。

    由于 \(A'\setminus B'=A\setminus B\),因此 \(B'+a=B+a+x\not\in \mathbf I\),因此条件 (3) 满足。

那么对于满足条件 (1),(2),(3),(4) 的 \(A,B\),根据定义可以找到一个 \(C\) 使得 \(A\cap C=\varnothing\)\(A+C\in \mathbf B\),由于 \(|A|<|B|\) 因此 \(|C|>0\)

此时如果 \(C\cap B\ne \varnothing\),那么取 \(b\in C\cap B\),那么 \(A+b\in\mathbf I\)\(b\in B\setminus A\),已经导出矛盾。

否则我们可以根据基交换性,删除一个 \(C\) 中元素再加入一个 \(B\setminus(A+C)\) 中元素,得到 \(C'\) 使得 \(A\cap C'=\varnothing,A+C'\in\mathbf B,C'\cap B\ne\varnothing\),从而导出矛盾,故原命题得证。\(\square\)

然后我们还要证明这样的 \(M=(E,\mathbf I)\) 可以被 \((E,\mathbf B)\) 唯一生成,且其基恰为 \(\mathbf B\)

先证明基为 \(\mathbf B\),这是显然的,因为根据定义 \(|\mathbf I|\) 中取到极大的元素一定恰好是 \(\mathbf B\) 中全体元素。

其次不可能存在两个拟阵被这样的 \(\mathbf B\) 生成,首先这两个拟阵的极大元素集合都一样是 \(\mathbf B\),根据遗传性,\(\mathbf I\) 中必然包含且只能包含 \(\mathbf B\) 中元素的子集,因此这样的 \(\mathbf I\) 唯一。\(\square\)

因此我们可以任取一个满足拟阵基公理的 \(\mathbf B\),通过 \(M=(E,\mathbf B)\) 来定义一个拟阵。




3. 拟阵的秩函数

3a. 秩函数的定义

拟阵的秩函数(rank function)\(r(A)\) 是一个 \(2^E\to \mathbb N\) 的函数,定义域是 \(E\) 的幂集,定义为 \(r(A)=\max\{|X|\mid X\subseteq A,X\in\mathbf I\}\),即 \(A\) 中的最大独立子集。

3b. 秩函数公理

  • 边际性(Binary Marginal):\(r(\varnothing)=0\)\(r(A+x)-r(A)\in\{0,1\}\)
  • 次模性(Submodular):\(\forall A\subsetneq B,x\not\in B\)\(r(B+x)-r(B)\le r(A+x)-r(A)\)

下证任意拟阵 \(M=(E,\mathbf I)\) 都满足如下公理:

边际性较为显然,如果 \(r(A+x)-r(A)>1\),取 \(r(A+x)\) 的最大独立子集 \(I\in\mathbf I\)\(I-x\in\mathbf I\)\(|I-x|>r(A)\)\(I-x\subseteq A\),导出矛盾。

然后证次模性:我们只需要证明 \(r(B+x)-r(B)=1\implies r(A+x)-r(A)=1\)

事实上我们可以证明:\(r(B+x)-r(B)=1\) 时,\(\forall I\subseteq B,I\in\mathbf I\) 都有 \(I+x\in\mathbf I\)

根据拟阵交换性,我们首先可以找到一个 \(J\subseteq B\)\(|J|=r(B)\)\(I\subseteq J\),即一个 \(B\) 的最大独立子集包含 \(I\)

由于 \(|J|<r(B+x)\),我们还能进一步通过拟阵交换性构造 \(J+y\subseteq B+x\),且 \(J+y\in\mathbf I\)

由于 \(I+x\subseteq J+y\),因此根据拟阵遗传性有 \(I+x\in\mathbf I\)

根据上面的结论,取出 \(A\) 的最大独立子集 \(U\)\(U+x\in \mathbf I\),因此 \(r(A+x)\ge|U+x|=r(A)+1\),再运用边际性即得 \(r(B+x)-r(B)=1\implies r(A+x)-r(A)=1\)\(\square\)

事实上,次模性也常常被写作另一种形式:\(r(A\cap B)+r(A\cup B)\le r(A)+r(B)\),下证这两种定义形式是等价的:

先考虑推出这种形式:由于 \(A\cup B=A\cap B+A\setminus B+B\setminus A\),根据次模性不断在 \(A\)\(A\cap B\) 的基础上加入 \(B\setminus A\) 的元素,得到 \(r(B)-r(A\cap B)\ge r(A\cup B)-r(A)\),原命题得证。

然后考虑根据这种形式推出原公理:注意到 \((A+x)\cup B=B+x,(A+x)\cap B=A\),那么有 \(r(A+x)+r(B)\ge r(B+x)+r(A)\),同样得证。\(\square\)

3c. 拟阵的秩函数定义

对于任意的 \(2^E\to \mathbb N\) 的映射 \(r(A)\) 如果满足秩函数公理,那么可以通过 \((E,r)\) 唯一确定一个拟阵 \(M\) 使得 \(M\) 的秩函数恰好是 \(r\)

先考虑如何求出拟阵 \(M=(E,\mathbf I)\),显然 \(\mathbf I=\{I\mid r(I)=|I|\}\),那么我们就要证明这个拟阵满足拟阵公理:

根据边际性,若 \(A+x\in \mathbf I\),那么 \(r(A)\ge r(A+x)-1=|A|\),因此 \(A\in\mathbf I\)

然后证明交换性,对于 \(A,B\in \mathbf I\) 满足 \(|A|<|B|\),我们要找到一个 \(x\in B\setminus A\) 使得 \(A+x\in\mathbf I\)

不妨反证法,设 \(\forall x\in B\setminus A\) 都有 \(A+x\not\in\mathbf I\),即 \(r(A+x)=r(A)\)

那么根据边际性,取 \(x,y\in B\setminus A\)\(r(A+x+y)-r(A+x)\le r(A+y)-r(A)=0\),那么 \(r(A+x+y)=r(A)\)

不断递推最终能得到 \(r(B)=r(A)\),与 \(|B|>|A|\) 矛盾,故交换性成立。\(\square\)

然后我们要证明 \(r\) 就是这个拟阵 \(M=(E,\mathbf I)\) 的秩函数:

设该拟阵的秩函数为 \(\mathrm{rank}(A)\),我们要证明 \(\mathrm{rank}(A)=r(A)\),取出 \(A\) 的最大独立子集 \(I\)

根据定义 \(\mathrm{rank}(A)=|I|\),接下来要证明 \(r(A)=|I|\)

首由于 \(I\) 是最大独立子集,那么 \(\forall x\in A\setminus I\) 都有 \(r(I+x)=r(I)\)

那么根据次模性,任取 \(x,y\in A\setminus I\) 都有 \(r(I+x+y)-r(I+x)\le r(I+y)-r(I)=0\),因此 \(r(I+x+y)=r(I)\)

不断递推有 \(r(A)=r(I)=|I|=\mathrm{rank}(A)\)\(\square\)

那么我们知道可以通过任意满足秩函数公理的的 \(2^E\to \mathbb N\) 函数 \(r(A)\) 定义拟阵 \(M=(E,r)\)




4. 拟阵上的最大权独立集

4a. 贪心算法

\(E\) 中元素有权值,集合权值 \(w(A)\) 定义为每个元素权值和。

拟阵上的最大权独立集就是 \(\max\{ w(I)\mid I\in\mathbf I\}\)

做法就是把元素按权值从大到小排序,维护集合 \(A\),每个元素 \(x\) 如果 \(A+x\in \mathbf I\) 就加入,否则不加入。

在图拟阵上,这就是常见的 Kruskal 最小生成树算法。

4b. 算法正确性证明

我们要证明这个算法的正确性。

首先根据拟阵交换性,最优解和贪心解一定都是拟阵的一组基,否则可以继续加元素。

因此我们只要考虑两个解大小相同的情况。

设贪心解为 \(A=\{a_1,a_2,\dots,a_k,a_{k+1},\dots,a_{k+m}\}\)

设最优解为 \(B=\{a_1,a_2,\dots,a_k,b_{k+1},\dots,b_{k+m}\}\)

其中元素按权值大小从大到小排列且 \(w(b_{k+1})\le w(a_{k+1})\)

显然 \(m>1\) 否则必有 \(w(A)\ge w(B)\)

此时取 \(A_1=\{a_1,a_2,\dots,a_k,a_{k+1}\}\),由于 \(|A_1|<|B|\) 那么通过拟阵交换性可以找到 \(b\in B\setminus A_1=\{b_{k+1},b_{k+2},\dots,b_{k+m}\}\) 使得 \(A_1+b\in\mathbf I\),记为 \(A_2\),同理求出 \(A_3,A_4,\dots,A_m\)

此时 \(A_m\) 等于 \(A_1\) 并上 \(B\setminus A=\{b_{k+1},b_{k+2},\dots,b_{k+m}\}\) 中的 \(m-1\) 个元素,由于 \(w(A_{k+1})\) 大于等于 \(B\setminus A\) 中所有元素。

因此 \(A_m\) 必然也是一组最优解,而 \(|A_m\cap A|=k+1\) 此时两个集合并大小变大,不断调整最终会得到某个 \(B\) 使得 \(|B\cup A|=k+m\),此时 \(A=B\) 也是最优解,故原命题得证。\(\square\)




5. 对偶拟阵

5a. 对偶拟阵的定义

对偶拟阵(Dual Matroid)由一个拟阵 \(M=(E,\mathbf B)\)(根据基定义表示)定义:其对偶拟阵 \(M^*=(E,\mathbf B^*)\),其中 \(B^*=\{\overline B\mid B\in\mathbf B\}\)

5b. 对偶拟阵性质的证明

首先我们要证明 \(M^*\) 是一个拟阵:

\(M^*=(E,I^*)\),其中 \(I^*\)\(\mathbf B^*\) 所有元素的子集并。

我们考虑拟阵的秩函数定义,求 \(M^*\) 的秩函数 \(r^*(A)\)

那么:

\[\begin{aligned} r^*(A) &=\max_{B\in\mathbf B^*}\{|A\cap B|\}\\ &=\max_{B\in \mathbf B^*}\{|A\cup \overline B|+|B|-|E|\}\\ &=\max_{B\in \mathbf B}\{|A\cup B|\}-|E|+r^*(E)\\ &=\max_{B\in\mathbf B}\{|A|+|B|-|A\cap B|\}-r(E)\\ &=|A|-\min_{B\in\mathbf B}\{|A\cap B|\}\\ &=|A|-\min_{B\in\mathbf B}\{|B|-|\overline A\cap B|\}\\ &=|A|-r(E)+r(\overline A) \end{aligned} \]

验证一下秩函数的边际性:\(r^*(A+x)-r^*(A)=1-(r(\overline A)-r(\overline{A+x}))\in\{0,1\}\)

秩函数的次模性:\(r^*(B+x)-r^*(B)=1\)\(r(\overline B)=r(\overline{B+x})\),此时 \(r(\overline A)-r(\overline{A+x})\le r(\overline B)-r(\overline{B+x})=0\)

因此 \(r(\overline A)=r(\overline {A+x})\) 从而 \(r(A+x)-r(A)=1-r(\overline A)+r(\overline {A+x})=1\)

因此我们验证了 \(M^*\) 的秩函数满足拟阵秩函数公理,从而 \(M^*=(E,r^*)\) 是拟阵。

5c. 对偶拟阵的应用

比较经典的对偶拟阵是图拟阵的对偶(Co-Graphic Matroid),分析一下发现这个拟阵的基是所有生成树的补,那么拟阵的所有元素都满足:删除后原图联通,即该拟阵是原图割集的补集。

图对偶拟阵可以用来求图上是否有两棵不相交的生成树:只要判断图拟阵和对偶图拟阵的交中是否含有大小 \(\ge n-1\) 的边集即可。

这个算法可以求解 Shannon's Switching Game:

A 和 B 轮流在图上删除/保留边,两人操作过的边不能操作,如果某一时刻 B 保留的边形成生成树那么 B 获胜。

这个游戏后手的必胜条件就是图中有两棵边不交的生成树。




6. 拟阵的环

6a. 拟阵环的定义

拟阵中的一个环(Circuit)被定义为一个极小的非独立子集,即 \(C\) 是环当且仅当 \(C\not\in\mathbf I\)\(\forall C'\subsetneq C\) 都有 \(C\in\mathbf I\)

在图拟阵上,环就是图上的环。

6b. 拟阵环的性质

拟阵环具有如下性质:

  • 环的大小不是固定的。从图拟阵中就容易构造出例子。

  • 不存在两个环有包含关系。根据定义,这是显然的。

  • \(A\not\in\mathbf I\) 当且仅当存在环 \(C\) 使得 \(C\subseteq A\)

    首先根据拟阵的遗传性,\(C\subseteq A\) 说明 \(A\not\in \mathbf I\)

    然后对于一个非独立集 \(A\),若 \(A\) 不是环,那么必定能找到一个 \(B\subsetneq A\) 使得 \(B\not\in \mathbf I\),不断重复,最终停止时一定能找到一个环作为 \(A\) 的子集。\(\square\)

6c. 唯一环定理

唯一环定理(Unique Circuit Thereom)描述的是:对于任意 \((A,x)\) 满足 \(A\in\mathbf I\)\(A+x\not\in \mathbf I\),都能证明 \(A+x\) 中只有恰好一个环,记为 \(C(A,x)\),下面给出证明:

根据推论,显然 \(A+x\) 中不可能无环。

我们只需证明不存在两个环 \(C_1,C_2\) 满足 \(C_1\ne C_2\)\(C_1,C_2\subseteq A+x\)

由于 \(C_1\ne C_2\) 且根据推论 \(C_1,C_2\) 之间无包含关系,因此我们可以取 \(e\in C_1\setminus C_2\)

此时根据环的极小性定义,\(C_1-e\in\mathbf I\)

然后根据拟阵交换性,我们可以逐步向 \(C_1-e\) 中加入 \(A\) 的元素,因此存在 \(B\subseteq A+x\)\(B\in\mathbf I\)\(C_1-e\subseteq B\)\(|B|=|A|\)

不妨假设 \(A+x-B=f\),那么考虑 \(f\) 的性质:

  • 首先 \(f=e\) 时由于 \(e\in C_1\setminus C_2\),此时 \(f\not\in C_2\) 从而 \(C_2\subseteq B\),与 \(B\in\mathbf I\) 矛盾。
  • 否则 \(f\ne e\),此时由于 \(C_1-e\subseteq B\),因此 \(f\not\in C_1\) 从而 \(C_1\subseteq B\),与 \(B\in\mathbf I\) 矛盾。

从而推出矛盾,故原结论成立。\(\square\)

唯一环定理的一个推论就是 \(y\in C(A,x)\) 当且仅当 \(A+x-y\in\mathbf I\)

先证明 \(y\in C(A,x)\in \implies A+x-y\in \mathbf I\)

因为 \(C(A,x)\)\(A+x\) 中唯一环,因此 \(C(A,x)\) 必不被 \(A+x-y\) 包含,故 \(A+x-y\in\mathbf I\)

然后证明 \(A+x\not\in \mathbf I,A+x-y\in \mathbf I\implies y\in C(A,x)\)

首先 \(A\in \mathbf I,A+x\not\in\mathbf I\) 推出 \(C(A,x)\) 存在,如果 \(y\not\in C(A,x)\) 那么 \(C(A,x)\subseteq A+x-y\),则 \(A+x-y\not\in \mathbf I\)

因此 \(y\in C(A,x)\in \iff A+x-y\in \mathbf I\)\(\square\)

6d. 拟阵的增广路

对于一个 \(A\in\mathbf I\),假设存在互异元素序列 \((a_1,b_1,a_2,b_2,\dots,a_k,b_k)\),那么 \(A-a_1+b_1-a_2+b_2-\cdots-a_k+b_k\in\mathbf I\) 在如下条件满足时成立:

  • \(\forall i\in[1,k]:A+b_i\not\in\mathbf I\)
  • \(\forall i\in[1,k],j\in[1,i-1]:a_j\not\in C(A,b_i)\)
  • \(\forall i\in[1,k]:a_i\in C(A,b_i)\)

下面给出证明:

考虑归纳法,对于 \(k=1\) 的情况就是唯一环定理的推论。

然后我们考虑从 \(k-1\) 次操作之后得到的独立集 \(A_{k-1}\in\mathbf I\) 推出 \(A_{k-1}-a_k+b_k\in\mathbf I\)

首先,我们记 \(S=C(A,b_k)-b_k\),由于 \(a_1\sim a_{k-1}\not\in C(A,b_k)\),由此推出 \(S\subseteq A_{k-1}\)

因此 \(S+b_k\subseteq A_{k-1}+b_k\),因此 \(C(A_{k-1},b_k)=S+b_k=C(A,b_k)\)

那么 \(a_k\in C(A_{k-1},b_k)\),显然有 \(A_{k-1}-a_k+b_k\in\mathbf I\)\(\square\)




7. 拟阵交

7a. 拟阵交问题

给定两个拟阵 \(M_1=(E,\mathbf I_1),M_2=(E,\mathbf I_2)\),定义拟阵交为 \(\mathbf I_1\cap \mathbf I_2\) 中的最大元素,即 \(\max\{|I|\mid I\in\mathbf I_1,I\in \mathbf I_2\}\)

7b. 拟阵交的求法

维护答案 \(A\),初始 \(A=\varnothing\),每轮增广使得 \(|A|\) 变大 \(1\)

按如下方式建立一张有向二分图 \(G_A\)

  • 左部点包含所有 \(A\) 中元素,和虚拟源汇点 \(S,T\)
  • 右部点包含所有 \(\overline A\) 中元素。
  • \(\forall x\in \overline A\),如果 \(A+x\in\mathbf I_1\),那么连接 \(S\to x\)
  • \(\forall x\in \overline A\),如果 \(A+x\in\mathbf I_2\),那么连接 \(x\to T\)
  • \(\forall x\in\overline A,y\in A\),如果 \(A-y+x\in \mathbf I_1\),那么连接 \(y\to x\)
  • \(\forall x\in\overline A,y\in A\),如果 \(A-y+x\in \mathbf I_2\),那么连接 \(x\to y\)

\(G_A\) 中找到 \(S\to T\) 的最短路,把路径上所有点在 \(A\) 中的状态取反,作为新的 \(A\)

不断增广直到 \(G_A\) 中不存在 \(S\to T\) 的道路,此时 \(A\) 即为一个最大拟阵交。

\(r=\max(r_1(E),r_2(E))\),那么每次建立的 \(G_A\) 点数 \(\mathcal O(|E|)\),边数 \(\mathcal O(r|E|)\),增广轮次 \(\mathcal O(r)\)

时间复杂度 \(\mathcal O(r^2|E|)\)

7c. 拟阵交算法正确性证明

首先我们来验证,每轮增广结束后,\(A\) 都是 \(\mathbf I_1\cap\mathbf I_2\) 中的元素:

设该增广路为 \(S\to b_0\to a_1\to b_1\to\cdots\to a_k\to b_k\to T\),其中 \(a_i\in A,b_i\in \overline A\)

\(I=S+b_0\),我们用拟阵增广路的判定来证明 \(I-a_1+b_1-a_2+b_2-\dots-a_k+b_k\in\mathbf I_1\)

我们先说明 \(\forall x\in\overline A,A+x\not\in \mathbf I_1\),一定有 \(C_1(A,x)=C_1(I,x)\),由于 \(I\in\mathbf I_1,I+x\not\in \mathbf I_1\),因此 \(C_1(I,x)\) 存在,又因为 \(C_1(A,x)\subseteq I+x\),根据唯一环定理,\(C_1(A,x)\) 也是 \(I+x\) 中的唯一环,即 \(C_1(A,x)=C_1(I,x)\)

  • \(\forall i\in [1,k]\),满足 \(I+b_i\not\in\mathbf I_1\)

    反证法,假设存在 \(I+b_i\in\mathbf I_1\),那么 \(A+b_i\in \mathbf I_1\),因此 \(G_A\) 中包含边 \(S\to b_i\),那么我们直接取增广路 \(S\to b_i\to a_{i+1}\to b_{i+1}\to\cdots\to a_k\to b_k\to T\) 可以得到一条更短的增广路,与当前增广路最短性矛盾。

  • \(\forall i\in[1,k],j\in[1,i-1]\),满足 \(a_j\not\in C_1(I,b_i)\)

    反证法,假设存在 \(a_j\in C_1(I,b_i)\),那么 \(a_j\in C_1(I,b_i)=C_1(A,b_i)\),因此 \(A-a_j+b_i\in \mathbf I_1\),因此 \(a_j\to b_i\)\(G_A\) 中,把原增广路中 \(a_j\to b_j\to a_{j+1}\to\cdots\to b_i\) 的部分替换成 \(a_j\to b_i\) 一定更优,与当前增广路的最短性矛盾。

  • \(\forall i\in [1,k]\),满足 \(a_i\in C_1(I,b_i)\)

    由于 \(a_i\to b_i\)\(G_A\) 中,因此 \(A-a_i+b_i\in \mathbf I_1\),那么 \(a_i\in C_1(I,b_i)=C_1(A,b_i)\)

因此 \(I-a_1+b_1-a_2+b_2-\dots-a_k+b_k\in\mathbf I_1\),反向考虑整条增广路,类似可证 \((A+b_k)-a_{k}+b_{k-1}-\cdots -a_1+b_0\in\mathbf I_2\)

综上,我们得到每次增广后的 \(A\) 依然属于 \(\mathbf I_1\cap\mathbf I_2\)\(\square\)

7d. 拟阵交算法最优性证明

其次我们验证:当该算法停止时,\(A\) 一定是一个大小最大的拟阵交。

为了证明 \(A\) 的极优性,我们需要一定的放缩:\(\forall I\in\mathbf I_1\cap \mathbf I_2\) 都有 \(|I|\le \min\{r_1(S)+r_2(\overline S)\mid S\subseteq E\}\)

这是因为 \(I\cap S\in\mathbf I_1\implies |I\cap S|\le r_1(S)\),同理 \(|I\cap \overline S|\le r_2(\overline S)\),因此原式成立。

然后我们只需要找到一个 \(U\) 使得 \(r_1(U)+r_2(\overline U)\le |A|\),那么我们就能说明 \(|A|\)\(\mathbf I_1\cap \mathbf I_2\) 中最大元素。

我们取 \(R\) 为当前 \(G_A\)\(S\) 出发可达的点,\(U=\overline R\),我们能够证明 \(|A\cap R|\ge r_2(R)\)\(|A\cap\overline R|\ge r_1(\overline R)\)

先证明 \(|A\cap R|\ge r_2(R)\)

反证法,假设 \(r_2(R)>|A\cap R|\),那么 \(R\)\(\mathbf I_2\) 中的最大独立集一定至少包含一个 \(\overline{A\cap R}\) 的点,那么根据拟阵的交换性,我们能够从 \(A\cap R\) 开始调整,找到一个 \(y\in R\setminus A\) 使得 \(A\cap R+y\in \mathbf I_2\)

如果 \(A+y\in \mathbf I_2\),那么存在一条边 \(y\to T\),而 \(y\in R\),那么就存在一条 \(S\to T\) 的增广路,所以一定有 \(A+y\not\in\mathbf I_2\)

然后考虑 \(C_2(A,y)\),由于 \(A\cap R+y\in\mathbf I_2\),因此 \(A\cap R+y\) 不包含 \(C_2(A,y)\),所以至少存在一个 \(x\in A\setminus R\) 使得 \(x\in C_2(A,y)\)

那么此时 \(A-x+y\in\mathbf I_2\),存在一条 \(y\to x\) 的边,与 \(x\in\overline R\) 导出矛盾。

对于 \(|A\cap\overline R|\ge r_1(\overline R)\) 的证明也是类似的,故存在 \(U\) 使得 \(r_1(U)+r_2(\overline U)\le |A|\)

因此 \(|A|=\max\{|I|\mid I\in\mathbf I_1\cap \mathbf I_2\}\)\(\square\)

综上所述,我们证明了这个算法一定能求出 \(\mathbf I_1\cap \mathbf I_2\) 中最大的一个元素。

7e. 带权拟阵交

\(E\) 中每个元素赋权值 \(w(x)\),定义 \(w(I)=\sum_{x\in I} w(x)\),求 \(\max\{w(I)\mid I\in\mathbf I_1\cap\mathbf I_2\}\)

我们在构造 \(G_A\) 的时候给每个点赋权值,若 \(x\in A\) 则权值为 \(w(x)\),否则赋权值为 \(-w(x)\),每次增广的时候优先选择权值和最小的增广路,如果有多条则选择经过点数最少的一条进行增广。

时间复杂度 \(\mathcal O(r^2|E|^2)\),其中 \(r=\max(r_1(E),r_2(E))\)

7f. 拟阵交的应用

  • 带限制 MST

    给定若干条特殊边,要求特殊边不能选择超过 \(k\) 条,求 MST。

    建立两个拟阵,一个是图拟阵,另一个是特殊边 \(\le k\) 的边集的集合,求带权拟阵交。

  • 最小树形图

    给定一张有向图,求出以 \(x\) 为根的最小外向树。

    建立两个拟阵,第一个表示除 \(x\) 外每个点入度 \(\le 1\) 的边集,第二个表示将图看成无向图后没有环,求带权拟阵交。

  • Colorful Tree

    给定带权无向图,每条边有 \([1,n-1]\) 之间的颜色,要求每种边恰选一条,求 MST。

    建立两个拟阵,一个是图拟阵,另一个是每种颜色至多选一条的边集,求带权拟阵交。

7g. 多个拟阵的交

\(>2\) 个的拟阵的交中的最大元素是 NP-Complete 的,具体的,我们可以把哈密尔顿路径问题归约到该问题上:

哈密尔顿问题是指:给定一张有向图 \(G=(V,E)\),找到一条 \(s\to t\) 的简单路径经过 \(|V|\) 个点,接下来把这个问题归约到 \(3\) 拟阵交上。

  • 第一个拟阵:定义为将图看成无向图后没有环。
  • 第二个拟阵:定义为除 \(s\) 之外所有点入度 \(\le 1\)
  • 第三个拟阵:定义为除 \(t\) 之外所有点出度 \(\le 1\)

答案就是这三个拟阵的交中的最大元素,哈密尔顿路存在当且仅当该元素大小为 \(|V|-1\)




8. 拟阵并与拟阵划分问题

8a. 拟阵并的定义

定义两个拟阵 \((E,\mathbf I_1),(E,\mathbf I_2)\),那么他们的拟阵并 \((E,\mathbf I)\) 定义为:\(\mathbf I=\{I_1\cup I_2\mid I_1\in\mathbf I_1,I_2\in\mathbf I_2\}\),记为 \(\mathbf I=\mathbf I_1\cup \mathbf I_2\)

接下来证明 \((E,\mathbf I)\) 确实是一个拟阵:

拟阵的遗传性根据 \(\mathbf I_1,\mathbf I_2\) 的遗传性显然得证,那么只需证明拟阵的交换性。

对于两个集合 \(A,B\in \mathbf I\),且 \(|B|>|A|\),我们要找到 \(x\in B\setminus A\) 使得 \(A+x\in\mathbf I\)

先设 \(A=A_1+A_2,B=B_1+ B_2\),其中 \(A_1,B_1\in\mathbf I_1,A_2,B_2\in\mathbf I_2\)\(A_1\cap A_2=B_1\cap B_2=\varnothing\)

由于 \(|A_1|+|A_2|<|B_1|+|B_2|\),那么 \(|A_1|<|B_1|\)\(|A_2|<|B_2|\) 中至少有一条成立,不妨设 \(|A_1|<|B_1|\)

根据拟阵 \((E,\mathbf I_1)\) 的交换性,取 \(x\in B_1\setminus A_1\) 使得 \(A_1+x\in\mathbf I_1\),若 \(x\not\in A_2\) 那么 \(x\) 即为所求。

否则 \(x\in A_2\),我们把 \(x\)\(A_2\) 中移动到 \(A_1\) 中,此时 \(x\in A_1,B_1\),得到 \(|A_1\cap B_1|+|A_2\cap B_2|\) 严格增大,故这样的调整不可能无限持续,因此我们总能找到一个合法的 \(x\)\(\square\)

8b. 拟阵并问题

给定 \(k\) 个拟阵 \((E,\mathbf I_1)\sim (E,\mathbf I_k)\),定义拟阵 \((E,\mathbf I)\) 使得 \(\mathbf I=\mathbf I_1\cup \mathbf I_2\cup\cdots\cup\mathbf I_k\),其中拟阵并的定义如上所述,求 \(\mathbf I\) 中的最大元素。

首先我们可以证明 \(I\in \mathbf I\) 当且仅当存在 \(I_1\sim I_k\),满足任意 \(I_p\in\mathbf I_p\)\(I=I_1+I_2\cdots+I_k\) 且任意两个集合无交,这可以通过拟阵的遗传性调整得到。

然后我们可以把 \(I\) 中的元素有这样的形式表示:定义 \(F=E\times \{1,2,\dots,k\}=\{(x,i)\mid x\in E,i\in[1,k]\}\)

那么 \(I=I_1+\cdots+I_k\) 的一种分解方式可以对应到 \(F\) 中的一个子集,\(J=\{(x,i)\mid x\in I_i\}\),且 \(|J|=|I|\)

因此求最大的 \(I\) 可以转成求最大的 \(J\)

\(J_p=\{x\mid (x,p)\in J\}\),即 \(J\) 在第 \(p\) 列上的元素,\(J\) 可以用拟阵交定义:

  • 定义第一个拟阵 \(\mathbf J_1=\{J\mid \forall i\in [1,k]:J_i \in \mathbf I_i\}\),即第 \(i\) 列上的元素在 \(\mathbf I_i\) 中。
  • 定义第二个拟阵 \(\mathbf J_2=\{J\mid \forall 1\le i<j\le k:J_i\cap J_j=\varnothing\}\),即任意两列上的元素无交。

因此最大的 \(I\) 可以通过最大的 \(J\) 表示,而最大的 \(J\) 可以用 \(\mathbf J_1\)\(\mathbf J_2\) 的拟阵交定义。

接下来我们验证 \((F,\mathbf J_1),(F,\mathbf J_2)\) 为拟阵:

首先考虑 \(\mathbf J_1\),由于每列独立,那么遗传性是显然的,而交换性就找某一列上的拟阵使得 \(|A_i|>|B_i|\),用 \(\mathbf I_i\) 的交换性调整即可。

然后考虑 \(\mathbf J_2\),显然有遗传性,而交换性直接找到 \(A\) 中有元素且 \(B\) 中没有元素的一行即可。

因此 \((F,\mathbf J_1),(F,\mathbf J_2)\) 都是拟阵。\(\square\)

那么通过定义新拟阵的拟阵交,我们就把 \(k\) 拟阵并归约到拟阵交上了。

8c. 拟阵并定理

拟阵并定理(Matroid Union Theorem)指的是:

给定拟阵 \((E,\mathbf I_1)\sim (E,\mathbf I_k),(E,\mathbf I),\mathbf I=\mathbf I_1\cup \cdots\cup \mathbf I_k\),设他们的秩函数为 \(r_1(A)\sim r_k(A),r(A)\),那么有:

\[r(E)=\min_{A\subseteq E}\left\{|\overline A|+\sum_{i=1}^kr_i(A)\right\} \]

下面给出证明:

先说明 \(\forall I\in\mathbf I,A\subseteq E\),都有:\(|I|\le |\overline A|+\sum_{i=1}^k r_i(A)\)

考虑把 \(I\) 写成 \(I_1+\cdots+I_k\),其中集合两两无交,那么 \(|I|=|I\cap \overline A|+\sum_{i=1}^k|I_1\cap A|\le |\overline A|+\sum_{i=1}^k r_i(A)\),因此我们只要找到一组 \(I,A\) 使得等号成立即可。

类似解决 \(k\) 拟阵并问题的过程,构造辅助拟阵 \((F,\mathbf J_1),(F,\mathbf J_2)\),设对应的秩函数为 \(r^*_1(A),r^*_2(A)\)

我们先证明关于 \(r_1^*(A)\)\(r_2^*(A)\) 的两个小结论:

  • \(r_1^*(A)=\sum_{i=1}^k r_i(A_i)\),因为 \(A\) 中每一列都独立。
  • \(r_2^*(A)=|A_1\cup A_2\cup\cdots\cup A_k|\),因为 \(A\) 中只包含这些行,且每行都可以选一个元素。

那么根据拟阵交定理的结论,\(r(E)=\max\{|J|\mid J\in \mathbf J_1\cap \mathbf J_2\}=\min_{A}\{r^*_1(A)+r^*_2(\overline A)\}\)

设右式为在 \(U\) 处取到极小值,那么取 \(R=U_1\cap U_2\cap \cdots\cap U_k\)

此时 \(r_1^*(U)=\sum_{i=1}^k r_i(U_i)\ge \sum_{i=1}^k r_i(R)\)\(r_2^*(\overline U)=|\overline{U_1}\cup \overline{U_2}\cup\cdots\cup\overline{U_k}|=|\overline{U_1\cap U_2\cap\cdots\cap U_k}|=|\overline R|\)

因此 \(r(E)=r_1^*(U)+r_2^*(\overline U)\ge \sum_{i=1}^k r_i(R)+|\overline R|\),因此此时的 \(R\) 即可取到等号。

\(r(E)=\min_{A\subseteq E}\left\{|\overline A|+\sum_{i=1}^kr_i(A)\right\}\) 成立。\(\square\)

8d. 拟阵覆盖问题

给定 \(M=(E,\mathbf I)\),最小化 \(k\) 使得存在 \(I_1\sim I_k\in\mathbf I\)\(E=I_1\cup \cdots \cup I_k\)

这个问题是多项式可解的,具体算法可以参考这个链接:Link

但是最小的 \(k\) 可以直接算出:\(k_{\min}=\max_{S}\left\lceil\dfrac{|S|}{r(S)}\right\rceil\),证明如下:

我们定义拟阵 \(\mathbf I_1=\mathbf I_2=\cdots=\mathbf I_k=\mathbf I\),取 \(\mathbf J=\mathbf I_1\cup\cdots\cup\mathbf I_k\),记 \(\mathbf J\) 的秩函数为 \(r^*(A)\)

那么 \(k\) 合法的充要条件是 \(E\in\mathbf J\),即 \(r^*(E)=|E|\),根据拟阵并定理:\(r^*(E)=\min_{A\subseteq E}|\overline A|+k\times r(A)\)

那么 \(\min_{A\subseteq E}k\times r(A)-|A|=0\),即 \(\forall A\subseteq E:k\times r(A)\ge |A|\),因此最小的 \(k\) 至少是 \(\max_{S}\left\lceil\dfrac{|S|}{r(S)}\right\rceil\)

充分性可以逆推,\(k=\max_{S}\left\lceil\dfrac{|S|}{r(S)}\right\rceil\) 时可以导出 \(\min_{A\subseteq E}k\times r(A)-|A|=0\)\(r^*(E)=E\),那么这个 \(k\) 就是合法的。\(\square\)

因此我们可以直接算出最小拟阵覆盖的大小。

posted @ 2024-05-09 20:51  DaiRuiChen007  阅读(46)  评论(0编辑  收藏  举报