0.背景介绍
为了在满足货运需求的同时,最大化列车开行收益,并且希望保证较高的开行效率(最小化停站次数),以下将列车开行方案及运载量进行建模。
1.模型及符号参数含义
S ——路网络中的车站集
本建模中,共有五个车站,分别为西安,成都,重庆,贵阳,昆明。
在本研究中,分别表示为A-E:
地名 |
成都 |
贵阳 |
重庆 |
西安 |
昆明 |
符号 |
A |
B |
C |
D |
E |
E ——路网中的区段集
共有5个车站,因此对共有10个区段,分为上下行,即为20种开行班次。
上行方向 |
下行方向 |
|||
序号 |
起点 |
终点 |
起点 |
终点 |
1 |
成都 |
贵阳 |
贵阳 |
成都 |
2 |
成都 |
重庆 |
重庆 |
成都 |
3 |
成都 |
西安 |
西安 |
成都 |
4 |
成都 |
昆明 |
昆明 |
成都 |
5 |
贵阳 |
重庆 |
重庆 |
贵阳 |
6 |
贵阳 |
西安 |
西安 |
贵阳 |
7 |
贵阳 |
昆明 |
昆明 |
贵阳 |
8 |
重庆 |
西安 |
西安 |
重庆 |
9 |
重庆 |
昆明 |
昆明 |
重庆 |
10 |
西安 |
昆明 |
昆明 |
西安 |
本建模需要求解的,即为每一个开行班次的频次,以及每一个开行班次的停站方案。
n(e) ——区段e 的通过能力
q(i,j) ——i,j 站间每辆车平均装载的货物吨数,t/车;
q为固定值,本模型中q取7.55;此外,本次建模中,每一班列车的编排车组数量均为8,即为每一趟开行列车的最大运载能力为7.55*8=60.4吨。
C1 ——开行货物列车每吨公里的平均运营收入,元/t·km;
C2 ——每车公里的运营成本,包括线路使用费与机车牵引费,元/车;
C3 ——车站技术作业所需的费用,元/次;
C1, C2, C3为固定值,本模型中C1取2.5; C2=2.16;C3=100;
Q(i,j) ——i,j 站间货流量预测值, i,j属于s ,车/日;
成都 |
贵阳 |
重庆 |
西安 |
昆明 |
|
成都 |
0 |
59.14 |
106.12 |
85.55 |
80.19 |
贵阳 |
142.23 |
0 |
85.63 |
69.03 |
64.70 |
重庆 |
133.46 |
44.78 |
0 |
64.77 |
60.71 |
西安 |
196.59 |
65.97 |
118.36 |
0 |
89.44 |
昆明 |
188.34 |
63.20 |
113.40 |
91.41 |
0 |
k ——车站 i,j 间每日可开行的列车数,列/日; k∈[0,a] ,其中 a 为任意 i,j 站间可开行的最大班列数.
成都 |
贵阳 |
重庆 |
西安 |
昆明 |
|
成都 |
0 |
1 |
2 |
1 |
1 |
贵阳 |
2 |
0 |
1 |
1 |
1 |
重庆 |
2 |
1 |
0 |
1 |
1 |
西安 |
3 |
1 |
2 |
0 |
1 |
昆明 |
3 |
1 |
2 |
2 |
0 |
d(i,j) —— i,j 站间运价里程,km
成都 |
贵阳 |
重庆 |
西安 |
昆明 |
|
成都 |
0 |
993 |
504 |
842 |
1100 |
贵阳 |
993 |
0 |
463 |
1272 |
638 |
重庆 |
504 |
463 |
0 |
790 |
1237 |
西安 |
842 |
1272 |
790 |
0 |
1942 |
昆明 |
1100 |
638 |
1237 |
1942 |
0 |
miu 为快捷货物编组辆数,本模型中,miu=8.
x(k,m) 列车k在m车站是否停车,0表示不停,1表示停车。
该变量也为决策变量,
n(k,i,j)——列车 k 挂运的车站 i,j 间的装车数,车/日;
这个为待求的决策变量。
2.模型的目标函数
本模型的优化目标主要有两个,
1.总的运营收益最大化。
2.总体停站次数最小。
为了方便求解,可以将上述两个目标通过一定的系数转化 一个综合指标。
3. 模型的约束条件
1.所有车站间的货运流量需求需要满足。
2.需要保证列车就近停靠
3.列车开行数量需要满足区间同行能力限制
本模型中,所有车站之间的最大可开行班次均用固定的a表示。
需要满足对于所有的ij组合,k均小于a。
3. 编码方式
每种起终点会对应有3个中途车站,我们可以用3个二进制数表示一种停站方案,共有8种情况,然后每种停站方案再使用3个二进制位表示改种停站方案的开行班次数量。
因此遗传算法的每一个染色体的长度应该为20*(3+3)*8=960;
从前到后的停站方案分别为:
中途站点1 |
中途站点2 |
中途站点3 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
… |
1 |
1 |
1 |
0 |
1 |
0 |
共有8个片段,分别表示上述8种停站方案,000表示不停车方案,111表示站站停车的方案,之后的三位二进制表示其对应的班次数量。
遗传算法的种群规模设置为100,最大迭代次数可以设为500或者1000.
代码清单:
代码获取链接:
正在为您运送作品详情