基于元启发式算法的动态编组调度优化方法与流程

文档序号:11200435阅读:534来源:国知局
基于元启发式算法的动态编组调度优化方法与流程

本发明涉及一种动态编组调度优化方法,特别涉及一种基于元启发式算法的动态编组调度优化方法。



背景技术:

货运列车编组调度计划是编组站完成货运列车调度作业的指导性文件之一,科学合理的编组调度方案是编组站高效工作的前提与保障。近年来,国内外关于编组站的编组调度优化研究已经有了一定的基础,但由于其属于超大规模的组合优化问题,实际解编组调度作业中,还主要以人工计算为主。典型的人工计算方法有穷举法,它将所有可行的编组调度方案都按照时效计算方法都计算一遍,选择时效性最佳的方案即为最优方案。由于穷举法计算工作量巨大,其较适合车道与列车车厢数量较少的情况,当车道与列车车厢较多时,计算工作繁琐,选优相当困难。因此,在实际的调度作业中,调度员一般只着重考虑方案的可行性,忽略了方案的优化程度,从而导致了调度资源的浪费。对此,专家学者们提出了一些针对性的自动求解方法。可分为以下几类。

(1)数学规划法,结合应用运筹学中的线性规划、非线性规划、整数规划法等方法求解解编组调车优化问题,比较典型的有非线性0-1规划法、二次0-1规划法、整数规划法。

(2)基于图论的分析法,将编组调度优化问题网络化,利用图论原理进行求解。如网络分析法。

(3)结合元启发式算法求解编组站编组调度优化问题,元启发式算法是常用的解决列车编组调度优化问题的方法,典型的元启发式算法有模拟退火算法、遗传算法、神经网络算法等。

杨树国教授利用上述所提第三种方法对解编组调度问题给出了求解模型,其在文献“一种新的列车编组问题优化模型及算法.科学技术与工程,2010,10(33):1671-1815”中主要探讨了列车编组计划问题的建模、模型计算与求解的方法以及编组计划的制定等问题。文献首先根据某编组站一天过站列车的数据,以白班和夜班的最小中时为指标,建立列车解体和编组的优化模型,然后用遗传算法对优化模型中的决策变量进行求解,最后给出该站的解体计划和编组方案。然而,这种优化模型建立在如有足够的牵引能力使编组完毕的列车能尽快地离开编组场这样的约束条件下,且数据来源于特定的编组站,这就造成了这种优化求解模型往往不能通用到某些专用编组站的编组调度优化问题的求解中。



技术实现要素:

为了克服现有动态编组调度优化方法实用性差的不足,本发明提供一种基于元启发式算法的动态编组调度优化方法。该方法首先根据用户指定的调车指令建立阶段调车计划;接着根据车道与车位范围,确定解空间,并以牵引车完成所有调度作业所经过的路径长度总和来设计遗传算法的适应度函数;然后利用元启发算法的全局搜索能力,找出每次作业牵引车目标车道与车位的最优解或近似最优解;最后结合阶段调车计划,给出调度作业方案。测试表明,本发明能够适用于所有编组站的编组调度优化,提高了编组站的编组调度效率,实用性好。

本发明解决其技术问题所采用的技术方案:一种基于元启发式算法的动态编组调度优化方法,其特点是包括以下步骤:

步骤一、建立调车阶段计划记录表,记录第一阶段所计算出的阶段计划。

步骤二、顺序选择第一条调车指令,调车指令要求移动的车厢的初始放置顺序和目标放置顺序相同时,则将目标移动的车厢前方的车厢片段移动到不同车道,对目标移动的车道车位信息编码,记录到调车阶段计划记录表中,调车指令要求移动的车厢的初始放置顺序和目标放置顺序不同时,则阶段计划多出将目标移动车厢顺序倒置的作业,并将每次作业所产生的信息编码记录到阶段计划记录表中。

步骤三、依次选择下一条调车指令,仿照步骤二,依次将阶段计划和编码信息记录到阶段计划表中,如果要六车道和七车道有车厢时,应该先将车道上的车厢移动到别的车道,并将目标车道车位编码形成决策变量,并记录到阶段计划记录表中。

步骤四、进行第二阶段,对第二阶段计划记录表中所记录的信息编码顺序合并,形成染色体,然后利用matlab遗传算法工具箱,并利用所建立的适应度函数确定每次调车作业车厢的目标车道车位,在进行遗传算法确定初始种群、交叉和变异操作时,应注意上述两种情况所包含的约束条件。

步骤五、选出最优个体,结合阶段计划记录表,给出整个调车作业计划。

本发明的有益效果是:该方法首先根据用户指定的调车指令建立阶段调车计划;接着根据车道与车位范围,确定解空间,并以牵引车完成所有调度作业所经过的路径长度总和来设计遗传算法的适应度函数;然后利用元启发算法的全局搜索能力,找出每次作业牵引车目标车道与车位的最优解或近似最优解;最后结合阶段调车计划,给出调度作业方案。测试表明,本发明能够适用于所有编组站的编组调度优化,提高了编组站的编组调度效率,实用性好。

由于符号化了车道、车位,并对牵引车每次作业的目标车道、车位进行了信息编码,在实际求解可行编组调度方案时,可降低求解复杂度。同时结合遗传算法的全局搜索能力,可求解最优或者近似最优的编组调度方案。而自动生成的解编组调度方案可明显解决人工设计编组调度方案所带来的效率低下和调度资源浪费问题。为了验证算法效果,本发明以国内某编组站为研究对象,对算法进行了有效性评估。参看图2,某编组站共有七条车道,一车道、三车道、五车道分别有10个空车位,二车道有15个车位,四车道有11个空车位,六车道、七车道为装卸载车道,分别有2个空车位。要完成货物的装卸载,必须将车厢调度到装卸载厂完成货物的装卸载作业。编组站仅有一个驼峰和一辆牵引车,牵引车在驼峰的作用下,可完成制动方向的改变,使牵引力变成推动力或者推动力变成牵引力。在所研究的国内某编组站基础上,利用牵引车完成所有调度作业所经过路径长度为评分准则,对比了5次不同调车任务下,手工编制的调车方案与自动生成的调车方案的效果,实验结果表明,利用本发明所生成的自动编组方案在调车指令非常多的情况下明显强于手工编制的调车方案。如表1所示,当调车指令为1条时,人工编制的调车方案与自动生成的方案评分效果相差0,但当调车指令非常多的时候,人工生成的调车方案具有一定的随意性,如编号为5的调车任务,人工编制的调车方案与自动生成的方案评分效果相差5(自动生成的方案较优),并且手工设计调车方案工作较为繁琐,比较浪费时间与人力。

实验分析结果见表1。

表1nsga-ii算法下自动生成的调车方案与人工方案对比结果

注:货运列车初始状态如图3所示,牵引车运行车位数包括弯道车位数。

下面结合附图和具体实施方式对本发明作详细说明。

附图说明

图1是本发明基于元启发式算法的动态编组调度优化方法的流程图。

图2是本发明实施例中某编组站的俯瞰图。

图3是某货运列车进入图2编组站的初始停放状态示意图。

图中,#号代表牵引车。

具体实施方式

参照图1-3。本发明基于元启发式算法的动态编组调度优化方法具体步骤如下:

要完成整个的调车作业,牵引车所经过的路径长度总和为:

其中表示第i次调车时,牵引车所经历的车位数,表示当前调车作业牵引车的初始车道车位,表示当前调车作业牵引车最终停放的车道车位,同时也表示下一次调车牵引车的初始车道车位,那么,目标函数可表示为:

(a)以7个车道为例,一车道有10个车位,因此可将一车道的车位表示为集合dw1={p1,1,p1,2,p1,3......p1,10},以此类推,可将二车道至七车道的车位依次表示为集合dw2={p2,1,p2,2,p2,3......p2,15};dw3={p3,1,p3,2,p3,3......p3,10};dw4={p4,1,p4,2,p4,3......p4,11};dw5={p5,1,p5,2,p5,3......p5,10};dw6={p6,1,p6,2};dw7={p7,1,p7,2};如若对应车道空车位上有车厢,则可将对应车道车位编码替换为车厢编号,车头替换为#。可将dw2集合变化为dw2={p2,1,p2,2,p2,3,p2,4,p2,5,p2,6,#,8#,7#......1#};

(b)某货运列车进入编组站后,初始停放位置状态如图2所示。其有两种初始状态:①货运列车驶入编组站时为已装载状态,需要将列车车厢进行解编后牵引推送到装卸厂完成货物卸载;②货运列车驶入编组站时为未装载状态,需要将列车解编后牵引推送到装卸厂完成货物装载;货运列车只有一辆牵引车,牵引车不仅具有牵引力,而且具有推动力。随机指定一个或者多个有序调车指令,算法根据调车指令指定的车厢初始车道车位和目的车道车位自动计算出最优或者接近于最优的调度序列,指导实际调度工作。若用户指定一条调车指令,并且指令要求移动相邻车厢进入装卸载厂,如指令:“一道7#,6#车辆->六道p6,1,p6,2车位”(表示牵引车将一车道车位上7#和6#车辆牵引推送到六车道p6,1,p6,2空车位)。若用户指定多条指令时,指令顺序应保证先调度靠近牵引车车厢,依次类推。

(c)现考虑以下两种情况:

若用户指定的调车指令数量为1,指令要求移动非邻近的车厢进入装卸载厂,调车方向为西,用户指定的调车指令为:6#,4#车厢顺序进入六车道p6,1,p6,2空车位。由于6#车厢和4#车厢没有邻近,需要将6#与4#车厢拼接,并由牵引车一同牵引到p6,1,p6,2车位,从图2可以看出,将6#,4#车厢同时调度到目标车道车位,需要完成以下几个步骤:①将6#号车厢前方的所有车厢移动到另外的车道,令目标车道与车位编码为px1,y1px1,y1-1(邻近车厢),其中,x1≠2;②将6#车厢移动到另外的车道,令目标车道与车位编码为px2,y2,其中,x2≠2;③将5#车厢移动到另外车道,此车道要求不能和6#所在车道相同,令所移动的车道与车位编码为px3,y3,其中,x3≠2且x3≠x2;④将6#车厢调回p2,11空车位,接着调动组装好的6#,4#车厢进入到六车道完成货物装卸载。根据上述,将决策变量px1,y1px1,y1-1、px2,y2、px3,y3组合构成染色体,接着根据如下公式所示的车道和车位范围,确定解的搜索空间。

借助于matlab遗传算法工具箱执行遗传算法,每次交叉变异后的染色体基因位应保证满足以下约束条件:①单个染色体所有的基因位表示的车道车位不能有重复。②由于调车作业顺序展开,因此,单个染色体中,如若存在相同车道的基因片段,位于前方的基因片段表示的车位号不能小于后方基因片段表示的车位号,即车厢停放车道车位呈堆栈形式。

若用户指定的调车指令数量大于1,调车方向为西,指定的调车指令为:①7#,6#车厢顺序进入六车道p6,1,p6,2空车位;②2#,4#车厢顺序进入六车道p7,1,p7,2空车位。根据调车指令,则完成调车作业所经历的阶段有:①牵引车将8#号车厢牵引推动至其他车道,令目标车道车位为px1,y1,其中,x1≠2;②因为7#车厢和6#车厢为邻近车厢,可直接将两车厢同时牵引至六道p6,1,p6,2空车位;③牵引车牵动5#号车厢移动到其他车道,这里要求最终移动到的车道不同于5#车厢初始所在的车道,将目标车道车位号表示为px2,y2,其中,x2≠2;④移动4#车厢到其他车道,将目标车道车位号表示为px3,y3,其中,x3≠2;⑤将3#号车厢移动到其他车道,由于下一步要移动4#号车,不能把3#号车厢移动到4#所在车道,可将目标车道车位表示为px4,y4,其中,x4≠2且x4≠x3;⑥由于目标要移动2#号车厢到p7,1空车位,4#号到p7,2空车位,可将2#号车厢移动到4#车厢所在车道车位的前一个车位,将目标车道车位表示为px3,y5,其中,x3≠2且y5=y3-1;⑦将2#和4#号车厢编组,由牵引车同时牵引推动进入七车道,这样就完成了所有的调车作业。

利用遗传算法,将上述目标车道车位决策量编码信息组合成染色体,利用遗传算法的求解步骤对上述决策变量进行求解,解空间如公式(3)所示,这里也应注意的是在执行遗传算法步骤时,应满足如第一种情况所述的约束条件。

通过上述两种情况可以看出,本发明分为两个阶段,第一阶段,根据调车指令,确定阶段计划;第二阶段,将第一阶段生成的决策变量组合形成染色体,结合遗传算法的全局搜索能力,确定最终决策变量;最后,结合最终决策变量,给出整个调车计划。

本发明方法实现步骤归纳如下:

步骤一、建立调车阶段计划记录表,用来记录第一阶段所计算出的阶段计划。

步骤二、顺序选择第一条调车指令,指令要求移动的车厢的初始放置顺序和目标放置顺序相同时,则可将目标移动的车厢前方的车厢片段移动到不同车道,对目标移动的车道车位信息编码,记录到调车阶段计划记录表中,指令要求移动的车厢的初始放置顺序和目标放置顺序不同时,则阶段计划多出将目标移动车厢顺序倒置的作业,并将每次作业所产生的信息编码记录到阶段计划记录表中。

步骤三、依次选择下一条指令,仿照步骤二,依次将阶段计划和编码信息记录到阶段计划表中,这里要注意的是,如果要六车道和七车道有车厢时,应该先将车道上的车厢移动到别的车道,并将目标车道车位编码形成决策变量,并记录到阶段计划记录表中。

步骤四、进行第二阶段,对阶段计划记录表中所记录的信息编码顺序合并,形成染色体,然后利用matlab遗传算法工具箱,并利用上述所建立的适应度函数确定每次调车作业车厢的目标车道车位,在进行遗传算法确定初始种群、交叉、变异操作时,应注意类似于上述两种情况所包含的约束条件。

步骤五、选出最优个体,结合阶段计划记录表,给出整个调车作业计划。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1