自来水管的连接问题 3.docx

上传人:b****1 文档编号:23257236 上传时间:2023-05-15 格式:DOCX 页数:53 大小:298.55KB
下载 相关 举报
自来水管的连接问题 3.docx_第1页
第1页 / 共53页
自来水管的连接问题 3.docx_第2页
第2页 / 共53页
自来水管的连接问题 3.docx_第3页
第3页 / 共53页
自来水管的连接问题 3.docx_第4页
第4页 / 共53页
自来水管的连接问题 3.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

自来水管的连接问题 3.docx

《自来水管的连接问题 3.docx》由会员分享,可在线阅读,更多相关《自来水管的连接问题 3.docx(53页珍藏版)》请在冰豆网上搜索。

自来水管的连接问题 3.docx

自来水管的连接问题3

自来水管道连接问题

摘要

自来水是人们日常生活中不可缺少的生活要素,然而自来水管网的组建却有

很多问题需要解决。

一般来说,我们假设管网中任意两个用户之间存在直线段相连,但是在连接过程中,有些区域是必须绕开的,这些必须绕开的区域我们称为障碍区域。

为了节约成本,需要找到最优的连通路线,使距离最短。

对于问题一,为判断各点是否为有效用户,利用角度的方法来找出在障碍区内的无效用户。

首先由所给信息在坐标系中画出所有用户点及障碍区顶点坐标,再找出能够包围障碍区域的最小矩形。

考虑矩形中各点,将该点与障碍区域各顶点依次连接,算出相邻两条线段之间的交角α1,α2,α3,……(αi<180°)并算得它们的总和为α。

若α<360°,则该点不再障碍区域内,即为有效用户;若α=360°,则该点在障碍区域内,即为无效用户。

最后确定了第4,23,36,99号点处在障碍区域内,为无效用户,其余所有点为有效用户。

对于问题二,应用最优化模型来求最小连通距离。

先通过障碍区域顶点与用户点的直线方程筛选有效用户之间的有效线段,构造有效线段的带权临接矩阵,将无效线段的距离赋值无穷大,利用带权临接矩阵,使用Kruskal最小生成树算法解出最小连通图,并解得最小连通距离为。

最后,对模型进行了分析,并对此做出了改进。

考虑到两有效用户点之间可以用通过第三点的折线连接而使线路更短。

在第一步改进中,先分别加入障碍区的十四个顶点中的一个再次生成有效线段的带权临接矩阵,求得各自的最小连通距离。

在这十四个距离中,最小值为643.8404。

接下来加入十四个障碍区域顶点中的两个顶点后发现都比加入一个顶点时距离要长。

分析加入多个顶点距离变大的原因后,确定应加入区域四的顶点3(90,75)获得最小距离。

在上步改进基础上进行第二步改进,对连接线路中两相邻线段的夹角进行分析,当且仅当夹角为锐角时,可作较短边上的高以代替较长边,此时该三个有效用户点仍然连通,而路径长度可以大大缩小。

对此改进方法进行模型求解,最终确定了最优路径。

 

关键字:

管道连接内外点角度判断最小生成树Kruskal权值矩阵

1

目录

第一部分:

问题重述………………………………………………………………

问题一………………………………………………………………

问题二………………………………………………………………

第二部分:

问题分析……………………………………………………………

问题一………………………………………………………………

问题二………………………………………………………………

第三部分:

模型假设………………………………………………………………

第四部分:

符号说明………………………………………………………………

第五部分:

模型的建立与求解……………………………………………………

5.1问题一的模型建立与求解…………………………………………

5.1.1在坐标系中画出各用户点及障碍区域的图像……………………

5.1.2作出包含各障碍区域的最小矩形,找出其中的用户点…………

5.1.3矩形区域中,求用户点与障碍区顶点连线间夹角并求和………

5.1.4判断有效用户点……………………………………………………

5.1.5模型求解………………………………………………………………

5.2问题二的模型建立与求解…………………………………………

5.2.1筛选有效用户间的有效线段………………………………………

5.2.2用最小生成树连接有效线段………………………………………

5.2.3模型求解………………………………………………………………

第六部分:

模型检验………………………………………………………………

第七部分:

模型的优缺点分析……………………………………………………

第八部分:

模型的推广与改进……………………………………………………

参考文献

附录

 

2

一问题重述

自来水是人们日常生活中不可缺少的生活要素,然而自来水管网的组建却有很多问题需要解决。

一般来说,我们假设管网中任意两个用户之间存在直线段相连,但是在连接过程中,有些区域是必须绕开的,这些必须绕开的区域我们称为障碍区域。

问题一:

本题给出了若干个可能的用户的地址的横纵坐标,以及各个障碍区域的顶点坐标(见附录),我们需要根据这些数据信息确定出哪些用户为有效用户。

可能的用户的含义是:

如果用户的地址不在障碍区域内,那么该用户就是需要使用自来水的用户(即有效用户),否则如果用户的地址在障碍区域内,那么该用户就是无效用户。

已知障碍区域各顶点坐标,对应障碍区域就是覆盖这些要覆盖的点的最小凸集。

问题二:

在找出所有有效用户后,设计一个算法,避开障碍区域,将有效用户全部连接起来,使连接的距离总和最小。

二问题分析

本问题主要根据各用户和障碍区的数据信息,对各用户点进行检测,找出有效用户的点,再设计一个算法,将全部有效用户连接起来,使得路径不经过障碍区域,并且连接路线总和最小。

问题一:

根据题目可知,当用户点在障碍区域外时,为有效用户;当用户点在障碍区域内时,为无效用户。

为找出所有的有效用户点,可将目标区域缩小。

分别作出包含各障碍区域的最小矩形,考虑对矩形区域中的用户点,将该点与障碍区域各顶点按顺序依次连接,再算出相邻两条线段的交角α1,α2,α3,……(αi<180°)并算得它们的总和为α。

若α<360°,则该点不再障碍区域内,即为有效用户;若α=360°,则该点在障碍区域内,即为无效用户。

问题二:

解决问题2需要两步。

第一需筛选有效用户之间的有效线段。

将任意两个有效用户用线段连接,如果任意两个用户点之间的线段通过障碍区域之内,则为无效线段,作剔除处理,筛选出有效线段。

第二步,根据筛选出来的有效用户点和有效线段生成最小生成树连接有效用户点,画出连接路线图形,并计算生成树长度。

接下来需要设计程序将所有有效用户点连接起来,并使管道总距离最小。

但相较以往最小生成树问题又有着其特别之处,就是障碍区域的干扰,即管道无法穿过障碍区,这使得坐标系并非是一个连通区域。

可以将穿过障碍区的线段赋权值为无穷大,利用Kruskal算法,生成最优路径。

三模型假设

1.假设所给数据全部真实可靠。

3

2.任何两个用户点之间都可以直接连接。

3.不在障碍区里的用户都能够通过自来水管获得自来水供应。

4.假设障碍区域的边界是标准的直线。

5.障碍区域就是障碍顶点围成的凸多边形区域。

7.要保证在任意两点间线段不过障碍区的情况下求解连接形成的最短路线。

四符号约束与说明

符号

说明

(xi,yi)i=1,2,3...

障碍区域各顶点坐标

(ai,bi)i=1,2,3…

各用户点的坐标

αi,i=1,2,3…

用户点与障碍区顶点各相邻连线的夹角

(αi<180°)

当αi>180°时,取其为360°-αi

α

所有夹角之和

αi(k,j)

区域i中第k个点的j个角

N

有效用户点的个数

NUM

记录任意两用户点之间可用线段连接起来且不过障碍区的线段

DIS

连接的长度

M

最小生成树的点以及连接的信息

Sum

最小生成树管道的总长

Inf

邻接矩阵中对应无效线段的位置的值

五模型的建立与求解

5.1.问题一的模型建立与求解

4

本题已知各用户点与障碍区域的坐标信息,可应用角度的方法判断哪些为有效用户。

分为四个步骤:

一是先在坐标系中描出各用户点及障碍区顶点坐标。

是由各障碍区域顶点作出包含该区域的最小矩形,并找出矩形区域内的用户点。

三是将矩形区域中某用户点与对应区域顶点连线,并求出相邻两条线段的交角α1,α2,α3……(αi<180°)四是将这些角度加和得α,若α=360°,说明该用户点在障碍区域内,为无效用户;若α<360°,说明该用户点在障碍区域外,为有效用户。

5.1.1在坐标系中画出各用户点及障碍区域的图像

根据题目中给出的各用户点和各障碍区域顶点的坐标信息,在matlab中编出程序(见附录Ⅰ),可得如下图像:

图一障碍区域与各用户点示意图

5.1.2作出包含各障碍区域的最小矩形,并找出其中的用户点

设某障碍区域各顶点坐标为A(x1,y1),B(x2,y2),C(x3,y3)……

5

则取

p=min(x1,x2,x3…)q=max(x1,x2,x3…)

r=min(y1,y2,y3…)s=max(y1,y2,y3…)

故包含该障碍区域的最小矩形即为X=p,X=q,Y=r,Y=s四条直线所围成的矩形。

对于任意用户点M(x,y),若满足p

在matlab编出程序运行(见附录Ⅱ),可得到图像,如下图所示:

图二包含障碍区的最小矩形

记矩形从左到右依次为区域一,二,三,四,通过比较在最小矩形区域的条件,得到在各个区域的内点和边界点,用MATLAB编程(见附录III)可得如下表格:

(共计16个点)表一:

区域一

区域二

区域三

区域四

最小矩形内点标号

99

67,22,16,36,

33,4,54

35,83,77

90,23,89,

37,84

标号对应的坐标

(6.4781,17.0793)

(34.1971,36.7568)

(35.2868,30.4999)

(40.5706,56.7829)

(41.8649,41.1953)

(44.5096,32.0036)

(48.5982,33.3951)

(54.1674,31.2685)

(46.5994,72.6632)

(52.2590,71.5883)

(54.6571,69.9213)

(73.7306,90.8398)

(81.3166,87.4367)

(87.5742,80.4872)

(84.6221,74.4566)

(88.0142,89.2842)

5.1.3将矩形区域中用户点与障碍区顶点连线,求各相邻连线间夹角并求和

设矩形区域内某个用户点坐标为M(a,b),M与障碍区域各顶点连线后,某相邻两条线断分别为MA,MB.

设A点坐标(x1,y1),B点坐标(x2,y2),则向量MA=(x1-a,y1-b),向量MB=(x2-a,y2-b),MA与MB的内积为

MA·MB=|MA||MB|cosθ

则θ=

用matlab编写程序实现算法(见附录Ⅳ),可得如下示意图(以包含五边形障碍区的矩形中两点G,F为例)

点G分别与五边形的顶点A,B,C,D,E相连见洋红色连线,记∠AGB,∠BGC,∠CGD,∠DGE,∠EGA分别为α2(4,1),α2(4,2),α2(4,3),α2(4,4),α2(4,5).

点F与五边形的顶点A,B,C,D,E相连见蓝绿色连线.记为∠DFE,∠EFA,∠AFB,∠BFC.分别为α2(1,1),α2(1,2),α2(1,3),α2(1,4),α2(1,5).

7

图三用户点与障碍区顶点连线

用MATLAB分别按区域一,区域二,区域三,区域四中各点与顶点的夹角(必须是相邻两边且角度小于180°)记为αi(k,j)。

以表一中最小矩形内的点按从左到右从上到下的顺序按区域标记为1,2,3……依次类推。

得到表二:

区域

点标号

指定角

弧度

角度

求和

99

α1(1,1)

2.4398

139.7902

360.0180

α1(1,2)

1.9431

111.3314

α1(1,3)

1.9006

108.8964

67

α2(1,1)

0.9431

54.0356

258.3810

α2(1,2)

0.4732

27.1124

α2(1,3)

0.1309

7.5000

α2(1,4)

0.7076

40.5425

α2(1,5)

2.2548

129.1905

22

α2(2,1)

0.8053

46.1403

207.7487

α2(2,2)

0.3873

22.1907

α2(2,3)

0.1178

6.7494

α2(2,4)

0.5025

28.7911

α2(2,5)

1.8130

103.8772

16

α2(3,1)

0.6683

38.2908

232.3115

α2(3,2)

0.6169

35.3458

α2(3,3)

0.2336

13.3843

α2(3,4)

1.7937

102.7714

α2(3,5)

0.7421

42.5192

36

α2(4,1)

1.4905

85.3994

360.0010

α2(4,2)

0.7152

40.9780

α2(4,3)

0.2252

12.9030

α2(4,4)

1.8144

103.9575

α2(4,5)

2.0379

116.7631

33

α2(5,1)

1.4089

80.7240

330.3215

α2(5,2)

0.4160

23.8350

α2(5,3)

0.1532

8.7777

α2(5,4)

0.9045

51.8240

α2(5,5)

2.8826

165.1608

4

α2(6,1)

2.4205

138.6844

359.9950

α2(6,2)

0.4000

22.9183

α2(6,3)

0.1644

9.4194

α2(6,4)

0.9386

53.7778

α2(6,5)

2.3596

135.1951

54

α2(7,1)

1.8418

105.5274

211.0547

α2(7,2)

0.2488

14.2552

α2(7,3)

0.1424

8.1589

α2(7,4)

0.7665

43.9172

α2(7,5)

0.6841

39.1960

35

α3(1,1)

1.4975

85.8004

211.3699

α3(1,2)

1.8445

105.6821

α3(1,3)

0.3471

19.8874

83

α3(2,1)

2.0674

118.4533

310.9270

α3(2,2)

2.7133

155.4606

α3(2,3)

0.6460

37.0131

77

α3(3,1)

0.5266

30.1720

130.1646

α3(3,2)

1.1359

65.0823

α3(3,3)

0.6093

34.9103

90

α4(1,1)

1.3579

77.8020

285.1153

α4(1,2)

1.1302

64.7557

α4(1,3)

2.4881

142.5576

23

α4(2,1)

2.7044

154.9507

359.9951

α4(2,2)

1.5989

91.6102

α4(2,3)

1.9798

113.4342

89

α4(3,1)

3.0768

176.2877

352.5753

α4(3,2)

1.9593

112.2596

α4(3,3)

1.1175

64.0280

37

α4(4,1)

1.6914

96.9101

306.9335

α4(4,2)

2.6785

153.4667

α4(4,3)

0.9871

56.5567

84

α4(5,1)

2.3285

133.4132

266.8266

α4(5,2)

1.2331

70.6514

α4(5,3)

1.0954

62.7618

5.1.4判断有效用户点

由题目所给信息,障碍区域最多为五边形,下面对三、四、五边形,就利用角度判断障碍区域内外点的方法给出证明。

三角形四边形五边形

(1)三角形情况:

9

内点D与顶点A,B,C分别连接得向量DA,DB,DC,各相邻两向量的夹角分别为α1,α2,α3,将△ABC分成△ADB,△ADC,△BDC,由三角形内角和为180°,则α1+α2+α3=3×180°-180°=360°。

外点E与顶点A,B,C分别连接得向量EA,EB,EC,取相邻两向量的夹角分别为α1,α2,EA,EB相邻时∠AEB﹥180°时角度相加依然会小于360°。

即记为

α1+α2+∠AEB﹤360°。

(2)四边形,五边形情况类似讨论。

所以若α<360°,则该点不再障碍区域内,即为有效用户;若α=360°,则该点在障碍区域内,即为无效用户。

5.1.5模型求解

由以上分析,当用户点对应的全部夹角和α=360°(近似)时,该点为无效用户;否则,该点为有效用户。

在夹角的计算过程中,存在四舍五入的情况,会产生微小误差,所以α近似360度就可认为是无效用户。

现对1.3中表二的数据进行分析,可以看出,标号为4,23,36,99的点处,α近似为360°,故第4,23,36,99号点处在障碍区域内,为无效用户,其余所有点不在障碍区域内,为有效用户。

找出无效用户后,再作出障碍区域与各用户点的图像如下:

(其中红点表示无效用户)

图四障碍区中的无效用户

10

5.2问题二的模型建立与求解

为了求出将所有用户连接起来,并且路程最短的方法,应当将问题分为两步:

一、筛选有效用户之间的有效线段;二、将有效用户用有效线段连接起来,并且连接的距离总和最小。

5.2.1筛选有效用户间的有效线段

(1)运用矩阵的方法求解两直线之间的交点坐标

如果任意两个有效用户点的坐标分别为A(x1,y1)、B(x2,y2),同一障碍区任意两个顶点坐标为M(x3,y3)、N(x4,y4)。

则两直线方程分别为:

(1)

(2);

则由解线性方程组的方法有

,线性方程组的的系数矩阵为:

在运用Matlab求解该线性方程组时,不妨把

分别设为:

可以求得

=A\

(2)判断线段是否为有效线段

若求得的交点坐标为P(x,y),则通过向量关系PM=

PN,可以求的

0,则该线段为有效线段;若

<0,则要考虑向量关系PA=

PB,若

0,则该线段为有效线段,否则,该线段为无效线段。

5.2.2用最小生成树连接有效线段

若要在N个用户之间连接自来水管道,由于每一个用户与其余N-1个用户之间都可能连接自来水管道。

因此,在N个用户之间,最多可能连接N(N-1)/2条自来水管道然而,在连接N个用户之间的管道时,最少只需连接N-1条管道。

也就是说只需要N-1条管道线路就可以把N个用户之间的自来水管道连通。

现在要考虑在连接N个用户的自来水管道的同时要保证所有的管道长度之和最短,这就涉及了最优化的问题。

利用Kruskal算法思想设计Matlab程序进行最小生成树所需边的筛选,并且设计算法将筛选出来的构成最小生成树的各边连接起来,求出最短路径长度,并画出连接图形。

现利用Kruskal算法思想求解最小生成树

设计96个用户之间的带权图,并作出邻接矩阵DIS,再根据求得的有效线段

11

与无效线段对邻接矩阵进行修改,将邻接矩阵中对应无效线段的位置赋值无穷大,可以得到一个新的邻接矩阵DIS。

接下来,用冒泡排序法对所有有效线段长度按从小到大的顺序进行排序。

这时,需要借助Kruskal算法进行最小生成树的计算。

然后把最小生成树对应边的线段长度、起点、终点信息记录在矩阵EE中。

生成最小生成树时,从长度最短的边开始选取。

首先不妨设一个1×96的标记向量l用于记录被选取的点的序号,初始状态向量l的各元素依次为各用户序号,在选取线段为边后,将对应两点的序号m与n取最小值,并将向量l中所有与m位置元素相等的元素位置及所有与n位置的元素相等的元素位置都赋值为该最小值,如此循环知道向量l中所有元素均相等时停止;同时可以设一向量R来依次记录被选点的序号,直到所有用户点被无重复地被记录。

在按线段长度从小到大的顺序选择边时,设线段端点用户的序号为m与n。

这时需要考虑如下4种情况:

<1>如果在向量R中m和n均没有被记录,则该线段可以被选为最小生成树的边,将对应线段的信息记录在矩阵EE中,同时在R中添加记录m和n的值,并按照上述步骤更新向量l。

<2>如果在向量R中m被记录而n没有被记录,则该线段可以被选为最小生成树的边,将对应线段的信息记录在矩阵M中,同时在R中添加记录n的值,并按照上述步骤更新向量l。

<3>如果在向量R中n被记录而m没有被记录,则该线段可以被选为最小生成树的边,将对应线段的信息记录在矩阵EE中,同时在R中添加记录m的值,并按照上述步骤更新向量l。

<4>如果在向量R中m和n均被记录,则需要借助向量l来判断是否该线段可以被选为最小生成树的边:

a.如果向量l中对应的m位置与n位置的元素值相等,则该线段不是最小生成树的边,直接跳过到下一步判断。

b.如果向量l中对应的m位置与n位置的元素值不相等,则该线段是最小生成树的边,将对应线段的信息记录在矩阵M中,同时只需要更新向量l。

通过上述方法,即可产生最小生成树,其各边信息记录在矩阵M中。

5.2.3模型求解

设计Matlab程序求出最小生成树长度并将各边连接起来(见附录)

要计算最小生成树的长度只需要借助for循环将EE矩阵中记录长度相加即可。

可以求得最小生成树的长度为sum=

最后借助plot函数画出最小生成树的图形,如下所示

12

图五最小生成树生成图

六模型检验

可以通过对所画最小生成树图形的观察看是否有回路由图易知图形中无回路则通过修改最小生成树中任意边的连接并计算修改后的最小生成树的长度sum’与sum进行比较。

可得sum’>sum,则该模型所生成的最小生成树的长度最短即运用该模型进行自来水管道的连接所需要的自来水管长度最短。

七模型的优缺点分析

7.1优点:

(1)在判断有效用户点时,将所有可能的无效用户限制在各个矩形区域内,缩小了查找的范围,使求解过程变得简洁,易操作。

(2)巧妙的利用了内外点角度关系,直接将求得的角度和与360°比较,可以清晰地看出用户点是否在障碍区域内,从而找出无效用户。

7.2缺点:

(1)在判断有效用户点过程中,所使用的角度方法只适用于障碍区域为凸多边形的情况,具有一定的局限性。

(2)在计算各相邻线段交角以及由弧度制转化为角度制时,进行了四舍五入,故所得的角度和与360°无法严格相等,会产生一定的微小偏差。

13

(3)在用最小生成树求解最短路问题的模型中,路径都是用由有效用户点为端

点的线段连接的,然而在实际情况下,当加入障碍区顶点或者其他一些点后,可能会使路径更短。

八模型的推广与改进

为了得到能够遍历所有有效用户点的最短连通线路,在用最小生成树求得的最短路问题解的基础上,有必要对本模型作进一步改进,以使连通距离更短。

由于本题连接路径是用由有效用户点为端点的线段连接的,然而在实际情况中,可加入第三个点,使两有效用户点之间用通过第三点的折线连接,由此得到的水管道总长可能会更短。

8.1模型的第一步改进:

由于障碍区域的存在,可以使用以下方法:

在障碍区14个顶点中,任选其中一个加入96个有效

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1