拟阵(matroid)
文章目录
- 定义
- 例子
- 拓展
- 应用
拟阵中所用的若干术语多半来自于代数(比如线性代数和抽象代数)和图论。
拟阵有许多等价的定义方式,最常见的定义方式是用独立集、基、圈、闭集合、闭平面、闭包算子或秩函数。我们下面只会介绍第一个定义拟阵的方式。
下面先说拟阵到底有什么用:
拟阵有一个最为基本的优化性质:极大独立集一定是最大独立集合,而这个可以在实践中变成贪心算法。
定义
上面的第2,3个条件为了好理解,可以类比线性独立的概念。简而言之,fff集合就是所有“线性无关”的集合的集合。
第二个就是:
即大集合中两两元素都线性无关,那么大集合的任何子集中的元素都线性无关。比如A是S的子集,那么如果S集合内的元素两两线性无关,那么A集合内的元素也是两两线性无关。
类似的,第三个条件即如下:
可以看到,这两个和我们线性代数中的线性无关的特点都是一致的。
例子
给个例子,看懂了,就结束了。为了简单,我们的大集合E取3维空间的如下4个向量。
那么:
然后,根据第2个条件,上面3个集合的子集也是线性无关组。所以fff最终为:
相信此刻,你已经有了充分的理解,那么把这个理解迁移到组合最优化或者图论中就是:
目标:
这个时候,我们需要冷静的想一下,能不能建立一个拟阵,我们关键是要验证无圈子图这个概念是否满足拟阵定义中的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}}
例如:
这个图的无圈子图集合就是上述fff。
当然了,如果画成下面这样,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条边的图的画法,都不可能对应到上述fff。
f={ϕ,{1},{2},{1,2}}f=\{\phi,\{1\},\{2\},\{1,2\} \}f={ϕ,{1},{2},{1,2}}
所以,这个拟阵是不可图的。
应用
这里,我想是你最关心的问题,抽象为拟阵问题有什么用?可以使用贪婪算法解决这类问题。
我们就想象上面那个图的无圈子图问题,我们要求其最大无圈子图(最小生成树),(拟阵中叫做最大独立集),每一条边会有一个权重,记为c(ei)c(e_i)c(ei)。我们对这些权重排序后,假设是这样的。
注:这里的权重如果理解成边的长度的话,那么下面是求解最大生成树,看你如何理解权重了,如果理解为边越短,权重越大,那么就是求解通常的最小生成树。
那么求解最大无圈子图即为:
即每次都挑选一个剩下当中最大权值的边来进入(e1e_1e1是最大的),不过要看加入后是不是无圈子图,如果第一次中,e1e_1e1不属于无圈子图,那么不能加入到J。
算法运行结束后,就得到了最大权的无圈子图J。
这显然是一个贪心算法。其实,只要你所遇到的问题,可以抽象为拟阵的形式,都可以使用贪心算法。只是,有些问题并不能抽象为拟阵,此时,不能用贪心算法。
拟阵(matroid)相关推荐
- c2java Greedy 之任务调度
近期调试一个javaproject的时候,我遇到不是期望的输出结果时.是这么干的: A1凝视掉抛出的异常: A2加打印对照异常输入和正常输入. A3进一步加打印缩小范围. 事实上仅仅需:B1静下心来细 ...
- 【算法学习】贪心算法
参考算导第三版第16章 贪心算法 文章目录 1. 活动选择问题 1.1 活动选择问题的最优子结构 1.2 贪心选择 1.3 递归贪心算法 1.4 迭代贪心算法 2. 贪心算法原理 2.1 贪心选择性质 ...
- 算法导论之贪心算法(Huffman编码和拟阵)
贪心算法,在解决最优化问题上,通过得到子问题的局部最优解来合成问题的一个解,以局部最优选择来输出一个全局最优解. 问题要用贪心算法来求解,需满足和动态规划一样的最优子结构特征,同时还需要再每个子问题最 ...
- P3265-[JLOI2015]装备购买【线性基,拟阵贪心】
正题 题目链接:https://www.luogu.com.cn/problem/P3265 题目大意 给出nnn个有权值的mmm元组.求最大独立集,即一个最大的集合且内部元素线性无关.且在集合最大的 ...
- 拟阵:贪心原理(bzoj 3105: [cqoi2013]新Nim游戏)
拟阵:贪心算法的理论基础 拟阵是满足下列条件的一个序队M = (S, I) ①S是一个有穷的集合,I是集合的集合且非空 ②I具有遗传性质:如果集合B∈I 且 A⊂B,则A∈I,即若B∈I,则B是S的独 ...
- heike - 霍尔定理 - 拟阵贪心
题目大意: 有n个人,T个物品,每个人有三个参数L,R,v,你可以从n个人中选出若干人,每个人分配恰好一个物品,并且满足对于每个人分配的物品编号必须在Li,Ri之间,并且没有两个人分配同一个物品.此时 ...
- Kneser猜想与相关推广
本文本来是想放在Borsuk-Ulam定理的应用这篇文章当中.但是这个文章实在是太长,导致有喧宾夺主之嫌,从而独立出为一篇文章,仅供参考.$\newcommand{\di}{\mathrm{dist} ...
- 看论文时的几个数学术语
互信息(Mutual information) 在概率论和信息论中,两个随机变量的互信息(MI)是用来测量两个变量之间的相互依赖.不限于类似于有实际数值的随机变量相关系数,MI更加通用,能够确定联合分 ...
- 跟锦数学2017年上半年
(170101) 设 $A$ 是数域 $\bbF$ 上的 $n$ 阶反对称矩阵. 若 $n$ 是奇数, 试证: $|A|=0$. (170102) 设 $A$ 是数域 $\bbF$ 上的 $n$ 阶反 ...
最新文章
- 【学习笔记】高斯整数、高斯素数、费马平方和(全部相关概念及例题详解)《初等数论及其应用》
- 汇编语言随笔(15)- 对键盘输入进行处理(int 9 和 int 16h 中断例程)
- 自然语言处理顶会 ACL 2018 参会见闻
- MOSS 2007基础:内容类型(Content Type)之二
- luogu P1273 有线电视网
- 谈一下ACM的入门书籍及方法
- 看了B站上的这些Java视频,我飘了!
- linux mv移动文件命令详解与替换强制覆盖多个文件
- 走进 Redis 的世界
- linux 根目录设置777,linux 把根目录设置成777权限的补救方法
- 使用树莓派3开发板,基于android things 物联网系统来运行TensorFlow解析图像
- ff14 人最多的服务器,记录FF14全服人数最少的服务器红茶川
- 设置socket IP_TOS选项
- vba工作表重命名_如何在Excel中重命名工作表选项卡
- 【imessage苹果群发苹果推】软件安装应用程序/框架/ gcdwebservers
- 用计算机摇号算不算随机抽样,专家解读摇号原理:随机抽不等于随意抽(2)
- Unity SKFramework框架(十九)、POI 兴趣点/信息点
- 互联网思维的六大特性
- 关于计算机管理员自我介绍,管理人员简历中的自我介绍
- 利用Java线程及JFrame面板制作一个随机摇号小程序
热门文章
- 2月书讯:终究还是来了
- 黑客进阶必读书《Linux命令行与Shell脚本编程大全》(第2版)
- 黑帽SEO:Google为什么会屏蔽你的网站
- pytorch 查看模型参数,查看模型特定层输入输出,模型结构图绘制总结
- 8个可以提高数据科学工作效率、节省宝贵时间的Python库
- 5分钟 NLP系列—— 11 个词嵌入模型总结
- 酒店用机器学习,预测哪些客人会放鸽子
- 独家 | 自动机器学习:团队如何在自动学习项目中一起工作?(附链接)
- 经典回顾 | 人脸照片秒变艺术肖像画:清华大学提出APDrawingGAN CVPR 2019 oral paper...
- 社交网络图挖掘1--将社交网络看作图及其聚类