版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、自来水管道连接规划模型 摘要在我们的日常生活中,有这样一个问题,那就是需要通过自来水管道将自来水运输至各个用户处,本文将着重分析讨论自来水管道连接规划问题,即在自来水管道铺设过程中在绕开障碍物的前提下的最优路径问题,使自来水管道将各个供水点用最短路径连接。采用合理的方法排除障碍区域中的点,是对管道连接的效率、能耗、可行性起到决定性作用,是一个非常实际的问题。本文采用面积分析的方法,提供一种解决位于障碍区域中点的判定方法,在二维坐标系上标定各点,障碍区域用由阴影覆盖的凸多边形表出,通过对点坐标之间的向量运算判定各点是否位于阴影区域,在剔除障碍区中的点后,采用kruskal避圈算法生成最优路径,对
2、于通过障碍区域的线段,采用将其权值设定为(inf)的处理方法,最终通过matlab2009a编程、绘图,给出管道最优连接方案,解决本问题。最终通过matlab2009a编程实现。kruskal避圈算法是kruskal在1956年提出的最小生成树算法,它的思路很容易理解。kruskal算法每次选择n-1条边,所使用的贪婪准则是:从剩下的边中选择一条不会产生回路的具有最小权重的边加入以选择的边的集合中。最后我们对模型的可行性,合理性,科学性进行了详细分析,对模型的优劣点进行阐述,得出了对模型的评价以及推广。 关键词:管道连接 面积法 障碍点筛选 有效线段的筛选 矩阵的运算 kruskal算法 权值
3、 最小生成树目录摘要2一.问题重述4二问题分析7三模型假设83.1 基本假设83.2符号和变量的说明8四模型建立8五模型求解105.1 筛选有效用户105.2有效线段的筛选115.3利用kruskal算法求最小生成树11六模型检验与评价12七.模型推广12八参考书目12九附录13附录一:分工13附录二:问题重述附录13附录三:matlab代码1(做图)16附录四:求解最小生成树17附录五:计算生成树长度40附录六:matlab代码277一. 问题重述自来水是人们日常生活中不可缺少的生活要素,然而自来水管网的组建却有很多问题需要解决。一般来说,我们假设管网中任意两个用户之间存在直线段相连,但是在
4、连接过程中,有些区域是必须绕开的,这些必须绕开的区域我们称为障碍区域。表1给出了若干个可能的用户的地址的横纵坐标,可能的用户的含义是:如果用户的地址不在障碍区域内,那么该用户就是需要使用自来水的用户(即有效用户),否则如果用户的地址在障碍区域内,那么该用户就是无效用户(即不要将该用户连接在网络中)。表2-表5是分别是4个障碍区域必须要覆盖的点的坐标,而对应障碍区域就是覆盖这些要覆盖的点的最小凸集。(1)请您判定表1中那些用户为有效用户。(2)请设计一个算法将有效用户连接起来,并且连接的距离总和最小。表1若干个可能的用户的地址的横纵坐标可能的用户的序号可能的用户横坐标可能的用户纵坐标1.0000
5、95.012958.27922.000023.113942.34963.000060.684351.55124.000048.598233.39515.000089.129943.29076.000076.209722.59507.000045.646857.98078.00001.850476.03659.000082.140752.982310.000044.470364.052611.000061.543220.906912.000079.193737.981813.000092.181378.332914.000073.820768.084615.000017.626646.10951
6、6.000040.570656.782917.000093.547079.421118.000091.69045.918319.000041.027060.286920.000089.36505.026921.00005.789141.537522.000035.286830.499923.000081.316687.436724.00000.98611.500925.000013.889176.795026.000020.276597.084527.000019.872299.008328.000060.379278.886229.000027.218843.865930.000019.88
7、1449.831131.00001.527421.396332.000074.678664.349233.000044.509632.003634.000093.181596.009935.000046.599472.663236.000041.864941.195337.000084.622174.456638.000052.515226.794739.000020.264743.992440.000067.213793.338041.000083.811868.333242.00001.964021.256043.000068.127783.923844.000037.948162.878
8、545.000083.179613.377346.000050.281320.713347.000070.947160.719948.000042.889262.988849.000030.461737.047750.000018.965457.514851.000019.343145.142552.000068.22234.389553.000030.27642.718554.000054.167431.268555.000015.08731.286356.000069.789838.396757.000037.837368.311658.000086.00129.284259.000085
9、.36553.533860.000059.356361.239561.000049.655260.854062.000089.97691.576063.000082.16291.635564.000064.491019.007565.000081.797458.691866.000066.02285.758167.000034.197136.756868.000028.972663.145169.000034.119471.763470.000053.407969.266971.000072.71138.407972.000030.929045.435573.000083.849644.182
10、874.000056.807235.325075.000037.041415.360676.000070.274067.564577.000054.657169.921378.000044.488072.750979.000069.456747.838480.000062.131055.484281.000079.482112.104782.000095.684345.075483.000052.259071.588384.000088.014289.284285.000017.295627.310286.000097.974725.476987.000027.144786.560388.00
11、0025.232923.235089.000087.574280.487290.000073.730690.839891.000013.651923.189492.00001.175723.931393.000089.38984.975494.000019.91387.838495.000029.872364.081596.000066.144319.088797.000028.440984.386998.000046.922417.390099.00006.478117.0793100.000098.833599.4295表2障碍区域1必须要覆盖的点的坐标顶点序号顶点的横坐标顶点的纵坐标13
12、.2060 12.9166217.457119.337734.7576 20表3障碍区域2必须要覆盖的点的坐标顶点序号顶点的横坐标顶点的纵坐标150 30253.746548.4490346.922257.1195433.320739.8050543.112356.3187表4障碍区域3必须要覆盖的点的坐标顶点序号顶点的横坐标顶点的纵坐标154.698270253.746590346.922280表5障碍区域4必须要覆盖的点的坐标顶点序号顶点的横坐标顶点的纵坐标190752809537080二问题分析建立模型要达到的目的就是节省管道,即在满足每个有效用户用水的情况下,使得铺设的管道最短。因此,
13、自来水的管道问题可以看做是一个最优化问题,目标函数是求铺设的管道最短。由实际可知不是每两个用户之间都可以用直线相连,必须绕开一些障碍物也就是所谓的障碍区,所以我们应该首先要解决的就是找出这些障碍区域,然后再判断所给出的点是否位于障碍区域内,这样就筛选出了有效用户。接下来就是要把剩下的点用直线连接起来,通过障碍区域的线段视为无效线段把其剔除,筛选出有效线段。最后就是计算出这些有效线段的总和。三模型假设3.1 基本假设1. 假设任意两个用户之间均可用直线连接;2. 文中给出所有点的坐标值准确无误;3. 障碍区域就是障碍顶点围成的凸多边形区域;4. 有效用户都能通过自来水管道获得自来水供应;5. 要
14、保证在任意两点间线段不过障碍区的情况下,求解连接形成的最短路径;3.2符号和变量的说明表6 论文符号说明符号含义x记录100个用户点的坐标信息a障碍区1的各顶点坐标信息b障碍区2的各顶点坐标信息c障碍区3的各顶点坐标信息d障碍区4的各顶点坐标信息sign记录各用户点是否在障碍区,若在对应位置记为1;若不在,则对应位置记为0insign记录在障碍区的用户点的序号n记录保留用户点的个数num记录任意两用户点之间可用线段连接起来且不过障碍区的线段dis记录不在障碍区各用户点之间可用不过障碍区线段连接的线段的长度ee记录生成的最小生成树的各点及各线段信息sum表示产生的最小生成树中所有管道的总长四模型
15、建立 5.1.问题一的模型建立问题一是判断这100个点中哪些点属于有效点,即有效用户。首先利用matlab做出这一百个点的相应位置的图,其代码见附录三做出此图,分析可知:要求出哪些用户为有效用户,可用面积法对其进行筛选。这样就先得根据障碍区域的顶点坐标求出每个障碍区域的面积,然后求出各用户点与各障碍区域任意两个顶点所围成的三角形面积之和,比较面积,若两面积相等,则该点在障碍区域内,视为无效点,即无效用户,否则用户点不在障碍区域内,为有效用户。根据障碍区的顶点坐标,可做出相应的图形,代码见附录三,图如下:五模型求解5.1 筛选有效用户用面积法确定是否为有效点。面积法的原理:确定各障碍区的面积以及
16、用户点与各障碍区任意两个定点构成的三角形的面积之和,比较上面两个面积,若相等,则该用户点在障碍区内为无效用户,否则,用户点不在障碍区内为有效用户。运用向量的方法求解障碍区面积s若障碍区是三角形,对应各顶点坐标分别为(x1,y1),(x2,y2), (x3,y3)。则a=(x2-x1,y2-y1),b=(x3-x1,y3-y1)。由于三角形面积s=|a|*|b|*sin/2,向量a,b外积的模长|ab|=|a|*|b|*sin;则有s=|ab|/2;若障碍区为五边形,对应点为(x1,y1),(x2,y2), (x3,y3), (x4,y4),(x5,y5)。则划分成三个三角形,各三角形的顶点分别
17、为(x1,y1),(x2,y2), (x3,y3);(x3,y3), (x4,y4),(x5,y5);(x1,y1),(x3,y3), (x5,y5)。再用求三角形面积的方法求解即可。筛选完毕的结果如下:insign = 4 23 36 99n = 96 所以在障碍区的点的序号分别为:4 23 36 99。 无效用户的信息为:(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有效线段的筛选 已筛选出有效用户,
18、就要求出有效用户之间以最短的线段线段相连,但是这些线段必须是有效线段,若两用户之间以线段相连了,但是这条线段通过了障碍区域,此时,这条线段就是无效线段。此时需要筛选出有效线段,首先要求出任意两个有效用户之间的直线与过各障碍区域任意两个顶点之间的直线的交点坐标,然后用向量法判断该交点是否在两用户的线段上和障碍区顶点为端点的线段上,若在,则为无效线段,否则为有效线段。 5.2.1运用矩阵的方法求解两直线之间的交点坐标 如果任意两个有效用户点的坐标分别为a、b,同一障碍区任意两个顶点坐标为m、n。则由解线性方程组的方法有,运用matlab求解该线性方程组=a。5.2.2运用向量法判断线段是否为有效线
19、段若求得的交点坐标为p(x,y),则通过向量关系pm=pn,可以求的。若0,则该线段为有效线段;若 hold on; for i=1:100 x=a(i,2); y=a(i,3); plot(x,y,o)end附录三:matlab代码1(做图)a=1 3.2060 12.9166;2 17.4571 19.3377;3 4.7576 20;b=1 50 30;2 53.7465 48.4490;3 46.9222 57.1195;5 43.1123 56.3187;4 33.3207 39.8050;c=1 54.6982 70;2 53.7465 90;3 46.9222 80;d=1 90
20、 75; 2 80 95; 3 70 80for i=1:3 x1=a(i,2); y1=a(i,3); x2=a(mod(i,3)+1,2); y2=a(mod(i,3)+1,3); x=x1,x2; y=y1,y2; plot(x,y,m)endfor i=1:5 x1=b(i,2); y1=b(i,3); x2=b(mod(i,5)+1,2); y2=b(mod(i,5)+1,3); x=x1,x2; y=y1,y2; plot(x,y,m)endfor i=1:3 x1=c(i,2); y1=c(i,3); x2=c(mod(i,3)+1,2); y2=c(mod(i,3)+1,3);
21、 x=x1,x2; y=y1,y2; plot(x,y,m)end for i=1:3 x1=d(i,2); y1=d(i,3); x2=d(mod(i,3)+1,2); y2=d(mod(i,3)+1,3); x=x1,x2; y=y1,y2; plot(x,y,m)end 附录六:matlab代码2 num=zeros(100,100);for i=1:100 for j=i+1:100 num(i,j)=1; endendb1=(a(1,3)-a(2,3)/(a(1,2)-a(2,2);bb1=(a(1,3)*a(2,2)-a(1,2)*a(2,3)/(a(1,2)-a(2,2);b2=
22、(a(2,3)-a(3,3)/(a(2,2)-a(3,2);bb2=(a(2,3)*a(3,2)-a(2,2)*a(3,3)/(a(2,2)-a(3,2);b3=(a(3,3)-a(1,3)/(a(3,2)-a(1,2);bb3=(a(3,3)*a(1,2)-a(3,2)*a(1,3)/(a(3,2)-a(1,2);bb=b1 bb1;b2 bb2;b3 bb3;c1=(b(1,3)-b(2,3)/(b(1,2)-b(2,2);cc1=(b(1,3)*b(2,2)-b(1,2)*b(2,3)/(b(1,2)-b(2,2);c2=(b(2,3)-b(3,3)/(b(2,2)-b(3,2);cc2
23、=(b(2,3)*b(3,2)-b(2,2)*b(3,3)/(b(2,2)-b(3,2);c3=(b(3,3)-b(4,3)/(b(3,2)-b(4,2);cc3=(b(3,3)*b(4,2)-b(3,2)*b(4,3)/(b(3,2)-b(4,2);c4=(b(4,3)-b(5,3)/(b(4,2)-b(5,2);cc4=(b(4,3)*b(5,2)-b(4,2)*b(5,3)/(b(4,2)-b(5,2);c5=(b(5,3)-b(1,3)/(b(5,2)-b(1,2);cc5=(b(5,3)*b(1,2)-b(5,2)*b(1,3)/(b(5,2)-b(1,2);cc=c1 cc1;c2
24、 cc2;c3 cc3;c4 cc4;c5 cc5;d1=(c(1,3)-c(2,3)/(c(1,2)-c(2,2);dd1=(c(1,3)*c(2,2)-c(1,2)*c(2,3)/(c(1,2)-c(2,2);d2=(c(2,3)-c(3,3)/(c(2,2)-c(3,2);dd2=(c(2,3)*c(3,2)-c(2,2)*c(3,3)/(c(2,2)-c(3,2);d3=(c(3,3)-c(1,3)/(c(3,2)-c(1,2);dd3=(c(3,3)*c(1,2)-c(3,2)*c(1,3)/(c(3,2)-c(1,2);dd=d1 dd1;d2 dd2;d3 dd3;e1=(d(1
25、,3)-d(2,3)/(d(1,2)-d(2,2);ee1=(d(1,3)*d(2,2)-d(1,2)*d(2,3)/(d(1,2)-d(2,2);e2=(d(2,3)-d(3,3)/(d(2,2)-d(3,2);ee2=(d(2,3)*d(3,2)-d(2,2)*d(3,3)/(d(2,2)-d(3,2);e3=(d(3,3)-d(1,3)/(d(3,2)-d(1,2);ee3=(d(3,3)*d(1,2)-d(3,2)*d(1,3)/(d(3,2)-d(1,2);ee=e1 ee1;e2 ee2;e3 ee3;for i=1:100 for j=i+1:100 x1=x(i,2); y1=
26、x(i,3); x2=x(j,2); y2=x(j,3); a=(y1-y2)/(x1-x2); b=(y1*x2-x1*y2)/(x1-x2); for k=1:3 m=a -1;bb(k,1) -1; n=b 0;bb(k,2) 0; if(det(m)=0) p=mn; x=p(1,1); y=p(2,1); m1=x-a(k,2) y-a(k,3); n1=x-a(mod(k,3)+1,2) y-a(mod(k,3)+1,3); m=m1/n1; aa=x-x1,y-y1; bb=x-x2,y-y2; if(xor(aa(1),bb(1)|xor(aa(1),bb(1)mm=0; el
27、se mm=aa/bb; end if(m0) if(mm0) num(i,j)=num(i,j)*0; else num(i,j)=num(i,j)*1; end else num(i,j)=num(i,j)*1; end end end for k=1:5 m=a -1;cc(k,1) -1; n=b 0;cc(k,2) 0; if(det(m)=0) p=mn; x=p(1,1); y=p(2,1); m1=x-c(k,2) y-a(k,3); n1=x-c(mod(k,5)+1,2) y-c(mod(k,5)+1,3); m=m1/n1; aa=x-x1,y-y1; bb=x-x2,y
28、-y2; if(xor(aa(1),bb(1)|xor(aa(1),bb(1)mm=0; else mm=aa/bb; end if(m0) if(mm0)num(i,j)=num(i,j)*0; else num(i,j)=num(i,j)*1; end else num(i,j)=num(i,j)*1; end end end for k=1:3 m=a -1;dd(k,1) -1; n=b 0;dd(k,2) 0; if(det(m)=0) p=mn; x=p(1,1); y=p(2,1); m1=x-d(k,2) y-d(k,3); n1=x-d(mod(k,3)+1,2) y-d(m
29、od(k,3)+1,3); m=m1/n1; aa=x-x1,y-y1; bb=x-x2,y-y2; if(xor(aa(1),bb(1)|xor(aa(1),bb(1)mm=0; else mm=aa/bb; end if(m0) if(mm0)num(i,j)=num(i,j)*0; else num(i,j)=num(i,j)*1; end else num(i,j)=num(i,j)*1; end end end for k=1:3 m=a -1;ee(k,1) -1; n=b 0;ee(k,2) 0; if(det(m)=0) p=mn; x=p(1,1); y=p(2,1); m1
30、=x-e(k,2) y-e(k,3); n1=x-e(mod(k,3)+1,2) y-e(mod(k,3)+1,3); m=m1/n1; aa=x-x1,y-y1; bb=x-x2,y-y2; if(xor(aa(1),bb(1)|xor(aa(1),bb(1)mm=0; else mm=aa/bb; end if(m0) if(mmx(1,j) a=x(1,i);x(1,i)=x(1,j);x(1,j)=a; a=x(2,i);x(2,i)=x(2,j);x(2,j)=a; a=x(3,i);x(3,i)=x(3,j);x(3,j)=a; endendendr=zeros(1,n); %r用
31、于记录已选的点的标号for i=1:n l(i)=i;end%l 用于对点的筛选,防止形成回路%初始时选e1加入集合eeee(1,1)=x(1,1); %ee矩阵的第一行记录最小生成树的边长ee(2,1)=x(2,1); %ee矩阵的第二行记录边的起点ee(3,1)=x(3,1); %ee矩阵的第三行记录边的终点a=min(l(x(2,1),l(x(3,1);l(x(2,1)=a;l(x(3,1)=a;%用于筛选点,防止形成回路b=1;%记录ee中边数r(1)=x(2,1);r(2)=x(3,1);c=2;for i=2:k%步骤四if b=n-1 %如果树中边数达到n-1break %算法终止end%步骤二o1=find(r=x(2,i);o2=find(r=x(3,i);size1=size(o1,2);size2=size(o2,2);if(size1=0&size2=0) if l(x(2,i)=l(x(3,i); else %如果两顶点标号不同 b=b+1; %将这条边加入ee ee(1,b)=x(1,i); ee(2,b)=x(2,i); ee(3,b)=x(3,i); a=min(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年公务员考试《常识》预测复习带答案详解(巩固)
- 骨膜综合症护理新技术应用
- 2025年广东深圳南山育才初三一模历史试题含答案
- 2026年医疗设备与耗材成本控制工作计划
- 绿色IT数据中心建设与维护手册
- 2026年党校在职研究生考试全真模拟试卷及答案(共八套)
- 2024-2025学年度冶金工业技能鉴定题库检测试题打印附完整答案详解(必刷)
- 2024-2025学年山西卫生健康职业学院单招《物理》模拟试题附答案详解(轻巧夺冠)
- 2024-2025学年度公务员(国考)考前冲刺练习试题含完整答案详解(夺冠系列)
- 2024-2025学年度护士资格证考试综合练习(预热题)附答案详解
- 小学劳技室课外实践活动计划
- 《左传》介绍课件
- 7.2做人文精神的弘扬者 课件 -2024-2025学年统编版道德与法治七年级下册
- 2025新课标《义务教育数学课程标准(2022年版)》测试题(附含答案)
- 平交道口应急预案
- 全过程工程咨询投标方案(技术方案)
- 2025年人工智能训练师(高级)职业技能鉴定参考题库(含答案)
- 《南翔小笼包》课件
- 《无损检测 灰色阴影对比度卡》
- 观察了解和处置患者用药与治疗反应的流程
- 氧气管道吹扫、打压方案
评论
0/150
提交评论