第四节最小树问题
- 格式:ppt
- 大小:342.50 KB
- 文档页数:7
最小树与最小树形图(数学建模)讲解一、最小树的定义及性质1. 定义:最小树,又称最小树,是指在给定的带权无向图中,包含图中所有顶点的一个树形结构,且树中所有边的权值之和最小。
2. 性质:(1)最小树中不存在回路;(2)对于最小树中的任意两个顶点,它们之间有且仅有一条路径;(3)最小树中边的数量等于顶点数量减一;(4)在最小树中添加任意一条边,都会形成一条回路;(5)最小树不唯一,但权值之和相同。
二、求解最小树的方法1. Prim算法Prim算法是一种贪心算法,其基本思想是从图中的一个顶点开始,逐步添加边和顶点,直到形成最小树。
具体步骤如下:(1)初始化:选择一个顶点作为最小树的起点,将其加入最小树集合;(2)迭代:在最小树集合和非最小树集合之间,寻找一条权值最小的边,将其加入最小树集合;(3)重复步骤2,直到所有顶点都加入最小树集合。
2. Kruskal算法Kruskal算法同样是一种贪心算法,其基本思想是将图中的所有边按权值从小到大排序,然后依次选择权值最小的边,判断是否形成回路,若不形成回路,则将其加入最小树集合。
具体步骤如下:(1)初始化:将所有顶点视为独立的树;(2)按权值从小到大排序所有边;(3)迭代:选择权值最小的边,判断其是否形成回路,若不形成回路,则将其加入最小树集合;(4)重复步骤3,直到所有顶点都在同一棵树中。
三、最小树形图的定义及求解方法1. 定义:最小树形图,又称最优树形图,是指在给定的有向图中,找到一个包含所有顶点的树形结构,使得树中所有边的权值之和最小。
2. 求解方法:朱刘算法(Edmonds' Algorithm)朱刘算法是一种用于求解最小树形图的算法,其基本思想是通过寻找图中的最小权值环,进行收缩和扩展操作,最终得到最小树形图。
具体步骤如下:(1)寻找最小权值环;(2)对最小权值环进行收缩操作,将环中的顶点合并为一个新顶点;(3)在新图中寻找最小树形图;(4)将新图中的最小树形图扩展回原图,得到原图的最小树形图。
第8卷 第15期 2008年8月1671-1819(2008)15-4238-09科 学 技 术 与 工 程Science T echno logy and Eng i neeringV ol 18 N o 115 A ug . 2008Z 2008 Sci 1T ech 1Engng 1综 述数 学Steiner 最小树问题及其应用张 瑾1,2马 良1*(上海理工大学管理学院1,上海200093;河南大学计算机与信息工程学院2,开封475001)摘 要 Ste i ner 最小树问题是一个历史悠久的经典的组合优化问题,由于应用广泛,多年来一直受到研究者的广泛关注。
介绍了各种S teine r 树问题及其求解算法和实际应用。
关键词 Ste i ner 最小树 精确算法 启发式算法 应用中图法分类号 O 224; 文献标志码 A2008年4月21日收到国家自然科学基金项目(70471065)、上海市重点学科建设项目(T0502)资助第一作者简介:张 瑾(1974)),女,河南开封人,博士生1研究方向:系统工程、智能优化。
*通信作者简介:马 良(1964)),男,上海人,博士,教授,博士生导师1研究方向:智能优化。
现实生活中经常要求解决这样的问题,即将若干给定点相连并使连线的总长最短。
在网络通信领域中,该问题被一般化地提为:如果要在n 个区域间铺设通信网,使得各区域之间能实现信息的共享,那么应如何铺设才能使通信线路的总长最短?一般首先想到的可能就是求连接这n 个点的最小生成树(M i n i m um Spann i n g Tree )M ST )这种做法,但如果不拘泥于这n 个点,而引入除这n 个点之外的另外几个点的话,则有可能使连接各区域的通信线路的总长更短。
这是Steiner 最小树问题(Steiner M i n i m u m Tree Prob le m ,简记为S MTP)的来源。
S teiner 最小树问题是经典的组合优化问题,最早可以追溯到17世纪初。
§6.4 最小树1、最小树及其性质支撑树T 的权(或长):∑'∈=E e e W T W )()(最小支撑树:G 中权最小的支撑树定理6.4.1 设T 是G 的支撑树, 则T 是G 的最小树当且仅当对任意边*T e ∈有)(max )()(e W e W e C e '=∈'其中e T e C +⊆)(为一个唯一的回路。
定理6.4.2 设T 是G 的支撑树, 则T 是G 的最小树当且仅当对任意边T e ∈有)(min )()(e W e W e e '=Ω∈'其中e T e +⊆Ω*)(为一个唯一割集。
定理6.4.3 设T 是G 的支撑树,则T 是G 的唯一最小树当且仅当对任意边T G e \∈,e 是C (e )中的唯一最大边。
定理6.4.4 设T 是G 的支撑树,则T 是G 的唯一最小树当且仅当对任意边T e ∈,e 是)(e Ω中的唯一最大边。
2、求最小树的Kruskal 算法(贪心算法或避圈法)基本思想:从图G 的m 条边中选取1-n 条权尽量小的边,并且使它们不构成回路。
理论基础:定理6.4.1具体步骤:首先选出一条权最小的边,再从剩下的边中选出一条权最小的, 并且与前面已经选出的边不构成回路。
如此选下去,直到选出1-n 条边为止。
第1步 开始把边按权的大小由小到大排列起来,即m a a a ,...,,21置 φ=S ,0=i ,1=j 。
第2步 若1||-==n i S ,则停。
这时T S G =][即为所求;否则, 转向第3步。
第3步 若}]{[j a S G Y 不构成回路,则置j i a e =+1,}{1+=i e S S Y ,1+=i i ,1+=j j ,转向第2步;否则,置1+=j j ,转向第2步。
例:求图6.4.1的最小树T 。
解:83221)(=+++=T w3、求最小树的破圈法具体步骤:任意选出图G 的一条回路,从中去掉一条权最大的边。
图 论哥尼斯堡七桥问题:图论发源于18世纪普鲁士的哥尼斯堡。
普雷格河流经这个城市,河中有两个小岛,河上有七座桥,连接两岛及两岸。
如图所示,当时城里居民热衷于讨论这样一个问题:一个人能否走过这七座桥,且每座桥只经过一次,最后仍回到出发点。
将上面问题中的两座小岛以及两岸用点表示,七座桥用线(称为边)表示,得到下图:于是,上述问题也可叙述为:寻找从图中的任意一个点出发,经过所有的边一次且仅一次并回到出发点的路线。
注意:在上面的图中,我们只关心点之间是否有边相连,而不关心点的具体位置,边的形状以及长度。
一、基本概念:图:由若干个点和连接这些点中的某些“点对”的连线所组成的图形。
顶点:上图中的A ,B,C,D .常用表示。
n 21 v , , v , v 边:两点间的连线。
记为(A,B),(B,C).常用表示。
m 21e , , e , e次:一个点所连的边数。
定点v的次记为d(v).图的常用记号:G=(V,E),其中,}{v V i =,}{e E i =子图:图G的部分点和部分边构成的图,成为其子图。
路:图G中的点边交错序列,若每条边都是其前后两点的关联边,则称该点边序列为图G的一条链。
圈(回路):一条路中所含边点均不相同,且起点和终点是同一点,则称该路为圈(回路)。
有向图:,其中(,)G N A =12{,,,}k N n n n = 称为的顶点集合,A a 称为G 的弧集合。
G {(,)ij i j }n n ==若,则称为的前驱, 为n 的后继。
(,)ij i j a n n =i n j n j n i 赋权图(网络):设是一个图,若对G 的每一条边(弧)都赋予一个实数,称为边的权,。
记为。
G (,,)G N E W =两个结论:1、图中所有顶点度数之和等于边数的二倍; 2、图中奇点个数必为偶数。
二、图的计算机存储:1. 关联矩阵简单图:,对应(,)G N E =N E ×阶矩阵()ik B b =10ik i k b ⎧=⎨⎩点与边关联否则简单有向图:,对应(,)G N A =N A ×阶矩阵()ik B b =110ik ik ik a i b a i ⎧⎪=−⎨⎪⎩弧以点为尾弧以点为头否则2. 邻接矩阵简单图:,对应(,)G N E =N N ×阶矩阵()ij A a =10ij i j a ⎧=⎨⎩点与点邻接否则简单有向图:,对应(,)G N A =N N ×阶矩阵()ij A a =10ij i ja ⎧=⎨⎩有弧从连向否则5v 34v01010110100101011110101000110111101065432166654321⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=×v v v v v v A v v v v v v3. 权矩阵:简单图:,对应(,)G N E =N N ×阶矩阵()ij A a =ij ij i j a ω⎧=⎨∞⎩点与点邻接否则123456781234567802130654.5061002907250473080 v v v v v v v v v v v v v v v v 48∞∞∞∞⎡⎤⎢⎥∞∞∞∞∞⎢⎥⎢⎥∞∞∞∞∞⎢⎥∞∞∞∞∞⎢⎥⎢⎥∞∞∞∞⎢⎥∞∞∞∞⎢⎥⎢⎥∞∞∞∞⎢⎥∞∞∞∞∞∞⎢⎥⎣⎦三、图的应用:例:如图,用点代表7个村庄,边上的权代表村庄之间的路长,现在要在这7个村庄中布电话线,如何布线,使材料最省?分析:需要将图中的边进行删减,使得最终留下的图仍然连通,并且使总的权值最小。
《运筹学》重要知识点解析和例题分析第六部分一.图的基本概念 定义一个图G 是指一个二元组(V(G),E(G)).即图是由点及点之间的联线所组成。
其中: 1)图中的点称为图的顶点(vertex).记为:v2)图中的连线称为图的边(edge).记为:,i j e v v ⎡⎤=⎣⎦.,i j v v 是边 e 的端点。
3)图中带箭头的连线称为图的弧(arc).记为:(),i j a v v =.,i j v v 是弧 a 的端点。
—— 要研究某些对象间的二元关系时.就可以借助于图进行研究 分类▪ 无向图:点集V 和边集E 构成的图称为无向图(undirected graph).记为: G(V.E)—— 若这种二元关系是对称的.则可以用无向图进行研究▪ 有向图:点集V 和弧集A 构成的图称为有向图(directed graph) .记为:D(V.A)—— 若这种二元关系是非对称的.则可以用有向图进行研究▪ 有限图: 若一个图的顶点集和边集都是有限集.则称为有限图.只有一个顶点的图称为平凡图.其他的所有图都称为非平凡图.图的特点:1 图反映对象之间关系的一种工具.与几何图形不同。
2 图中任何两条边只可能在顶点交叉.在别的地方是立体交叉.不是图的顶点。
3 图的连线不用按比例画.线段不代表真正的长度.点和线的位置有任意性。
4 图的表示不唯一。
如:以下两个图都可以描述“七桥问题”。
点(vertex)的概念1 端点:若e =[u.v] ∈E.则称u.v 是 e 的端点。
2 点的次:以点 v 为端点的边的个数称为点 v 的次.记为:()d v 。
在无向图G 中.与顶点v 关联的边的数目(环算两次),称为顶点v 的度或次数.记为()d v 或 dG(v).在有向图中.从顶点v 引出的边的数目称为顶点v 的出度.记为d+(v).从顶点v 引入的边的数目称为v 的入度.记为d -(v). 称()d v = d+(v)+d -(v)为顶点v 的度或次数. 3 奇点:次为奇数的点。