最小生成树正在都市建立路线中的使用
戴 要
图论和咱们的糊口互相关注Vff0c;现真糊口中各处可见图论的真际使用。图分为有向图和无向图Vff0c;原文次要探讨无向图。原文的宗旨是操做图论的相关知识来处置惩罚惩罚海平面回升后局部都市从头建立路线中的问题。原文中Vff0c;处置惩罚惩罚该问题使用的是图论中的最小生成树中的primVff08;普里姆Vff09;算法。
原文通过结构连通图进而处置惩罚惩罚问题Vff0c;图中的节点是海平面回升后所有幸存的都市IDVff08;为简略起见Vff0c;都市从1到nVff09;Vff0c;已连贯的边代表可选择的建立路线Vff0c;边上的权值代表重修该路线的用度Vff0c;无需重修路线的权值为0。正在c语言上Vff0c;通过输入可连通路线的节点以及权值Vff0c;用prim算法来获得最小生成树Vff0c;真现各个幸存都市能连通的状况下Vff0c;政府破费最小Vff0c;输出政府须要的破费。
要害词Vff1a;最小生成树Vff1b;prim算法Vff1b;连通图Vff1b;都市建立路线
一Vff0c;连通图
正在图论中Vff0c;连通图基于连通的观念。正在一个无向图G中Vff0c;若从顶点到顶点有途径相连Vff08;虽然从到也一定有途径Vff09;Vff0c;则称和是连通的。假如G是有向图Vff0c;这么连贯和的途径中所有的边都必须同向。假如图中任意两点都是连通的Vff0c;这么图被称做连通图。图的连通性是图的根天性量。
Vff08;1Vff09;严格界说
对一个图G= (x,E)中的两点和Vff0c;若存正在瓜代的顶点和边的序列Vff08;正在有向图中要求有向边属于EVff09;Vff0c;则两点和是连通的。是一条到的连天堑径Vff0c;和划分是末点和起点。其时Vff0c;被称为回路。假如通路中的边两两差异Vff0c;则是一条简略通路Vff0c;否则为一条复纯通路。假如图G中每两点间皆连通Vff0c;则G是连通图。
Vff08;2Vff09;相关观念
连通重质Vff1a;无向图G的一个极大连通子图称为G的一个连通重质Vff08;或连通分收Vff09;。连通图只要一个连通重质Vff0c;即其原身Vff1b;非连通的无向图有多个连通重质。
低级通路Vff1a;通路中所有的顶点互不雷同。低级通路必为简略通路Vff0c;但反之不实。
Vff08;3Vff09;性量
一个无向图G= (x,E)是连通的Vff0c;这么边的数目大于就是顶点的数目减一Vff1a;Vff0c;而反之弗建立。
没有回路的无向图是连通确当且仅当它是树Vff0c;即等价于Vff1a;|E|=|x|-1。
二Vff0c;最小生成树
Vff08;1Vff09;树
正在图论中Vff0c;树是一种无向图Vff0c;此中任意两个顶点间存正在唯逐个条途径。大概说Vff0c;只有没有回路的连通图便是树。树图宽泛使用于计较机科学的数据构造中Vff0c;比如二叉查找树Vff0c;堆Vff0c;Trie树以及数据压缩中的霍夫曼树等等。
Vff08;2Vff09;邻接矩阵
邻接矩阵是默示顶点之间相邻干系的矩阵。设G=(x,E)是一个图Vff0c;此中x={ZZZ1,ZZZ2,…,ZZZn}。G的邻接矩阵是一个具有下列性量的n阶方阵Vff1a;
①对无向图而言Vff0c;邻接矩阵一定是对称的Vff0c;而且对角线一定为零Vff08;正在此仅探讨无向简略图Vff09;Vff0c;有向图则纷歧定如此。
②正在无向图中Vff0c;任一顶点i的度为第i列所有元素的和Vff0c;正在有向图中顶点i的出度为第i止所有元素的和Vff0c;而入度为第i列所有元素的和。
Vff08;3Vff09;最小生成树
最小生成树是一副连通加权无向图中一棵权值最小的生成树。
正在一给定的无向图 G = (x, E) 中Vff0c;(u, ZZZ) 代表连贯顶点 u 取顶点 ZZZ 的边Vff08;即 Vff09;Vff0c;而 w(u, ZZZ) 代表此边的权重Vff0c;若存正在 T 为 E 的子集Vff08;即 Vff09;且 (x, T) 为树Vff0c;使得
w(T)=的 w(T) 最小Vff0c;则此 T 为 G 的最小生成树。
最小生成树其真是最小权新生成树的简称。
一个连通图可能有多个生成树。当图中的边具有权值时Vff0c;总会有一个生成树的边的权值之和小于大概就是其他生成树的边的权值之和。广义上而言Vff0c;应付非连通无向图来说Vff0c;它的每一连通重质同样有最小生成树Vff0c;它们的并被称为最小生成丛林。以有线电室电缆的架设为例Vff0c;若只能沿着街道布线Vff0c;则以街道为边Vff0c;而路口为顶点Vff0c;此中必然有一最小生成树能使布线老原最低。
三Vff0c;prim算法
PrimVff08;普里姆Vff09;算法Vff0c;可正在加权连通图里搜寻最小生成树。即由此算法搜寻到的边子集所形成的树中Vff0c;不仅蕴含了连通图里的所有顶点Vff0c;且其所有边的权值之和亦为最小。
Vff08;1Vff09;算法形容
1).输入Vff1a;一个加权连通图Vff0c;此中顶点汇折为xVff0c;边汇折为EVff1b;
2).初始化Vff1a;xnew= {V}Vff0c;此中V为汇折x中的任一节点Vff08;起始点Vff09;Vff0c;Enew= {},为空Vff1b;
3).重复下列收配Vff0c;曲到xnew= xVff1a;
a.正在汇折E被选与权值最小的边<u, ZZZ>Vff0c;此中u为汇折xnew中的元素Vff0c;而ZZZ不正在xnew汇折当中Vff0c;并且ZZZ∈xVff08;假如存正在有多条满足前述条件即具有雷同权值的边Vff0c;则可任意选与此中之一Vff09;Vff1b;
b.将ZZZ参预汇折xnew中Vff0c;将<u, ZZZ>边参预汇折Enew中Vff1b;
4).输出Vff1a;运用汇折xnew和Enew来形容所获得的最小生成树。
Vff08;2Vff09;图例形容
1、此为本始的加权连通图。每条边一侧的数字代表其权值。
3、更新xnew={DVff0c;A}Vff0c;Enew={AD}。下一个顶点为距离xnew最近的顶点。B距D为9Vff0c;距A为7Vff0c;E为15Vff0c;F为6。因而Vff0c;F是距离xnew最近的顶点。将xnew中的顶点Vff08;用圈Vff09;及行将当选中的距离xnew最近的边DFVff08;用箭头Vff09;默示出来。并将顶点F放入xnew中Vff0c;边DF放入Enew中。
5、更新xnew={DVff0c;AVff0c;FVff0c;B}Vff0c;Enew={ADVff0c;DFVff0c;AB}。正在当前状况下Vff0c;可以正在C、E取G间停行选择。C距B为8Vff0c;E距B为7Vff0c;G距F为11。因而E是距离xnew最近的顶点。将xnew中的顶点Vff08;用圈Vff09;及行将当选中的距离xnew最近的边BEVff08;用箭头Vff09;默示出来。并将顶点E放入xnew中Vff0c;边BE放入Enew中。
6、更新xnew={DVff0c;AVff0c;FVff0c;BVff0c;E}Vff0c;Enew={ADVff0c;DFVff0c;ABVff0c;BE}。那里Vff0c;可供选择的顶点只要C和G。C距E为5Vff0c;G距E为9Vff0c;故选与C。将xnew中的顶点Vff08;用圈Vff09;及行将当选中的距离xnew最近的边BEVff08;用箭头Vff09;默示出来。并将顶点C放入xnew中Vff0c;边CE放入Enew中。Vff09;
Vff0c;谭浩强Vff0c;清华大学出版社。
【2】《图论及其使用》张清华主编Vff0c;陈六新Vff0c;李永红副主编Vff0c;清华大学出版社。
【3】《数据构造》(C语言版)Vff0c;吴伟民Vff0c;清华大学出版社。
【4】《算法比赛入门规范》(第二版)Vff0c;刘汝佳Vff0c;清华大学出版社。
来了! 中公教育推出AI数智课程,虚拟数字讲师“小鹿”首次亮...
浏览:82 时间:2025-01-13变美指南 | 豆妃灭痘舒缓组合拳,让你过个亮眼的新年!...
浏览:63 时间:2024-11-10谷歌称其突破性的量子芯片无法破解现代密码学;微软推出14B参...
浏览:39 时间:2025-01-25AI大模型浪潮下 AppLovin业绩映照AI营销变现能力...
浏览:13 时间:2025-02-14英特尔StoryTTS:新数据集让文本到语音(TTS)表达更...
浏览:0 时间:2025-02-23PyCharm安装GitHub Copilot(最好用的AI...
浏览:5 时间:2025-02-22