做一道联合省选题的时候遇到了这个,之前高爸也屡次♂邀请♂我学它,于是就有了本文。

本文旨在介绍拟阵的概念和应用,其中部分定理不会作出证明,详细的证明请阅读集训队论文。

拟阵第一定义

拟阵(Matroid)是指一个集合与其幂集的子集(family of subset))构成的二元组使得满足:

  1. 遗传性:若,那么,有
  2. 扩张性(也称交换性):对于,一定存在使得

其中被称为基础集被称为独立集则是独立集的集合。

上述两个条件也被称作拟阵公理,它们是拟阵最基本的特征。基于拟阵公理,我们可以容易地理解以下模型的拟阵性。

图拟阵

图拟阵描述的是对于无向图,以边集做为基础集的拟阵,其中当且仅当无环。

从拟阵公理的角度:

  1. 图拟阵的遗传性是显然的。
  2. 扩张性:对于,若,那么图的连通块数一定多余的连通块数,那么一定存在的一个连通块,它在里是不连通的,这时我们就可以找到一条边使得无环,即是独立集。则扩张性成立。

线性空间拟阵

这名字我起的,不够严谨。

线性空间拟阵描述的是以线性空间做为基础集的拟阵,其中当且仅当向量组线性无关。

同样地,从拟阵公理的角度:

  1. 遗传性显然。
  2. 扩张性:对于,若,则中一定存在一个向量不能被中的向量线性表出(如果不存在,那么就能被表出,则中的向量不可能互相线性无关)。

拟阵第二定义

拟阵的第二定义是从秩函数的角度出发。对于基础集和其幂集的子集),定义秩函数(rank function)

的极大独立子集。

那么如果满足如下三个性质,我们就称是拟阵:

  1. 有界性:
  2. 单调性:,有
  3. 次模性:
如何理解次模性

次模性可以理解为边际效益递减,其有一个更直观的等价的表达式:

,有

也就是说我往里加一个元素的秩的增量大于等于里加一个元素的秩的增量。

已经吸纳了这部分元素得到的,于是再吸纳带来的收益就比不上直接吸纳带来的收益。

如果放在全序集合上,这其实就是凸性的体现。

拟阵第一定义和第二定义是可以互推的。

我们同样用两个例子来补充叙述这一定义。

图拟阵:对于图拟阵,其秩函数实质上是的生成森林的边数。其单调性和有界性都很容易证明,而次模性可以使用其第二种表达式来证明。

线性空间拟阵:对于线性空间拟阵,其秩函数描述的是中的最大线性无关组(或者说线性基)的大小。证明不做详细阐述。

接下来我们用拟阵的两种定义来介绍更多关于拟阵的概念,以丰富它的工具性。

基与交换定理

对于拟阵中的一个独立集,若往中加入任意一个元素都会让它变成非独立集,那么称是拟阵的一个,也称极大独立集

容易证明,拟阵的基大小相同。

基有另一个等价的定义形式:满足的独立集是拟阵的基。

关于基有两个定理,分别是(弱)基交换定理和强基交换定理。

弱基交换定理:对于任意拟阵,若存在两个不同的基,则使得是基。

强基交换定理:对于任意拟阵,若存在两个不同的基,则使得都是基。

具体的证明参见论文。

拟阵上的最优化问题

拟阵上的最优化问题定义为:给出拟阵,给出价值函数。对于定义。求

拟阵上的最优化问题可以使用贪心算法,即将按照不升的顺序排列,令初始为空集,然后从大到小在保证独立的前提下将加到中,最后得到的就是最优解。

详细的证明不展开叙述。

最小生成树问题(MST)和和寻找线性基的问题都可以规约为拟阵上的最优化问题。有关的贪心算法的正确性因此得到了保证。

拟阵的基础操作

接下来介绍三种关于拟阵的操作,这可以帮助我们更深刻地理解拟阵模型的变换。

对偶

对于拟阵,定义其对偶拟阵为,其中,即存在一个中的基使得

这里我们断言拟阵的对偶仍是拟阵,这一点不论是用拟阵第一定义还是第二定义都可以证明。

对偶运算具有自反性,这从它的定义就可以得知。

举一个对偶拟阵的例子:图拟阵的对偶拟阵为,其中当且仅当存在基,即存在生成树,即连通。

换言之,当且仅当删掉中的边后,图仍然连通。

删除

对于拟阵,定义删除的拟阵是,其中

换言之,就是删掉中的部分得到的拟阵。

同样以图拟阵为例,删除)的拟阵就是对应的图拟阵。

收缩

对于拟阵,定义收缩的拟阵是

这东西看着不太直观,经过一番推导我们得到它的秩函数

通过这个秩函数,我们将收缩理解为强制选取了中的一组基。

仍然以图拟阵为例,对应

  • 的独立集:删掉中的边后图仍然连通。
  • 的独立集:强制中的边不能被删(即强制),删掉中的边后图仍然连通。
  • 的独立集:强制满足的生成森林(基)。

因此图拟阵收缩可以理解为缩边操作。

拟阵的交

提示:这部分内容与拟阵的基础操作不太相关。

对于两个相同基础集上的拟阵,定义它们的交

拟阵的交,不一定是拟阵

(带权)拟阵交问题定义为:给出价值函数。对于定义。则求

为了描述求拟阵交的算法,我们先定义关于两个拟阵交换图

  • 其为二分图,左部和右部的点集分别为
  • 一条从的边存在,当且仅当
  • 一条从的边存在,当且仅当

也就是说这个二分图里从左到右的边都是满足的,从右到左的边都是满足的。

我们还需要定义关于的两个集合

以及一个关于的点权函数:

接下来我们就可以描述求拟阵交问题的算法——称之为增广路算法足够恰当。

考虑逐步扩张。初始。每次我们找一条从中的点出发,交替经过中的点,最后到达中的点的点权和最小的简单路径,然后令,即的对称差。直到找不到。最后得到的就是拟阵交的最大权独立集。

注意,若非空,算法可能会直接扩张一个属于交集的元素。

算法的正确性证明见论文。

从算法应用的角度,我们关注的是如何快速求出二分图的边集,或者说在找增广路的过程中如何快速找到后继。若只考虑增广的复杂度,我们最多增广次,则总复杂度

例题

时间有点晚,写一道吧,有时间再补补。

Rainbow Graph

给定一张带权无向图,每条边是三种颜色红绿蓝之一。要求对于从的每个,都求出来:选出条边并使得不含红色边的图和不含蓝色边的图都连通的最小权值,如果不存在则输出

将问题转化为:删除条边使得不含红色边的图和不含蓝色边的图都连通。因此构造:

  • 描述的是删掉中的边后不含红色边的图连通。
  • 描述的是删掉中的边后不含蓝色边的图连通。

通过拟阵第一定义可以证明这两个都是拟阵。求拟阵交即可。由于拟阵交的增广路算法是从空集逐步拓展的,因此可以得到每个的答案。

参考文献

杨乾澜 ,《浅谈拟阵的一些拓展及其应用》,IOI2018 中国国家集训队论文。