2023-4-15 更新了代码
【2023 年第十三届 MathorCup 高校数学建模挑战赛】 B 题 城市轨道交通列车时刻表优化问题
更新信息:2023-4-15 更新了代码
1 题目
列车时刻表优化问题是轨道交通领域行车组织方式的经典问题之一。 列车时刻表规定了列车在每个车站的到达和出发(或通过)时刻,其在实 际运用过程中,通常用列车运行图来表示。图 1 为某一运行图的示例,图中每一条线表示一趟列车,横轴表示车站,纵轴表示时间,每一条线反映 了一趟列车在不同时刻所处的相对位置,也称为运行线。比如,图中红色 运行线表示,列车于 9:02 分从 D 站出发,于 9:05 分到达 C 站,停留 1 分钟后出发,于 9:09 分到达 B 站,停留 1 分钟后出发,于 10:03 分到达A 站。
图 1: 列车运行图示意图
实际运营中,在铺画列车运行图之前,首先得先确定列车开行方案, 列车开行方案包括列车编组方案、列车停站方案和列车交路计划三部分。列车编组方案规定了列车的车型和编组数量(即列车的节数),在本问题中采用统一的车型和编组数量。列车停站方案是规定列车在哪些站点停站的方案,在本问题中均采用 站站停的停站方案(即列车在每个经过的车站都会停车)。列车交路计划是指列车在规定的运行线路上往返运行的方式,即规定 了列车在哪些站点之间运行以及开行的数量。大小交路模式是城轨运营中 常用的交路模式,是指城市轨道交通运行线路的长短区间。通俗讲,大交 路是指列车跑完全程,小交路是指将全程中的某两个站作为临时起点或终 点来跑,需要注意的是,只有具有折返能力的车站(能让列车调头的车站) 才能作为交路的起点或终点。图 2 为某大小交路方案示意图,表示以 A 站为起点的,D 站为终点大交路区间开行 10 对列车,以 A 站为起点,C 站为终点小交路区间开行 5 对列车。
在大小交路方案中,大小交路列车开行列数通常为1:n 或n:1 两种模式, 即每开行 n 列大(小)交路列车后,开行一列小(大)交路列车,并且小交路所经过的车站数量需有一定限制:小交路区间过短会导致列车的折返频繁,使运营成本增加;小交路区间过长则无法体现大小交路运营模式的作用。
图 2: 大小交路示意图
在大小交路的运营模式下,乘客通常会被分为 6 种类型,如图 3 所示, 其中s1 − sn为大交路区间,𝑠𝑎 − 𝑠𝑏为小交路区间。
第Ⅰ,Ⅱ,Ⅲ类乘客起点均位于[s1, sa],终点无论位于哪个区间,乘客都只能乘坐大交路列车。第Ⅳ,Ⅴ类乘客起点均位于[𝑠𝑎, 𝑠𝑏]。其中第Ⅳ类乘客终点位于[𝑠𝑎, 𝑠𝑏], 乘客既可乘坐大交路列车,也可乘坐小交路列车;第Ⅴ类乘客终点位于[𝑠𝑏,𝑠𝑛],乘客可以乘坐小交路列车之后到𝑠𝑏进行换乘,也可直接乘坐大交路列车。第Ⅵ类乘客起点位于[𝑠𝑏, 𝑠𝑛],终点位于[𝑠𝑏, 𝑠𝑛],乘客只能乘坐大交路列车。
图 3 :乘客类型分类示意图
在列车开行方案的制定中,需要以最小的企业运营成本和最大的服务 水平(乘客在车时间和乘客等待时间)来满足客流的需求,企业的运营成本包 括固定成本(所需车辆的数量)和变动成本(列车总走行公里)两部分组 成。受到车站通过能力的制约和服务水平的要求,在一定时间内,列车的 发车数量也有一定的限制。在制定好列车开行方案后,可根据该方案同样以企业运营成本最小化 和服务水平最大化为目标铺画列车运行图,即确定每趟列车的出发和到达的具体时刻。现有的列车时刻表通常为等间隔的平行运行图,即发车间隔(如每 5 分钟开行一趟列车)和在同一站点的停站时间相等。发车间隔的长短会有一定的限制:发车间隔过短,则会影响列车运行的安全;发车间 隔过长,则会增长乘客的平均等待时间,从而影响服务水平。同样地,停 站时间也需受到一定限制,一般来说列车在车站的停站时间正比于在该站 上、下车的乘客数量。另外,需要注意的是,两列车在同一区间追踪运行 时,需保留一定的安全间隔(追踪间隔时间)。
采用大小交路运营模式的列车运行图,大交路列车和小交路列车一般 会交替开行,比如当大交路列车与小交路列车的比例为 2:1 时,则会以每3 列车为一个组合(前 2 列车为大交路列车,第三列车为小交路列车)滚动发车。
在下列问题中,只需制定单向的列车时刻表即可。
问题一:在满足客流需求的条件下,以企业运营成本最小化和服务水平最大化为目标,制定列车开行方案。即确定大交路区间列车的开行数量, 小交路的运行区间以及开行数量。(输出格式详见附件 6)
问题二:在问题一制定的列车开行方案下,同样以企业运营成本最小化和服务水平最大化且尽量满足客流需求为目标,制定等间隔的平行运行 图。(输出格式详见附件 7,并将附件 7 单独上传到竞赛系统中)
问题三:对于降低企业运营成本和提高服务水平,你们团队有哪些好的方法或建议?基于客流和车站数据,提供相应的量化分析支持。
名词解释:
乘客在车时间:即乘客从上车到下车所经过的时间,包括列车区间运行时间和停站时间两部分组成。
乘客等待时间:即为乘客在站台候车的等待时间。
断面客流:在单位时间内,沿同一方向通过线路某断面的乘客数量。
如何根据断面客流计算各个断面所需的列车数量:开行数量= ⌈断面客流数/列车定员⌉(向上取整)。
OD 客流:在单位时间内,起始站点到终止站点的乘客人数。
关于等间隔的补充解释:当采用大小交路运营模式时,等间隔为在大交路与小交路重合的区间的发车间隔相等。
输入输出数据:
所给数据为某实际轨道交通线路的真实数据,沿途共有 30 座车站,客流数据的时段为 7:00 - 8:00。数据详见附件。
附件 1:车站数据.xlsx
附件 2:区间运行时间.xlsx 附件 3:OD 客流数据.xlsx 附件 4:断面客流数据.xlsx 附件 5:其他数据.xlsx
附件 6:问题一输出示例.xlsx
附件 7:问题二输出示例.xlsx
2 方案解析
2.1 问题一
- 确定目标函数
根据问题要求,目标函数为企业运营成本最小化和服务水平最大化。因此,可以将目标函数表示为:
min ∑ i = 1 n C i + α ∑ j = 1 m S j \min \sum_{i=1}^{n}C_i + \alpha \sum_{j=1}^{m}S_j mini=1∑nCi+αj=1∑mSj
其中, n n n表示大交路的数量, m m m表示小交路的数量, C i C_i Ci表示第 i i i条大交路的运营成本, S j S_j Sj表示第 j j j条小交路的服务水平, α \alpha α为调节企业运营成本和服务水平权重的系数。
- 确定约束条件
为了满足客流需求,需要满足以下约束条件:
(1)大交路和小交路的列车班次需要满足客流需求。
.。。。略,请下载完整文档
(2)大交路和小交路的列车运行时间需要满足限制条件。
.。。。略,请下载完整文档
其中, T i , j T_{i,j} Ti,j表示第 i i i条大交路上运行的第 j j j条小交路的运行时间, T k , j T_{k,j} Tk,j表示第 k k k条小交路的运行时间, T j m a x T_{j}^{max} Tjmax表示第 j j j条小交路的最大允许运行时间。
(3)小交路的起点和终点必须在大交路的两个站点之间。
.。。。略,请下载完整文档
其中, δ k \delta_k δk和 η k , j \eta_{k,j} ηk,j表示第 k k k条小交路的起点和终点所对应的站点编号, η i , j + 1 \eta_{i,j+1} ηi,j+1表示第 i i i条大交路的起点所对应的站点编号。
2.2 问题二
第一步:确定基本参数
我们需要确定一些基本参数,如列车车次数、停车时间、每个站点的乘客数等等。这些参数将用于后续计算。
第二步:计算行车时间
根据列车的开行方案,计算每个车站的行车时间。这个时间包括列车进站时间、停车时间和列车出站时间。使用公式:
.。。。略,请下载完整文档
其中, t i , j t_{i,j} ti,j表示从站点 i i i到站点 j j j的行车时间, d i , j d_{i,j} di,j表示站点 i i i到站点 j j j的距离, v v v表示列车的运行速度, s i s_i si表示列车在站点 i i i的进站时间, p i p_i pi表示列车在站点 i i i的停车时间。
第三步:计算列车运行图
根据列车的开行方案和计算出来的行车时间,生成列车的运行图。使用MATLAB中的Gantt Chart工具绘制运行图。
第四步:计算乘客的候车时间和乘车时间
根据生成的运行图,计算乘客的候车时间和乘车时间。使用公式:
.。。。略,请下载完整文档
其中, w i w_i wi表示在站点 i i i等车的平均时间, n j n_j nj表示在站点 j j j上车的乘客数量, t i t_i ti表示列车在站点 i i i的到达时间, t j , i t_{j,i} tj,i表示从站点 j j j到站点 i i i的行车时间。
.。。。略,请下载完整文档
其中,
T
i
T_i
Ti表示在站点
i
i
i上车的平均时间,
n
j
n_j
nj表示在站点
j
j
j上车的乘客数量,
t
i
t_i
ti表示列车在站点
i
i
i的到达时间,
t
j
,
i
t_{j,i}
tj,i表示从站点
j
j
j到站点
i
i
i的行车时间。
2.3 问题三
针对降低企业运营成本和提高服务水平的问题,我们团队提出了以下一些方法和建议:
- 调整列车运行方案
通过对客流和车站数据的分析,我们可以发现有些站点的客流量较大,而有些站点的客流量较小,因此可以根据客流情况,调整列车运行方案,减少对客流量较小的站点的停靠次数,从而降低运营成本。另外,也可以采用智能调度算法,根据客流实时情况,调整列车运行方案,从而提高服务水平。
- 优化站点布局
通过对客流和车站数据的分析,我们可以发现有些站点之间的距离较短,可以考虑将这些站点合并,从而降低运营成本。另外,也可以优化站点的布局,使得客流量较大的站点能够更好地服务乘客,从而提高服务水平。
- 推广智能客流管理系统
智能客流管理系统可以通过采集和分析客流数据,实现客流预测和调度优化,从而降低运营成本和提高服务水平。因此,我们可以考虑在地铁系统中推广智能客流管理系统,以提高运营效率和服务水平。
- 加强智能安全监控
在地铁运营过程中,安全是至关重要的。因此,可以加强智能安全监控系统的建设,通过人脸识别等技术手段,实现对乘客和地铁设备的智能监控,从而提高运营安全和服务水平。
通过以上方法和建议,可以实现降低企业运营成本和提高服务水平的目标。同时,通过对客流和车站数据的量化分析支持,可以更好地指导地铁系统的运营和管理。
3 代码实现
clc
clear
[~, ~, G] = xlsread('附件1:车站数据.xlsx');
G = G(2:end,2); % 去除车站名称列
T = xlsread('附件2:区间运行时间.xlsx');
C = xlsread('附件3:OD客流数据.xlsx');
D = xlsread('附件4:断面客流数据.xlsx');
min_max_headway = [120, 360];
min_spacing = 108;
min_max_stop_time = [20, 120];
train_capacity = 1860;
min_max_station_num = [3, 24];
avg_boarding_time = 0.04;
n = size(T,1); % 大交路数量
m = size(T,2); % 小交路数量
f = [C(:); ones(m,1)]; % 目标函数系数
Aeq = zeros(m, n*m + m); % 相等约束系数矩阵
beq = D(:); % 相等约束右侧常数
lb = zeros(n*m+m,1); % 变量下限
% 不等约束系数矩阵
A = zeros(m*n,n*m+m);
b = zeros(m*n,1);
% 相等约束
for j = 1:m
Aeq(j, (j-1)*n+1:j*n) = 1;
Aeq(j, n*m+j) = 1;
end
% 不等约束
for j = 1:m
for i = 1:n
A((j-1)*n+i, (i-1)*m+j) = 1;
A((j-1)*n+i, n*m+j) = T(i,j);
end
A((j-1)*n+1:j*n, n*m+j) = -1;
b((j-1)*n+1:j*n) = -min_max_headway(1) * D(j) / 3600; % 转换为小时
end
。。。略,请下载完整代码
4 下载
电脑浏览器打开:betterbench.top/#/59/detail