1、西工大数模B题 公园内道路设计问题摘要最短路程问题是现实生活中常见问题,在商业利润估算、生产生活、运输路线选择等方面都有重要意义。本题的实际情景为公园内部建设道路,在保证公园边缘8个入口之间最短路径不大于两点之间距离1.4倍的前提条件下,使内部道路总长度最短。对于问题一,考虑到最终结果只算公园内部的道路长度总和,所以本着“能用边缘就用边缘,不能则选用最短路径“的原则,第一步先算出任意两点间距离,利用算法算出最短路径;第二步取任意一点,利用最小生成树的办法,依次取点;最后利用1.4倍的约束条件得到最短路程。公式描述如下:最终算出结果为393米,示意图请参见正文。对于问题二,由于没有限定道路结点,
2、所以根据1.4倍的约束条件联想到利用椭圆来进一步缩小取点范围,但这样便无法短时间内找到准确值,所以只能给出模型并估测出期望结果。所做的模型为重叠面积概率模型,第一步以任意两点为焦点,以1.4倍的焦距为长轴长作椭圆,筛选有效覆盖面积的椭圆,得到覆盖程度不同的区域;第二步将覆盖程度视为符合要求的点落入的概率,计算出最大覆盖程度区域的坐标范围;第三步在区域中划分精度并做出程序计算区域中点到入口点的最短距离,比较后得出最佳点。根据以上算法得到预期结果为358米,示意图请参见正文。对于问题三,在问题二上增加一块不可利用的矩形区域,可继续借助问题二的模型,但要重新确定交叉点的范围。此问题中,由于矩形湖在公
3、园右边,承接问题二得知,该湖只影响右边的交叉点。所以左边的交叉点位置不必改变,只需确定右边的交叉点即可。并在此基础上利用问题二的模型继续求解。最终解得的结果为365米。目录1.问题重述 11.1问题背景 11.2问题提出 22基本假设 33.基本符号 34模型建立 34.1问题1 34.1.1问题分析 34.1.2模型建立求解 44.2问题2 84.2.1问题分析 84.2.2模型建立求解 84.3 问题3 124.3.1 问题分析 124.3.2 模型建立求解 125.模型评价和推广 165.1问题1模型 165.2问题2模型 165.3 问题3模型 166.参考文献 167.附录 171.
4、问题重述1.1问题背景西安某大学计划建一个形状为矩形或其他不规则图形的公园,不仅为了美化校园环境,也是想为其学生提供更的生活条件。公园计划有若干个入口,现在你需要建立一个模型去设计道路让任意两个入口相连(可以利用公园四周的边,即默认矩形的四条边上存在已经建好的道路,此道路不计入道路总长),使总的道路长度和最小,前提要求是任意的两个入口之间的最短道路长不大于两点连线的1.4倍。主要设计对象可假设为如图所示的矩形公园,其相关数据为:长200米,宽100米,1至8各入口的坐标分别为:P1(20,0),P2(50,0),P3(160,0),P4(200,50),P5(120,100),P6(35,10
5、0),P7(10,100),P8(0,25)。1.2问题提出问题一:假定公园内确定要使用4个道路交叉点为:A(50,75),B(40,40),C(120,40),D(115,70)。问如何设计道路可使公园内道路的总路程最短。建立模型并给出算法。画出道路设计,计算新修路的总路程。问题二:现在公园内可以任意修建道路,如何在满足条件下使总路程最少。建立模型并给出算法。给出道路交叉点的坐标,画出道路设计,计算新修路的总路程。问题三:若公园内有一条矩形的湖,新修的道路不能通过,但可以到达湖四周的边。重复完成问题二的任务。其中矩形的湖为R1(140,70),R2(140,45),R3=(165,45),R
6、4=(165,70)。注:以上问题中都要求公园内新修的道路与四周的连接只能与8个路口相通,而不能连到四周的其它点。2基本假设1.计算任意两入口点之间的道路总长度与两入口连线距离关系时,将矩形边的长度算在其中。2.问题三中小矩形的边长算入道路总长度。3.基本符号Vi任一入口点s.tPiPj点Pi、Pj之间最短路程点V0、V1间的弧d(V0,V1)弧V0V1的权值S道路长度总和(不含矩形边)V(i,j)点i,j之间的路径4模型建立4.1问题14.1.1问题分析该问题给出了公园内已知的四个交叉点A(50,75),B(40,40),C(120,40),D(115,70)。在1. 任意的两个入口之间的最
7、短道路长不大于两点连线的1.4倍,2.道路会经过四个交叉点这两个前提下。我们考虑的问题是:如何使公园内道路的总长度和最小。4.1.2模型建立求解由题所给出的条件可以看出,这与最短路问题联系密切,于是考虑用几何知识和Dijkstra算法Floyd算法来建立问题的模型。由题将八个入口及四个交叉点依次设为:1,2,3,4,5,6,7,8,9,10,11,12。方法:任取边界上一入口点Vi,以此点为起始点,由上面第二步所得的数据分别比较Vi与其他点的距离,得出Vi的最短路径Vij,再以j点为起始点用同样方法比较出最短路径Vjk.同理依次求的最短路径。再验证是否满足两个入口之间的最短道路(含矩形边)长不
8、大于两点连线的1.4倍,若不满足,则再通过比较后添加最优路径。第一步:利用Matlab软件计算出任意两点间的距离。第二步:利用Floyd算法及Lingo软件求解出任意两点间的最短路径。代码见附录1。距离见附录2。第三步:利用Dijkstra算法求解最优路径。引入对Dijkstra算法的描述:1. 初始时令 S=V0,T=其余顶点,T中顶点对应的距离值,若存在,d(V0,Vi)为弧上的权值,若不存在,d(V0,Vi)为2. 从T中选取一个其距离值为最小的顶点W且不在S中,加入S3. 对T中顶点的距离值进行修改:若加进W作中间顶点,从V0到Vi的距离值比不加W的路径要短,则修改此距离值,重复上述步
9、骤2、3,直到S中包含所有顶点,即S=T为止。具体求解描述:首先以1点为起始点,比较2 ,8两点和 1点构成的路径长短可知最短路径为(1 ,2)路。再以2点为起始点,比较3,8,10 ,11这四个点与2点所构成路径长短可知最短了路径为(2,10)路。以此类推,可初步得出最短路径为:1-2-10-9-6-7-8-1和6-5-12-11-3-4两部分组成。验证是否满足两个入口之间的最短道路长不大于两点连线的1.4倍这一条件。同时考虑公园边界道路不算入道路总长,故若使道路总长最短,则在满足条件的情况下尽量利用公园边界。具体方法:任取八个入口中的一个,由于在同一边的点无需比较,故只比较其与不在同一边的
10、点是否满足最短道路长不大于两点连线的1.4倍,如不满足,增添最优道路。若无小于1.4|ij|的路径,增添新路。从8点开始,分别比较(8,7),(8,6),(8.5),(8,4)计算可得皆有满足条件路径,无需增添。同理计算可得4,6,7点和其他非同边点皆有满足条件路径。而5点与1,2两点没有满足条件的路径,需增添道路。由于1,2,3点已经在之前计算过,不必重复计算。考虑5点和1,2两点的问题。利用枚举法,列举出5-9,5-10,5-2,12-9,12-10,12-2,11-10,11-2这几种假设路线。再利用最短路径(不含矩形边)和最短道路(含矩形边)长不大于两点连线的1.4倍这两个条件进行筛选
11、,最后得出增添5-9为最优路径。则最短路径如图所示,根据公式得最短路长S=32+41+36+29+74+30+30+57+64=393米4.2问题24.2.1问题分析在本问题中公园内可以任意修建道路,故若使总路程最短,则公园内的交叉点选取应遵循最优原则。同时满足1. 任意的两个入口之间的最短道路长不大于两点连线的1.4倍,2.公园内新修的道路长最短这个前提条件。同时应充分利用1.4这个数字,进行数学建模。4.2.2模型建立求解由题目所给条件,可分析此问可以利用几何知识和概率的方法进行建模和求解。第一步:分析任意的两个入口之间的最短道路长不大于两点连线的1.4倍这个条件,可以联想利用几何中椭圆的
12、定义,以任意两点作为椭圆焦点(其直线距离为焦距),同时以1.4为椭圆长轴长,利用Matlab绘制椭圆。则交叉点只可以在椭圆内。而椭圆间的交叉公共区域就是道路交叉点的存在范围。椭圆参数见附录3引入椭圆定义:平面上到两定的的距离之和为常值的点的轨迹。第二步:通过对几何图形的分析和和椭圆覆盖比例的对比,筛选出一些不必考虑的椭圆,进一步缩小重叠区域的范围,以此得出交叉点的区域范围和个数。第三步:将交叉点区域确定在一定范围后,利用C语言编程软件计算出区域内使路径最短的交叉点,则此2个交叉点为所求最优路径交叉点,同时可得经过这两个交叉点的最短路径。具体求解描述:从1点开始,将1点看做椭圆的1个焦点,分别以
13、2,3,4,5,6,7,8点为椭圆另一个焦点,则1点与其他点的直线距离为焦距2c,同时在每个椭圆中长轴2a=1.42c。同理再依次以其他点为固定焦点,画出椭圆,则总共可画出28个。代码见附录4. 再通过对八个入口坐标的分析,筛去那些可以通过走公园外边的点,以及在同一边上的两点,这些点构成的椭圆可以略去,不必计入考虑范围。故筛选得需保留的椭圆交点坐标为:1-6,1-8,2-5,2-6,2-7,3-4,3-5,3-6,3-7,4-5.因此图像可简化为由十个椭圆构成的图,同时对比分析其中重叠区域最密集的部分,则可确定出有两个交叉点及其范围区间,设定两交叉点分别为9,10点。经过分析推测,可以得出两种
14、优化方案,如图所示,分别对两种情况利用C程序进行对比论证。H形算法:此时1-8,3-4这两组点已为定值,则计算V15,V16,V25,V26,V27,V35,V36,V37这些点之间的路径长。其中V36有3-10-5-6,3-10-9-6,3-2-9-6这三种路径,V37有3-10-5-6-7,3-10-9-6-7,3-2-9-6-7这三种路径。利用公式:,且满足两个入口之间的最短道路长不大于两点连线的1.4倍这个条件。编写程序,将已固定的区域范围划分为无数个极微小的点,使交叉点在这些点上依次运算一遍,最后由程序比较获得最短路径长及此时的两交叉点近似坐标。(代码见附录5)(1) 双Y形算法:此
15、时1-8组点已为定值,则计算V25,V26,V35,V36,V37这些点之间的路径长。其中V36有3-10-5-6,3-2-9-6两种路径。套用H形的方法编写程序后进行运算求解出最短路径及此时的交叉点坐标。(代码见附录6)结果对比:H形可获得的最优路径的最短路程长为371米,交叉点坐标为(65,58),(107,65)。双Y形可获得的最优路径的最短路程为358米,交叉点坐标为(60,78),(173,44)。对比后可得双Y形较H形更优,则在建立模型下最优路径为双Y形路径,最短路程长为358米。4.3 问题34.3.1 问题分析该问题在是建立在问题二的基础上加入了一个矩形湖(如图所示),湖的四个
16、点坐标分别 R1(140,70) , R2(140,45) , R3(165,45) , R4(165,70) ,新建路径不能直接穿过。验证问题二的路径是否穿过矩形湖,不穿过则问题得解,否则应分两种情况考虑:(1)对于问题二中所求得的交叉点向矩形湖引垂线,并连接最近入口形成新的路径;(2)重新确定新的范围,利用问题二的方法确定新的交叉点和路径;最后比较(1)、(2)两种情况,得出最优解。4.3.2 模型建立求解此模型与问题二的模型相似,主要步骤如下:(1):验证问题二的路径是否满足问题三,若不满足,确定新路径(分两种情况);(2):分别按照(1)(2)两种情况建立模型确定新路径,具体方法见下文
17、;(3):比较验证新的路径是否满足题目要求(公园任意两个入口之间的最短道路长不大于两点连线的1.4倍)以及是否是最优解(总的道路长度是否最短);(4):根据比较得出正确答案。 模型建立过程的具体流程图 具体求解描述:说明:由于湖在公园靠右部分,只影响右边那个交叉点,故左半部分保持不动,只考虑右半部分。模型一 问题二得出的交点连接公园入口点3,4,5,如图所示:其中A1(148,70),B1(165,52),Z(173,43.5) 道路设计图为总距离S=409(米)模型二:利用椭圆,分别以3,4,5入口为焦点,1.4倍距离为长轴分别作椭圆,以5入口向湖引切线,得到A,B, C三个区域,如图所示若
18、交叉点在A区域,则作一个包含区域A的矩形(X为140160,Y为35)并将该矩形分割成很小的网格正方形(间距为0.1),计算在区域A内网格的点分别到入口3,4,5的距离并求和,其中和最小的点即为交叉点。这可以通过编写成序来实现,并能求出最短路径及交叉点的近似坐标。(具体程序见附录7)交叉点在B、C区域内的方法同上。经过程序运行后,得出交叉点坐标为J(181.1 ,48 ),交叉点到3,4,5入口的路径和为153米,如图所示其中W(155,70),X=(165,62),J(181,48)道路设计图如图所示:总距离S=365.00(米)分析比较,模型二的设计更为合理。新修路的总路程为:S=365(
19、米) 5.模型评价和推广5.1问题1模型对于问题1所建立的模型,在利用Dijkstra算法求解最优路径时,可能会遇到在求解的过程中在某一点会存在多支符合条件的分支路径是,这时需要进行主观分析判断,可能会存在不严谨不精确之处,造成最后结果会出现误差。只可利用灵活多样的方式求的近似最优方案。该模型可以优化为从不同的点出发,多次运用最小生成树法,来减小主观性带来的不严谨性,从而推广应用到运输生产领域。5.2问题2模型对于问题二建立的模型,存在几处不足和缺点:(1) 在利用椭圆进行几何建模时,存在缺漏,因为利用椭圆时,等于默认构成椭圆的两点之间的只存在一个点或只有一条直线。这里忽略了两点间存在一个以上
20、点的情况,可能会存在不严谨,不合理之处,造成最后结果会出现误差。故会存在一定的局限性。(2) 由椭圆间的重叠面积概率进行信息获取和确定交叉点范围时,由于数据的复杂程度过高,在确定区域范围时难免会存在误差和遗漏的可能,因此在确定范围并利用C语言程序进行模拟时会存在误差。(3) 在利用C语言程序对已知区域进行微小量划分,并使交叉点在区域内进行穷举运算时,会存在固有的精度误差,结果导致最终的最短路程长和交叉点坐标出现误差,用此方法得出准确无误差值是不现实的,因此用近似估计法,尽可能的将变量精度划分细化,期望得到近似最优方案。5.3 问题3模型问题三直接利用问题二的模型是假定小矩形的边长可以直接利用,
21、这样简化了问题,但算法上与问题二基本相同,所以没有多少创新。该问题还可以考虑点和边都避开小矩形而获得最短路程的方案,使得该问题更具有现实意义和研究意义。6.参考文献1.数学建模基础,北京工业大学出版社,薛毅著;2.优化技术与Matlab优化工具箱,机械工业出版社,赵继俊著;3.控制系统Matlab计算与仿真,国防工业出版社,黄忠霖、黄京著;4.概率统计教程,清华大学出版社,姚孟臣著;7.附录附录1 Lingo求各点最小距离代码附录2各点间的最小距离附录3 椭圆参数及求参代码附录4 Matlab绘制所有椭圆代码附录5 H型求交点代码附录6 双Y型求交点代码附录7 问题三代码附录1sets:nod
22、es/1.12/;arcs(nodes,nodes):d;endsetsdata:d = 0 30 140 187 141 101 100 32 81 45 108 118 30 0 110 158 122 101 108 56 75 41 81 96 140 110 0 64 108 160 180 162 133 126 57 83 187 158 64 0 94 172 196 202 152 160 81 87 141 122 108 94 0 85 110 142 74 100 60 30 101 101 160 172 85 0 25 83 29 60 104 85 100 108
23、 180 196 110 25 0 76 47 67 125 109 32 56 162 202 142 83 76 0 71 43 121 123 81 75 133 152 74 29 47 71 0 36 78 65 45 41 126 160 100 60 67 43 36 0 80 80 108 81 57 81 60 104 125 121 78 80 0 30 118 96 83 87 30 85 109 123 65 80 30 0;enddatacalc:for(nodes(k):for(nodes(k1):for(nodes(k2):for(nodes(k3):for(no
24、des(k4):for(arcs(i,j):d(i,j) = smin(d(i,j),d(i,k)+d(j,k),d(i,k)+d(k,k1)+d(j,k1),d(i,k)+d(k,k1)+d(k1,k2)+d(j,k2),d(i,k)+d(k,k1)+d(k1,k2)+d(k2,k3)+d(j,k3),d(i,k)+d(k,k1)+d(k1,k2)+d(k2,k3)+d(k3,k4)+d(j,k4);endcalc附录2附录3x=20,50,160,200,120,35,10,0;y=0,0,0,50,100,100,100,25;a=zeros(8,8);b=zeros(8,8);x0=z
25、eros(8,8);y0=zeros(8,8);th=zeros(8,8);for i=1:8,for j=1:i-1;x0(i,j)=0.5*(x(i)+x(j);y0(i,j)=0.5*(y(i)+y(j);d(i,j)=sqrt(x(i)-x(j)*(x(i)-x(j)+(y(i)-y(j)*(y(i)-y(j);a(i,j)=1.4*d(i,j);b(i,j)=0.5*(sqrt(a(i,j)*a(i,j)-d(i,j)*d(i,j);th(i,j)=atan(y(i)-y(j)/(x(i)-x(j);endend x0 (x的中点坐标)x0 = 0 0 0 0 0 0 0 0 35.
26、0000 0 0 0 0 0 0 0 90.0000 105.0000 0 0 0 0 0 0 110.0000 125.0000 180.0000 0 0 0 0 0 70.0000 85.0000 140.0000 160.0000 0 0 0 0 27.5000 42.5000 97.5000 117.5000 77.5000 0 0 0 15.0000 30.0000 85.0000 105.0000 65.0000 22.5000 0 0 10.0000 25.0000 80.0000 100.0000 60.0000 17.5000 5.0000 0 y0 (y的中点坐标)y0 =
27、 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25.0000 25.0000 25.0000 0 0 0 0 0 50.0000 50.0000 50.0000 75.0000 0 0 0 0 50.0000 50.0000 50.0000 75.0000 100.0000 0 0 0 50.0000 50.0000 50.0000 75.0000 100.0000 100.0000 0 0 12.5000 12.5000 12.5000 37.5000 62.5000 62.5000 62.5000 0 th (倾斜角)th = 0 0 0
28、 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2709 0.3218 0.8961 0 0 0 0 0 0.7854 0.9601 -1.1903 -0.5586 0 0 0 0 1.4219 -1.4219 -0.6747 -0.2942 0 0 0 0 -1.4711 -1.1903 -0.5880 -0.2573 0 0 0 0 -0.8961 -0.4636 -0.1550 0.1244 0.5586 1.1342 1.4382 0 a (长半轴)a = 0 0 0 0 0 0 0 0 42.0000 0 0 0 0 0 0 0 196.00
29、00 154.0000 0 0 0 0 0 0 261.5416 221.3594 89.6437 0 0 0 0 0 197.9899 170.8918 150.7846 132.0757 0 0 0 0 141.5662 141.5662 224.1093 241.3732 119.0000 0 0 0 140.6983 150.7846 252.3886 275.0564 154.0000 35.0000 0 0 44.8219 78.2624 226.7179 282.1790 198.1136 115.8706 105.9292 0 b (短半轴)b = 0 0 0 0 0 0 0
30、0 14.6969 0 0 0 0 0 0 0 68.5857 53.8888 0 0 0 0 0 0 91.5205 77.4597 31.3688 0 0 0 0 0 69.2820 59.7997 52.7636 46.2169 0 0 0 0 49.5379 49.5379 78.4219 84.4630 41.6413 0 0 0 49.2341 52.7636 88.3176 96.2497 53.8888 12.2474 0 0 15.6844 27.3861 79.3347 98.7421 69.3253 40.5463 37.0675 0 d (两焦点距离)d = 0 0 0 0 0 0 0 30.0000 0 0 0 0 0 0 140.0000 110.0000 0 0 0 0 0 186.8154 158.1139 64.0312 0 0 0 0 141.4214 122.0656 107.7033 94.3398 0 0 0 101.1187 101.1187 160.0781 172.4094 85.0000 0 0 100.4988 107.7033 180.2776 196.4688 110.0000 25.0000 0 32.0
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1