图论网络规划

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图论练习

汪帆2011306200513 土规1202

1某城市要建立一个消防站,为该市所属的七个区服务,如图所示,问应设在那个区,才能使它至最远区的路径最短。

图5.1.1 城市点线模型图

解:分析:要求建立的消防站离最远区的路径最短,即要求出任意两点间最优路径,而后从最优路径中选取最大值中的最小值。具体方法则要运用

Warshall-Foryd算法求出该图的路由表,从而根据路由表中的最优路线,寻求V1-V7到每一点的最优路径,并比较各路径中最长路径的大小,择取最小值即为题中之所问。

(1),建立权矩阵:

A=[0 3 inf inf inf inf inf ;

3 0 2 inf 1.8 2.5 inf;

Inf 2 0 6 2 inf inf ;

Inf inf 6 0 3 inf inf ;

Inf 1.8 2 3 0 4 inf;

Inf 2.5 inf inf 4 0 1.5;

Inf inf inf inf inf 1.5 0]

(2),运用Warshall-Foryd算法,调用floyd(A)函数,求出该图的路由表(程序详见附录5.1):

表5.1.1 任意两点间最优路径表(路由表)

V1 V2 V3 V4 V5 V6 V7 V1 0 3 5 7.8 4.8 5.5 7 V2 3 0 2 4.8 1.8 2.5 4 V3 5 2 0 5 2 4.5 6 V4 7.8 4.8 5 0 3 7 8.5 V5 4.8 1.8 2 3 0 4 5.5 V6 5.5 2.5 4.5 7 4 0 1.5 V7 7 4 6 8.5 5.5 1.5 0

(3),结果分析:上述n n ij )V (V ⨯=矩阵为对称阵,主对角线为0,即消防站所建立的位置。其具体涵义为:消防站建立在V i 处时对应各个城市的最短路径,如此可以建立表5.1.2:

表5.1.2 各点建立消防站的最远城市及其两者距离表

消防站点 最远城市 两者距离

V1 V4 7.8 V2 V2 4.8 V3 V7 6 V4 V7 8.5 V5 V7 5.5 V6 V5 7 V7 V4 8.5

从表5.12可以看出,比较最远距离,不难看出,当消防站点选在V2城市时,其离最远城市的最优距离为最优:4.8。故而,应将消防站建立在V2城市。

2某矿区有七个矿点,如图所示,已知各矿点每天的产矿量,现要从这七个矿点选一个来建造矿厂,问应选在哪个矿点,才能使各矿点所产的矿运到选矿厂所在地的总运力(千吨公里)最小。

图5.2.1 矿区点线模型图

解:分析:总运力与两个因素有关:矿点与矿厂的距离、矿点产矿量,且都是正比的关系,故而应当把矿点与矿厂的距离L 和矿点产矿量X 的成绩当做运力,进而将运力当做权矩阵的元,运用Warshall-Foryd 算法求出该图的路由表,从而根据路由表中的最优路线,寻求V1-V7到每一点的最优路径,再将最优路径加总,进而寻求7个预设厂址中的最优路径总值的最小值的点即为所求矿厂点。

(1),距离矩阵:

L=⎥⎥⎥

⎥⎥⎥⎥⎥⎥⎦

⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡0,5.1inf,inf,inf,inf,inf,5.1,0,4inf,inf,,4inf,inf ,4,0,1,2inf,inf,inf inf,,1,0,6inf,inf,inf inf,,2,6,0,2inf,inf ,4inf,inf,,2,0,3inf inf,inf,inf,,inf ,3,0 产量矩阵:

[]4,1,6,1,7,2,3=X

(2),权矩阵(运算程序见附录5.1):

X i L *:).,(A = i=1:7

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=0 1.5000 Inf Inf Inf Inf Inf 6 0 24 Inf Inf 8 Inf Inf 4 0 1 14 Inf Inf Inf Inf 6 0 42 Inf Inf Inf Inf 12 6 0 4 Inf Inf 4 Inf Inf 14 0 9Inf Inf Inf Inf Inf 6 0A

(3),运用Warshall-Foryd 算法,调用floyd(A)函数,求出该图的路由表

(程序详见附录5.2.2):

(4),结果分析

由表5.2.1可知,厂址预设与该址到各个矿区的最优路径表清晰而明朗,并在表中最后一栏中的总运力可以观察出:当把V3设为矿厂时,其总运力最小,为57。故而应当选取V3矿区建立矿厂。

附录

5.1

function [D,R]=floyd(A)

D=A;n=length(D);

for i=1:n

for j=1:n

R(i,j)=i;

end

end

for k=1:n

for i=1:n

for j=1:n

if D(i,k)+D(k,j)

end

end

end

hl=0;

for i=1:n

if D(i,i)<0

hl=1;

break;

end

end

if(hl==1)

fprintf('有负回路')

break;

end

end

5.2.1

%求权矩阵。

n=7;

for i=n

A=[L(i,:).*X]

end

相关文档
最新文档