图(二)

4. 最小生成树


4.1 生成树


(1)定义:所有顶点均由边连接在一起,但不存在回路的图叫该图的生成树
(2)深度优先生成树与广度优先生成树

(3)

   
一个图可以有许多棵不同的生成树

   
所有生成树具有以下共同特点:
          
生成树的顶点个数与图的顶点个数相同
          
生成树是图的极小连通子图

4.2 最小生成树


生成树的每条边上的权值之和最小。

实例:在N个城市之间修路,总路线的总和最小问题。

4.2.1 Prim方法

设N=(V,{E})是连通网,TE是N上最小生成树中边的集合:
(1)初始令U={u0},(u0属于V),
TE=NULL
(2)在所有u属于U,v属于V-U的边(u,v)属于E中,找一条代价最小的边(u0,v0)
(3)将(u0,v0)并入集合TE,同时v0并入U
(4)重复上述操作直至U=V为止,则T=(V,{TE})为N的最小生成树

4.2.2 Kruskal算法

设连通网N=(V,{E}),令最小生成树
(1)初始状态为只有n个顶点而无边的非连通图T=(V,{NULL}),每个顶点自成一个连通分量
(2)在E中选取代价最小的边,若该边依附的顶点落在T中不同的连通分量上,则将此边加入到T中;否则,舍去此边,选取下一条代价最小的边
(3)依此类推,直至T中所有顶点都在同一连通分量上为止

5.拓扑排序和 关键路径


5.1 拓扑排序

拓扑排序的基础:有向无环图,它是描述一项工程进度的有效工具。

5.1.1 AOV网

用顶点表示活动,用弧表示活动间优先关系的有向图称为顶点表示活动的网(Activity On Vertex network),简称AOV网

5.1.2 拓扑排序算法

(1)在有向图中选一个没有前驱的顶点且输出之
(2)从图中删除该顶点和所有以它为尾的弧
(3)重复上述两步,直至全部顶点均已输出;或者当图中不存在无前驱的顶点为止

5.2 关键路径

在AOV网中,完成工程的最短时间:从开始点到完成点的最长路径长度——关键路径。

Ve(j)——表示事件Vj的最早发生时间
Vl(j)——表示事件Vj的最迟发生时间
e(i)——表示活动ai的最早开始时间
l(i)——表示活动ai的最迟开始时间
l(i)-e(i)——表示完成活动ai的时间余量

6. 最短路径

最短路径:路径上所有边的权值之和最小。

6.1 某顶点到其它个点的最短路径

Dijkstra算法:

(1)初使时令
S={V0},T={其余顶点},T中顶点对应的距离值
(2)若存在<V0,Vi>,为<V0,Vi>弧上的权值
(3)若不存在<V0,Vi>,为无穷
(4)从T中选取一个其距离值为最小的顶点W,加入S
(5)对T中顶点的距离值进行修改:若加进W作中间顶点,从V0到Vi的距离值比不加W的路径要短,则修改此距离值
(6)重复上述步骤,直到S中包含所有顶点,即S=V为止

6.2 每对顶点之间的最短路径

Floyd算法:

(1)初始时设置一个n阶方阵,令其对角线元素为0,若存在弧<Vi,Vj>,则对应元素为权值;否则为无穷
(2)逐步试着在原直接路径中增加中间顶点,若加入中间点后路径变短,则修改之;否则,维持原值
(3)所有顶点试探完毕,算法结束

http://blog.csdn.net/matrix_laboratory/article/details/11879127

时间: 2024-10-13 00:10:55

图(二)的相关文章

面向对象葵花宝典阅读思维导图(二)

在CSDN看到一个博主的一个系列不错,叫的是<面向对象葵花宝典>,看的话必须自宫么- -,学到了很多,但是怎么记录呢?单纯的文字没有一个树形结构的概念,看起来也不清晰,我就自己花了一个思维导图记录一下~ 专栏的地址是http://blog.csdn.net/column/details/oobaodian.html 本节记录的是该系列的14-17节 需求理解 即系统需要做什么 需求不等于功能  例子:ATM机 "取款"."存款"."查询余额&q

Open Flash Chart 之线图(二)

上一节在研究Open Flash Chart时,漏掉不少东西,只是简单的熟悉了一下后端的属性设置.今天再来补充一下. 一.显示Open Flash Chart图表 Open Flash Chart 前台配置: swfobject.embedSWF(flashPath, "chart", "100%", "100%", "9.0.0", "expressInstall.swf",{}, {},{id:'cus

iOS学习笔记20-地图(二)MapKit框架

一.地图开发介绍 从iOS6.0开始地图数据不再由谷歌驱动,而是改用自家地图,当然在国内它的数据是由高德地图提供的. 在iOS中进行地图开发主要有三种方式: 利用MapKit框架进行地图开发,利用这种方式可以对地图进行精准的控制 调用苹果官方自带的地图应用,主要用于一些简单的地图应用,无法精确控制 使用第三方地图开发SDK库 用得最多的还是MapKit,所以这节就只讲MapKit的使用. 二.MapKit核心类 MapKit的核心类为地图展示控件MKMapView,以下是常用的属性.对象方法以及

【华为云技术分享】灰度图二值化算法

[摘要] 目前最常用的快速二值化阈值确定方法为根据每一张目标图像来动态的计算平均灰度值.然后将灰度图像中的每个像素灰度值和此平均阈值作对比,高于平均阈值的记为“1”(白色),低于的则设置为“0”(黑色).这种方法虽然会让造成部分背景像素点丢失,但却是最简单高效的处理方法. 灰度图片中都可以用一个具体的灰度值Grav来量化每一个像素点.考虑到实际识别的二值特征,为了让被处理目标答题卡更加简单,计算量更少,速度更快,我们可以直接对灰度图片进行二值化处理. 图像二值化简单来说就是讲整个灰度图片的目标像

UML类图二

在软件系统中,类并不是孤立存在的,类与类之间存在各种关系,对于不同类型的关系,UML提供了不同的表示方式.       1. 关联关系 关联(Association)关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系,如汽车和轮胎.师傅和徒弟.班级和学生等等.在UML类图中,用实线连接有关联关系的对象所对应的类,在使用Java.C#和C++等编程语言实现关联关系时,通常将一个类的对象作为另一个类的成员变量.在使用类图表示关联关系时可以在关联线上标注角色名

设计模式 (4)类图二

导言 关联关系 关联定义 类图描述关联 关联的多重性 一对一关联 如下图所示一对一静态建模表示法 代码显示显示主要体现部分 一对多关联 如下图所示一对多关联显示 代码显示显示主要体现部分 规定数值关联 如下图所示规定数值关联显示 可选关联 如下图所示可选关联显示 多对多关联 如下图所示多对多关联显示 三元关联 一元关联自关联 关联类 总结 导言 前面第一篇类图文章,介绍了类图和类以及类图的画法并提及了对象的表示.现在我们来描述一下类图之类之间的关联关系. 关联关系 关联关系(Associatio

IOS折线图二

上周把项目的折线图给做了下,今天想着把它完善完善,自己设置了不同的数据源来测试,哈哈,还真遇到问题了, 就是给图表设置折点数为0时,视图显示的还是原来的,由于数据为空,应该将其设置为空,所以想着怎么把ScrollView中的子视图情况.由于标题和折点值是用Label,可以删除View.但画的线和点是通过贝塞尔曲线添加到图层上了,还要把子视图的layer删掉.可是问题来了, 先上删除代码: int count = [self.layer.sublayers count]; for (int i =

nagios二次开发之“依据分组绘制服务图”

背景:       在nagios3.2.0版本,曾将nagios.saltstack.Thinkphp进行整合.在整合的基础之上,进行了二次开发,新增分组出图.资产管理.服务器批量管理等功能.资产的增删改查借助的是Thinkphp框架:分组出图单独写分组页面,调用pnp的接口:服务器的批量管理,依靠的是saltstack的强大的API,如下图: 图1  按业务分组出图 图2  资产管理和服务器批量管理 上述系统已应用到线上环境.接下来我们要讲述的"依据分组绘制服务图"是在nagios

C语言实现将彩色BMP位图转化为二值图

CTF做了图片的隐写题,还没有形成系统的认识,先来总结一下BMP图的组成,并通过将彩色图转为二值图的例子加深下理解. 只写了位图二进制文件的格式和代码实现,至于诸如RGB色彩和调色板是什么的一些概念就不啰嗦了. BMP位图文件格式 BMP文件由文件头.位图信息头.调色板和图形数据四部分组成,真彩色图是没有调色板的.每部分的具体结构在代码中具体列出并解释. 结构体的对齐 定义文件头部各结构体时要注意对齐的问题,至于什么是结构体对齐,请看这篇博文,写的很详细http://www.cnblogs.co

QCustomplot使用分享(二) 源码解读

一.头文件概述 从这篇文章开始,我们将正式的进入到QCustomPlot的实践学习中来,首先我们先来学习下QCustomPlot的类图,如果下载了QCustomPlot源码的同学可以自己去QCustomPlot的目录下documentation/qcustomplot下寻找一个名字叫做index.html的文件,将其在浏览器中打开,也是可以找到这个库的类图.如图1所示,是组成一个QCustomPlot类图的可能组成形式. 一个图表(QCustomPlot):包含一个或者多个图层.一个或多个ite