公园内道路设计问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
公园内道路设计问题
摘要
某大学要建一个长200米,宽100米的矩形公园,该公园有8个入口,坐标 已给出。在一定的约束条件下,我们需要建立一个模型去设计道路让任意两个入 口相连使总的道路长度和最小。
问题一指定了公园内的道路交叉点。8个入口4个交叉点共12个点,我们通过matlab 编程,得到12阶的邻接矩阵,根据题目要求及约束条件对邻接矩阵进行修改得到新的邻接矩阵,然后运用prim 算法求出这12个点构成的最小生成树。再由约束条件进行优化,最终得到满足要求的道路设计图(如图5),最短总路程为394.5596米。
对于问题二,题目中没有给定道路交叉点,我们可以任意修路,但是要使道路总路程最短。我们引入费马点的定义,通过寻找费马点来求公园内的道路交叉点。我们找到了两个费马点(道路交叉点)1Q (62.33373 ,77.86494)和
2Q (173.0980,43.64328),加上8个入口共10个点。这样一来,问题又回到了问题一,我们在问题一的基础上进行求解,得到满足要求的道路设计图(如图10),最短总路程为358.4320米。
问题三在问题二的基础上添加了一条矩形的湖。这是个带约束条件的问题二,我们把被湖覆盖区域的道路重新进行设计修建,通过寻找费马点的方法来求新的道路交叉点。我们运用两种方案,找到了两个费马点3Q (181.1422,47.94938)和4Q (161.7519,30.73196),分别求出的最短总路程为360.5758米、364.9386米。通过比较,方案一最优,修改后的道路交叉点为
1Q (62.33373 ,77.86494)和3Q (181.1422,47.94938),得到的道路设计图(如图14),最短总路程为360.5758米。
关键字:最小生成树;prim 算法;费马点;最短总路程
1.问题重述
1.1问题背景
某大学计划建一个形状为矩形或其他不规则图形的公园,不仅为了美化校园环境,也想为其学生提供更好的生活条件。
1.2问题提出
公园计划有若干个入口,现在我们需要建立一个模型去设计道路让任意两个入口相连(可以利用公园四周的边,即默认矩形的四条边上存在已经建好的道路,此道路不计入道路总长),使总的道路长度和最小,前提要求是任意的两个入口之间的最短道路长不大于两点连线的1.4倍。
主要设计对象可假设为如图所示的矩形公园,其相关数据为:长200米,宽100米,1至8各入口的坐标分别为:P1(20,0),P2(50,0),P3(160,0),P4(200,50),
P5(120,100),P6(35,100),P7(10,100),P8(0,25).示意图见附录一,其中图2即是一种满足要求的设计,但不是最优的。
现完成以下问题:
问题一:假定公园内确定要使用4个道路交叉点为:A(50,75),B(40,40),C(120,40),D(115,70)。问如何设计道路可使公园内道路的总路程最短。建立模型并给出算法。画出道路设计,计算新修路的总路程。
问题二:现在公园内可以任意修建道路,如何在满足条件下使总路程最少。建立模型并给出算法。给出道路交叉点的坐标,画出道路设计,计算新修路的总路程。问题三:若公园内有一条矩形的湖,新修的道路不能通过,但可以到达湖四周的边,示意图见附录一中的图3。重复完成问题二的任务。其中矩形的湖为R1(140,70),R2(140,45),R3=(165,45),R4=(165,70)。
注:以上问题中都要求公园内新修的道路与四周的连接只能与8个路口相通,而不能连到四周的其它点。
2.问题分析
某大学计划建一个形状为矩形或其他不规则图形的公园,不仅为了美化校园环境,也想为其学生提供更好的生活条件。要在公园里修建道路,如果道路修的多,则方便快捷,但是花费的财力物力大;若修少了,虽然可以节约资金,但是要想逛公园就得绕很大的圈,不便于游玩。那么,应该如何铺路?这里虽然不涉
及花费,但是要求铺设的路总路程最短。
该公园长200米,宽100米,有8个入口,每个入口的坐标已给出,要求任意两个入口相连,可以利用公园四周的边,即默认矩形的四条边上存在已经建好的道路,此道路不计入道路总长,使总的道路长度和最小,但前提要求是任意的两个入口之间的最短道路长不大于两点连线的1.4倍,且公园内新修的道路与四周的连接只能与8个路口相通,而不能连到四周的其它点。要铺出满足要求的路,用穷举法显然是可以的,通过计算每一种方案得出总路程,比较得到最小总路程。但是用这种方法求解比较繁杂,显然不是解决这类问题的好办法,而且随着问题规模的变大,穷举法的计算量将是无法接受的。我们想到的是构造最小生成树法。显然该最小生成树是包含了约束条件的。通过最小生成树求出最短路径,从而使得总路程最短。
2.1问题一的分析
对于问题一,要求公园内有四个道路交叉点,分别为A(50,75),B(40,40),C(120,40),D(115,70)。公园的8个入口分别为P1(20,0),P2(50,0),P3(160,0),P4(200,50),P5(120,100),P6(35,100),P7(10,100),P8(0,25)。8个入口4个交叉点共12个点,记为1,2,3,4,5,6,7,8,9,10,11,12,其中,前面的1-8为8个入口,后面的9-12为4个交叉点。我们先编程算出任意两点间的距离,并生成邻接矩阵。由于可以利用公园周边的路,且此路径不列入总路程,因此,我们可以尽量多用边界路线。根据约束条件:任意的两个入口之间的最短道路长不大于两点连线的1.4倍,对邻接矩阵进行适当的修改。当两入口的边界路线长度小于等于连线距离的1.4倍时,令这两个入口对应的邻接矩阵元素为0。再通过prim 算法,生成由这12个点构造的最小生成树。然后由约束条件找出合理路径。2.2问题二的分析
问题二是在不知道公园内道路交叉点的情况下铺设道路,要求依然是任意两个入口相连,可以利用公园四周的边,即默认矩形的四条边上存在已经建好的道路,此道路不计入道路总长,使总的道路长度和最小,但前提要求是任意的两个入口之间的最短道路长不大于两点连线的1.4倍,且公园内新修的道路与四周的连接只能与8个路口相通,而不能连到四周的其它点。我们可以在公园内任意修路,但是总路程要最短。