自来水管道规划模型数学建模.docx
《自来水管道规划模型数学建模.docx》由会员分享,可在线阅读,更多相关《自来水管道规划模型数学建模.docx(12页珍藏版)》请在冰豆网上搜索。
自来水管道规划模型数学建模
自来水管道连接规划模型
摘要
现代日常生活中,需要通过自来水管道将自来水运输至各个用户处,本文主要分析讨论自来水管道连接规划问题,即在自来水管道铺设过程中在绕开障碍物的前提下的最优路径且自来水管道中各个供水点及用户以最短路径连接的问题。
排除障碍区域:
面积分析法即在二维坐标系上标定各点,障碍区域用由阴影覆盖的凸多边形表出,通过对点坐标之间的向量运算判定各点是否位于阴影区域。
最优路径规划:
通过Prim算法计算最小生成树,得出最优连接方案(prim算法:
在图G=(V,E)(V表示顶点,E表示边)中,从集合V中任取一个顶点(例如取顶点v0)放入集合U中,这时U={v0},集合T(E)为空。
2.从v0出发寻找与U中顶点相邻(另一顶点在V中)权值最小的边的另一顶点v1,并使v1加入U。
即U={v0,v1},同时将该边加入集合T(E)中。
3.重复2,直到U=V为止。
这时T(E)中有n-1条边,T=(U,T(E))就是一棵最小生成树)。
关键词:
管道连接面积法障碍点筛选Prim算法最小生成树
一.问题重述
自来水是人们日常生活中不可缺少的生活要素,然而自来水管网的组建却有很多问题需要解决。
一般来说,我们假设管网中任意两个用户之间存在直线段相连,但是在连接过程中,有些区域是必须绕开的,这些必须绕开的区域我们称为障碍区域。
表1给出了若干个可能的用户的地址的横纵坐标,可能的用户的含义是:
如果用户的地址不在障碍区域内,那么该用户就是需要使用自来水的用户(即有效用户),否则如果用户的地址在障碍区域内,那么该用户就是无效用户(即不要将该用户连接在网络中)。
表2-表5是分别是4个障碍区域必须要覆盖的点的坐标,而对应障碍区域就是覆盖这些要覆盖的点的最小凸集。
(1)请您判定表1中那些用户为有效用户。
(2)请设计一个算法将有效用户连接起来,并且连接的距离总和最小。
表1若干个可能的用户的地址的横纵坐标
可能的用户的序号
可能的用户横坐标
可能的用户纵坐标
1.0000
95.0129
58.2792
2.0000
23.1139
42.3496
3.0000
60.6843
51.5512
4.0000
48.5982
33.3951
5.0000
89.1299
43.2907
6.0000
76.2097
22.5950
7.0000
45.6468
57.9807
8.0000
1.8504
76.0365
9.0000
82.1407
52.9823
10.0000
44.4703
64.0526
11.0000
61.5432
20.9069
12.0000
79.1937
37.9818
13.0000
92.1813
78.3329
14.0000
73.8207
68.0846
15.0000
17.6266
46.1095
16.0000
40.5706
56.7829
17.0000
93.5470
79.4211
18.0000
91.6904
5.9183
19.0000
41.0270
60.2869
20.0000
89.3650
5.0269
21.0000
5.7891
41.5375
22.0000
35.2868
30.4999
23.0000
81.3166
87.4367
24.0000
0.9861
1.5009
25.0000
13.8891
76.7950
26.0000
20.2765
97.0845
27.0000
19.8722
99.0083
28.0000
60.3792
78.8862
29.0000
27.2188
43.8659
30.0000
19.8814
49.8311
31.0000
1.5274
21.3963
32.0000
74.6786
64.3492
33.0000
44.5096
32.0036
34.0000
93.1815
96.0099
35.0000
46.5994
72.6632
36.0000
41.8649
41.1953
37.0000
84.6221
74.4566
38.0000
52.5152
26.7947
39.0000
20.2647
43.9924
40.0000
67.2137
93.3380
41.0000
83.8118
68.3332
42.0000
1.9640
21.2560
43.0000
68.1277
83.9238
44.0000
37.9481
62.8785
45.0000
83.1796
13.3773
46.0000
50.2813
20.7133
47.0000
70.9471
60.7199
48.0000
42.8892
62.9888
49.0000
30.4617
37.0477
50.0000
18.9654
57.5148
51.0000
19.3431
45.1425
52.0000
68.2223
4.3895
53.0000
30.2764
2.7185
54.0000
54.1674
31.2685
55.0000
15.0873
1.2863
56.0000
69.7898
38.3967
57.0000
37.8373
68.3116
58.0000
86.0012
9.2842
59.0000
85.3655
3.5338
60.0000
59.3563
61.2395
61.0000
49.6552
60.8540
62.0000
89.9769
1.5760
63.0000
82.1629
1.6355
64.0000
64.4910
19.0075
65.0000
81.7974
58.6918
66.0000
66.0228
5.7581
67.0000
34.1971
36.7568
68.0000
28.9726
63.1451
69.0000
34.1194
71.7634
70.0000
53.4079
69.2669
71.0000
72.7113
8.4079
72.0000
30.9290
45.4355
73.0000
83.8496
44.1828
74.0000
56.8072
35.3250
75.0000
37.0414
15.3606
76.0000
70.2740
67.5645
77.0000
54.6571
69.9213
78.0000
44.4880
72.7509
79.0000
69.4567
47.8384
80.0000
62.1310
55.4842
81.0000
79.4821
12.1047
82.0000
95.6843
45.0754
83.0000
52.2590
71.5883
84.0000
88.0142
89.2842
85.0000
17.2956
27.3102
86.0000
97.9747
25.4769
87.0000
27.1447
86.5603
88.0000
25.2329
23.2350
89.0000
87.5742
80.4872
90.0000
73.7306
90.8398
91.0000
13.6519
23.1894
92.0000
1.1757
23.9313
93.0000
89.3898
4.9754
94.0000
19.9138
7.8384
95.0000
29.8723
64.0815
96.0000
66.1443
19.0887
97.0000
28.4409
84.3869
98.0000
46.9224
17.3900
99.0000
6.4781
17.0793
100.0000
98.8335
99.4295
表2障碍区域1必须要覆盖的点的坐标
顶点序号
顶点的横坐标
顶点的纵坐标
1
3.2060
12.9166
2
17.4571
19.3377
3
4.7576
20
表3障碍区域2必须要覆盖的点的坐标
顶点序号
顶点的横坐标
顶点的纵坐标
1
50
30
2
53.7465
48.4490
3
46.9222
57.1195
4
33.3207
39.8050
5
43.1123
56.3187
表4障碍区域3必须要覆盖的点的坐标
顶点序号
顶点的横坐标
顶点的纵坐标
1
54.6982
70
2
53.7465
90
3
46.9222
80
表5障碍区域4必须要覆盖的点的坐标
顶点序号
顶点的横坐标
顶点的纵坐标
1
90
75
2
80
95
3
70
80
二.问题分析
建立模型要达到的目的就是节省管道,即在满足每个有效用户用水的情况下,使得铺设的管道最短。
因此,自来水的管道问题可以看做是一个最优化问题,目标函数是求铺设的管道最短。
由实际可知不是每两个用户之间都可以用直线相连,必须绕开一些障碍物也就是所谓的障碍区,所以我们应该首先要解决的就是找出这些障碍区域,然后再判断所给出的点是否位于障碍区域内,这样就筛选出了有效用户。
接下来就是要把剩下的点用直线连接起来,通过障碍区域的线段视为无效线段把其剔除,筛选出有效线段。
最后就是计算出这些有效线段的总和。
三.模型假设
3.1基本假设
1.假设任意两个用户之间均可用直线连接;
2.文中给出所有点的坐标值准确无误;
3.障碍区域就是障碍顶点围成的凸多边形区域;
4.有效用户都能通过自来水管道获得自来水供应;
5.要保证在任意两点间线段不过障碍区的情况下,求解连接形成的最短路径;
3.2符号和变量的说明
表6论文符号说明
符号
含义
X
记录100个用户点的坐标信息
A
障碍区1的各顶点坐标信息
B
障碍区2的各顶点坐标信息
C
障碍区3的各顶点坐标信息
D
障碍区4的各顶点坐标信息
SIGN
记录各用户点是否在障碍区,若在对应位置记为1;若不在,则对应位置记为0
INSIGN
记录在障碍区的用户点的序号
n
记录保留用户点的个数
NUM
记录任意两用户点之间可用线段连接起来且不过障碍区的线段
DIS
记录不在障碍区各用户点之间可用不过障碍区线段连接的线段的长度
EE
记录生成的最小生成树的各点及各线段信息
sum
表示产生的最小生成树中所有管道的总长
四.模型建立
5.1.问题一的模型建立
问题一是判断这100个点中哪些点属于有效点,即有效用户。
首先利用matlab做出这一百个点的相应位置的图,其代码见附录三
做出此图,分析可知:
要求出哪些用户为有效用户,可用面积法对其进行筛选。
这样就先得根据障碍区域的顶点坐标求出每个障碍区域的面积,然后求出各用户点与各障碍区域任意两个顶点所围成的三角形面积之和,比较面积,若两面积相等,则该点在障碍区域内,视为无效点,即无效用户,否则用户点不在障碍区域内,为有效用户。
根据障碍区的顶点坐标,可做出相应的图形,代码见附录三,图如下:
五.模型求解
5.1筛选有效用户
用面积法确定是否为有效点。
面积法的原理:
确定各障碍区的面积以及用户点与各障碍区任意两个定点构成的三角形的面积之和,比较上面两个面积,若相等,则该用户点在障碍区内为无效用户,否则,用户点不在障碍区内为有效用户。
运用向量的方法求解障碍区面积S
若障碍区是三角形,对应各顶点坐标分别为(x1,y1),(x2,y2),(x3,y3)。
则a=(x2-x1,y2-y1),b=(x3-x1,y3-y1)。
由于三角形面积S=|a|*|b|*sin/2,向量a,b外积的模长|a×b|=|a|*|b|*sin;则有S=|a×b|/2;
若障碍区为五边形,对应点为(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5)。
则划分成三个三角形,各三角形的顶点分别为(x1,y1),(x2,y2),(x3,y3);(x3,y3),(x4,y4),(x5,y5);(x1,y1),(x3,y3),(x5,y5)。
再用求三角形面积的方法求解即可。
筛选完毕的结果如下:
INSIGN=
4233699
n=
96
所以在障碍区的点的序号分别为:
4233699。
无效用户的信息为:
(4.0000,48.5982,33.3951);(23.0000,81.3166,87.4367);(36.0000,41.8649,41.1953);(99.0000,6.4781,17.0793);
有效用户的个数是:
96。
5.2有效线段的筛选
已筛选出有效用户,就要求出有效用户之间以最短的线段线段相连,但是这些线段必须是有效线段,若两用户之间以线段相连了,但是这条线段通过了障碍区域,此时,这条线段就是无效线段。
此时需要筛选出有效线段,首先要求出任意两个有效用户之间的直线与过各障碍区域任意两个顶点之间的直线的交点坐标,然后用向量法判断该交点是否在两用户的线段上和障碍区顶点为端点的线段上,若在,则为无效线段,否则为有效线段。
5.2.1运用矩阵的方法求解两直线之间的交点坐标
如果任意两个有效用户点的坐标分别为A、B,同一障碍区任意两个顶点坐标为M、N。
则由解线性方程组的方法有
,运用Matlab求解该线性方程组
=A\
。
5.2.2运用向量法判断线段是否为有效线段
若求得的交点坐标为P(x,y),则通过向量关系PM=
PN,可以求的
。
若
0,则该线段为有效线段;若
<0,则要考虑向量关系PA=
PB,若
0,则该线段为有效线段,否则,该线段为无效线段,生成的矩阵见附录四,在m矩阵中存储。
5.3利用Prim算法求最小生成树
学生实力有限,此步骤正凌乱进行中,以下为代码片段
functionMST=Prim_algo(G)
N=length(G);
MST=[];
k=0;
vis=zeros(1,N);
vis
(1)=1;
whilekminw=inf;
u=0;v=0;
fori=[1:
N]
forj=[1:
N]
ifvis(i)==1&&vis(j)==0
ifG(i,j)minw=G(i,j);
u=i;v=j;
end
end
end%forj
end%fori
vis(v)=1;
k=k+1;
MST(k,:
)=[uvminw];
%uvw=[uvminw]
end
六.模型检验
计算最小生成树的长度sum,即该模型所生成的最小生成树的最短长度,即运用该模型进行自来水管道的连接所需要的自来水管长度最短。
七.模型的评价
可以在保证障碍区不变的情况下,任意改变用户点的信息,运用该模型同样可以求得连接自来水管道的最短长度。
且不需要过多改动,不需要人工进行修改计算的结果。
但是在障碍区变化的情况下,则需要较大改动。
九.参考书目
[1] 薛定宇,陈阳泉,《高等应用数学问题的Matlab求解》,清华大学出版社,2008 .
十.附录
小组成员:
宫柏钰
卢双