数学建模图论模型图论

数学建模图论模型图论

ID:35941347

大小:229.50 KB

页数:21页

时间:2019-04-26

数学建模图论模型图论_第1页
数学建模图论模型图论_第2页
数学建模图论模型图论_第3页
数学建模图论模型图论_第4页
数学建模图论模型图论_第5页
资源描述:

《数学建模图论模型图论》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实用文案图论算法§1最小生成树1.1生成树的概念   设图G=(V,E)是一个连通图,当从图中任一顶点出发遍历图G时,将边集E(G)分成两个集合A(G)和B(G)。其中A(G)是遍历图时所经过的边的集合,B(G)是遍历图时未经过的边的集合。显然,G1=(V,A)是图G的子图,则称子图G1是连通图G的生成树。图的生成树不是惟一的。如对图1(a),当按深度和广度优先搜索法进行遍历就可以得到图1中(b)和(c)的两棵不同的生成树,并分别称之为深度优先生成树和广度优先生成树。       对于有n个顶点的连通图,至少有n-1条边,而生成树中恰好有n-1条边,所以连通图的生成树

2、是该图的极小连通子图。若图G的生成树中任意加一条边属于边集B(G)中的边,则必然形成回路。   求解生成树在许多领域有实际意义。例如,对于供电线路或煤气管道的铺设问题,即假设要把n个城市联成一个供电或煤气管道网络,则需要铺设n-1条线路。任意两城市间可铺设一条线路,n个城市间最多可能铺设n(n-1)/2条线路,各条线路的造价一般是不同的。一个很实际的问题就是如何在这些可能的线路中选择n-1条使该网络的建造费用最少,这就是下面要讨论的最小生成树问题。1.2网的最小生成树   在前面我们已经给出图的生成树的概念。这里来讨论生成树的应用。   假设,要在n个居民点之间敷设煤

3、气管道。由于,在每一个居民点与其余n-1个居民点之间都可能敷设煤气管道。因此,在n个居民点之间,最多可能敷设n(n-1)/2条煤气管道。然而,连通n个居民点之间的管道网络,最少需要n-1条管道。也就是说,只需要n-1条管道线路就可以把n个居民点间的煤气管道连通。另外,还需进一步考虑敷设每一条管道要付出的经济代价。这就提出了一个优选问题。即如何在n(n-1)/2条可能的线路中优选n-1条线路,构成一个煤气管道网络,从而既能连通n个居民点,又能使总的花费代价最小。   解决上述问题的数学模型就是求图中网的最小生成树问题。把居民点看作图的顶点,把居民点之间的煤气管道看作边,

4、而把敷设各条线路的代价当作权赋给相应的边。这样,便构成一个带权的图,即网。对于一个有n个顶点的网可以生成许多互不相同的生成树,每一棵生成树都是一个可行的敷设方案。现在的问题是应寻求一棵所有边的权总和为最小的生成树。   如何构造这种网的最小生成树呢?下面给出这样一种解法:   (1)已知一个网,将网中的边按其权值由小到大的次序顺序选取。标准文档实用文案   (2)若选某边后不形成回路,则将其保留作为树的一条边;若选某边后形成回路,则将其舍弃,以后也不再考虑。   (3)如此依次进行,直到选够(n-1)条边即得到最小生成树。       现以图2为例说明此算法。设此图是

5、用边集数组EV表示的,且数组中各边是按权值由小到大的次序排列,如下表所示。k12345678910EV[k].p12242651115EV[k].p23436475626COST[EV[k].p1,EV[k].p2]561011141819212733   按权值由小到大选取各边就是在数组中按下标k由1到en(图中边数)的次序选取。选前2条边(2,3),(2,4)时均无问题,保留作为树的边;到第3条边(4,3)时将与已保留的边形成回路,将其舍去;同样继续做:保留(2,6);舍去(6,4);保留(5,7),(1,5),(1,6),此时,保留的边数已够(n-1)=6条边,

6、此时必定将7个顶点全部互相连通了,后面剩下的边(1,2),(5,6)就不必再考虑了。最后得到的最小生成树如图2a中深色边所示,其各边权值总和等于80。由离散数学中的图论可以证明,这就是最小生成树了,其权值最小。当图中有权值相等的边时,其最小生成树可能有不同的选取方案。   实现此算法的关键是,在选取某条边时应判断是否与已保留的边形成回路。   这可用将各顶点划分为集合的办法解决:假设数组tag(1..en)作为顶点集合划分的标志初值为0。在算法的执行过程中,当所选顶点u,v是连通的,则将相应位置的tag[u],tag[v]置以相同的数字,而不连通的点在初期分属不同的集

7、合,置不同的数字;一旦两个不同的连通分支连通了,则修改tag的值,将新的连通分支改为相同的数字。我们以图2为例。首先选(2,3)(2,4)边,由于是连通的,并且不出现回路。tag[2]:=1,tag[3]:=tag[4]:=1是同一个集合A;选(6,2)边与A集合连通;tag[6]:=1;再选(5,7)与集合A不连通,tag[5]:=tag[7]:=2构成另一集合B;选(1,5)边与集合B连通,tag[1]:=2;此时,集合A={2,3,4,6};集合B={5,7,1};当选(1,6)边时,(1,6)与集合A、集合B都连通,并且两个顶点分别属于两个不

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。