最小生成树

生成树:

如果连通图G的一个子图是一棵包含G的所有顶点的树,则该子图称为G的生成树。

生成树是连通图的包含图中的所有顶点的极小连通子图。

图的生成树不惟一。从不同的顶点出发进行遍历,可以得到不同的生成树。

深度优先生成树和广度优先生成树:

设图G=(V,E)是一个具有n个顶点的连通图。则从G的任一顶点(源点)出发,作一次深度优先搜索(广度优先搜索),搜索到的n个顶点和搜索过程中从一个已访问过的顶点vi搜索到一个未曾访问过的邻接点vj,所经过的边(vi,vj)(共n-1条)组成的极小连通子图就是生成树。(源点是生成树的根)

通常,由深度优先搜索得到的生成树称为深度优先生成树,简称为DFS生成树;由广度优先搜索得到的生成树称为广度优先生成树,简称为BPS生成树。

最小生成树:

一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。 最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。

如果我们将置换之间的关系建立图的总的权重值看成耦合的衡量值的化,那么如何进行解耦就可以转换成如何创建生成树,这里可能大家有点疑问的是为什么这里是树呢?因为树是一种即能够保留这些置换点关系的数据结构,同时也是耦合度较少(是否为最小还未证明过)的数据结构,因此我们解耦的目标就是如何找到最小生成树。

其实,在更一般的情况下,将图转换为树是选择部分特征或者能力进行处理的通用的方法,例如上面的最小生成树,又例如矩形网格嵌套的四叉树描述,或者为了提高图形处理查询效率而简化的平衡二叉树等等。因为树结构具有特殊的特征。所以我们在软件设计的过程中,可以根据某个特征或者某个操作将图简化为树进行处理,可以简化软件设计的复杂度,并让不同功能各自处理与之相关的树,而不是对整个图的处理。

转载于:https://blog.51cto.com/13832308/2133187

连载26:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...相关推荐

  1. 连载12:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...

    信息熵观点 针对软件设计来说,我们可以将所有的设计通过结构化来表达,于是我们的所有的设计信息都可以表达成结构熵的处理.那么如果系统的结构熵越大,系统就越不稳定,系统的有序化就越小. 那么是否结构化就表 ...

  2. 连载32:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)

    线性化 其实本章节的设置就显得有些为难,按照常理需要大家针对后面的"线性化机制"一章节进行充分理解后,我们才能更好的进行线性化的数学抽象.然而又为了照顾统一在数学抽象的章节中,所以 ...

  3. 连载32:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...

    线性化 其实本章节的设置就显得有些为难,按照常理需要大家针对后面的"线性化机制"一章节进行充分理解后,我们才能更好的进行线性化的数学抽象.然而又为了照顾统一在数学抽象的章节中,所以 ...

  4. 连载01:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)

    件设计公理化 软件设计公理化  现在是一个知识过剩的时代,培养独立思考的能力远比盲目看书更重要.                                                     ...

  5. 连载26:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)

    最小生成树 生成树: 如果连通图G的一个子图是一棵包含G的所有顶点的树,则该子图称为G的生成树. 生成树是连通图的包含图中的所有顶点的极小连通子图. 图的生成树不惟一.从不同的顶点出发进行遍历,可以得 ...

  6. 连载13:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...

    置换的群特征 我们先来看看在计算机设计中最基本的三个置换,一个是从值到地址的置换方式,我们称为值-地址置换,一个是从地址到值的置换,我们称为地址-值置换.当然如果再加上对其值赋值为其他值操作或者对地址 ...

  7. 连载03:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)

    统一化 打破了这种集合关系,那么我们需要重新整理一下我们的思路,这些特征到底是什么关系呢?感觉有点乱. 不过没有关系,我们先跳出面向对象的原有的思维方式,我们先从计算机的最基本的处理来看,在计算机里面 ...

  8. 连载03:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...

    统一化 打破了这种集合关系,那么我们需要重新整理一下我们的思路,这些特征到底是什么关系呢?感觉有点乱. 不过没有关系,我们先跳出面向对象的原有的思维方式,我们先从计算机的最基本的处理来看,在计算机里面 ...

  9. 连载08:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)...

    置换的规范和度量 所以这里可以看出置换具有统一的"可替换"属性,在第二章描述的多重继承体.包含体.包容体.以及函数对象等多个结构中其置换都具有可互联的特征,比如多重继承就是将继承置 ...

最新文章

  1. 如何用人工智能帮你找论文?
  2. 万物智联时代——2018年AIOT产业蓝皮书正式发布
  3. matlab从入门到精通:图像可视化基础操作
  4. 多线程Socket的InputStream的困扰一天才解决的问题
  5. boost::python::long_相关的测试程序
  6. pytorch —— 正则化之Dropout
  7. 英语总结系列(十五):别样的三月
  8. 什么是 Elasticsearch?一篇搞懂
  9. Codeblocks下载安装使用教程
  10. 国际区块链专利:中国蚂蚁、平安、腾讯、复杂美位列前十
  11. 利用计算机技术设计直流稳压电源,数字化控制在直流稳压电源中 - 稳压电源 - 电子发烧友网...
  12. 无需编码,可一键生成前后端代码,少写80%的代码!
  13. index [XXX] blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]问题解决
  14. java出现次数最多的数_java如何找出一个int数组中出现次数最多
  15. nrf51822代码流程(从main展开)
  16. 网站实现qq登录(springboot后台)
  17. Ubuntu 18.04 其他镜像的刻录
  18. 人工智能及其应用第六版目录
  19. LEARNING_CRYPTO|搭建个人以太坊测试网络+测试Solidity部署(Ganache+truffle)
  20. 从一个页面跳转到另一个页面的任何位置处

热门文章

  1. Agfa HealthCare releases next generation of its gold-standard
  2. Mobaxterm连接虚拟机中Linux
  3. springboot项目接入短信
  4. 【小程序】自定义顶部导航栏(左上角返回等)
  5. 标普全球普氏推出区块链网络追踪阿联酋的石油数据
  6. 极大似然估计四个步骤
  7. 企业级 Selenium 刷 其他平台 博客访问(学习使用 )
  8. 声源定位c语言源代码,stm32声源定位.doc
  9. php 数字数组和关联数组,PHP数组、数字数组、关联数组和多维数组
  10. java递归算法经典实例_Java实现简单的递归操作方法实例