




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、07年B题:乘公交,看奥运我国人民翘首企盼的第29届奥运会明年8月将在北京举行,届时有大量观众到现场观看奥运比赛,其中大部分人将会乘坐公共交通工具(简称公交,包括公汽、地铁等)出行。这些年来,城市的公交系统有了很大发展,北京市的公交线路已达800条以上,使得公众的出行更加通畅、便利,但同时也面临多条线路的选择问题。针对市场需求,某公司准备研制开发一个解决公交线路选择问题的自主查询计算机系统。 为了设计这样一个系统,其核心是线路选择的模型与算法,应该从实际情况出发考虑,满足查询者的各种不同需求。请你们解决如下问题: 1、仅考虑公汽线路,给出任意两公汽站点之间线路选择问题的一般数学模型与算法。并根
2、据附录数据,利用你们的模型与算法,求出以下6对起始站终到站之间的最佳路线(要有清晰的评价说明)。 (1)、S3359S1828 (2)、S1557S0481 (3)、S0971S0485 (4)、S0008S0073 (5)、S0148S0485 (6)、S0087S3676 2、同时考虑公汽与地铁线路,解决以上问题。 3、假设又知道所有站点之间的步行时间,请你给出任意两站点之间线路选择问题的数学模型。 【附录1】基本参数设定 相邻公汽站平均行驶时间(包括停站时间): 3分钟 相邻地铁站平均行驶时间(包括停站时间): 2.5分钟 公汽换乘公汽平均耗时: 5分钟(其中步行时间2分钟) 地铁换乘地
3、铁平均耗时: 4分钟(其中步行时间2分钟) 地铁换乘公汽平均耗时: 7分钟(其中步行时间4分钟) 公汽换乘地铁平均耗时: 6分钟(其中步行时间4分钟) 公汽票价:分为单一票价与分段计价两种,标记于线路后;其中分段计价的票价为:020站:1元;2140站:2元;40站以上:3元 地铁票价:3元(无论地铁线路间是否换乘) 注:以上参数均为简化问题而作的假设,未必与实际数据完全吻合乘公交,看奥运摘要:本文是为了开发一个解决北京市公交线路选择问题的自主查询计算机系统。在充分理解题意的基础上,我们从总体上把握,一致认为这是运筹学中的最短路问题。我们所提供的这个系统,对于当乘客输入起始站和终点站,点击查询
4、结果后,查询机就能很快地给出乘车路线及乘车所需要的最短时间,并且,还可以给出相应的乘车费用。所以,我们想到了建立网络模型来解决。对于问题一,在仅仅考虑公共汽车的换乘的时候,我们以最短的乘车时间和最优的乘车费用作为两个目标函数,建立相应的双目标规划模型:对于问题二与问题三我们同样建立了相应的数学规划模型,具体模型见正文。并利用Dijkstra算法解出我们所需要的结果。我们同样利用了双目标函数的统筹规划原理,在Dijkstra和回溯的算法下 , 解决了在公共汽车和地铁之间换乘的问题,求得最短时间问题,找到了最合适的公交路线,均为最短的乘车时间和最有的乘车费用,从而更加完善了我们的公交系统。关键词:
5、最短行程 双目标 网络模型 Dijkstra算法一、 问题重述 我国人民翘首企盼的第29届奥运会明年8月将在北京举行,届时有大量观众到现场观看奥运比赛,其中大部分人将会乘坐公共交通工具(简称公交,包括公汽、地铁等)出行。这些年来,城市的公交系统有了很大发展,北京市的公交线路已达800条以上,使得公众的出行更加通畅、便利,但同时也面临多条线路的选择问题。针对市场需求,某公司准备研制开发一个解决公交线路选择问题的自主查询计算机系统。为了设计这样一个系统,其核心是线路选择的模型与算法,应该从实际情况出发考虑,满足查询者的各种不同需求。请你们解决如下问题:1、仅考虑公汽线路,给出任意两公汽站点之间线路
6、选择问题的一般数学模型与算法。并根据附录数据,利用你们的模型与算法,求出以下6对起始站终到站之间的最佳路线(要有清晰的评价说明)。 (1)、S3359S1828 (2)、S1557S0481 (3)、S0971S0485(4)、S0008S0073 (5)、S0148S0485 (6)、S0087S36762、同时考虑公汽与地铁线路,解决以上问题。3、假设又知道所有站点之间的步行时间,请你给出任意两站点之间线路选择问题的数学模型。【附录1】基本参数设定相邻公汽站平均行驶时间(包括停站时间): 3分钟相邻地铁站平均行驶时间(包括停站时间): 2.5分钟公汽换乘公汽平均耗时: 5分钟(其中步行时间
7、2分钟)地铁换乘地铁平均耗时: 4分钟(其中步行时间2分钟)地铁换乘公汽平均耗时: 7分钟(其中步行时间4分钟)公汽换乘地铁平均耗时: 6分钟(其中步行时间4分钟)公汽票价:分为单一票价与分段计价两种,标记于线路后;其中分段计价的票价为:020站:1元;2140站:2元;40站以上:3元地铁票价:3元(无论地铁线路间是否换乘)注:以上参数均为简化问题而作的假设,未必与实际数据完全吻合。【附录2】公交线路及相关信息 (见数据文件B2007data.rar)二 、基本假设1、按常理,人们总是在换乘两辆公汽后就不会再换其他的公汽,本模型假定可以查到换乘两次公汽所行使的路线,至于其它线路,本模型也可以
8、继续求出,但考虑到人们的观念,所以在换乘两辆车后就可以找到最优的路线,并且乘车费合理,可以被人们所接受。 2、从一站乘L车到下一战换车时,不会再乘坐同一辆车。3、最短的时间是人们首先考虑到的事情,所以在最短时间和最低费用相冲突的情况下,优先考虑时间问题。三、基本符号说明为了便于问题的说明,我们用一些符号来代替问题中出现的一些基本变量。其它的一些变量,在文中会陆续说明。i:起始站台的号数j:终点站台的号数:从i站乘l车到j站:第i个站台到第j个站台所用的最优时间权值(分钟), :目标函数最优的乘车费(元) :公汽的票价函数(元) :整型函数 ,其值为1或0:换车的两站之间所隔的站台数四 问题的分
9、析考虑到问题的假设与要求,我们以最短的行车时间和最低的乘车费用作为最佳的路线和方案。题目第一问要求我们根据附录数据,仅考虑公汽线路,给出任意两公汽站点之间线路选择问题的一般数学模型与算法,并求出6对起始站终到站之间的最佳路线。实质上就是求两站之间最佳路线问题。由于题中给的数量较多,逐条路线去求最佳路线的问题是不可能的,所以我们决定用Dijkstra算法求出最佳的路线。题目的第二问要求我们在第一问的基础上同时考虑公汽与地铁线路的问题,并求出第一问所要解决的问题,实际上是将地铁看成一辆新增加的公交车,并同时考虑新增加的公交车站的问题。题目第三个问题是要求我们在假设知道所有站点之间的步行时间的情况下
10、,给出任意两站点之间线路选择问题的数学模型。 图1 最短路程问题的网络图五 问题的模型建立5.1 问题一的模型建立 为了解决这类的最优路线问题,我们采用网络理论模型来建立求解。在所求的起始站到终点站最佳问题中,仅仅考虑乘公汽的情况,也涉及到许多情况,如直接乘直达车,不经任何的中转站的,换乘K辆车(k介于1到m-1指间)等。上面的网络图(图1)反映了我们的思路:设我们所研究的问题共有n个公共汽车站点,并且我们有m个车,在第i个站点(起始站)到第j个站点(终点站)之间,我们不妨假设从1到n的乘车方法有直达车,换车并且可以换乘1辆,2辆,3辆 ,那么为了解决问题的 方便,我们假设有当车行使至第j站时
11、,我们又作如下假设:在题目给定的条件下,在仅考虑公交路线的情况下,我们可以的得到任意两站(i和j站)之间的最优乘车时间值,我们给出公式: (1)即所求的最优时间为行使的时间和换乘时间的和。 所求的最优时间要受到如下的7个条件约束:以上目标函数是公交车行使的时间和换乘时间的和,其中是从第站点到第站点辆车所经过的总站点数,是转车次数。表示出发站应满足的条件,即乘客必须乘某一车次前往某一站。表示目的站应满足的条件,即乘客必须乘某一车次经某一站到达目的站。表示在第j站作为中间站点时,若有车次经过则式子左边的值为0,若此站作为终点站则式子左边的值为1,即有进无出去的情况。 表示第i站作为中间站点时,若有
12、车次经过则式子左边的值为0,若此站作为起点站则式子左边的值为1,即车辆有出无进的情况。表示车辆与某站点的关系,若某车辆既不进也不出某站点,此式子左右两边都为0,若车辆既从此站点进去同时也从此站点出来,则此式子左右两边都为1。分为以下几种情况:1)假如车辆没有经过某站点,此时的值为0,同时的值也为0,中间的式子为0;2)假如车辆经过了某站点且没有转车,此时的值为1,同时的值也为1,中间的式子为0;3)假如车辆经过了某站点且有转车的情况,对于转车前的车,此时的值为1,同时的值也为0中间式子为1;对于转车后的车有的值为0,同时的值也为1,中间式子为-1。这三种情况的结果符合模型前的换车函数。上述目标
13、函数是基于时间最短而得出的最佳路线,这是人们在实际生活中乘公交车最基本的要求,所以此项指标作为评价一条路径好不好的最重要的指标。但是同时人们也会考虑到乘车的花费多少,所以在选择公交车时会对路径和花费进行综合考虑,即要求到达目的地的时间最短且花费最小。下面我们针对这种情况给出了模型及其方案,并相应得出最短时间和最少花费。所以综合得出最终的模型为: 第二个目标函数是求最小花费,其中表示某一辆车从第i站点到第j站点中间所经过的站点数,表示票价函数,其函数式子为: ,其他的式子表示的含义同上面的约束条件中的解析。5.2 问题二模型的建立问题二中要求考虑乘客可以乘坐地铁交通工具,因此我们依据问题一中的模
14、型,考虑如下因素:1)乘客选择的交通工具为公交或地铁,此时相应地有变量:2)乘客可由公交车转乘地铁,此时相应地有变量及约束条件:3)乘客可由地铁转乘公交车,此时相应地有变量及约束条件:4)乘客可由地铁转乘地铁,此时相应地有变量:5)乘客在公交站可不换公交车、或可转乘公交车、或可转乘地铁,但三种选择不可同时进行,因此相应的有约束条件,6)乘客在D12及D18地铁站可不换地铁线、或可换乘公交车、或可换乘地铁线,但三种选择不可同时进行,因此相应的有约束条件:综合以上因素,即相应的新的乘车时间及票费的计算,我们建立如下的双目标规划模型:5.3 问题三的模型建立问题三中要求考虑乘客可以采用步行方式,因此
15、我们依据问题二中的模型,考虑如下因素:1)乘客选择的交通工具为公交或地铁或步行,此时相应地有变量:2)乘客可由公交车转为步行方式3)乘客可由地铁转为步行方式 5)乘客在公交站可不换公交车、或可转乘公交车、或可转乘地铁,或转为步行方式,但四种选择不可同时进行 6)乘客在D12及D18地铁站可不换地铁线、或可换乘公交车、或可换乘地铁线、或改为步行方式,但四种选择不可同时进行,因此相应的有约束条件:综合以上因素,即相应的新的乘车时间及票费的计算,建立如下的双目标规划模型: 六 模型的求解6.1 模型一的求解为求最优时间和费用的目标函数即:,我们决定用Dijkstra算法来解决这类最短路问题,我们是通
16、过LINGO软件来实现的。经过计算机的编程运行解决后,得到问题一的解决方案,下面是在仅考虑公共汽车之间的换乘问题,给替乘车者提供最优路线的方案。表1 仅考虑公汽线路时的S3359S1828最佳路线1、S3359S1828耗时(分钟)101路费(元)3车次L436、L167转车站S1784路径S3359-S2026-S1132-S2266-S2263-S3917-S2303-S2301-S3233-S0618-S0616-S2112-S2110-S2153-S2814-S2813-S3501-S3515-S3500-S0756-S0492-S0903-S1768-S0955-S0480-S270
17、3-S2800-S2192-S2191-S1829-S3649-S1784S1784-S1828表2 仅考虑公汽线路时的S1577S0481最佳路线2、S1577S0481耗时(分钟)106路费(元)3车次L084、L189、L460转车站S1919、S3186路径S1557-S3158-S2628-S3408-S2044-S1985-S2563-S2682-S0028-S0029-S0055-S0051-S1919S1919-S2840-S1402-S3186S3186-S3544-S2116-S2119-S1788-S1789-S1770-S2322-S0992-S2184-S2954-S
18、3117-S2424-S1174-S0902-S0903-S2101-S0481表3 仅考虑公汽线路时S0971S0485的最佳路线3、S0971S0485耗时(分钟)128路费(元)3车次L013、L417转车站S2184路径S0971-S3832-S3341-S2237-S3565-S3333-S1180-S3494-S1523-S1520-S1988-S1743-S1742-S1181-S1879-S3405-S2517-S3117-S2954-S0531-S2184S2184-S0992-S2322-S1770-S1789-S2119-S2116-S3544-S3186-S3409-S
19、2717-S1402-S2840-S0643-S2079-S1920-S2480-S2482-S2210-S3332-S3351-S0485表4 仅考虑公汽线路时S0008S0073的最佳路线4、S0008S0073耗时(分钟)83路费(元)2车次L159、L474转车站S0400路径S0008-S3412-S2743-S3586-S2544-S0913-S2953-S3874-S0630-S0854-S0400S0400-S2633-S3053-S0410-S0411-S2846-S0605-S0604-S0527-S0525-S3470-S2619-S2340-S3162-S2181-S2
20、705-S0073表5 仅考虑公汽线路时S0148S0485的最佳路线5、S0148S0485耗时(分钟)106路费(元)3车次L308、L156、L417转车站S0036、S2210路径S0148-S0462-S0361-S1797-S2221-S0302-S2222-S2737-S1716-S0128-S2268-S1308-S1391-S2272-S00360036-S3233-S0618-S0617-S0721-S2057-S2361-S0608-S0399-S2535-S2534-S0239-S0497-S2090-S2082-S2210S2210-S3332-S3351-S0485
21、表6 仅考虑公汽线路时S0087S36766、S0087S3676耗时(分钟)65路费(元)2车次L454、L209转车站S3496路径S0087-S0857-S0630-S1427-S1426-S0541-S0978-S3389-S1919-S0641-S2840-S3496S3496-S1883-S1159-S2699-S2922-S3010-S0583-S1987-S0082-S3676以上6个公交车路线是根据网络模型所得出的结论,在起始站到终点站之间有很多不同的乘车路线,但我们可以看出所求的6条路线都是要经历一个或两个中转站才能到达终点站,与其它的路线相比,它们耗费的时间短,且路费也低
22、,所以该模型很好的解决了最短行程的问题。6.2模型二的求解 在第一问的基础上,我们又需要重新考虑公共汽车和地铁的换乘问题,以及地铁和地铁的换乘问题,在利用数学软件软件进行的编程过程中,我们又得到以下的结论:表7 同时考虑公汽与地铁线路时S3359S1828的最佳路线1、S3359S1828耗时(分钟)101路费(元)3车次L436、L167转车站S1784路径S3359-S2026-S1132-S2266-S2263-S3917-S2303-S2301-S3233-S0618-S0616-S2112-S2110-S2153-S2814-S2813-S3501-S3515-S3500-S0756
23、-S0492-S0903-S1768-S0955-S0480-S2703-S2800-S2192-S2191-S1829-S3649-S1784S1784-S1828表8 同时考虑公汽与地铁线路时 S1577S0481的最优路线2、S1577S0481耗时(分钟)106路费(元)3车次L084、L189、L460转车站S1919、S3186路径S1557-S3158-S2628-S3408-S2044-S1985-S2563-S2682-S0028-S0029-S0055-S0051-S1919S1919-S2840-S1402-S3186S3186-S3544-S2116-S2119-S17
24、88-S1789-S1770-S2322-S0992-S2184-S2954-S3117-S2424-S1174-S0902-S0903-S2101-S0481表9 同时考虑公汽与地铁线路时S0971S0485 的最优路线3、S0971S0485耗时(分钟)128路费(元)3车次L013、L417转车站S2184路径S0971-S3832-S3341-S2237-S3565-S3333-S1180-S3494-S1523-S1520-S1988-S1743-S1742-S1181-S1879-S3405-S2517-S3117-S2954-S0531-S2184S2184-S0992-S232
25、2-S1770-S1789-S2119-S2116-S3544-S3186-S3409-S2717-S1402-S2840-S0643-S2079-S1920-S2480-S2482-S2210-S3332-S3351-S0485表10 同时考虑公汽与地铁线路时 S0008S0073的最优路线4、S0008S0073耗时(分钟)70路费(元)5车次L159、T2、L474转车站S3874、S0525路径S0008-S3412-S2743-S3586-S2544-S0913-S2953-S3874-D30-D29-D28-D27-D12-D26-D25-S0525 -S3470-S2619-S2
26、340-S3162-S2181-S2705-S0073表11 同时考虑公汽与地铁线路时S0148S0485的最优路线5、S0148S0485耗时(分钟)92.5路费(元)6车次L308、T1、T2、L156、L417转车站S0302、D12、S0497、S2210路径S0148-S0462-S0361-S1797-S2221-S0302-D3-D4-D5-D6-D7-D8-D9-D10-D11-D12-D27-D28-D29-D30-D31-D32-S0497-S2090-S2082-S2210S2210-S3332-S3351-S0485表12 同时考虑公汽与地铁线路时S0087S3676的
27、最优路线6、S0087S3676耗时(分钟)38路费(元)3车次T2转车站无路径S0087-D27-D28-D29-D30-D31-D32-D18-D33-D34-D35-D36 -S3676 从以上的6条线路问题,我们可以得出前三个公交车路线都只有涉及到公交车之间的换乘,而不涉及到地铁与公交车之间以及地铁与地铁之间的换乘,费用相对较低。当涉及到地铁与公交车换乘时,所经历的中转站较多,超过两个,且费用相对其它较高一些,但中间站都是地铁站时,所用的时间短,路线也短。七 模型的推广通过对题目的解读我们不难发现这是一类运筹学中的最短路问题。我们建立了一个双目标的网络的模型。仔细分析我们建立的模型不难
28、发现:这个模型不仅仅适用于乘公交车配置问题,即最短路和最低费用的问题,它对图论类的优化问题的求解都可以起到指导作用。最短路问题是运筹学的图论的一个重要分支。它在解决乘公交车的路径选择,都发挥着重要的作用。本文模型的建立是为了解决最优的公交路线的问题,既要考虑到乘车时间的最短问题,又要考虑到公交费用的问题。通过网络模型的建立最优化乘车路线。决策者要通过概念抽象、关系分析可将各类影响因子放入网络模型中,可以通过相关的计算机软件得到兼顾全局的最优解。本题的求解是一个典型的运筹学最短路问题,我们模型的使用范围非常广泛,在工业、商业、交通运输、工程技术、行政管理等领域有着广泛的应用。八 模型的优缺点优点
29、:1、文章真实性强,论文中的模型都是自行推导建立的;2、建立的最短路问题模型能与实际紧密联系,结合实际情况对问题进行求解,使得模型具有很好的通用性和推广性;3、模型的计算采用专业的数学软件,可信度较高;4、对模型中涉及到的众多影响因素进行了一般性分析,使得论文有说服力。缺点:1、虽然建立的模型比较完美,但是利用计算机在计算的过程中由于数据的庞大,严重影响了运行速度以及在以后的N次转车时会出现溢出。2、由于在计算过程中题目给的平均行驶及转车时间是非现实的,所以使得模型的计算会有所偏差。参考文献1 谢金星,优化建模与LINDO/LINGO软件.北京:清华大学出版社,180页-190页,2005年2
30、沈继英,数学建模.哈尔滨:哈尔滨工程大学出版社,1996年3 吴翊,数学建模的理论与实践.长沙:国防科技大学出版社,1999年4朱道元,数序建模案例精选. 北京:科学技术出版社,2005年5月5李瑛,决策统计分析.天津:天津大学出版社,2005年3月6刑曾萍,最佳专辑.北京:人民有邮电出版社,2002年7王兵团,数学建模基础.北京:清华大学出版社 ,昆明大学出版社,2004年11月附录/Delphi 6.0unit methods;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
31、Forms, Dialogs, StdCtrls;const sn=3957;const max=9999 ;procedure getline(s1: string;s2:string;c:char;var lines:tstrings;data:tstrings); /找到两个站点之间直接路线procedure search(s1:string;s2:string;var results:tstrings);/查找两个站点之间的最佳路径function getnum(l:string;c:char):integer; /找出给定线路的站点数function getname(l:string
32、;num:integer;c:char):string;/ 获取给定路线的第num个站点function getindex(l:string;name:string;c:char):integer;/找某个站点的索引1开始,1表示无function extrnum(name:string):integer;function reverseroute(l:string;c:char):string;/翻转路线function formname(num:integer):string; /把站点形成站名procedure loaddata(var data:tstrings);function g
33、etdirectroute(line:string;lindex,rindex:integer): string;/求一条线路上两站间的路径procedure getroute_unch(s1,s2:string;data:tstrings;var time:integer;var linename,route:string); /寻找不经转站的最优路径procedure getroute_ch1(s1,s2:string;data:tstrings;var time:integer;var linename1,linename2,chsite,route:string);procedure
34、getroute_ch2(s1,s2:string;data:tstrings;var time:integer;var linename1,linename2,linename3,chsite1,chsite2,route:string);implementationuses Unit1, packs;function getdirectroute(line:string;lindex,rindex:integer): string;/求一条线路上两站间的路径var i:integer;var tem:string;begin result:=getname(line,lindex,S);
35、for i:=lindex+1 to rindex do begin tem:=; tem:= getname(line,i,S) ; result:=result+-+tem; end;end;function formname(num:integer):string; /把站点形成站名 var i:integer; name:string; begin name:=inttostr(num); while length(name)len then result:= else begin for i:=1 to length(l) do begin if li=c then n:=n+1;
36、if n=num then begin for j:=i to i+4 do result:=result+lj; break; end; end; end;end;function getnum(l:string;c:char):integer; /找出给定线路的站点数var i,n:integer;begin n:=0; for i:=1 to length(l) do begin if li=c then n:=n+1; end; result:=n;end; procedure loaddata(var data:tstrings); var filepath:string; begi
37、n filepath:=extractfilepath(application.ExeName)+data.txt; data.Clear ; data.LoadFromFile(filepath) ; end;procedure getline(s1: string;s2:string;c:char;var lines:tstrings;data:tstrings);var line,tem :string;var i:integer;begin lines.Clear ; for i:=0 to data.Count -2 do begin if (i mod 4)=2 then /如果是
38、上行线 begin line:=datai; tem:=; tem:=getname(line,getindex(line,s1,c)+1,c); if tem=s2 then lines.Add(datai-2); end else if(i mod 4)=3 then /如果其他 begin line:=datai; if line= then line:=datai-1; if line1=c then line:=reverseroute(line,c); tem:=; tem:=getname(line,getindex(line,s1,c)+1,c); if tem=s2 then
39、 lines.Add(datai-3); end; end;end;procedure getroute_unch(s1,s2:string;data:tstrings;var time:integer;var linename,route:string); /寻找不经转站的最优路径var i,j:integer;var lindex,rindex:integer;var line,tem:string;/找到的路的名称begin linename:=; time:=max; /找到的最短路径时间 route:=; /找到的最短路径 for i:=0 to data.Count -2 do b
40、egin /-初时化line if (i mod 4)=2 then /如果是上行线 line:=datai else if(i mod 4)=3 then /如果其他 begin line:=datai; if line= then line:=datai-1; if line1=S then line:=reverseroute(line,S); end; /-初时化line lindex:=getindex(line,s1,S); rindex:=getindex(line,s2,S); if (lindex-1) and (rindex-1)and(rindexlindex) then
41、 if 3*(rindex-lindex)time then begin time:=3*(rindex-lindex); if (i mod 4)=2 then linename:=datai-2 else if(i mod 4)=3 then linename:=datai-3; route:=getname(line,lindex,S); j:=0; for j:=lindex+1 to rindex do begin tem:=; tem:=getname(line,j,S); route:=route+-+tem; end ; end; end;end;procedure getro
42、ute_ch1(s1,s2:string;data:tstrings;var time:integer;var linename1,linename2,chsite,route:string);var linename_t,route_t,line:string; j,index,i,time_t:integer; tem:string;begin time:=max; linename1:= ; linename2:=; chsite:=; route:=; for i:=0 to data.Count -2 do begin if (i mod 4)=2 then /如果是上行线 line
43、:=datai else if(i mod 4)=3 then /如果其他 begin line:=datai; if line= then line:=datai-1; if line1=S then line:=reverseroute(line,S); end else continue; index:=getindex(line,s1,S); if index1 then continue; for j:=index+1 to getnum(line,S) do begin tem:=; tem:=getname( line,j,S); getroute_unch(tem,s2,dat
44、a,time_t,linename_t,route_t); if (time_tmax)and(time_t+(j-index)*3+5)time) then begin time:= time_t+(j-index)*3+5 ; linename2:=linename_t; if (i mod 4)=2 then linename1:=datai-2 else linename1:=datai-3; route:=getdirectroute(line,index,j)+route_t; chsite:=tem; end; end; end;end;function reverseroute
45、(l:string;c:char):string;/翻转路线var i,n:integer;var tem:string;beginresult:=;n:=getnum(l,c);result:=getname(l,n,c);for i:=1 to n-1 dobegintem:=;tem :=getname(l,n-i,c);result:=result+tem;end;end;procedure search(s1:string;s2:string;var results:tstrings);/查找两个站点之间的最佳路径var i:integer;var name:string;var t
46、imes: array1.sn of real;var sites :array1.sn of string;var routes: array1.sn of string;var tem:tstrings;var data:tstrings;begin data:=tstringlist.Create ; tem:=tstringlist.Create; loaddata(data); for i:=1 to sn do begin getline(s1,formname(i),S,tem,data); if tem.Count =0 then timesi:=max else begin
47、timesi:=3; sitesi:=s1+-+formname(i); routesi:= formpack(tem); end; end; tem.Free ; data.Free;end;procedure getroute_ch2(s1,s2:string;data:tstrings;var time:integer;var linename1,linename2,linename3,chsite1,chsite2,route:string);var linename1_t,linename2_t,route_t,chsite_t:string; time_t:integer; line:string; j,index,i:integer; tem:string;begin time:=max; linename1:= ; linename2:=; linename2:=; chsite1:=; chsite2:=; route:=; for i:=0 to data.Count -2 do begin if (i mod 4)=2 then
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 潜水装备的水下作业安全意识培养与提升考核试卷
- 舞蹈教育在儿童成长中的作用考核试卷
- 窗帘面料的环保染整技术考核试卷
- 四川水利职业技术学院《临床检验仪器与技术》2023-2024学年第二学期期末试卷
- 山西省运城市万荣县2025年初三下学期第二次模拟考试化学试题文试卷含解析
- 山东省威海市文登区文登实验、三里河中学2025届中考化学试题模拟试卷(8)含解析
- 沈阳工业大学《现代地球物理学进展》2023-2024学年第二学期期末试卷
- 潍坊学院《大学写作实践课》2023-2024学年第二学期期末试卷
- 景德镇市重点中学2024-2025学年初三考前热身生物试题试卷含解析
- 天门职业学院《应用真菌学》2023-2024学年第二学期期末试卷
- 陕西省2024年中考化学真题(含答案)
- 2024年度危废培训完整课件
- 2024秋期国家开放大学《可编程控制器应用实训》一平台在线形考(形成任务6)试题及答案
- 《PBR次世代游戏建模技术》(微课版)课件 2低模制作
- 2022年广东省高考数学试卷(新高考I)(含答案)
- 中医四季养生之道课件
- 二下音乐《阿西里西(简谱、五线谱)》公开课课件
- 【涪陵榨菜产品成本控制问题及完善措施分析9600字】
- 公司外派工作合同协议书
- 巾帼家政职业技能竞赛(家政服务)理论考试题库(含答案)
- 终止合作意向书
评论
0/150
提交评论