为啥破圈法和避圈法为啥不能求一点至另一点的最短距离

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥破圈法和避圈法为啥不能求一点至另一点的最短距离相关的知识,希望对你有一定的参考价值。

1.1最小生成树

最小生成树:一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最少的边,如图1.1.1所示。

图1.1.1 最小生成树示意图

设G = (V, E)是无向连通带权图,即一个网络。E中的每一条边(v, w)的权为W(v, w)。如果G的子图G’是一棵包含G的所有顶点的树,则称G’为G的生成树。生成树上各边权的总和称为生成树的耗费。在G的所有生成树中,耗费最小的生成树称为G的最小生成树。

1.1.1避圈法

避圈法的主要思想就是:开始选一条最小权的边,以后每一步中,总从与已选边不构成圈的那些未选边中,选择一条权最小的(每一步中,如果有两条或两条以上的边都是权值最小的边,则从中任选一条)。避圈法主要分为两种:Prim算法和Kruskal算法,下面分别进行介绍。

1.1.1.1 Prim算法

设G = (V, E)是连通带权图,V = 1,2,…,n。构造G的最小生成树Prim算法的基本思想是:首先置S = 1,然后,只要S是V的真子集,就进行如下的贪心选择:选取满足条件i∈S, j∈V – S,且c[i][j]最小的边,将顶点j添加到S中。这个过程一直进行到S = V时为止。在这个过程中选取到的所有边恰好构成G的一棵最小生成树。图1.1.2显示了某一带权图。最小生成树的生成过程如下:

→=

c

13;1

→=

c

36;4

32;5

→=

c

c

→=

25;3

最终得到的最小生成树如图1.1.3所示。

图1.1.2 带权图G

图1.1.3 带权图G的最小生成树示意图

1.1.1.2 Kruskal算法

给定无向连通带权图G = (V, E), V = 1,2,...,n。Kruskal算法构造G的最小生成树的基本思想是:

(1) 将G的n个顶点看成n个孤立的连通分支,并将所有的边按权从小到大排序;

(2) 从第一条边开始,依据每条边的权值递增的顺序检查每一条边,并按照下述方法连接两个不同的连通分支:当查看到第k条边(v, w)时,如果端点v和w分别是当前两个不同的连通分支T1和T2的端点时,就用边(v, w)将T1和T2连接成一个连通分支,然后继续查看第k+1条边;如果端点v和w在当前的同一个连通分支中,就直接查看第k+1条边,这个过程一个进行到只剩下一个连通分支时为止。此时,已构成G的一棵最小生成树。

仍以图1.1.2所示的带权图G为例说明其最小生成树的生成过程,生成过程如下所示:

→=

c

13;1

25;3c →=

36;4c →=

23;5c →=

最终得到的最小生成树和图1.1.3所示是一样的。

1.1.2 破圈法

破圈法可以描述如下:

(1) 如果我们给的连通图G 中没有回路,那么G 本身就是一棵生成树;

(2) 若G 中只有一个回路,则删去G 的回路上的一条边(不删除结点),则产生的图仍是连通的且没有回路,则得到的子图就是图G 的一棵生成树;

(3) 若G 的回路不止一个,只要删去每一个回路上的一条边,直到G 的子图是连通没有回路且与图G 有一样的结点集,那么这个子图就是一棵生成树。

由于我们破坏回路的方法可以不一样,所以可得到不同的生成树,但是在求最小生成树的时候,为了保证求得的生成树的树权最小,那么在删去回路上的边的时候,总是在保证带权图仍连通的前提下删掉权值较大的边,保留权值较小的边。破圈法就是在带权图的回路中找出权值最大的边,将该边去掉,重复这个过程,直到图连通且没有圈为止,保留下来的边所组成的图即为最小生成树。下面仍利用图1.1.2对破圈法进行说明。

首先是去除权值大的边,并且检测去除该边后整个图是否连通,对于图1.1.2来说,即第一步去掉权值为6的边,如图1.1.4所示。

图1.1.4 去掉权值为6的G 的示意图

从图中可以看出,去掉权值为6的边后整个图仍是连通的。所以接下来去除权值为5的边,并且检测去除该边后图是否连通,结果如图1.1.5所示。由图可知,去掉所有权值为5的边会造成图G 不连通,因此23;5c →=这条边是必须保留的。然后再去除权值为4的

边。由于权值为1、2、3、4的边分别连接着独立的节点,故都必须保留,得到的最小生成

图1.1.5 去掉权值为5的G的示意图

树结果与图1.1.3也是一样的。

1.1.3避圈法与破圈法比较

Prim算法是从空图出发,将点进行二分化,从而逐步加边得到最小生成树。它是近似求解算法,虽然对于大多数最小生成树问题都能求得最优解,但相当一部分求得的是近似最优解,具体应用时不一定很方便。但是它可以看作是很多种最小树算法的概括,在理论上有一定的意义。

Kruskal算法也是从空图出发。它是精确算法,即每次都能求得最优解,但对于规模较大的最小生成树问题,求解速度较慢。

破圈法是从图G出发,逐步去边破圈得到最小生成树。它最适合在图上工作,当图较大时,可以几个人同时在各个子图上工作,因此破圈法在实用上是很方便的。


5.9
百度文库VIP限时优惠现在开通,立享6亿+VIP内容
立即获取
破圈法vs避圈法
1.1最小生成树

最小生成树:一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最少的边,如图1.1.1所示。

图1.1.1 最小生成树示意图

设G = (V, E)是无向连通带权图,即一个网络。E中的每一条边(v, w)的权为W(v, w)。如果G的子图G’是一棵包含G的所有顶点的树,则称G’为G的生成树。生成树上各边权的总和称为生成树的耗费。在G的所有生成树中,耗费最小的生成树称为G的最小生成树。

第 1 页
1.1.1避圈法

避圈法的主要思想就是:开始选一条最小权的边,以后每一步中,总从与已选边不构成圈的那些未选边中,选择一条权最小的(每一步中,如果有两条或两条以上的边都是权值最小的边,则从中任选一条)。避圈法主要分为两种:Prim算法和Kruskal算法,下面分别进行介绍。

1.1.1.1 Prim算法

设G = (V, E)是连通带权图,V = 1,2,…,n。构造G的最小生成树Prim算法的基本思想是:首先置S = 1,然后,只要S是V的真子集,就进行如下的贪心选择:选取满足条件i∈S, j∈V – S,且c[i][j]最小的边,将顶点j添加到S中。这个过程一直进行到S = V时为止。在这个过程中选取到的所有边恰好构成G的一棵最小生成树。图1.1.2显示了某一带权图。最小生成树的生成过程如下:
参考技术A 成树里的避圈法和破圈法请通俗一...展开
生活类答题小能手
高能答主
专注生活类答题,解决生活问题
关注
成为第13902位粉丝
避圈法,从网络图中任意节点开始寻找与该节点关联的权数最小的边,使之与已选边不构成为圈,直到选够n-1条边为止。避圈法则采取先将图中的点都取出来,然后,逐渐向上面添边,并保证后添入的边不与以前添上的边构成圈就可以了,这个过程直到将边集中能加入的边(加入后不够成圈)都加完为止。
破圈法,在网络图中寻找一个圈。若不存在圈,则已经得到最短树或网络不存在最短树;去掉该圈中权数最大的边;反复重复前两步,直到最小树。
破圈法为“见圈破圈”,即如果看到图中有一个圈,就将这个圈的边去掉一条,直至图中再无一圈为止。
扩展资料
无圈且连通的无向图称为树。树一般记为T。作为树定义还可以有以下几种表述:T连通且无圈或回路;T无圈且有n-1条边(如果有n个结点);T连通有n-1条边;T无回路,但不相邻的两个结点之间联以一边,恰得一个圈。
T连通,但去掉T的任意一条边,T 就不连通了;(亦即在点集合相同的图中,树是含边数最少的连通图)。T的任意两个结点之间恰有一条初等链。
参考资料来源:百度百科-最小树形图问题
参考资料来源:百度百科-破圈法
回答于 2020-11-24
赞同5
客厅沙发墙上挂什么画好,买东西,上淘宝,榜单好物随心购!
客厅沙发墙上挂什么画好,买东西去哪里?上淘宝,达人精选热卖好货,看这里!品牌集结,畅享购物!超值精选好货,品质放心,大家都在买!一站购齐,尽在淘宝,淘你满意!
淘宝热卖广告
浩辰CAD在线预览SDK,web浏览器查看dwg图纸,审图插件
企业私有化部署,无需安装任何插件或CAD软件,即可在网页,手机,小程序等查看CAD图纸文件。
苏州浩辰软件股份有..广告
找生物工艺-艾力特-在线报价
Numera生物工艺,是一款融合PAT技术的自动化设备可与分析设备连接,实现高频率小体积的在线取样,完全替代人工操作,持续获得精准结果
广告
什么是图论生成树里的避圈法和破圈法 请通俗一点
设图为G=(V,E) 避圈法: 以V上的空图为初始图进行加边操作,依次检查E的边,如果该边加到当前图上不产生圈则将该边加上,否则检查下一条未检查边直至所有边都被检查; 破圈法:以G为初始图进行去边操作,依次检查E的边,如果该边被当前图的某个圈包含则将该边去掉,否则检查下一条未检查边直至所有边都被检查.
一袭可爱风1718
11浏览
更多专家
什么是图论生成树里的避圈法和破圈法请通俗一点
专家1对1在线解答问题
5分钟内响应 | 万名专业答主
马上提问
最美的花火 咨询一个电子数码问题,并发表了好评
lanqiuwangzi 咨询一个电子数码问题,并发表了好评
garlic 咨询一个电子数码问题,并发表了好评
188****8493 咨询一个电子数码问题,并发表了好评
篮球大图 咨询一个电子数码问题,并发表了好评
动物乐园 咨询一个电子数码问题,并发表了好评
AKA 咨询一个电子数码问题,并发表了好评
什么是图论生成树里的避圈法和破圈法请通俗一点
避圈法,从网络图中任意节点开始寻找与该节点关联的权数最小的边,使之与已选边不构成为圈,直到选够n-1条边为止。避圈法则采取先将图中的点都取出来,然后,逐渐向上面添边,并保证后添入的边不与以前添上的边构成圈就可以了,这个过程直到将边集中能加入的边(加入后不够成圈)都加完为止。破圈法,在网络图中寻找一个圈。若不存在圈,则已经得到最短树或网络不存在最短树;去掉该圈中权数最大的边;反复重复前两步,直到最小树。破圈法为“见圈破圈”,即如果看到图中有一个圈,就将这个圈的边去掉一条,直至图中再无一圈为止。扩展资料无圈且连通的无向图称为树。树一般记为T。作为树定义还可以有以下几种表述:T连通且无圈或回路;T无圈且有n-1条边(

机器学习|数学基础Mathematics for Machine Learning系列之图论:生成树算法

以上是关于为啥破圈法和避圈法为啥不能求一点至另一点的最短距离的主要内容,如果未能解决你的问题,请参考以下文章

图与网络优化——避圈法和破圈法

并查集解决图论问题(连通性及有无圈存在)

破圈法求最小生成树+最小生成树与最短路径问题

Dijkstra算法(求一点到任意一点的最短距离)

机器学习|数学基础Mathematics for Machine Learning系列之图论:生成树算法

机器学习|数学基础Mathematics for Machine Learning系列之图论:生成树算法