拟阵(matroid)

拟阵是一种抽象数学结构,与线性代数和图论紧密相关。它定义了独立集、基和闭合性质,且极大独立集对应最大解。通过贪心算法,可以解决如最大无圈图等问题。文章探讨了拟阵的定义、例子、不可图的特性及实际应用,如图的最小生成树问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


拟阵中所用的若干术语多半来自于代数(比如线性代数和抽象代数)和图论。

拟阵有许多等价的定义方式,最常见的定义方式是用独立集、基、圈、闭集合、闭平面、闭包算子或秩函数。我们下面只会介绍第一个定义拟阵的方式。

下面先说拟阵到底有什么用:
拟阵有一个最为基本的优化性质:极大独立集一定是最大独立集合,而这个可以在实践中变成贪心算法。

定义

在这里插入图片描述
上面的第2,3个条件为了好理解,可以类比线性独立的概念。简而言之, f f f集合就是所有“线性无关”的集合的集合。
第二个就是:
在这里插入图片描述
即大集合中两两元素都线性无关,那么大集合的任何子集中的元素都线性无关。比如A是S的子集,那么如果S集合内的元素两两线性无关,那么A集合内的元素也是两两线性无关。

类似的,第三个条件即如下:
在这里插入图片描述
可以看到,这两个和我们线性代数中的线性无关的特点都是一致的。

例子

给个例子,看懂了,就结束了。为了简单,我们的大集合E取3维空间的如下4个向量。
在这里插入图片描述
那么:
在这里插入图片描述
然后,根据第2个条件,上面3个集合的子集也是线性无关组。所以 f f f最终为:
在这里插入图片描述

相信此刻,你已经有了充分的理解,那么把这个理解迁移到组合最优化或者图论中就是:
在这里插入图片描述
目标:
在这里插入图片描述

这个时候,我们需要冷静的想一下,能不能建立一个拟阵,我们关键是要验证无圈子图这个概念是否满足拟阵定义中的3个条件。

  1. 边集为空集构成的图当然是无圈子图
  2. 无圈图的边集的子集构成的子图当然还是无圈图
  3. 这个你自己可以动手试试,条件3也是满足的,此处不证

即可以建立一个拟阵,那么我们有了思路,类比前面那个例子,找到最大的无圈子图,然后其子集全部都仍然是,这样的话,一下子就找完了全部。
在这里插入图片描述
支撑树就是生成树,其加上一条边就一定会构成圈。所以是“极大线性无关组”。
在这里插入图片描述
在这里插入图片描述

拓展

可图拟阵:如果一个拟阵M可以被解释为一个图G的某一个场景(比如无圈),而且反过来也可以,那么称M和G同构,同时,称这个拟阵是可图的。

例子中的两个就是同构关系。前者4个向量,后者4条“边”,其他的结构也一模一样,都是一一对应关系,集合中叫做双射

这不免让人觉得肯定任何拟阵都是可图的,那就错了,比如:
M = ( E = { 1 , 2 , 3 } , f = { ϕ , { 1 } , { 2 } , { 1 , 2 } } ) M=(E=\{1,2,3\},f=\{\phi,\{1\},\{2\},\{1,2\} \} ) M=(E={1,2,3},f={ϕ,{1},{2},{1,2}})
这个是一个拟阵(其满足我们最开始的拟阵定义的3个条件),但是其无法对应到图中来。
因为3条边的图,无论你怎么画,f中都至少是7个元素,即至少为:
f = { ϕ , { 1 } , { 2 } , { 1 , 2 } , { 3 } , { 1 , 3 } , { 2 , 3 } } f=\{\phi,\{1\},\{2\},\{1,2\}, \{3\},\{1,3\},\{2,3\}\} f={ϕ,{1},{2},{1,2},{3},{1,3},{2,3}}

例如:
在这里插入图片描述
这个图的无圈子图集合就是上述 f f f

当然了,如果画成下面这样,f中就为8个元素了。
f = { ϕ , { 1 } , { 2 } , { 1 , 2 } , { 3 } , { 1 , 3 } , { 2 , 3 }   { 1 , 2 , 3 } } f=\{\phi,\{1\},\{2\},\{1,2\}, \{3\},\{1,3\},\{2,3\}\,\{1,2,3 \}\} f={ϕ,{1},{2},{1,2},{3},{1,3},{2,3}{1,2,3}}
在这里插入图片描述
但是,无论哪一种3条边的图的画法,都不可能对应到上述 f f f
f = { ϕ , { 1 } , { 2 } , { 1 , 2 } } f=\{\phi,\{1\},\{2\},\{1,2\} \} f={ϕ,{1},{2},{1,2}}

所以,这个拟阵是不可图的。

应用

这里,我想是你最关心的问题,抽象为拟阵问题有什么用?可以使用贪婪算法解决这类问题。

我们就想象上面那个图的无圈子图问题,我们要求其最大无圈子图(最小生成树),(拟阵中叫做最大独立集),每一条边会有一个权重,记为 c ( e i ) c(e_i) c(ei)。我们对这些权重排序后,假设是这样的。
在这里插入图片描述
注:这里的权重如果理解成边的长度的话,那么下面是求解最大生成树,看你如何理解权重了,如果理解为边越短,权重越大,那么就是求解通常的最小生成树。

那么求解最大无圈子图即为:
在这里插入图片描述
即每次都挑选一个剩下当中最大权值的边来进入( e 1 e_1 e1是最大的),不过要看加入后是不是无圈子图,如果第一次中, e 1 e_1 e1不属于无圈子图,那么不能加入到J。

算法运行结束后,就得到了最大权的无圈子图J。

这显然是一个贪心算法。其实,只要你所遇到的问题,可以抽象为拟阵的形式,都可以使用贪心算法。只是,有些问题并不能抽象为拟阵,此时,不能用贪心算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值