5个顶点的最大匹配公式

5个顶点的最大匹配公式,第1张

我们定义匹配点、匹配边、未匹配点、非匹配边,它们的含义非常显然。例如图 3 中 1、4、5、7 为匹配点,其他顶点为未匹配点;1-5、4-7为匹配边,其他边为非匹配边。

最大匹配:一个图所有匹配中,所含匹配边数最多的匹配,称为这个图的最大匹配。图 4 是一个最大匹配,它包含 4 条匹配边。

完美匹配:显然,完美匹配一定是最大匹配(完美匹配的任何一个点都已经匹配,添加一条新的匹配边一定会与已有的匹配边冲突)。但并非每个图都存在完美匹配。

最大匹配数:最大匹配的匹配边的数目

最小点覆盖数:选取最少的点,使任意一条边至少有一个端点被选择

最大独立数:选取最多的点,使任意所选两点均不相连

最小路径覆盖数:对于一个 DAG(有向无环图),选取最少条路径,使得每个顶点属于且仅属于一条路径。路径长可以为 0(即单个点),把所有顶点i拆成两个:X结点集中的i和Y结点集中的i',如果有边i->j,则在二分图中引入边i->j',设二分图最大匹配为m,则结果就是n-m。

定理1:最大匹配数 = 最小点覆盖数(这是 Konig 定理)

定理2:最大独立数=顶点数 - 最大匹配数 

定理3:最小路径覆盖数 = 顶点数 - 最大匹配数

大学课程《离散数学》中的图的应用有很多,其中包括了最短路径的查找、拓扑排序、地图着色等应用,下面对这三个应用展开介绍:

查找最短路径,比如一个快递员送快递,肯定是要在最短的距离和时间把快速送完,那么就涉及到图的最短路径问题。于是,也就产生了Dijkstra算法,他是一种经典的最短路径算法,基本思想是设置一个集合S来存储找到最短路径的顶点。s的初始状态仅包含VI的源点V∈ 假设从V点到s点的路径是最短的。之后,每次最短路径V,获得VK,将VK添加到集合s中,路径V,VK,VI与原始假设进行了比较。将长度较小的路径作为最短路径,重复上述过程,直到集合V中的所有顶点都添加到集合s中。当网络节点数较大且网络边数较大时,存在内存消耗大、时间复杂度高等缺点,Dijkstra算法不能很好地解决具有必要点约束的最短路径问题。

然后是拓扑排序,他是有向无环图的拓扑排序(DAG)G是将G中的所有顶点排列成一个线性序列,使得图中的任何一对顶点U和V,如果边<U,V>∈ 在线性序列中,U出现在V之前。一般来说,这种线性序列称为满足拓扑序的序列,简称拓扑序列。简而言之,集合上的偏序用于获得集合上的总序。这种 *** 作称为拓扑排序,这种应用可以在网络中起到很强的应用效果。

地图着色是一种组合配置,它是地图曲面集的一个分区。贴图的每个曲面都指定了一种颜色,以便相邻曲面(指具有公共边界的边)具有不同的颜色。这种颜色的分布称为贴图的着色,或者将贴图曲面集划分为若干个子集,使每个子集中的任意两个边都不相邻,这样每个子集中的面都可以用一种颜色着色,从而使不同子集中使用的颜色不同。在所有图M的着色中,颜色最少的颜色数称为图M的色数,图的顶点着色,或具有相同结构的图的顶点的正常着色,是其对偶图的图着色。

其实图的应用非常广泛,并不止这些,我们还可以对概念的学习,去更加了解图的应用。

有向无环图(DAG, Directed Acyclic Graph) :是一个无回路的有向图。如果有一个图,从A点出发到B点,然后经过C点,最后可以顺着方向回到A,形成一个闭环,那么这个图就不是非向无环图。如果将从C到A的边方向改为从A到C,则变成有向无环图。如图1 和 图2。

看到这两幅图,应该可以明白了,当然这个图是很简单的,只有三个点,事实上可能是由百万千万或者更多个点组成的图。有向无环图就是从一个图中的任何一点出发,不管走过多少个分叉路口,都没有回到原来这个点的可能性。

拓扑排序 :就是一个有向无环图的所有定点的线性序列。且这个序列必须满足这两个条件:

这个东西,是比较难理解,再上图说话吧。比如在这个有向无环图中,它用拓扑排序,该怎么进行呢?

最后,一个完整的拓扑排序就完成了,结果为:1、2、4、3、5。

大家都知道,在比特币系统中,固定约十分钟出一个块,而且一旦打包成功一个区块,这个区块的信息还必须同步到其他的所有区块上面去,这是极其耗费资源和时间的。同时一个块里面大概能容纳3000笔交易,也就意味着10分钟才能交易成功3000笔。这个交易速度实在是满足不了用户的需求,所以为了解决比特币这个问题,出现了各种分叉币,也可谓是把比特币搞的乱七八糟了。后来以太坊问世后,基于比特币的基础上,交易速度提高了不少,每秒交易可达到20笔左右,但是任然有多次的以太坊拥堵事件,证明这个交易速度还远远不够。

在比特币系统中,如果可以改变51%的节点的记录数据,那么就实现了恶意攻击。然而现在比特币的大部分算力掌握在少数几个较大的矿厂手里,虽然大家都有共识,不会发起恶意攻击,但是不代表不会有意外事件发生。

随着计算机硬件的不断迭代升级,量子计算机的问世,那么比特币的加密算法还会有用吗?会不会被破解掉?虽然比特币的哈希算法可以实时调整难度,但是到底能承受多大的考验,员外是说不清的。

比特币用于大额的跨境转账或者交易等用途,还是挺实用的,但是谁会去用比特币购买小件商品?显然是不可能的,交易手续费就会让你心疼半天,然后还得再等半天的确认时间。

在区块链的应用上使用了DAG图之后,可以使得出块速度变快,因为DAG图中的每个顶点都是一个在某一时间点打包完成的区块。与传统的公链一次性只能产出一个区块来比,DAG的不同节点都可以自己来生成区块,然后这个区块只要选择好自己的下一个或者多个区块作为自己的子区块就好了。仅仅是在这一点上,出块速度就会高出比特币多个量级,交易速度简直可以快的飞起。

基于DAG的数据结构来说的话,对于里面的每个节点来说,因为与之相连的节点很少,而且是有方向性的,只能往前不能后退,所以都不需要再等大量的其他节点达成共识后,再同时确认下一笔交易了,避免了因网络延迟和数据同步造成的大量时间浪费。所以,使用DAG记账的节点的延展性可得到大幅度提升。

从上面这张图中,可以看到DAG的每一个节点都可以向下连接任意多个新的节点,这个有什么用呢?如果在这一个区块内部交易数据或者与之相连的下一步的交易数据也是过多的话,那么就可以分成足够多个区块来共同分担区块压力,从而可以提高交易的吞吐量。相比于比特币这样的系统每次只能打包一个区块来说,简直是完胜。

没有一个东西是完美的,有优势就有缺点,所以DAG的缺点目前在安全问题上面,主要是双花和影子链攻击。这个问题员外目前还没有找到足够好的答案,只能后续再说了。

本文参加优享优质经验征集计划,经验即价值,优享为成长买单

全球首个去中心化经验价值共享平台“优享”开启今夏最强空投!注册即送UX,最高5000UX,更多价值,等你发现!注册链接

基于内存大小。

spark是基于内存进行数据处理的,MapReduce是基于磁盘进行数据处理的。

MapReduce的设计:中间结果保存在文件中,提高了可靠性,减少了内存占用。但是牺牲了性能。

Spark的设计:数据在内存中进行交换,要快一些,但是内存这个东西,可靠性不如磁盘。所以性能方面比MapReduce要好。

以上就是关于5个顶点的最大匹配公式全部的内容,包括:5个顶点的最大匹配公式、大学课程《离散数学》中的图有哪些应用、『学概念找员外』有向无环图DAG的用途等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9765949.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存