公交线路选择模型与算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
路径矩阵。其基本思想是: 假设求顶点 vi 到 vj 之间的最短路 径。如果从 vi 到 vj 有弧, 则从 vI 到 vj 存在一条长度为 arcs[i] [j]的路径, 该路径不一定是最短路 径 , 尚 需 要 进 行 n 次 试 探 。
首 先 考 虑 路 径 ( vI,v0,vj) 是 否 存 在 ( 即 判 断 弧 ( vI,v0) 和 ( v0,vj) 是 否存在) 。如果存在, 则比较( vi, vj) 和( vI,v0,vj) 的路径长度取长 度 较 短 者 为 从 vi 到 vj 的 中 间 顶 点 的 序 号 不 大 于 0 的 最 短 路 径。假如在路径上再 增 加 一 个 顶 点 v1,也 就 是 说 , 如 果 ( vi,…, v1) 和 ( v1,…,vj) 分 别 是 当 前 找 到 的 中 间 顶 点 的 序 号 不 大 于 0 的最短路径, 那么( vi,…,v1,…,vj) 就有可能是从 vi 到 vj 的中间 顶点的序号不大于 1 的最短路径。将它和已经得到的从 vi 到 vj 的中间顶点的序号不大于 0 的 最 短 路 径 相 比 较 , 从 中 选 出 中间顶点的序号不大于 1 的最短路径之后, 再增加一个顶点
站换乘公交。
3.1.2 算法评价
此算法可使用 matlab 编程实现。
经过此算法可得出起始站 A 和终到站 B 的符合中转假
设的所有线路, 并可得到每次乘车总站点数。为后续模型提
供了可以查询的可靠数据。
3.2 模型Ⅰ
由本题可知, 从起始站 A 到终到站 B 的线路是有限的,
故在各站点数据处理好的情况下, 用穷举法可求出最佳路
2 符号说明
A: 线路的起始站; B: 线路的终到站; Xabi: 从第 a 站到第 b 站第 i 条线路所经过的总站点数; Kab: 判 断 是 否 需 要 中 转 。Kab=0 时 , 说 明 a,b 之 间 可 以 直 达 , 无 需 转 乘 ; Kab=1 时 , 说 明 a,b 需 要 转 乘 一 次 才 可 以 达 到 ; Kab=2 时, 说明需要转乘两次才可以达到;
决策参考
公交线路选择问题的数学模型与算法
侯晓利,薛伟坡,张军委
(河南师范大学 计算机与信息技术学院, 河南 新乡 453007)
摘 要: 文章针对问题, 分别就公汽、地铁、步行等出行方式建立了四个模型, 并按具体需求将乘
客分为偏向时间和偏向费用两种类型, 在尽量减少交通阻抗条件下制定最优路线。建立穷举模型和
间线路集合 D1, 则可地铁直达, 否则转②
②分别依次比较 A 点下行方向与 B 点和 A 点与 B 点上
行方向各公交线路上的站点, 依据 Ta 算法同理判断若有地
铁直达, 则可实现公交地铁一次换乘。
③依次判断 A 点及下行方向和 B 点及上行方向各公交
线路站点附近有无公共地铁站, 若有则为公交一次经过地铁
( a,b
中转一次)
(3)
$
%$Fac+Fcd- 1( a,b 中转两次)
其中:
Fmn=Fmn·Xmni/20
(4)
Cab=min{C1,C2,…,Ci,…Cn}
3.2.2 模型的评价
该模型思路清晰、简单, 容易使人想到。但是由于它需要
处理大量数据, 并且在算法上没有什么创新, 因此计算机运
行起来异常吃力。针对该问题, 我们建立了模型Ⅱ— ——图论
1 模型假设
假 设 1 所 给 公 汽 、地 铁 线 路 数 据 来 源 准 确 、可 信 、稳 定 、科 学 。
假设 2 当两站点之间最多中转两次; 且有直达线路 时, 乘坐直达车; 无直达车时, 考虑中转一次的路线; 中转一 次无法到达时再考虑中转两次的路线。
假设 3 公 共 交 通 工 具 ( 包 括 公 汽 、地 铁 等 ) 票 价 稳 定 , 不因其他外在因素的变动而变动。
统计与决策 2008 年第 18 期( 总第 270 期) 77
决策参考
针对本题来说, n 相对比较大, 因此程序运行起来比较吃力。 通过 matlab 编程运行的时间相对来说比较长, 这对于一个查 询 者 来 说 是 不 能 够 忍 受 的 。针 对 这 个 问 题 我 们 进 一 步 做 了 算 法上的改进, 导出了基于广度优先算法的最短路径模型。 3.5 模型Ⅳ
3 模型的建立与求解
针对求任意两公汽站点之间最佳线路的问题( 在假设 2 的条件下) , 本章首先判断两站点之间有无直达车。有直达车 时, 在直达的线路里分别求出时间最优线路和票价最优线 路; 若无, 则判断需中转一次还是两次, 并分别求出时间最优 和票价最优线路。我们首先需要对数据进行处理: 3.1 数据的处理 3.1.1 算法思想
假设 4 基本参数的设定设置合理且不会因其他外在 因素的变动而变动。
假设 5 地铁之间的换乘不用另外买票。 假 设 6 公 交 车 在 运 行 过 程 中 的 所 有 的 阻 塞 、停 站 、等 车以及其他等一切外在因素均包括在平均时间中。 假设 7 环形线路为单车道、单一方向行驶线路。 假设 8 将乘客分为两种类型: ( 1) 偏向时间型; ( 2) 偏向金钱型。
0- 1 规划模型对数据进行预处理, 分别以时间和票价作为权重用有向图表示, 构造邻接矩阵, 建立
Floyd 模型。针对 Floyd 算法对时间要求较高, 建立基于广度优先算法的最短 路 径 模 型 , 达 到 较 好 效
果。用地铁站置换可转乘的公汽站, 调整邻接关系, 调用广度优先算法得出最优路线。
v2,继续进行试探。一次类推。在一般情况下, 若( vi,…,vk) 和( vk, …,vj) 分别是从 vi 到 vk 和从 vk 到 vj 的 中 间 顶 点 的 序 号 不 大 于 k- 1 的最短路径, 则将( vi,…,vk,…,vj) 和已经得到的从 vi 到 vj 且中间顶点的序号不大于 k- 1 的最短路 径 相 比 较 , 其 长 度 较 短 者 便 是 从 vi 到 vj 的 中 间 顶 点 的 序 号 不 大 于 k 的 最 短 路 径。这样, 在经过 n 次比较后, 最后求得的必是从 vi 到 vj 最短 路径。按此方法, 可以同时求得各对定点间的最短路径。
76 统计与决策 2008 年第 18 期( 总第 270 期)
Ti:a,b 之间的第 i 条线所花的时间; Tmin: 所以 a,b 之间的线路所花费的最少的时间; Fab: a,b 之 间 的 票 价 。 若 线 路 为 单 一 票 价 或 Xabi≤20 时 , F=1 元; 若 20<Xabi≤40, 则 F=2;若 40<Xabi 时, F=3 元; Cab: a,b 之间的最优票价; Ci: a,b 之间第 i 条线路的总票价; !: 北京市乘坐公交的时间因子。
( 7)
i=1 j=1
3.3.2 模型评价
此模型是在没考虑中间转车所需要的时间, 因此需要进
一步改进。为此我们建立了模型Ⅲ。
3.4 模型Ⅲ
模型Ⅰ在空间上的复杂度: 图论最小距离模型
3.4.1 建模理论
弗洛伊德算法是解决任意两点之间最短距离的有效算
法 之 一 。可 通 过 一 个 图 的 权 值 矩 阵 求 出 它 的 每 两 点 间 的 最 短
最小距离模型, 解决了数据量异常大的问题
3.3 模型Ⅱ
时间最优路线模型: 0—1 规划模型
3.3.1 模型建立
首先建立时间邻接矩阵, 设任意两个相邻的站点 A,B 之
间有公交线路 ( 即 A,B 之间有公汽直达) , 则设其时间距离
( 用时间 代 表 A,B 之 间 的 距 离 ) 为 3min, 如 果 没 有 公 交 线 路 ,
线。
3.2.1 模型的建立与求解
按照求出的起始站→终点站所经过的公交站点个数
Xab,我 们 可 以 建 立 最 优 时 间 模 型
Tmin=min{T1,T2,…,Ti,…,Tn}
(1)
其中:
Ti=Xabi*3+Kab*5
(2)
最优票价模型:
"$Fab(a,b 直达)
Ci=
F +F $$
# $
ac
cb
关键词: Matlab; 穷举; folyd 算法; 广度优先搜索; 交通阻抗
中图分类号: TB114.1
文献标识码: A
文章编号: 1002- 6487( 2008) 18- 0076- 03
近些年来, 城市的公交系统有了很大发展, 北京市的公 交线路已达 800 条以上, 使得公众的出行更加通畅、便利, 但 同 时 也 面 临 多 条 线 路 的 选 择 问 题 。 如 何 省 时 、省 钱 成 为 了 人 们更多关心的焦点。
3.4.2 模型的建立与求解
分别初始化两个邻接矩阵, 一个以两站点间的时间为权
值, 另一个以票价为权值。调用弗洛伊德程序, 即可得到所需
要的值。
3.4.3 模型评价
此模型容易理解, 可以算出任意两个节点之间最短距离
的算法, 程序容易写。
由 于 模 型 的 时 间பைடு நூலகம்复 杂 度 是 O(n3), 不 适 合 计 算 大 量 数 据 。
决策参考
能否到达, 可调用②来实现, 并根据行车方式排除不合理的
线路。要记录两个中转站的相关信息, 即三段路程途径的站
点数。否则无符合方案。
( 2) 公交地铁混合线路计算
①若起点 A 附近有地铁站 D(a), 终点 B 附近有地铁站 D
(b), 都可步行而至, 依据 Sa 算法同理判断若有 D(a),D(b)地铁
模型Ⅲ在时间复杂度方面的改进: 基于广度优先搜索算 法的最短路径模型 3.5.1 建模思想
广度优先搜索,即 BFS,是一种相当常用 的 图 算 法 。 其 特 点是: 每次搜索指定点, 并将其所有未访问过的近邻加入搜 索队列, 循环搜索过程直到队列为空。广度优先搜索的基本 思想: 假设从图中某定点 v 出发, 在访问了 v 之后依次访问 v 的各个未曾访问过的邻接点, 然后分别从这些邻接点出发依 次 访 问 它 们 的 邻 接 点 , 并 使 “先 被 访 问 的 顶 点 的 邻 接 点 的 邻 接 点 ”先 于 “后 被 访 问 的 邻 接 点 ”被 访 问 , 直 至 图 中 所 有 已 被 访 问 的 顶 点 的 邻 接 点 都 被 访 问 到 。若 此 时 图 中 尚 有 顶 点 未 被 访问, 则另选图中一个未曾被访问的顶点的邻接点作起始 点, 重复上述过程, 直至图中所有顶点都被访问到为止。换句 话说, 广度优先搜索遍历图的过程是以 v 为起始点, 由近至 远, 依次访问和 v 由路径相通且路径长度为 1, 2, …的顶点。
不妨设器时间距离为 1000min( 数据本身并无意义, 只参与比
较运算) 从而我们构造初一个时间距离矩阵 T:
( ) t12 … t1,3957
T= ┇ ’ ┇
t t … 3956,1
3956,3957
其中:
*3 ( i 与 j 相邻)
tij= 1000 (i 与 j 不相邻)
( 5)
不妨设 rij 为从第 i 站到第 j 站的权值, 其取值为 0、1 如
( 1) 公交间线路计算( 不考虑地铁) ①分别求出经过起始站 A 和终点站 B 的所有线路集合 为 P(A)、P(B)。若 P(A)∩P(B)≠Ф, 求出此交集 P1( 不 分 上 、下 行) , 然后根据 P1 中线 路 由 A 至 B 的 行 车 方 式 对 线 路 进 行 筛选, 得到线路集合 P2。若 P2≠Ф, 说明 A 与 B 之间有直达 车, 并计算途径站点数; 否则, 无直达车, 转②。 ②依次比较 P(A)和 P(B)中的各线路上的站点。若无相同 站点, 则说明从 A 经过一次中转不能到达 B。若有相同站点 集 Q, 则根据由 A 至 B 行车方 式 依 次 判 断 经 过 Q 中 站 点 中 转能否到达 B, 能到达的站点保留在 Q 中并分别计算 A 到此 点途径站点数 n1 和此站点到 B 途径站点数 n2; 不能到达的 站点要从 Q 中去除。若 Q 不空, 则经过一次中转能到达 B; 若 Q 为空, 则说明经过从 A 到 B 经过一次中转不能到达, 转③。 ③依 次 比 较 P(A)中 各 线 路 上 的 站 点 与 B 经 过 一 次 中 转
果公汽经 过 i,j 之 间 的 线 路 ( 从 第 i 站 到 第 j 站 ) 则 rij=1, 如 果
没有则 rij=0.因此得到 0- 1 规划模型:
3956 3957
++ 目标函数: min TAB=
tijrij (i≠j)
( 6)
i = 1j = 1
3957 3957
- + 约束条件: ( rij)=1 (i≠j)