求最小生成树Prim(普里姆)和Kruskal(克鲁斯卡尔)算法
想求最小生成树,我们首先得弄懂以下几个概念
连通图:图中任意两个顶点都是连通的
极小连通子图:既要保持图连通又要使得边数最少的子图
生成树: 包含图中全部顶点的一个极小连通子图
连通图用通俗的话来讲就是,某一个顶点,可以直接或者间接(通过其他顶点)到达图上的所有顶点
而在相邻2个顶点的每一条边都可以被赋予一定的权值,求最小生成树就是在原来被赋予权值连通图上,先暂时去掉所有边,通过某种算法,构造出 边数最少,所有边权值和最小的 生成树
这样的树被称为, 最小生成树
我们这样用两种算法去解答,分别是Prim(普里姆)算法和Kruskal(克鲁斯卡尔)算法
Prim(普里姆)
(1)首先,任取一个点,比如说取节点1,将1加入 顶点集合 {1}
(2)从顶点集合中选择节点1,周围有3个边可选(6,1,5),选择其中最小的1,然后连接上(1-3),然后将3加入顶点集合{1、3},
(3)从顶点集合中选择,不能是连接过的边,周围有6个边可选(6、5、5、5、6、4),选择其中最小的4,然后连接上(3-6),然后将6加入顶点集合{1、3、6},
(4)从顶点集合中选择,不能是连接过的边,周围有7个边可选(6、5、5、5、6、6、2),选择其中最小的2,然后连接上(6-4),然后将4加入顶点集合{1、3、6、4},
(5)从顶点集合中选择,不能是连接过的边,连接的边不能形成回路,周围有4个边可选(6、5、6、6),(两个边5因为不能形成闭合回路删除了,加上连接过的2)选择其中最小的5,然后连接上(3-2),然后将2加入顶点集合{1、3、6、4、2},
(5)从顶点集合中选择,不能是连接过的边,连接的边不能形成回路,周围有3个边可选(6、3、6),(一个边6因为不能形成闭合回路删除了,加上连接过的5,增加了一个3)选择其中最小的3,然后连接上(2-5),然后将5加入顶点集合{1、3、6、4、2、5},
至此,所有顶点都并入顶点集合完毕,算法运行结束。所以如图呈现的便是最小生成树。
以上是Prim算法
现在我要介绍的是Kruskal(克鲁斯卡尔)算法
我自认为这个算法比较简单,容易理解
首先去掉所有边,然后把所有权值的边都列出来,按照从小到大的顺序依次放回原图中,如果放回的边构成回路,则选取下一个(稍大一点的边)再放回图中,直至将所有顶点都连接起来,(有个小细节:每连接好一条线,就可以将连接线的两个顶点加入顶点集合当中,当判断到顶点数==边数+1的时候,最小生成树完成,程序结束)(所有最小生成树都符合顶点数==边数+1这个规律)
1、具体举例将所有边的权值按照从小到大排序(12 3 4 5 5 5 6 6 6),共10个,
(12 3 4 5 5 5 6 6 6)
2、选取最小的1,并删除,将1对应的边放回原图中,1、3顶点并入顶点集合{1、3},这时有1条边
(2 3 4 5 5 5 6 6 6)
3、选取最小的2,并删除,将2对应的边放回原图中,4、6顶点并入顶点集合{1、3、4、6},这时有2条边
( 3 4 5 5 5 6 6 6)
4、选取最小的3,并删除,将3对应的边放回原图中,2、5顶点并入顶点集合{1、3、4、6、2、5},这时有3条边
( 4 5 5 5 6 6 6)
5、选取最小的4,并删除,将4对应的边放回原图中,3、6顶点并入顶点集合{1、3、4、6、2、5},原来有了,就不用增加,这时有4条边
( 5 5 5 6 6 6)
6、选取最小的5,并删除,将5对应的边放回原图中,2、3顶点并入顶点集合{1、3、4、6、2、5},原来有了,就不用增加.这时有5条边,当判断到顶点数==边数+1的时候,(6个顶点=5条边)最小生成树完成
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/299927.html
如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!相关文章:

求最小生成树Prim(普里姆)和Kruskal(克鲁斯卡尔)算法
想求最小生成树,我们首先得弄懂以下几个概念 连通图:图中任意两个顶点都是连通的 极小连通子图:既要保持图连通又要使得边数最少的子图 生成树: 包含图中全部顶点的一个极小连通子图 连通图用通俗的话来讲就是,某一个顶点,可以直接或者间接…...

【java设计】:全民飞机大战小游戏制作
文章目录 前言 一、全民飞机大战 二、计划安排 三、源码图和类图展示...

一种数据驱动的自动驾驶汽车前馈补偿器优化方法(Matlab代码实现)
目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨💻4 Matlab代码 💥1 概述 一个可靠的控制器对于自动驾驶汽车的安全和平稳操纵的执行至关重要。控制器必须对外部干扰(如路面、天气、风况等&…...

实验五图形用户界面编程
目录 一、目的与任务 二、内容、要求与安排方式 三、实验设备 四、实验步骤 一、目的与任务 掌握常用事件及其处理模型;掌握常用GUI控制组件的使用及其事件的处理;掌握菜单的使用以及对话框的使用。 二、内容、要求与安排方式 1、实验内容与要求&…...

LeetCode刷题系列 -- 438. 找到字符串中所有字母异位词
给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。 示例 1: 输入: s "cbaebabacd", p "…...

年营收增长50%成基准线,智能汽车赛道订单「高位」运行
智能汽车赛道的持续高速增长,带动产业链相关供应商订单「高位」运行。 本周,LG电子、LG Innotek、LG显示器三家LG集团旗下汽车业务子公司预计今年业务订单额将超过107万亿韩元(约合817亿美元)。其中,LG电子的汽车业务…...

怎么去图片水印?三招让你快速学会图片去水印
上大学的时候,老师让我们每人写一个关于“阅读”的主题报告。写这个主题报告的时候,我发现在网上找的图片素材大多带有水印,十分影响报告的展示效果。于是,我就上网找了一些怎么去图片水印的方法,对这些方法进行试验后…...

PLMN扫描时的并发场景
本文主要讲述两种PLMN扫描时的并发场景。 PLMN描扫跟小区广播并发 小区广播服务开启,如果PLMN扫描跟小区广播业务并发时,终端会一直处于PLMN扫描状态。因为小区广播服务的优先级高于PLMN扫描,小区广播的CTCH channel占用射频资源,导致没有时间间隔分配射频资源进行频段扫…...

【学习笔记01】vue的了解和指令
一、什么是 Vue? Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。 二、Vue的两个核心功…...

41_STM32CAN外设简介
目录 STM32的CAN外设简介 CAN控制内核 工作模式 位时序及波特率 CAN发送邮箱 CAN接收FIFO 验收筛选器 筛选器设置举例 STM32的CAN外设简介 STM32的芯片中具有bxCAN控制器(Basic Extended CAN),它支持CAN协议2.0A和2.0B标准。 该CAN控制器支持最高的通讯速率为1Mb/s;可…...
深度学习:前沿技术-Attention:一个实例说明Attention机制——作者:Ling
作者:Ling,作者链接: http://www.bdpt.net/cn Attention机制早在一两年前就有所耳闻,它作为一般NN,CNN和RNN(LSTM)等深度学习的一个加强技术,当时已经成为NLP领域的研究热点。随着At…...
深度学习:原理简明教程01-从浅层机器学习到深度学习——作者:Ling
作者:Ling,作者链接: http://www.bdpt.net/cn 参考:大量论文和资料总算可以开始从浅层机器学习技术转到深度学习技术上了,开心^_^ 接下来计划:完成深度学习理论博客,补充浅层机器学习技术,浅层和…...

深度学习:原理简明教程02-概述和历史——作者:Ling
作者:Ling,作者链接: http://www.bdpt.net/cn参考:大量论文和资料 著名会议: NIPS,神经信息处理系统ICML,国际机器学习大会ICLR,International Conference on Learning RepresentationsICASSP&a…...

深度学习:原理简明教程03-神经网络基础——作者:Ling
深度学习:原理简明教程03-神经网络基础作者:Ling,作者链接: http://www.bdpt.net/cn神经网络分浅层神经网络与深度学习网络,但是都属于神经网络这个大类别。我们首先会通过一些例子,引入神经网络的各种概念…...

深度学习:原理简明教程04-神经网络加强——作者:Ling
深度学习:原理简明教程04-神经网络加强——作者:Ling,作者链接: http://www.bdpt.net/cn前面博客主要介绍了如下结构:具体结构如下:它经过了一个神经元,该神经元中包含了线性运算和非线性激活现…...

深度学习:原理简明教程05-深度学习——作者:Ling
深度学习:原理简明教程05-深度学习——作者:Ling,作者链接: http://www.bdpt.net/cn欢迎转载,作者:Ling,注明出处:深度学习:原理简明教程05-深度学习深度神经网络就是隐含…...

深度学习:原理简明教程06-深度学习:激活函数——作者:Ling
深度学习:原理简明教程06-深度学习:激活函数——作者:Ling,作者链接: http://www.bdpt.net/cn欢迎转载,作者:Ling,注明出处:深度学习:原理简明教程06-深度学习:激活函数本…...

深度学习:原理简明教程07-深度学习:初始化函数——作者:Ling
深度学习:原理简明教程07-深度学习:初始化函数——作者:Ling,作者链接: http://www.bdpt.net/cn欢迎转载,作者:Ling,注明出处:深度学习:原理简明教程07-深度学习:初始化函…...

深度学习:原理简明教程08-深度学习:优化器——作者:Ling
深度学习:原理简明教程08-深度学习:优化器——作者:Ling,作者链接: http://www.bdpt.net/cn欢迎转载,作者:Ling,注明出处:深度学习:原理简明教程08-深度学习:优化器本文主…...

深度学习:原理简明教程09-深度学习:损失函数——作者:Ling
深度学习:原理简明教程09-深度学习:损失函数——作者:Ling,作者链接: http://www.bdpt.net/cn欢迎转载,作者:Ling,注明出处:深度学习:原理简明教程09-深度学习:损失函数损…...