设一个无向连通图G=(V,E),顶点个数记作m,边的数量为n。其对应的最小生成树记作f。

则生成树T的性质有:

  1. 边数量为m-1
  2. 没有圈
  3. 加入任何一条边都会形成一个圈

对于一颗生成树T,定义

操作:在其上添加一条边,并在产生的圈里删除一条边,则:其仍然为一棵树。

邻域:对于一个生成树T,执行一次上述操作所得到新的生成树T’称之为T的邻居,这些所有邻居和它自己一起构成T的邻域。

精确:如果一个解是局部(邻域)最优解,那么其也是全局最优解,那么称这个邻域是精确的。

定理1:树A和B是无向图的两个生成树,则A可以通过若干次操作变成B。

证:把树看作边的集合,如果B中有一条A没有的边,则把这条边加到A上,A产生一个圈中至少有一条是B中没有的边,把这条边删掉,则A仍然是生成树,但是此时:A,B集合相同的边多了一条,重复这个过程直到A B包含的边相同。

定理2:上述操作所产生的T的邻域是精确的。

证:由于其是“如果一棵生成树不是最小生成树,则一定存在一个操作,使得操作之后,它的总权值减小。”的逆否命题。所以我们证明这个命题即可。

设A不是最小生成树,A的边按权值递增排序后为e1,e2,⋯,em−1e_1,e_2,\cdots,e_{m-1}e1​,e2​,⋯,em−1​,且有:w(e1)≤w(e2)≤⋯≤w(em−1)w(e_1)≤w(e_2)≤\cdots \le w(e_{m-1})w(e1​)≤w(e2​)≤⋯≤w(em−1​)。

假设A的前iii条边e1,e2,⋯,eie_1,e_2,\cdots,e_ie1​,e2​,⋯,ei​都是最优的,即如果使用Kruskal算法来构造,前iii条边的权值也是这些。直到第j=i+1j=i+1j=i+1次时,瞎了眼,选错了,有w(ej)<w(ej′)w(e_j)<w (e'_j)w(ej​)<w(ej′​)(ej′e'_jej′​表示利用Kruskal算法选出来的第jjj条边),后面不再管了,随便怎么生成,反正由于权值递增关系,这一个生成树一定不是最小生成树了,因为ej′e'_jej′​不在A中。

那考虑把ej′e'_jej′​加入到A中,必会形成一个圈。(证明的难点在于此)且这个圈中必有比ej′e'_jej′​更大的边,从而将任何一个更大的边删除都可以减小总权值,证毕。

难点解释:反证法,如果全部都不比ej′e'_jej′​大,即举个例子如下:

假设浅绿色为生成树A,加入ej′e'_jej′​后形成了红色中的一个圈,如果该圈中其他的边大小都是小于等于ej′e'_jej′​的,那么按照Kruskal算法,又怎么会想要在第jjj次加入ej′e'_jej′​呢?Kruskal算法是不会形成圈的。所以矛盾,推知含有比ej′e'_jej′​大的边。


拓展——邻域的其他应用。


生成树、最小生成树的一些性质以及邻域的概念相关推荐

  1. 【opencv4】opencv视频教程 C++ 7、手动调整图像亮度与对比度 g(i, j) = αf(i, j) + β(点操作与邻域操作概念)

    上一讲:[opencv4]opencv视频教程 C++ 6.图像混合.线性混合.混合权重相加addWeighted().混合加add().混合乘multiply() [opencv_C++] 入门强推 ...

  2. 【HDU - 5627】Clarke and MST(最大生成树,与运算性质,最小生成树MST变形)

    题干: Clarke is a patient with multiple personality disorder. One day he turned into a learner of grap ...

  3. 图论 —— 生成树 —— 最小生成树 —— Prim

    [基本思想] Prim 算法基本思想是蓝白点思想,用白点代表已进入最小生成树的点,蓝点代表未进入最小生成树的点. 每次循环都将一个蓝点 u 变为白点,并且此蓝点 u 与白点相连的最小边权 min[u] ...

  4. 树-生成树-最小生成树

    树之 (一).了解 自由树就是一个无回路的连通图(没有确定根)(在自由树中选定一顶点做根,则成为一棵通常的树).从根开始,为每个顶点(在树中通常称作结点)的孩子规定从左到右的次序,则它就成为一棵有序树 ...

  5. 图论 —— 生成树 —— 最小生成树 —— Kruskal

    [基本思想] Kruskal 算法基本思想是并查集思想,将所有边升序排序,并认为每一个点都是孤立的,分属 n 个独立的集合. 按顺序枚举每一条边,如果这条边连接的两个点分属两个不同的集合,那么就将这条 ...

  6. 图论 —— 生成树 —— 增量最小生成树

    [概述] 所谓最小增量生成树问题,即:给定包含 n 个点的空图,依次加入 m 条带权边,每次加入一条边,就输出当前图中最小生成树的权值,如果没有生成树,则输出无解 求解最小增量生成树的方法是:根据最小 ...

  7. LA 5717枚举+最小生成树回路性质

    1 /*LA 5717 2 <训练指南>P343 3 最小生成树的回路性质 4 在生成的最小生成树上,新增一条边e(u,v) 5 若原图上u到v的路径的最大边大于e,则删除此边,加上e,否 ...

  8. 最短路径生成树与最小生成树

    虽然放在一起,但是他们两个除了都是树之外没有一点关系. 最短路径生成树,就是ROOT根节点到达任意点距离最短的路径所构成的树,就是最短路径生成树.我画两个图给大家理解. 最短路径生成树 最小生成树 这 ...

  9. 最小生成树实验报告c语言,算法与程序设计实验最小生成树(c语言).ppt

    算法与程序设计实验最小生成树(c语言).ppt 最小生成树 问题分析: 由于在每两个城市之间都可以建立一条通信线路,n个城市之间最多可能设置n(n-1)/2条线路,而每条线路都要付出一定的经济代价,因 ...

最新文章

  1. 移动端整屏滑动的实现
  2. amd的处理器能兼容idea么_250元就能买到16GB内存 这背后究竟是道德的沦丧还是人性的扭曲?...
  3. linux添加硬盘分区设置柱面,linux 下添加新硬盘设备和硬盘分区格式化挂载使用磁盘配额限制...
  4. 朴素贝叶斯法分类器的Python3 实现
  5. Linux 用户名、主机添加背景色
  6. “家乡好物直播”走进“水果第一县”,人大教授变身“好物推荐官”
  7. Python字符集编码和文件读写
  8. mysql 80070057_返回E_INVALIDARG (0x80070057)
  9. 解决:百度编辑器UEditor,怎么将图片保存到图片服务器,或者上传到ftp服务器的问题(如果你正在用UE,这篇文章值得你看下)
  10. linux内核代码container_of
  11. z变换解差分方程例题_中级数学4 - 多元线性方程
  12. vb adodc连接mysql_VB中用ADODC控件连接ACCESS数据库
  13. 小程序如何生成海报分享朋友圈
  14. Office协同办公讲解以及软件归纳
  15. pid的matlab仿真,MATLAB Pid仿真实验
  16. 3dmax2022 导不出datasmith格式文件
  17. php获取蓝奏云直连,最新php蓝奏云直链api接口源代码
  18. 0-1背包问题:输出最小背包
  19. 香港岭南大学开通CnOpenData试用
  20. 10个顶级Python实用库,推荐你试试!

热门文章

  1. Python 中更优雅的环境变量设置方案
  2. 图灵赠书——程序员11月书单
  3. 使用Wasserstein距离鉴别器的无监督图对齐
  4. 手把手教你使用深度学习的方法进行人脸解锁
  5. 独家 | 由第一原理导出卷积
  6. 半小时训练亿级规模知识图谱,亚马逊AI开源知识图谱嵌入表示框架
  7. Attention!注意力机制模型最新综述(附下载)
  8. 哈佛CS50撕书教授在家录了一套4K网课,你准备好电话簿了吗?
  9. Nature新研究:酒精导致的DNA损伤能被安全修复,为降低酒精性癌症发病率开辟机会...
  10. 【资源推荐】知识图谱顶会论文集锦