最小生成树-数学建模_第1页
最小生成树-数学建模_第2页
最小生成树-数学建模_第3页
最小生成树-数学建模_第4页
最小生成树-数学建模_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Mathematicamodel最小生成树算法参考书:1.傅鹂龚劬刘琼荪何中市《数学实验》科学出版社2.张绍民李淑华《数据结构教程C语言版》中国电力出版社主讲:龚劬制作:龚劬1编辑pptPrim算法Kruskal算法主要内容最小生成树问题的0-1规划模型一个例子基本概念与结论2编辑ppt赵根赵明赵亮赵丽赵雷赵虹赵雨赵霞赵云赵梅赵松树图——直观形象的表示工具类似于自然界中的树形象地表示家族3编辑ppt树:

没有圈的连通图

树中任意两点间有唯一路径。

树的边数恰好为顶点数减1。

树图——直观形象的表示工具4编辑ppt城市电信局有许多业务如收费,营业,112,114等,希望在全市范围实现计算机联网服务,共享各种资源。一个主要关心的问题是:用数据通讯线把一组站点联结起来,而不允许通讯线在非站点处相交,如何连接可使通讯线的花费最小?引例:计算机网络的线路设计5编辑ppt12345869157103引例:计算机网络的线路设计最经济的网络不应该有任何封闭的回路。6编辑ppt引例:计算机网络的线路设计生成树或支撑树(spanningtree):G的子图且是树,其顶点集等于G的顶点集;12345869157103如何简便地得到左图的生成树?它应有几条边?想7编辑ppt确定应在哪些站点之间铺设通讯线路,是否可看作是在相应的加权图中构造最小费用的生成树的问题?引例:计算机网络的线路设计8编辑ppt最小生成树最大生成树引例:计算机网络的线路设计想1)一个完全图Kn有多少不同的生成树?2)如何求其最小生成树?9编辑ppt10个顶点的完全图,其不同的生成树就有一亿棵。一般地,n个顶点的完全图,其不同的生成树个数为nn-2。30个顶点的完全图就有3028个生成树,求最小生成树时用穷举法是无效的。引例:计算机网络的线路设计返回10编辑ppt返回最小生成树与算法如果生成树*T的权)(*Tw是G的所有生成树的权中最小者,则称*T是G的最小生成树,简称为最小树,即)}({min)(*TwTwTå=,式中取遍G的所有生成树T.

定义设),(1EVT=是赋权图),(EVG=的一棵生成树,称T中全部边上的权数之和为生成树的权,记为)(Tw,即åÎ=1)()(EeewTw.

11编辑pptPrim算法Kruskal算法最小生成树算法及其MATLAB程序实现返回算法的MATLAB程序实现12编辑ppt基本思想:

最初把图的n个顶点看作n个分离的部分树,每个树具有一个顶点,算法的每一步选择可连接两分离树的边中权最小的边连接两个部分树,合二为一,部分树逐步减少,直到只有一个部分树(n-1步之后)便得到最小生成树。Kruskal算法13245869157103时间复杂度:O(m)其中m为图的边数13编辑pptKruskal算法1)选择边e1,使得w(e1)尽可能小;2)若已选定边,则从中选取,使得:i)为无圈图,

ii)是满足i)的尽可能小的权,3)当第2)步不能继续执行时,则停止.步骤定理由Kruskal算法构作的任何生成树都是最小生成树.14编辑pptKruskal算法123458391571061号子树

2号子树

3号子树给每个子树一个不同的编号返回15编辑ppt初始化:j0,T,c0,k0;对所有顶点i,t(i)i.jj+1t(B(1,j))t(B(2,j))TT(B(1,j),B(2,j)),cc+B(3,j),kk+1,i0t(i)=max{t(B(1,j)),t(B(2,j))t(i)min{t(B(1,j)),t(B(2,j)),k=n-1或j=mT,c整理边权矩阵NYi=n终止NYYii+1NYNB:图的边权矩阵;T:生成树的边集;C:生成树的权;t:顶点所属子树的编号16编辑pptKruskal算法例:用Kruskal算法求引例中的加权图的最小生成树。12345869157103b=[11122334;24535455;815679103];边权矩阵:17编辑pptb=[11122334;24535455;815679103];[B,i]=sortrows(b',3);B=B’;m=size(b,2);n=5;t=1:n;k=0;T=[];c=0;fori=1:mift(B(1,i))~=t(B(2,i))k=k+1;T(k,1:2)=B(1:2,i),c=c+B(3,i)tmin=min(t(B(1,i)),t(B(2,i)));tmax=max(t(B(1,i)),t(B(2,i))); forj=1:n ift(j)==tmax t(j)=tmin;endendend ifk==n-1break;endendT,c18编辑ppt程序运行结果:T=14452325c=17Kruskal算法123456173返回19编辑pptPrim算法●基本思想:任选一个顶点v0开始,连接与v0最近的顶点v1,得子树T1,再连接与T1最近的顶点v2得子树T2,如此继续下去,直到所有顶点都用到为止。●时间复杂度:O(n2),n为图的顶点数20编辑ppt提示Kruskal算法和Prim算法都蕴涵了贪婪法的思想,是贪婪法;贪婪法的基本思想:把解看成是由若干个部件构成,每一步求出解的一个部件(不是从整体或长远的角度考虑,只是局部或当前的最好选择)。求出的一个个部件组合而作为最终的解。21编辑ppt贪婪法可被用于各种各样问题的处理。该法只是一种试探法,计算上简便有效,可提供正确解的一个近似。但一般情况下,不能保证输出的解是正确的。其正确性需要证明,这往往比较困难。已证明,求最小生成树的Kruskal算法和Prim算法都是正确的

注意返回22编辑ppt分组技术是设计制造系统的一种方法,它把生产零件的机器分组,相应地把需生产的零件分类,使零件跨组加工的情形尽量少,最理想的情况是使每个零件的加工,都在组内完成。假设有13种零件,需在9台机器上加工。在各台机器上加工的零件号在下表中给出。范例:制造系统的分组技术23编辑ppt范例:制造系统的分组技术机器123456789加工的零件2,3,7,8,9,12,132,7,8,11,121,63,5,103,7,8,9,12,1354,104,10624编辑ppt设用Mi表示需由机器i加工的零件集,对任意两台机器i,j,定义相异度:范例:制造系统的分组技术建模25编辑ppt“”:对称差,分子:在机器i但不在机器j上加工,或在机器j但不在机器i上加工的零件数。分母:或在机器i,或在机器j上加工的零件数。显然01建模1)(i,j)=0和(i,j)=1分别表示什么?2)表达了什么?想26编辑ppt构造加权图

以机器为顶点,作一个完全图,每条边(i,j)被赋予权(i,j)。原问题的转化加权图的最小生成树是由那些相异度最小的边构成的连通图,如果希望把机器分成k个组,就继续删去最小生成树上权最大的k-1条边。于是得到k个分离的子树,每棵树的顶点集就构成各机器组。建模27编辑ppt对表1给出的数据,加权图的边权矩阵如下:[111111112222222333333444445555666778;234567893456789456789567896789789899;0.510.890.141111110.621111111110.50.870.670.750.7511111111011]用Kruskal算法可求出最小生成树,在前面给出的Kruskal算法的MATLAB程序中,边权矩阵b的值改为此处的边权矩阵,顶点数n改为9即可。模型求解上一页下一页主页28编辑pptT=7815123946474513c=4.4300912547863.51.5.14.87.67.750机器的分组:{3,9},{1,2,5},{4,6,7,8}。912547863.5.5.14.67.75029编辑ppt你能给出对应于该机器分组的零件分类吗?机器的分组:{3,9},{1,2,5},{4,6,7,8}。912547863.5.5.14.67.750想模型结果返回30编辑ppt设是两点i与j之间的距离,或1(1表示连接,0表示不连接),并假设顶点1是生成树的根.则最小生成树问题的0-1规划模型31编辑ppt最小生成树问题的0-1规划模型例

(最优连线问题)我国西部的SV地区共有1个城市(标记为1)和9个乡镇(标记为2--10)组成,该地区不久将用上天然气,其中城市1含有井源.现要设计一供气系统,使得从城市1到每个乡镇(2--10)都有一条管道相连,并且铺设的管子的量尽可能的少.下表给出了城镇之间的距离.求SV地区的最优连线.32编辑ppt最小生成树问题的0-1规划模型33编辑ppt最小生成树问题的0-1规划模型

解:按照数学规划写出相应的LINGO程序,MODEL:1]sets:2]cities/1..10/:level;!level(i)=thelevelofcity;3]link(cities,cities):4]distance,!Thedistancematrix;5]x;!x(i,j)=1ifweuselinki,j;6]endsets

34编辑ppt最小生成树问题的0-1规划模型7]data:!Distancematrix,itneednotbesymmetirc;8]distance=08591214121617229]809151681118142210]5907911712121711]91570317107151512]12169308106151513]14811178091481614]12117101090861115]161812761480111116]1714121515861101017]2222171515161111100;18]enddata35编辑ppt最小生成树问题的0-1规划模型19]n=@size(cities);!Themodelsize;20]!Minimizetotaldistanceofthelinks;21]min=@sum(link(i,j)|i#ne#j:distance(i,j)*x(i,j));22]!Theremustbeanarcoutofcity1;23]@sum(cities(i)|i#gt#1:x(1,i))>=1;24]!Forcityi,exceptthebase(city1);25]@for(cities(i)|i#gt#1:26]!Itmustbeentered;27]@sum(cities(j)|j#ne#i:x(j,i))=1;28]!level(j)=levle(i)+1,ifwelinkjandi;36编辑ppt最小生成树问题的0-1规划模型29]@for(cities(j)|j#gt#1#and#j#ne#i:30]level(j)>=level(i)+x(i,j)31]-(n-2)*(1-x(i,j))+(n-3)*x(j,i);32]);33]!Thelevelofcityisatleast1butnomoren-1,34]andis1ifitlinkstobase(city1);35]@bnd(1,level(i),999999);36]level(i)<=n-1-(n-2)*x(1,i);37]);38]!Makethex's0/1;39]@for(link:@bin(x));END37编辑ppt最小生成树问题的0-1规划模型利用水平变量(level)来保证所选的边不构成圈.Globalopt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论