当前位置:文档之家› 最佳公交线路选择模型1

最佳公交线路选择模型1


一、模型假设
• 除具有上下行不同线路的公交外,其他 公交均为对外制; • 乘坐环行线路经过终点站后要重新收费; • 同一地铁站对应的任意两个公汽站之间 可以通过地铁站换乘且无需支付地铁费; • 两个地铁站间不通过公汽站换乘; • 公交系统畅通无阻,不考虑中途发生故 障堵车等情况。
二、符号说明
• v :站点编号 i • N :路径换乘次数 i • Ci :总费用为 Ci • Ti :总耗时为 Ti • lij :第 i 类交通工具的第 j 条 行驶路线
三、模型建立
3.1标准形式的交通网络图 在站点转车的时候,会有转车时 间,这个转车时间由两个交通工具的类 型来决定,即站点具有变化的权值。同 时线路也有权值,如线路上的行驶时间, 收费等等,由此可得标准形式的交通网 络图为
G V , L, V , L
其中
V vi | i 1, 2, 3,..., n
Tmin Cmin
其中 1 ,且 0 , 0 ; Tmin 表 C 示换乘次数最少的所有路线中总耗时的最小值; min 表示换乘次数最少的所有路线中所花费用的最小值; , 为权值系数,分别表示主体人群对总耗时 与费用的重视程度。为了更客观科学地反映实际情 况,其大小可通过对公众的问卷经统计方式进行确 定。
3.2 路线选择模型 出行者在选择出行路线时,会考虑的主要因 素有换乘次数、总耗时、出行费用,为此建立多目 标规划模型。 设给定起点 v s 和讫点 ve ,可行的乘车路 l j1k1 , vm1 , l j2 k2 , vm2 ,..., v e
i
Ni , Ti , Ci
i 1, 2, 3,..., n.
s. t .
N i 0, Ti 0, Ci 0,
考虑到用户在权衡这些因素时,优先层次会不一样, 故本文根据不同出行者分别建立分层多目标规划模 型,
1)模型一 对主体人群而言,在满足换乘次数最少的前 提下,总耗时与费用作标准化处理,然后利用线性 加权和法得到评价函数 f Ti , Ci 如下 T Ci f Ti , Ci i
最佳公交线路选择模型
报告人:7组 李腾、郭志科、孙鹏鹏
• 1、仅考虑公汽线路,给出任意两公汽站点之间线 路选择问题的一般数学模型与算法。并根据附录数 据,利用你们的模型与算法,求出以下6对起始站 →终到站之间的最佳路线(要有清晰的评价说明) 。
• (1)、S3359→S1828 • (4)、S0008→S0073 (2)、S1557→S0481 (3)、S0971→S0485 (5)、S0148→S0485 (6)、S0087→S3676
s. t .
其中 P21 , P22 为优先因子,且 P21 P22
3)模型三
对于需要长期重复相同路线的乘客,虽然仍会考虑换 乘次数,但由于他们经常性地重复相同的路线,因此 他们会优先选择更加经济的路线,然后再考虑换乘次 数,最后才考虑时间。鉴于费用与换乘次数为主要决 定因素,故在此情况下可以忽略时间的影响,为此建 立以费用为第一优先目标,换乘次数为第二优先目标 的分层多目标规划模型
2)到x的值加上从x到y的边的权重等于y原 有的值,且到 x 节点的换乘次数加一小于y节点的 换乘次数。 若y在堆中则调用 修改y节点的权值;若y不 在堆中则将y节点加入堆 father ,堆的大小增加一即 。 步骤4 从目标节点出发,通过 结构存储的父节点回溯到达出发点后输出路径。 由于在算法执行过程中我们会在所有权值最 小的结果中选择存储深度最小的节点,因此最后的 结果是以时间(费用)最少的情况下,满足换乘次 数最少的方案。
步骤3
2、Dijkstra算法: 步骤1 读入交通网络信息,建立相对应的 时间图(费用图),读入要求解的出发点和目的地, 将出发点加入堆中。 步骤2 若堆为空,则转步骤4,若不为空 则取堆顶元素到x 中,堆大小减一,即减一。 步骤3 依次检索由x 出发的可扩展节点。 若满足以下情况之一,则把y的值更新为新的值, 并存储到y的父节点; 1)到x 的值加上从 x到y的边的权重小于y原 有的值;
2)模型二 对于赶时间的乘客,时间是他们最先考虑的 因素,其次考虑换乘次数,最后考虑费用。鉴于此 种情况下时间与换乘次数为主要决定因素,故可以 忽略费用的影响,将三目标模型简化为以时间作为 第一优先目标,换乘次数为第二优先目标的分层规 划模型
min P Ti , P22 N i 21 N i 0, Ti 0, Ci 0, i 1, 2, 3,..., n.
• 2、同时考虑公汽与地铁线路,解决以上问题。 • 3、假设又知道所有站点之间的步行时间,请你给 出任意两站点之间线路选择问题的数学模型。
• • • • • • •
相邻公汽站平均行驶时间(包括停站时间): 3分钟 相邻地铁站平均行驶时间(包括停站时间): 2.5分钟 公汽换乘公汽平均耗时: 5分钟(其中步行时间2分钟) 地铁换乘地铁平均耗时: 4分钟(其中步行时间2分钟) 地铁换乘公汽平均耗时: 7分钟(其中步行时间4分钟) 公汽换乘地铁平均耗时: 6分钟(其中步行时间4分钟) 公汽票价:分为单一票价与分段计价两种,标记于线路 后;其中分段计价的票价为:0~20站:1元;21~40站 :2元;40站以上:3元 • 地铁票价:3元(无论地铁线路间是否换乘)
六、模型改进
min g Ti , Ci , N i
s. t .
N i min N i , min N i k Ti 0, Ci 0, i 1, 2,3,..., n
.1 深度优先搜索
首先访问顶点V0 ,然后依次从V0的各个未被访问过 的邻接点出发进行深度优先搜索遍历, 当一个顶点的 所有临接顶点都被访问过,退回到最近被访问过的顶 点,访问它的下一个临接顶点。 1 2 3 4 5 6 7 8
min P Ci , P32 N i 31
s. t .
N i 0, Ti 0, Ci 0, i 1, 2, 3,..., n.
其中 P31 , P32 为优先因子,且 P31 P32
以上建立的三种模型是针对用户不同的查询 要求建立的。 模型一适用于大部分人的查询要求,尤其适 用于对北京路线不熟的外地和外国乘客,所以在设 计自主查询系统时,可以考虑将模型一作为系统默 认的查询模型。 模型二适用于对世界要求很高的乘客,如赶 时间的乘客。 模型三适用于对北京非常熟悉,且需要经常 重复所查零的乘客。 所以在设计自主查询系统时也应顾及到这两 类人群,可以考虑将模型二,模型三作为备选的查 询系统 。
综上分层多目标规划模型为
min P N i , P f Ti , Ci 11 12
Ni 0,


s. t .
Ti 0,
i 1, 2,3,..., n.
Ci 0,
其中 P , P 为优先因子且 P P ,表 11 12 11 12 示换乘次数 N i ,时间费用函数 f Ti , Ci 分别属 于第一,第二优先目标,且换乘次数对时间费用具 有绝对优先权。

i
i
i
i

i v s 选择线路 l j1k1 到达 vm 表示在起点 , i i l j2 k2 到达 vm2 , ……,最终到达 ve 的乘 换乘 车路线。记该路径换乘次数为 N i ,总耗时
1
为 Ti ,总费用为 Ci 。
则一般的多目标规划模型为
min f
为站点集合
L lij | i 1, 2,3...k , j 1, 2,3, 4...n
为交通线路集合,lij 表示第 i 类交通工具的 j 条行驶路线; V 表示站点权值集 第 合,vi V 存在三个极值,换乘权值 vni 耗费 时间权值 vti ,费用权值 vci ; L 为线路权值 集合。 lij L存在三个权值,换乘权值 lnij , 耗费时间权值 ltij ,费用权值 lcij 。
2 广度优先搜索
1 2 3 4 5 6 7 8 1 0 0 0 0 0 0 0
V2 V 3
visited
V1
V2 V4 V5 V6 V3 V7
Queue
V8
遍历顺序: V1 V2 V3 V4 V5 V6 V7 V8
非连通的图重复上述过程, 使每个顶点均被访问
广度优先搜索算法
void BFSTraverse(Graph G, Status (* visit)(int v)){ for(v=0; v<G.vexnum; ++v) visited[v] = FALSE; IntiQueque(Q); for(v=0; v<G.vexnum; ++v) if(!visited[v]) { EnQueue(Q,v); while(!QueueEmpty(Q)){ DeQueue(u); for(w=FirstAdjVex(G, u); w; w = NextAdjVex(G,u,w)) if(!visited[w]) {visited[w]=TRUE; visited(w); EnQueue(G,w); } }}}
2 广度优先搜索
• Breadth_First Search基本思想是: • 从图中某个顶点 v 出发,在访问了 v 之后 依次访问 v 的各个未曾访问过的邻接点, 然后分别从这些邻接点出发依次访问它们 的邻接点,并使得"先被访问的顶点的邻接 点"先于"后被访问的顶点的邻接点"进行访 问,直至图中所有已被访问的顶点的邻接 点都被访问到。如若此时图中尚有顶点未 被访问,则需另选一个未曾被访问过的顶 点作为新的起始点,重复上述过程,直至 图中所有顶点都被访问到为止。
V1
V2 V4 V5 V6 V3
visited
相关主题