公交最优路径选择的数学模型及算法_雷一鸣
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第17卷第2期 湖南城市学院学报(自然科学版)V ol.17 No.2 2008年6月 Journal of Hunan City University (Natural Science) Jun. 2008
公交最优路径选择的数学模型及算法
雷一鸣
(广东工业大学华立学院,广州 511325)
摘要:在公交出行查询系统中,最关键的部分是寻找两站点间乘车的出行最优路径问题.建立了以最小换乘次数为第一目标,最小途经站点为第二目标的公交出行最优路径模型.同时,设计了一种算法以确定最优公交线路序列,分析了线路相交的几种情况,给出了换乘点选择方法.
关键词:最优路径;换乘次数;公交网络
中图分类号:O232文献标识码:A文章编号:1672–7304(2008)02–0050–03
公交最优路径问题一直是应用数学、运筹学、计算机科学等学科的一个研究热点.对公交最优路径问题的理论研究主要包括公交网络的数学描述和设计最优路径算法.在公交网络描述方面,Anez等用对偶图描述能够涵盖公交线路的交通网络,Choi等讨论了利用GIS技术从街道的地理数据产生公交线路和站点的问题;在设计最优算法方面,常用的算法[1]有Dijkstra算法、Floyd 算法、Moore-pape算法等.Moore-pape算法计算速度较快,适用于大型网络,但它无法进行“一对一”的计算.Floyd算法虽然可以快速地进行“多对多”的计算,但它不能应用于大型网络,而Dijkstra算法是目前公认的最好的算法,但它数据结构复杂、算法时间长,不适合公交线路的查询.本文首先对公交网络进行了数学描述,考虑到公交乘客出行时所面临的各种重要因素,包括换乘次数、途径站点、出行耗时和出行费用等,选择以换乘次数最少作为最优路径算法的第一约束目标,而出行耗时虽难以准确测算但它与途径站点数相关,所以选择易于量化的途经站点数最少作为第二约束目标,建立公交乘车数学模型,设计相应的算法,并利用有关实验数据验证了它的有效性和可行性.
1 模型的建立及其算法
1.1 模型假设及符号规定
为了更好地建立数学模型,首先对公交网络及出行者作出以下假设[2]:
1)不考虑高峰期、道路交通堵塞等外界因素对乘车耗时的影响.
2)假设出行者熟悉公交站点及附近地理位置,并且知道可乘的各种公汽和地铁以及到达目的地有哪几种不同选择的机会.在公交线路网中,
不同的公交线路在行程上一定会有重叠,也就是说不同的线路上一定会有同名站点.在进行网络分析时,把空间上相近的异线同名站点合理抽象成一个节点.
3)假设出行者对公汽和地铁的偏好程度不一样.在不换乘的情况下,宁愿乘地铁,以求舒适;在路途较近的情况下,宁愿坐公汽而放弃乘地铁.出行者可根据自己的偏好结合自己的出行需求(换乘次数、最短路程、费用等),可在各种出行方案中选出满足自己出行需求的乘车方案.设()
L I为经过点A或其附近的公交线路集,其中1,2,...,
I m
=;()
S J为经过点B或其附近的公交线路集,其中,,...,
J12n
=;(,)
E I U为线路
)
(I
L上的站点,其中,,...,
U12p
=;(,)
F J V为线路)
(J
S上的站点,其中,,...,
V12q
=;()
X K为经过站点)
,(U
I
E的线路,其中,,...,
K12w
=;()
Y O 为经过站点)
,
(V
J
F的线路,其中,,...,
O12v
=;(,)
d E F M
≤表示从站点E步行到站点F之间的距离不超过乘客换车时步行的最大心理承受值M,其中M表示乘客在换车时步行的最大心理承受值.通常,M与公交站点间的平均距离呈线性正相关.
Ai
Z表示站点A的下行第i个站点;
Bj
Z表示站点B的上行第j个站点;另外,公交的可行线
路的集合可表示为:{|
i i
TR TR TR
== 0112,1
,,,,,,
i i i i d
a p a p a
−
< ,}
id d
p a>,其中,{}
01,1
,,,,
i i d d
a a a a
−
为站点集合,{}
12,1
,,,,
i i i d d
p p p p
−
为公交车次的集合,
i
TR
收稿日期:2008-03-10
作者简介:雷一鸣(1972-),男,湖南临武人,助教,硕士,主要从事数学模型及经济信息管理研究.
雷一鸣:公交最优路径选择的数学模型及算法
第17卷
51
表示在起始站点0a 通过乘坐公交到达终点站d a 的可行的一条路线表示线路)(J S .
1.2 模型描述
设线路i TR 的换乘次数为i N ,出行费用为i X ,
路上总耗时为i T ,则该线路途经总站数为d ,不包括起始站点.出行费用、路上总耗时与途径站点正相关.在日常生活中,公交乘客的个人偏好往往是要求换乘次数少、出行费用低、出行耗时短,但在实践中这3个要素往往很难同时满足,所以选择效用函数()U •作为目标函数为:
(),,max i
i
TR i i N X T U ,目标函数具有以下性质:
0i U N ∂<∂,0i U X ∂<∂,0i
U
T ∂<∂,i i U U N X ∂∂〉〉
∂∂. 在上式,设相邻公汽站点间的平均行驶时间
(包括停站时间)为1t ,公汽换乘公汽平均耗时为
2t .总行程时间i T 与换乘次数i N 的函数关系为:
21t N dt T i i +=.
设第一次换乘前的价格为0X ,第i 次换乘后到第1+i 次换乘前这段线路的价格为i N X ,则有 01i
j N i N j X X X ==+∑.
1.3 最优路径算法
根据公交路线的现实情况,一般乘客转乘次数不会超过3次[3],如图1所示.假设起始站点为A ,终点站点为B .从A 、B 两点出发,寻找出分别经过该两点的所有的线路,再进行比较分析,看是否能找出直接到达的路线,有则停止搜索,没有则选择两点中经过该路线中较少的站点的所有下一个站点,再进行线路搜索,再跟没有选中站点的线路进行比较,选择最优的站点.没有相同的线路则再进行同样的搜索,直到同样的路线出现才停止搜索.最后比较所有可行的结果,从中选择最优的方案.
图1 公交线路换乘方案示意图
公交路线选择的最优方案的算法步骤,如下所示:
Step 1:输入乘车起始站点A 和终止站点B ;
Step 2:分别求经过站点A 和B 的所有车次组成的集合)(I L 和)(J S ;
Step 3:判断φ≠∩)()(J S I L 是否成立? 若成立,则)()(J S I L ∩中的元素即为直达车次,即乘坐该车次可由起始站点A 直达终点站
点B ,输出)()(J S I L ∩的结果,计算)()(J S I L ∩中各直达车次经过的站点数,站点数最少的车次
即为最优选择,终止算法.
若不成立,则执行下一步.
Step 4:判断两条公交线路是否有相同站点,即),(),(V J F U I E =或存在紧邻站点,即满足
Μ≤),(F E d .如果满足),(),(V J F U I E =,则线
路)(I L 、)(J S 即为转乘一次的线路,),(U I E 即为转乘站点;如果),(),(V J F U I E ≠,但满足Μ≤),(F E d ,
说明乘客可以步行到邻近的站点转乘一次车到达目的地.乘客可从站点),(U I E 下车,然后步行到邻近的站点),(V J F 换乘下一条线路的车,否则转入下一步.
Step 5:设))((x L C 表示经过站点x 线路的条数.比较))((A L C 与))((B S C 的大小,即)(A L 与
)(B S 集合中元素个数的多少.
若))(())((B S C A L C ≤,则查找经过站点A 的车次中的下一站点1+i A Z ,这些所有站点1+i A Z 构成一个集合,记为)(1+i A Z G ,查找经过)(1+i A Z G 中的元素(比如站点1+i A Z )的所有车次,组成一个集合)(1+i A Z L ,
分别判断集合)(1+i A Z L 中的元素是否与),(V J F 有交集.若有交集,则),(V J F 为第二中转站点,即乘客在站点1+i A Z 转乘一次,然后在站点),(V J F 第二次转乘即可到达终点站
B .若没有交集,再看下一个站点.
若))(())((B S C A L C ≥,则查找经过站点B 车次的前一个站1−i B Z ,所有这些站点构成一个集合,记为)(1−i B Z G ,查找经过)(1−i B Z G 中的元素(比如站点1−i B Z )的所有车次,组成一个集合)(1−i B Z S ,分别判断集合)(1−i B Z S 中的元素是否与),(U I E 有交集.若有交集,则),(U I E 为第二中转站点,
即乘客在站点),(U I E 转乘一次,然后在站点1−i B Z 第二次转乘即可到达终点站B .
若没有交集,则转入下一步.