拟阵学习笔记

子集系统:对于一个有限集 \(S\) 与定义在 \(S\) 上的子集族 \(L\) ,二元组 \(M=(S,L)\) 满足 \(\forall B \in L,\forall A \subseteq B\)\(A \in L\) (遗传性),感性描述就是如果一个子集满足某种性质,那么这个子集所有的子集都满足该性质,满足该性质所有子集组成的集族成为子集系统

拟阵(matroid):一个子集系统满足 \(\forall A,B\in L,|A|<|B|\)\(\exists x\in B-A\) 使得 \(A\cup\{x\}\in L\) (交换性),感性理解就是有两个满足性质的集合,如果一个集合比另一个小,那么一定可以在那个更大的集合中找到元素扩充小集合,使得它仍然满足性质

下面是拟阵的一些概念:

独立集 :上面一直在说“性质”,那么就称具有”性质“的集合(即在 \(L\) 中的集合)为独立集

:无法继续扩大的独立集 :无法继续缩小的非独立集

有一个交换性的直接推论,即所有的基大小相等

因为如果一个集合比另一个集合大的话,那么另一个集合总可以继续扩展(拟阵的基本性质)

:基的大小

一个集合为独立集,当且仅当是某个基的子集,当且仅当不包含任意一个环

观察到拟阵的定义与极大线性无关向量组的定义很类似

事实上,拟阵就是脱离了线代意义的一类代数结构,可以用来研究性质更加广泛的问题

从一个向量中的线性无关向量组满足拟阵结构

首先肯定这个问题满足遗传性,因为一个集合线性无关,它的子集也一定线性无关

证明更关键的交换性,如果一个线性无关的向量组 \(A\) 比另一个线性无关组 \(B\) 小,那么如果 \(B\) 中的向量全都与 \(A\) 中的数线性有关,也就是说用 \(A\) 可以表示出 \(B\) 中的所有元素,那么一定可以构造出很多方法使得 \(B\) 中元素互相表出

在 OI 中,拟阵有什么应用呢?

所有具有拟阵结构的问题都可以贪心解决(但复杂度各异)

背包模型:将所有的物品拆成单位体积 1,设独立集为总体积大小不超过体积限制的所有决策集合

显然满足遗传性,证明交换性:

如果 \(\exists A\in L,B\in L,|A|<|B|\) ,那么将 \(B-A\) 中的任何一个元素放入 \(A\) 中一定满足条件,满足交换性

生成树模型:图 \(G=(V,E)\) 对于 \(E\) 进行考虑,构成森林的边集为独立集

同样显然满足遗传性,对于交换性:

生成森林 \(A,B,|A|<|B|\) ,那么 \(A,B\) 分别有 \(|V|-|A|,|V|-|B|\) 个联通块,则 \(A\) 的联通块个数多于 \(B\),那么一定有一个 \(B\) 的联通块 \(T\)\(A\) 中不连通,那么 \(T\) 一定有一条边,连接了 \(A\) 中的两个联通块,连上这条边,则一定无环

事实上由于生成森林中无环,等价于其为独立集,可以直接说明,不过环的概念就是拟阵应用在生成树模型上是时提出的

拟阵上最重要的内容就是贪心求最大权值独立集

首先我们要给 \(S\) 每一个点都赋上正权 \(w\)

它具有统一的贪心策略:

Greedy(\(S\),\(L\),\(w\)){

\(A:=\emptyset\)

​ sort \(S\) with \(w\) increasing

​ for x \(\in\) S do:

​ if \(A\cup \{x\} \in L\):

​ then \(A:=A \cup \{x\}\)

​ return \(A\)

}

下面证明贪心策略正确

假设 \(A\) 为答案最优的某种方案 \(T\) 的子集,对于当前能够扩展 \(A\) 的权值最大的元素 \(x\)\(A \cup \{x\}\) 一定是某个最优集合的子集

如果不是,考虑构造包含 \(A\cup\{x\}\) 的更优的集合,由交换性可知,用 \(T\) 中的元素不断扩充 \(A\cup\{x\}\) ,形成了集合 \((T-\{y\})\cup\{x\}\) 为独立集,此时权值 \(w_{T'}=w_T-w_y+w_x>w_T\)\(x\) 为当前可扩充 \(A\) 的权值最大元素,因此 \(w_x>w_y\)

由于空集一定是最优解的子集,那么这样扩展下去,一定可以找出权值最大的基

posted @ 2021-11-19 08:52  yyyyxh  阅读(28)  评论(0编辑  收藏  举报