system: [SYSTEM]

user: 3. 算法 3.1. 算法设计 针对上述数学模型，我们设计了遗传算法进行求解。算法设计主要特点如下： 1) 编码 分组列车编组计划模型中决策变量包括开行哪些列车 x i ， j ， k 或 x i ， j ，具体的车流编组方案 y i ， j ， k s ， i ， j 、 y i ， j ， k s ， j ， k 、 y i ， j s 。当 y i ， j ， k s ， i ， j 、 y i ， j ， k s ， j ， k 、 y i ， j s 的值确定后按照公式(4)，(5)就可以确定变量 x i ， j ， k 和 x i ， j 的值，因此决策变量 y i ， j ， k s ， i ， j 、 y i ， j ， k s ， j ， k 、 y i ， j s 的不同组合即为模型的优化解空间。将所有的编组方案按照公式(7)，(8)分别计算当前编组方案中列车集结所产生的车小时消耗和需求在中转站中转所产生的车小时消耗，最后按公式(9)计算模型的目标函数值。 2) 初始种群 初始种群指随机生成一定数量的个体形成一个初始群体，作为进化的基础。通过随机设置取值范围内的数来得到，每个个体代表问题的一个解。本文采用的是二进制编码，每一个基因随机取0或者1的值，组成一个个体，在已知编码方法的基础上随机生成0-1矩阵作为遗传算法的初始种群。 3) 适应度函数 适应度函数是根据目标函数确定的用于区分群体中个体好坏的标准，一般以目标函数或者改造目标函数作为适应度函数，个体的好坏通过算法的适应度函数来评判。鉴于我们的优化目标是尽可能降低两个部分车小时消耗的总和，因此本文算法中每个个体的适应度函数取模型的目标函数值的负值，当目标函数值越大说明此编组方案的车小时消耗越少。 4) 选择、交叉、变异 新个体的选取采用轮盘赌输的机制。首先采用计算编组方案目标值的方法对每一个个体进行排序，规定前 n 个个体直接进入下一代新种群，然后在剩余的个体中利用概率的方案随机选择个体。新种群的任意个体按照设置的交叉概率与变异概率进行配对交叉或者某个个体的任意基因位进行变异。 5) 终止条件 将最大迭代次数作为程序终止条件，停止算法。 3.2. 数值实验 根据已知需求集合，各技术站的参数以及车流路径，建立最优编组方案。铁路货运通道路网规模为10个站点，图中每个圆圈表示一个技术站，两个技术站之间的铁路弧段是有向的，见图1，两两之间的车流需求见表1，每个站点的参数见表2。 图1. 货运通道路网图 Table 1 Traffic flow transportation demand in road networ 车站 1 2 3 4 5 6 7 8 9 10 1 0 0 0 8 33 24 8 13 21 34 2 0 0 0 0 35 34 20 29 9 18 3 0 0 0 0 29 34 25 6 31 33 4 0 0 0 0 0 28 28 17 25 10 5 0 0 0 0 0 0 5 13 6 8 6 0 0 0 0 0 0 0 26 14 34 7 0 0 0 0 0 0 0 0 0 16 8 0 0 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 表1. 路网中车流运输需求 Table 2 Parameters of each technical statio 车站 技术站集结时间 车组换挂的中转时间 1 3.4 3.9 2 3.7 4.2 3 3.6 4.1 4 3.3 3.8 5 3.7 4.2 6 3.2 3.7 7 3.5 4.0 8 2.9 3.4 9 4.4 3.9 10 3.7 4.2 表2. 各技术站参数 本文进行的数值实验中列车的平均编成辆数取55 ( l = l ′ )，技术站的集结参数( c = c ′ )和平均周转时间 t z 取表1， α 取10。采用遗传算法对模型进行求解，其中一个种群包含30个个体，将交叉概率取值设为0.6，变异概率取值设为0.01，取最大迭代次数为500次。经过计算得到列车开行方案见表3、需求路径规划见表4，上述两表共同构成分组列车编组计划： Table 3 Train formation schem 开行列车 (1， 6， 7) (1， 5， 8) (1， 2， 9) (1， 4， 10) (2， 5) (2， 6， 8) (2， 7， 8) (2， 4， 10) (2， 9， 10) (3， 4， 7) (3， 5， 7) (3， 8) (3， 4， 9) (3， 6， 10) (3， 7， 10) (4， 5， 8) (4， 6， 9) (5， 7， 9) (5， 6， 10) 表3. 列车编组方案 Table 4 Traffic flow path for each deman 需求 ( i ， j ) 换挂站k 车流运输方案 需求 ( i ， j ) 换挂站k 车流运输方案 (1， 2) 0 (1， 2) (1， 2) 2 (1， 2， 4) (1， 2) 2 (1， 2， 5) (1， 2) 2 (1， 2， 6) (1， 2) 2 (1， 2， 7) (1， 2) 2 (1， 2， 8) (1， 2) 2 (1， 2， 9) (1， 2) 2 (1， 2， 10) (1， 4) 0 (1， 4) (1， 4) 2 (1， 2， 4) (1， 4) 4 (1， 4， 5) (1， 4) 4 (1， 4， 6) (1， 4) 4 (1， 4， 7) (1， 4) 4 (1， 4， 8) (1， 4) 4 (1， 4， 9) (1， 4) 4 (1， 4， 10) (1， 5) 0 (1， 5) (1， 4) 5 (1， 5， 6) (1， 5) 5 (1， 5， 7) (1， 5) 5 (1， 5， 8) (1， 5) 5 (1， 5， 9) (1， 5) 5 (1， 5， 10) (1， 5) 2 (1， 2， 5) (1， 5) 4 (1， 4， 5) (1， 5) 2 (1， 2， 9) (1， 2) 2 (1， 2， 10) (1， 6) 0 (1， 6) (1， 6) 2 (1， 2， 6) (1， 6) 4 (1， 4， 6) (1， 6) 6 (1， 5， 6) (1， 6) 6 (1， 6， 7) (1， 6) 6 (1， 6， 8) (1， 6) 6 (1， 6， 9) (1， 6) 6 (1， 6， 10) (1， 7) 0 (1， 7) (1， 7) 2 (1， 2， 7) (1， 7) 4 (1， 4， 7) (1， 7) 5 (1， 5， 7) (1， 7) 6 (1， 6， 7) (1， 7) 7 (1， 7， 8) (1， 7) 7 (1， 7， 9) (1， 7) 7 (1， 7， 10) (1， 8) 0 (1， 8) (1， 8) 2 (1， 2， 8) (1， 8) 4 (1， 4， 8) (1， 8) 5 (1， 5， 8) (1， 8) 6 (1， 6， 8) (1， 8) 7 (1， 7， 8) (1， 9) 0 (1， 9) (1， 9) 2 (1， 2， 9) (1， 9) 4 (1， 4， 9) (1， 9) 5 (1， 5， 9) (1， 9) 6 (1， 6， 9) (1， 9) 7 (1， 7， 9) (1， 9) 9 (1， 9， 10) (1， 9) 0 (1， 10) (1， 10) 2 (1， 2， 10) (1， 10) 4 (1， 4， 10) (1， 10) 5 (1， 5， 10) (1， 10) 6 (1， 6， 10) (1， 10) 7 (1， 7， 10) (1， 10) 9 (1， 9， 10) (2， 4) 0 (2， 4) (2， 4) 4 (2， 4， 5) (2， 4) 4 (2， 4， 6) (2， 4) 4 (2， 4， 7) (2， 4) 4 (2， 4， 8) (2， 4) 4 (2， 4， 9) 表4. 各需求的车流路径 使用上述遗传算法求解所得的关于需求的车小时消耗为10，486车小时，即在规划周期内所有需求通过货运通道时在站内停留的车小时总量。通过数值实验表明该遗传算法收敛速度较快。根据表1画出图2，技术站1开行4趟分组列车；技术站2开行1趟单组列车，4趟分组列车；技术站3开行1趟单组列车，5趟分组列车；技术站4开行2趟分组列车；技术站5开行2趟分组列车看出每个技术站上开行的列车数量较为平均，说明各个技术站负担均衡。所有开行的列车中，分组列车占比89.47%说明相比于单组列车，分组列车在节约铁路运输过程中的车小时消耗方面具有更大的优势。 图2. 分组列车最优编组方案图