毕业论文设计《基于Dijkstra算法的Delphi图形界面程序对成都高新西区区域公交线路的评估规划方案(内嵌完整程序)》.docVIP

  • 7
  • 0
  • 约2.05万字
  • 约 23页
  • 2018-10-02 发布于广西
  • 举报

毕业论文设计《基于Dijkstra算法的Delphi图形界面程序对成都高新西区区域公交线路的评估规划方案(内嵌完整程序)》.doc

PAGE \* MERGEFORMAT 1 基于Dijkstra算法的Delphi图形界面程序对成都高新西区区域公交线路的评估规划方案 【摘要】 本文我们使用Delphi 7编写了基于Dijkstra的实用程序,对成都高新西区区域(涵盖犀浦镇,大丰镇,安靖镇,土桥-茶店子区域)的公交线路进行了评估与重新规划。 首先,我们截取了Google地图500m等级比例尺的大比例地图,导入Photoshop中进行拼接后,对各关键点、各路径进行编号与测量,获得了115个路点与188条路径。 其次,我们在只考虑距离因素的基础上对现有的12条公交线路与程序计算的优化结果进行了评估,并进行了简短的线路分析。 然后,我们引入了考虑进路况和人口因素的加权函数,并搜集了该区域常住人口,和区域内7所高校的人口状况,整个区域内的道路类型、拥堵状况资料。将加权后的结果重新导入程序,对线路再次进行路线分析。 之后,我们依照加权后的结果,参照已有的公交线路进行了重新规划。 最后,我们对该模型的优缺点进行了讨论,并提出了限于时间关系而未能实现的若干例如与Excel接口相连接、加权函数的外置型输入、图形化布线思想等编程构想。 值得一提的是,我们编写的Delphi程序具有友好的图形界面,利用该程序,就算完全不了解算法的人,只要了解输入方式,也能够简便地求解此类最短路径问题。 双击以下图标获得论文相关文件。 关键词:Dijkstra算法 Delphi 公交线路 最短线路优化 成都高新西区 图形界面程序 人口密度 交通路况 一、问题重述 随着成都市经济文化的蓬勃发展,越来越多的成都居民选择到三环路以外的区域居住。不仅如此,在三环线——绕城高速片区聚集了越来越多的企业、学校和商业网点。 随着该区域的开发,一个问题越来越凸显出来——公共交通网络不够完善。成都市现有的公交路线覆盖范围主要涉及成都市主城区,但郊区的公交路线和数量都较少,无法满足人民群众日益增加的出行要求。鉴于此况,成都市交委力争今年在成都市三环路至绕城高速公路区域内部分没有开通公交车的地区,实现公交全覆盖。 图1.1 请你明确选择成都三环线——绕城高速的西北区域范围(必须包括大丰镇、安靖镇、犀浦镇和高新西区等重点区域),利用数学模型回答下列问题: 收集目前在该区域通行的公交车数据及其他相关信息,对当前公交路线设置的合理性和科学性进行评价; 在考虑人口密度、交通路况等基础上,对该区域的公交路线进行合理的规划设计,以满足居民在该区域内或区域外工作和生活的需要; 由于该区域范围较大,因此部分公交路线可能较长,请在考虑公交公司运营成本和居民出行方便的基础上,重新规划该区域的公交线路; 根据成都地铁发展规划,到2020年三环线——绕城高速的西北区域会覆盖地铁路线。以附件提供的地铁路线为依据,考虑地铁换乘和未来该区域发展,重新对该区域的公交线路进行规划设计。 二、问题假设 (一)不考虑换乘问题; (二)在路径建模中,忽略掉路况较差,难以通车的小型道路; (三)人口平均分布于每条线路中; 三、符号说明 cost:线路花销; d:分段花销; k1:拥堵状况; k2:道路类型; l:人口评价系数; m:该路径人口数; :整个区域的平均路径人口 四、问题分析、模型的建立与求解 问题一: 1.问题的分析 该问题为典型的求最短路线问题。首先,我们详细地收集了该区域的道路分布情况,将整个区域化分为 A:安靖-大丰区域; B:犀浦区域; C:土桥茶店子区域; 然后,我们使用google地图结合Photoshop软件对截下的20块地图进行无缝拼接,获得了一张3508x3267像素、DPI300的图片。根据该地图,依次对该三个区域的线路进行布点,最终划分为115个站点以及188条路径。(详见txt格式数据文件) 之后,我们使用Delphi 7编写了基于Dijkstra算法的实用程序。 图2.1 拼接地图图片(全分辨率图片详见附带文件) 图2.2 程序截图 2.模型的建立 1.核心算法 Dijkstra算法的基本思想是,设置顶点集合S并不断地作贪心选择来扩充这个集合。一个顶点属于集合S当且仅当从源到该顶点的最短路径长度已知。 初始时,S中仅含有源。设u是G的某一个顶点,把从源到u且中间只经过S中顶点的路称为从源到u的特殊路径,并用数组dist记录当前每个顶点所对应的最短特殊路径长度。Dijkstra算法每次从V-S中取出具有最短特殊路长度的顶点u,将u添加到S中,同时对数组dist作必要的修改。一旦S包含了所有V中顶点,dist就记录了从源到所有其它顶点之间的最短路径长度。[1] 程序算法步骤为: Step1: 初始化最短距离,把和源点直连的路径进行赋值; Step2:依次将未放入S集合的结点中,取dist[]最小值的结点,放入结合S中

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档