上一节讲了拟阵的定义,这一节让我们来看看一些例子。
线性拟阵(Linear Matroid)和线性表出(Linear Representation)
鉴于拟阵源于线性代数,那自然,向量的线性独立应该能很好的表达成一个拟阵。所以我们的第一个例子就是线性拟阵(Linear Matroid)。
首先令 是个有限集,对于每个 中的边 ,有一个对应的向量 。我们设这些向量,都在同一个域 下,并具有相同的维度。此时,我们构造 的一个集族 :对于一个集合 ,如果 ,那么 对应的向量集合线性独立,即 线性独立。
简单来说,这个集族就是一些线性独立的向量集合构成的。
现在我们来证明一下 是一个拟阵。
引理2.1: 是一个拟阵。
证明:我们用拟阵公理来证明 是一个拟阵。首先显然 ,其次对于遗产性质,我们知道,如果一组向量线性独立,那么其子集必定也是线性独立的,所以遗传性质满足,我们现在只用考虑交换性质。
考虑两个集合 。由于 独立,所以 所张开的空间的维度是 , 张开的维度是 。这表明,一定有一个向量 ,其不能被 线性表出,所以 。故交换性质满足。证毕(知乎就没有小方块的功能嘛,森气)。
我们来看看我们在构造线性拟阵时干了个啥事,我们把集合中的每个元素赋予了一个向量,并用向量的独立性来讨论了拟阵的独立性。那反过来想,如果一个拟阵能够表达成向量的模式,那我们就能更方便的用线代的技术来研究拟阵了。这就引出了一个非常重要的概念,线性表出(Linear Representation)。
我们定义一个矩阵 ,其由上述集合 的每个边 对应的向量 作为列向量构成。我们称, 在 上表出拟阵 。反过来,如果存在一个矩阵 可以表出拟阵 ,那称 是可表出的。
表出的对应关系,将独立集对应到线性独立的向量上
简单说,判断一个拟阵能不能被表出,问能不能找到一个矩阵,使得矩阵的列向量的独立性能和拟阵的独立性对应起来。
特别的如果 是 ,那么我们称拟阵是二元拟阵(binary matroid)。如果一个拟阵可以在某个域上被表出,那我们说这个拟阵是线性拟阵(linear matroid),或者可表出的。
很容易注意到,如果矩阵 表出拟阵 ,那么 和 具有相同的秩。如果 的秩为 ,通常情况下,我们都可以认为 只有 行。
均匀拟阵(Uniform Matroid)
均匀拟阵可以说是最简单的拟阵了,但却是非常有用的。
均匀拟阵 的定义为:集合 ,集族 为所有大小不超过 的 的子集。
大家一定能很轻松证明,这样的定义是符合拟阵公理的,并且具有秩 。现在让我们来看看怎么表出均匀拟阵。我们令 。我们尝试在域 上表出均匀拟阵 。
对于 中的每个边 ,我们给它赋予一个唯一的 上的一个非零元 。我们令向量 。
现在我们来考察一下独立性是否能够对应。对于任意大小大于 的 的子集 ,其对应的向量组的个数是大于 的,我们知道, 维向量,如果超过 个,必然是线性相关的,所以不独立的集合,对应了不独立的向量组。而对于任意大小不超过 的 的子集 ,其对应的向量组是 ,我们令矩阵 是由这些向量构成的矩阵,那么 就是我们熟悉的范德蒙德矩阵,所以 具有行列式:
所以 是线性独立的,这样独立的集合便对应的独立的向量组。
图拟阵(Graph Matroid)
说了这么多代数上的拟阵,我们来讲讲图论上的一个拟阵,图拟阵(Graph Matroid)。
顾名思义,图拟阵是建立在一个图上的拟阵。给定一个无向图 ,图拟阵 的全集为边集 (这就是为什么拟阵里元素要叫做边),如果边子集 的生成子图 无圈,那么 是 的独立集。
首先让我们看看这样的构建是否是个拟阵。首先,空集没有圈,所以空集是独立的。其次对于 ,如果 的生成子图 无圈,那么自然 的生成子图 也是无圈的,所以遗传性质满足。
考虑交换性质,对于独立的集合 ,满足 。我们看看 有多少个连通块,由于 是 的生成森林,所以我们知道其连通块的个数应当是 ;同理, 的连通块个数为 。这说明 连通块个数应当小于 的连通块个数。所以总有一条边 ,是跨在 的两个不同连通块之间的,将这条边 加入 必然不会产生圈,即 是独立的。故交换性质满足。
(V(G),A)有3条边3个连通块,(V(G),B)有4条边2个连通块,所以总有一条边b连接A的两个不同连通块
现在让我们来想想,图拟阵是否能被表出呢?事实上,是可以的,而且非常容易。
定理2.1:在任何域下,图拟阵都是可表出的。
证明:对一个图 的拟阵 ,我们来构造一个矩阵 来表出 。首先,我们图 上每条边随意赋予方向,构造出有向图 。接下来,对于每条边 ,我们构造一个向量 ,这个向量 上,除了 以外的分量都是 ,而 的分量是 , 的分量为 。现在我们来证明 上的一组向量是线性独立的,当且仅当这组向量对应的边集 是无圈的。
一个图G=({1,2,3,4},{a,b,c,d,e})的矩阵的构造
必要性:假设 包含一个圈 ,对于 上的每条边 我们构造一个值 。先任取一条 上的边 ,将其赋予值 ,顺着 至 的方向遍历整个圈,如果发现边 的方向与我们遍历的方向相反,则赋予值 ,否则赋予值 。那么对于圈 上的一个点来说,其在圈 对应的向量组里会出现两次,这两次出现的分量乘以我们赋予的值的和应当是 。所以我们有 。即 对应的向量组不是独立集,矛盾,所以 无圈。
假设有圈,我们沿着一个方向给这个圈的每条边赋予一个值
充分性:同样是反证法。我们假设 对应的向量组 不是独立的,即存在一组至少有一个非零元的值 使得 。考虑那些 的边集 。由于 是无圈的,所以 也是无圈的。所以至少有一个点 在 只连接了一条边 ,所以这条边 有一个无论如何都抵消不了的非零贡献量 ,这与 矛盾,所以 是线性独立的。
而由于我们的构造只利用到了域中单位元,零元,和单位元的负元,所以任何域下,图拟阵都是可以标出的。证毕。
这一节就到这里啦,除了我介绍的这三个,还有各种各样的拟阵,大家有兴趣可以搜一搜。下一节主要讲讲如何寻找权值和最大的基的算法。