公交转车问题(数学建模)ppt课件.ppt
《公交转车问题(数学建模)ppt课件.ppt》由会员分享,可在线阅读,更多相关《公交转车问题(数学建模)ppt课件.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、公交转车问题南京邮电大学理学院杨振华制作南京邮电大学理学院杨振华制作南京邮电大学数理学院杨振华制作 公交转车问题针对市场需求,某公司准备研制开发一个解针对市场需求,某公司准备研制开发一个解决北京市公交线路选择问题的自主查询计算决北京市公交线路选择问题的自主查询计算机系统。机系统。为了设计这样一个系统,其核心是线路选择为了设计这样一个系统,其核心是线路选择的模型与算法,应该从实际情况出发考虑,的模型与算法,应该从实际情况出发考虑,满足查询者的满足查询者的各种不同需求各种不同需求。公交:指公共交通工具公交:指公共交通工具 ,包括公共汽车与地,包括公共汽车与地铁。铁。南京邮电大学数理学院杨振华制作
2、公交转车问题1、仅考虑公汽线路,给出任意两公汽站点之、仅考虑公汽线路,给出任意两公汽站点之间线路选择问题的一般数学模型与算法。并间线路选择问题的一般数学模型与算法。并根据附录数据,利用你们的模型与算法,求根据附录数据,利用你们的模型与算法,求出以下出以下6对起始站对起始站终到站之间的最佳路线终到站之间的最佳路线 (1)S3359S1828 (2)S1557S0481 (3)S0971S0485 (4)S0008S0073 (5)S0148S0485 (6)S0087S3676 2、同时考虑公汽与地铁线路,解决以上问题。、同时考虑公汽与地铁线路,解决以上问题。南京邮电大学数理学院杨振华制作 基本
3、参数设定 相邻公汽站平均行驶时间相邻公汽站平均行驶时间(包括停站时间包括停站时间): 3分钟分钟相邻地铁站平均行驶时间相邻地铁站平均行驶时间(包括停站时间包括停站时间): 2.5分钟分钟公汽换乘公汽平均耗时:公汽换乘公汽平均耗时: 5分钟分钟(其中步行时间其中步行时间2分钟分钟)地铁换乘地铁平均耗时:地铁换乘地铁平均耗时: 4分钟分钟(其中步行时间其中步行时间2分钟分钟)地铁换乘公汽平均耗时:地铁换乘公汽平均耗时: 7分钟分钟(其中步行时间其中步行时间4分钟分钟)公汽换乘地铁平均耗时:公汽换乘地铁平均耗时: 6分钟分钟(其中步行时间其中步行时间4分钟分钟)公汽票价:分为单一票价与分段计价两种,
4、标记于线路后;公汽票价:分为单一票价与分段计价两种,标记于线路后;其中分段计价的票价为:其中分段计价的票价为:020站:站:1元;元;2140站:站:2元;元;40站以上:站以上:3元元地铁票价:地铁票价:3元(无论地铁线路间是否换乘)元(无论地铁线路间是否换乘)注:以上参数均为简化问题而作的假设,未必与实际数据完注:以上参数均为简化问题而作的假设,未必与实际数据完全吻合。全吻合。南京邮电大学数理学院杨振华制作 公汽线路信息 公汽运行方式公汽运行方式(1)环形)环形(2)上下行(有可能上下行路线一致)上下行(有可能上下行路线一致)公汽收费方式公汽收费方式(1)分段计价)分段计价(2)单一票制)
5、单一票制1元元南京邮电大学数理学院杨振华制作 公汽线路信息文件列出了文件列出了520条公汽线路,下面是其中的一条:条公汽线路,下面是其中的一条:L001分段计价。分段计价。S0619-S1914-S0388-S0348-S0392-S0429-S0436-S3885-S3612-S0819-S3524-S0820-S3914-S0128-S0710该线路是分段计价,且上下行路线一致的。该线路是分段计价,且上下行路线一致的。南京邮电大学数理学院杨振华制作 地铁线路信息T1票价票价3元,本线路使用,并可换乘元,本线路使用,并可换乘T2。D01-D02-D03-D04-D05-D06-D07-D08
6、-D09-D10-D11-D12-D13-D14-D15-D16-D17-D18-D19-D20-D21-D22-D23T2票价票价3元,本线路使用,并可换乘元,本线路使用,并可换乘T1。环行:环行:D24-D25-D26-D12-D27-D28-D29-D30-D31-D32-D18-D33-D34-D35-D36-D37-D38-D39-D24南京邮电大学数理学院杨振华制作 地铁T1线换乘公汽信息D01:S0567,S0042,S0025D02:S1487D03:S0303,S0302D04:S0566D05:S0436,S0438,S0437,S0435D06:S0392,S0394,S
7、0393,S0391D07:S0386,S0388,S0387,S0385D08:S3068,S0617,S0619,S0618,S0616D09:S1279D10:S2057,S0721,S0722,S0720D11:S0070,S2361,S3721D12:S0609,S0608D13:S2633,S0399,S0401,S0400D14:S3321,S2535,S2464D15:S3329,S2534D16:S3506,S0167,S0168D17:S0237,S0239,S0238,S0236,S0540D18:S0668D19:S0180,S0181D20:S2079,S2933,S
8、1919,S1921,S1920D21:S0465,S0467,S0466,S0464D22:S3457D23:S2512南京邮电大学数理学院杨振华制作 地铁T2线换乘公汽信息D24:S0537,S3580D25:S0526,S0528,S0527,S0525D26:S3045,S0605,S0607D12:S0609,S0608D27:S0087,S0088,S0086D28:S0855,S0856,S0854,S0857D29:S0631,S0632,S0630D30:S3874,S1426,S1427D31:S0211,S0539,S0541,S0540D32:S0978,S0497,S
9、0498D18:S0668D33:S1894,S1896,S1895D34:S1104,S0576,S0578,S0577D35:S3010,S0583,S0582D36:S3676,S0427,S0061,S0060D37:S1961,S2817,S0455,S0456D38:S3262,S0622D39:S1956,S0289,S0291南京邮电大学数理学院杨振华制作 问题分析从实际情况考虑,不同的查询者有不同的要从实际情况考虑,不同的查询者有不同的要求。在数学上体现出目标的不同。求。在数学上体现出目标的不同。一般可以考虑转车次数、乘车费用、乘车时一般可以考虑转车次数、乘车费用、乘车时间这
10、间这3个目标。个目标。问题可以归结为多目标优化问题。问题可以归结为多目标优化问题。南京邮电大学数理学院杨振华制作 问题分析如何处理上面的多个目标?如何处理上面的多个目标?多目标的处理最常用的方法是单目标化,即多目标的处理最常用的方法是单目标化,即采用加权平均等方法将多个目标结合形成一采用加权平均等方法将多个目标结合形成一个单一的目标。个单一的目标。本问题中,单目标化并不合适,比较适当的本问题中,单目标化并不合适,比较适当的方法是对每个目标寻求最佳线路,然后让乘方法是对每个目标寻求最佳线路,然后让乘客按照自己的需求进行选择。客按照自己的需求进行选择。 南京邮电大学数理学院杨振华制作 模型建立我们
11、先我们先仅考虑公汽线路的情况仅考虑公汽线路的情况。设设N表示问题中的公汽站点数表示问题中的公汽站点数,即即N=3957,A0(a(i,j,0)NN是直达最小站数矩阵,当存在公共汽车从站是直达最小站数矩阵,当存在公共汽车从站点直达站点时,表示从直达的最小站数。否点直达站点时,表示从直达的最小站数。否则该元素取为则该元素取为+。 南京邮电大学数理学院杨振华制作 模型建立令令Am(a(i,j,m)NN是是m次转乘最小站数矩次转乘最小站数矩阵,其元素阵,其元素a(i,j,m)表示表示m次转车情形下,从次转车情形下,从Si到到Sj的最小站数。的最小站数。显然显然 ,1 | ) 1,()0 ,(min),
12、(jkikNkmjkakiamjia南京邮电大学数理学院杨振华制作 最小转车次数模型对于给定的公汽站点对于给定的公汽站点Si与与Sj ,最小转车次数模,最小转车次数模型可以写为型可以写为),(|minmjiam南京邮电大学数理学院杨振华制作 最小乘车时间模型转车次数为转车次数为m时,从时,从Si到到Sj的总时间为的总时间为5m+3a(i,j,m),(转一次车(转一次车5分钟,每乘一站,用时分钟,每乘一站,用时3分钟)分钟)下面是最小乘车时间模型:下面是最小乘车时间模型:),(35),(min0mjiammjitSm南京邮电大学数理学院杨振华制作 最小乘车费用模型最小乘车费用模型可以写为如下的形
13、式:最小乘车费用模型可以写为如下的形式:,|),(),(),(min21211互不相等nnmmnnnnkkkjikkfjkfkif该模型是形式上的,对于求解没有实质性的该模型是形式上的,对于求解没有实质性的作用。作用。南京邮电大学数理学院杨振华制作 最小转车次数模型求解对于给定的公汽站点对于给定的公汽站点Si与与Sj ,只要逐次求出,只要逐次求出(a(i,j,m),直到其为有限值即可。,直到其为有限值即可。),(|minmjiam,1 | ) 1,()0 ,(min),(jkikNkmjkakiamjia在实际求解时,先根据公汽线路的数据将在实际求解时,先根据公汽线路的数据将a(i,j,0)的
14、数据存储在矩阵的数据存储在矩阵A0中。中。南京邮电大学数理学院杨振华制作 最小转车次数模型求解算法一(逐次查找)算法一(逐次查找)对于给定的对于给定的i,j,(1)若若a(i,j,0)+,表明转车次数为表明转车次数为0,否则转否则转(2);(2)k从从1到到N进行搜索进行搜索,若若a(i,k,0)+,a(k,j,0) +,则转车次数为则转车次数为1,否则转否则转(3);(3) k1, k2从从1到到N进行搜索进行搜索,若若a(i,k1,0)+, a(k1,k2,0)+, a(k2,j,0) +,则转车次数为则转车次数为2.,1 | ) 1,()0 ,(min),(jkikNkmjkakiamj
15、ia),(|minmjiam南京邮电大学数理学院杨振华制作 最小转车次数模型求解逐次查找算法的复杂度逐次查找算法的复杂度若只要转一次车若只要转一次车,则循环的步数为则循环的步数为N;若要转若要转2次车次车,循环的步数为循环的步数为N2;若要转若要转3次车次车,循环的步数为循环的步数为N3由于由于N=3957, N3 6.21010,普通计算机运行普通计算机运行时间较长,时间较长,若要转若要转4次车,很难承受计算量次车,很难承受计算量!南京邮电大学数理学院杨振华制作 最小转车次数模型求解算法二(存储逐次查找)算法二(存储逐次查找)(1)若若a(i,j,0)+,表明转车次数为表明转车次数为0,否则
16、转否则转(2);(2) 求出矩阵求出矩阵A1(a(i,j,1)NN ,其每个元素通其每个元素通过上面的表达式过上面的表达式,用用k从从1到到N循环求得循环求得.若对给若对给定的定的i,j,有有a(i,j,1)1)的计算工作量与的计算工作量与A1一致一致!有可能计算转多次车有可能计算转多次车.南京邮电大学数理学院杨振华制作 最小转车次数模型求解在前面的两个算法中在前面的两个算法中,每次循环都要进行每次循环都要进行N次次.事实上事实上,对给定的对给定的i,满足满足a(i,k,0)+的的k是很少是很少的的,我们只要对这些我们只要对这些k进行循环进行循环.在实际问题中在实际问题中,任何一个城市中任何一
17、个城市中,任何一个公汽任何一个公汽站点所能到达的公汽站点只是城市中的一些站点所能到达的公汽站点只是城市中的一些“线线”,相对于整个城市而言相对于整个城市而言,数目是比较少的数目是比较少的.,1 | ) 1,()0 ,(min),(jkikNkmjkakiamjia南京邮电大学数理学院杨振华制作 最小转车次数模型求解算法三(有限搜索逐次查找)算法三(有限搜索逐次查找)给出矩阵给出矩阵B,其第其第i行记录的是满足行记录的是满足a(i,k,0)tS(i,j,1).因此因此,我们可以将我们可以将m的范围放在的范围放在0到到12内求最优内求最优.),(35),(min0mjiammjitSm南京邮电大学
18、数理学院杨振华制作 最小乘车时间模型求解若若m的范围过大的范围过大,求解会有一定困难求解会有一定困难.能否缩小能否缩小m的范围的范围?在上页的讨论中在上页的讨论中,不等式不等式a(i,j,m) m+1的含义的含义是总站数比转车次数至少大一是总站数比转车次数至少大一.我们可以给出我们可以给出a(i,j,m) 更好的下界更好的下界,从而缩小从而缩小m的范围的范围.南京邮电大学数理学院杨振华制作 两站点之间的最小站数a(i,j,m)表示表示m次转车下次转车下,从从Si到到Sj的最小站数的最小站数.设设nS(i,j)表示站点表示站点Si到到Sj的最小站数的最小站数(可以转车可以转车任意次任意次).显然
19、显然a(i,j,m) nS(i,j)我们有我们有tS(i,j,m) = 5m+3a(i,j,m) 5m+3nS(i,j)南京邮电大学数理学院杨振华制作 两站点之间的最小站数将公汽站点设为有向图中的结点将公汽站点设为有向图中的结点.若若Si乘公汽乘公汽1站可以到达站可以到达Sj ,我们就设一条有向边从结点我们就设一条有向边从结点i指指向结点向结点j.对于每一条有向边对于每一条有向边,指定其权为指定其权为1,显然显然求求nS(i,j)就转化为有向图中结点到结点的最短就转化为有向图中结点到结点的最短路径问题路径问题 .对任意给定的对任意给定的i,j,我们可以采用我们可以采用Dijkstra算法求算法
20、求得得 nS(i,j).南京邮电大学数理学院杨振华制作 最小乘车时间模型求解对于第一对公汽站点对于第一对公汽站点i=3359,j=1828, nS(i,j)=13,我们给出求解过程我们给出求解过程.a(i,j,0) = , tS(i,j,0)=;a(i,j,1) = 32, tS(i,j,1)=101; m 2时时,tS(i,j,m) 52+313=49.因此因此,最小乘车时间在区间最小乘车时间在区间49,101上上.为求精确的最优解为求精确的最优解,必须接着求解必须接着求解.南京邮电大学数理学院杨振华制作 最小乘车时间模型求解a(i,j,2) = 18, tS(i,j,2)=64; m 3时
21、时,tS(i,j,m) 53+313=54.最优解位于区间最优解位于区间54,64;a(i,j,3) = 18, tS(i,j,3)=69; m 4时时,tS(i,j,m) 54+313=59.最优解位于区间最优解位于区间59,64;南京邮电大学数理学院杨振华制作 最小乘车时间模型求解a(i,j,4) = 17, tS(i,j,4)=71; m 5时时,tS(i,j,m) 55+313=64.重复上述过程重复上述过程:tS(i,j,0)=, tS(i,j,1)=101, tS(i,j,2)=64,tS(i,j,3)=69, tS(i,j,4)=71,m 5时时,tS(i,j,m) 64.可以看
22、出可以看出,最小乘车时间为最小乘车时间为64,在转在转2次车时可次车时可以在此时间到达以在此时间到达.南京邮电大学数理学院杨振华制作 最小乘车时间模型求解算法由上面的例子由上面的例子, 我们只要找到一个转车次数我们只要找到一个转车次数m,转车次数不大于转车次数不大于m时时,最小乘车时间为最小乘车时间为TS(i,j,m)=mintS(i,j,k) | km转车次数大于转车次数大于m时时, 乘车时间的下界为乘车时间的下界为5(m+1)+3 nS(i,j)若若TS(i,j,m) 5(m+1)+3 nS(i,j),则则TS(i,j,m) 为最优解为最优解.南京邮电大学数理学院杨振华制作 最小乘车时间模
23、型求解算法Step1 用用Dijkstra算法求出算法求出nS(i,j) ,令令m=0;Step2 求出求出a(i,j,m),令令tS(i,j,m) = 5m+3a(i,j,m);Step3 若若TS(i,j,m)=mintS(i,j,k) | km 5(m+1)+3 nS(i,j), 则则TS(i,j,m)即为最短乘车时间即为最短乘车时间;否则令否则令m:=m+1,转,转Step2.南京邮电大学数理学院杨振华制作 最小乘车时间模型求解第四对公汽站点第四对公汽站点S0008S0073的求解过程可的求解过程可以用下面的表格表示以用下面的表格表示(nS(i,j)=13) : m01234ts(i,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 公交 转车 问题 数学 建模 ppt 课件
限制150内