一种堆场内多场桥任务调度方法、装置、设备及存储介质转让专利

申请号 : CN202311389749.5

文献号 : CN117114379B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 栾垚贾庆山王腾飞李智宇

申请人 : 清华大学北京全路通信信号研究设计院集团有限公司

摘要 :

本说明书涉及场桥调度方法领域,提供了一种堆场内多场桥任务调度方法、装置、设备及存储介质。该方法包括:在每个决策时段开始时,获取此决策时段的所有可调度搬运任务的特征以及上一决策时段未执行完成的第一任务序列;基于所述特征,为此决策时段的所有可调度搬运任务分配场桥;通过调用旅行商问题求解算法对所述每个场桥中的任务进行排序,得到所述每个场桥的第二任务序列;将所述每个场桥的第二任务序列对应拼接到其第一任务序列的末尾,得到所述每个场桥在所述决策时段的总任务序列。本说明书实施例提供的场桥任务分配方法可以消除场桥间不能相互穿越的约束,使优化问题可以解耦到每个场桥,提高了求解效率。

权利要求 :

1.一种堆场内多场桥任务调度方法,其特征在于,所述多场桥间存在交叉约束,所述方法包括:在每个决策时段开始时,获取此决策时段的所有可调度搬运任务的特征以及每个场桥上一决策时段未执行完成的任务序列,将其作为所述每个场桥的第一任务序列;

基于所述特征,为此决策时段的所有可调度搬运任务分配场桥;

通过调用旅行商问题求解算法对所述每个场桥中的可调度搬运任务进行排序,得到所述每个场桥的第二任务序列,其中所述旅行商问题求解算法包括LKH‑3求解器,所述调用旅行商问题求解算法对所述每个场桥中的可调度搬运任务进行排序,包括:S1:随机选择初始任务排序;

S2:计算按照所述初始任务排序进行可调度任务搬运所花费的时间;

S3:调整初始任务排序的顺序,同时计算调整后的排序进行可调度任务搬运时所花费的时间;

S4:若调整后的任务排序进行任务搬运时所花费的时间小于按照初始任务排序进行任务搬运时花费的时间,则将初始任务排序替换为调整后的任务排序;

S5:遍历所有可调度搬运任务,直至任务排序不再更新后输出最终任务序列;

将所述每个场桥的第二任务序列对应拼接到其第一任务序列的末尾,得到所述每个场桥在此决策时段的总任务序列。

2.根据权利要求1所述的方法,其特征在于,在得到所述每个场桥在所述决策时段的总任务序列之后,进一步包括:根据所述每个场桥的总任务序列判断相邻两场桥之间是否发生交叉冲突;

若发生冲突,则根据所述发生交叉冲突的相邻两场桥完成所述任务的总时间来调整相应场桥的调度。

3.根据权利要求2所述的方法,其特征在于,根据所述每个场桥的总任务序列判断相邻两场桥之间是否发生冲突,包括:获取所述每个场桥的移动速度;

根据所述特征得到每个所述可调度搬运任务的位置;

根据所述每个场桥的总任务序列和场桥移动速度计算得到所述每个场桥的移动时间;

根据所述位置和所述每个场桥的移动时间得到所述每个场桥位置坐标随时间变化的曲线图;

若所述曲线图上存在曲线交叉,则判定所述曲线图对应的场桥之间存在交叉冲突,否则,判定不存在交叉冲突。

4.根据权利要求2所述的方法,其特征在于,根据所述发生交叉冲突的相邻两场桥完成所述任务的总时间来调整相应场桥的调度,包括:分别求解所述相邻两场桥完成其总任务序列中任务花费的总时间;

在发生交叉冲突时刻,先执行所述总时间较大的场桥在所述时刻负责的任务,所述花费总时间较小的场桥移动到安全距离躲避,并且记录避让过程花费的时间;

检查所述花费总时间较小的场桥执行下一个任务的过程中是否会与所述花费总时间最大的场桥产生交叉冲突;

若产生冲突,则所述花费总时间较小的场桥避让所述花费总时间最大的场桥,不执行下一个任务,移动到安全距离躲避,并且记录所述花费总时间较小的场桥因避让而额外花费的时间;

若不产生冲突,则所述花费总时间较小的场桥继续正常执行其所述总任务序列中的下一个任务;

更新两场桥完成任务花费总时间;

重复上述过程,直至两个场桥的全部任务均被执行。

5.根据权利要求1所述的方法,其特征在于,所述为此决策时段的所有可调度搬运任务分配场桥,包括:根据场桥数量,在垂直于场桥导轨的方向上选取数量比所述场桥数量少一个的场桥任务划分阈值;

以所述阈值所在的位置为界限,将堆场划分为与场桥数量相等的若干区域;

按照就近原则为每个所述区域分配场桥。

6.根据权利要求5所述的方法,其特征在于,所述在垂直于场桥导轨的方向上选取数量比所述场桥数量少一个的场桥任务划分阈值,包括:枚举堆场中排放集装箱的列数,将所述列数作为候选划分阈值;

仿真获得所述候选划分阈值下,所有场桥完成所有搬运任务的时间;

选取完成时间最短的候选划分阈值作为最优划分阈值;

将所述可调度搬运任务的特征、场桥位置以及所有场桥完成所有搬运任务的时间作为分类器的输入,输出每个候选划分阈值作为最优划分阈值的概率;

选取所述概率最大的候选阈值作为最优划分阈值。

7.根据权利要求6所述的方法,其特征在于,所述分类器的处理逻辑,包括:将所述可调度搬运任务的特征依次经过两层卷积层后展平为一维向量,再经一层全连接层后得到可调度搬运任务特征向量;

将所述每个场桥的位置坐标拼接成的向量经过一层全连接层后得到场桥位置向量;

将所述可调度搬运任务特征向量和所述场桥位置向量进行拼接,再经一层全连接层后得到拼接后的向量;

将所述拼接后的向量通过激活函数得到每个所述划分阈值是最优划分阈值的概率。

8.一种堆场内多场桥任务调度装置,其特征在于,所述多场桥间存在交叉约束,所述装置包括:特征获取模块,用于在每个决策时段开始时,获取此决策时段的所有可调度搬运任务的特征以及每个场桥上一决策时段未执行完成的任务序列,将其作为所述每个场桥的第一任务序列;

任务分配模块,用于基于所述特征,为此决策时段的所有可调度搬运任务分配场桥;

任务排序模块,用于通过调用旅行商问题求解算法对所述每个场桥中的可调度搬运任务进行排序,得到所述每个场桥的第二任务序列,其中所述旅行商问题求解算法包括LKH‑3求解器,所述调用旅行商问题求解算法对所述每个场桥中的可调度搬运任务进行排序,包括:S1:随机选择初始任务排序;

S2:计算按照所述初始任务排序进行可调度任务搬运所花费的时间;

S3:调整初始任务排序的顺序,同时计算调整后的排序进行可调度任务搬运时所花费的时间;

S4:若调整后的任务排序进行任务搬运时所花费的时间小于按照初始任务排序进行任务搬运时花费的时间,则将初始任务排序替换为调整后的任务排序;

S5:遍历所有可调度搬运任务,直至任务排序不再更新后输出最终任务序列;

任务序列确定模块,用于将所述每个场桥的第二任务序列对应拼接到其第一任务序列的末尾,得到所述每个场桥在此决策时段的总任务序列。

9.一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时,执行根据权利要求1‑7任意一项所述方法的指令。

10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1‑7任意一项所述方法的指令。

说明书 :

一种堆场内多场桥任务调度方法、装置、设备及存储介质

技术领域

[0001] 本说明书涉及场桥调度方法领域,具体涉及一种堆场内多场桥任务调度方法、装置、设备及存储介质。

背景技术

[0002] 堆场是海铁联运中连接海洋运输和铁路运输的重要转运节点,是货物转运效率的重要瓶颈,货主需要支付的存放费用也与集装箱在堆场的存放时间相关,提高堆场转运效率有利于提高海铁联运运输效率、降低货主成本。堆场中集装箱的转运时间即场桥完成所有集装箱搬运所花费的总时间。铁路堆场中通常设有两台或更多运行在同一导轨上的场桥,场桥间不可互相穿越。每个场桥分别负责部分集装箱搬运任务,各场桥执行任务的过程是并行的,因此所有集装箱搬运花费的总时间为每个场桥完成所负责部分搬运任务的时间的最大值。相对于单场桥情形,多场桥情形下场桥间任务分配的问题以及场桥间不能互相穿越使得最优调度方案的精确求解尤为困难。
[0003] 目前,场桥调度方法主要包括三种:基于启发式规则的调度方法、基于优化问题求解的方法以及基于滚动优化的方法。其中基于启发式规则的调度方法主要采用最近邻策略、先到先服务策略等调度任务,该种方法执行效率高,但规则需要预先人为指定,缺少性能保证。基于优化问题求解的方法将场桥调度问题建模为混合整数规划问题,通过设立目标函数来调度任务,该方法有较好的性能保证,但该方法存在约束多、计算量大的问题,难以满足实时性要求。基于滚动优化的方法采用了模型预测控制的思想,对于较长的决策时段,只执行其中一小部分,丢弃其余部分,浪费了大量的计算资源。

发明内容

[0004] 为解决上述技术问题,本说明书的目的在于提供一种堆场内多场桥任务调度方法,以便克服上述问题或者至少部分地解决上述问题。
[0005] 一方面,本说明书的一些实施例提供一种堆场内多场桥任务调度方法,所述方法包括:
[0006] 在每个决策时段开始时,获取此决策时段的所有可调度搬运任务的特征以及每个场桥上一决策时段未执行完成的任务序列,将其作为所述每个场桥的第一任务序列;
[0007] 基于所述特征,为此决策时段的所有可调度搬运任务分配场桥;
[0008] 通过调用旅行商问题求解算法对所述每个场桥中的可调度搬运任务进行排序,得到所述每个场桥的第二任务序列;
[0009] 将所述每个场桥的第二任务序列对应拼接到其第一任务序列的末尾,得到所述每个场桥在此决策时段的总任务序列。
[0010] 进一步地,所述为此决策时段的所有可调度搬运任务分配场桥,包括:
[0011] 根据场桥数量,在垂直于场桥导轨的方向上选取数量比所述场桥数量少一个的场桥任务划分阈值;
[0012] 以所述阈值所在的位置为界限,将堆场划分为与场桥数量相等的若干区域;
[0013] 按照就近原则为每个所述区域分配场桥。
[0014] 进一步地,所述在垂直于场桥导轨的方向上选取数量比所述场桥数量少一个的场桥任务划分阈值,包括:
[0015] 枚举堆场中排放集装箱的列数,将所述列数作为候选划分阈值;
[0016] 仿真获得所述候选划分阈值下,所有场桥完成所有搬运任务的时间;
[0017] 选取完成时间最短的候选划分阈值作为最优划分阈值;
[0018] 将所述可调度搬运任务的特征、场桥位置以及所有场桥完成所有搬运任务的时间作为分类器的输入,输出每个候选划分阈值作为最优划分阈值的概率;
[0019] 选取所述概率最大的候选阈值作为最优划分阈值。
[0020] 进一步地,所述分类器的处理逻辑,包括:
[0021] 将所述可调度搬运任务的特征依次经过两层卷积层后展平为一维向量,再经一层全连接层后得到可调度搬运任务特征向量;
[0022] 将所述每个场桥的位置坐标拼接成的向量经过一层全连接层后得到场桥位置向量;
[0023] 将所述可调度搬运任务特征向量和所述场桥位置向量进行拼接,再经一层全连接层后得到拼接后的向量;
[0024] 将所述拼接后的向量通过激活函数得到每个所述划分阈值是最优划分阈值的概率。
[0025] 进一步地,所述旅行商问题求解算法包括LKH‑3求解器,所述调用旅行商问题求解算法对所述每个场桥中的可调度搬运任务进行排序,包括:
[0026] 随机选择初始任务排序;
[0027] 计算按照所述初始任务排序进行可调度任务搬运所花费的时间;
[0028] 调整初始任务排序的顺序,同时计算调整后的排序进行可调度任务搬运时所花费的时间;
[0029] 若调整后的任务排序进行任务搬运时所花费的时间小于按照初始任务排序进行任务搬运时花费的时间,则将初始排序替换为调整后的任务排序;
[0030] 遍历所有可调度搬运任务,直至任务排序不再更新后输出最终任务序列。
[0031] 进一步地,在得到所述每个场桥在所述决策时段的总任务序列之后,进一步包括:
[0032] 根据所述每个场桥的总任务序列判断相邻两场桥之间是否发生交叉冲突;
[0033] 若发生冲突,则根据所述发生交叉冲突的相邻两场桥完成所述任务的总时间来调整相应场桥的调度。
[0034] 进一步地,根据所述每个场桥的总任务序列判断相邻两场桥之间是否发生冲突,包括:
[0035] 获取所述每个场桥的移动速度;
[0036] 根据所述特征得到所述每个可调度搬运任务的位置;
[0037] 根据所述每个场桥的总任务序列和场桥移动速度计算得到所述每个场桥的移动时间;
[0038] 根据所述位置和所述每个场桥的移动时间得到所述每个场桥位置坐标随时间变化的曲线图;
[0039] 若所述曲线图上存在曲线交叉,则判定所述曲线对应的场桥之间存在交叉冲突,否则,判定不存在交叉冲突。
[0040] 进一步地,根据所述发生交叉冲突的相邻两场桥完成所述任务的总时间来调整相应场桥的调度,包括:
[0041] 分别求解所述相邻两场桥完成其总任务序列中任务花费的总时间;
[0042] 在发生交叉冲突时刻,先执行所述总时间较大的场桥在所述时刻负责的任务,所述花费总时间较小的场桥移动到安全距离躲避,并且记录避让过程花费的时间;
[0043] 检查所述花费总时间较小的场桥执行下一个任务的过程中是否会与所述花费总时间最大的场桥产生交叉冲突;
[0044] 若产生冲突,则所述花费总时间较小的场桥避让所述花费总时间最大的场桥,不执行下一个任务,移动到安全距离躲避,并且记录所述花费总时间较小的场桥因避让而额外花费的时间 ;
[0045] 若不产生冲突,则所述花费总时间较小的场桥继续正常执行其所述总任务序列中的下一个任务;
[0046] 更新两场桥完成任务花费总时间;
[0047] 重复上述过程,直至两个场桥的全部任务均被执行。
[0048] 另一方面,本说明书的一些实施例还提供一种堆场内多场桥任务调度装置,所述装置包括:
[0049] 特征获取模块,用于在每个决策时段开始时,获取此决策时段的所有可调度搬运任务的特征以及每个场桥上一决策时段未执行完成的任务序列,将其作为所述每个场桥的第一任务序列;
[0050] 任务分配模块,用于基于所述特征,为此决策时段的所有可调度搬运任务分配场桥;
[0051] 任务排序模块,用于对所述每个场桥中的可调度搬运任务进行排序,得到所述每个场桥的第二任务序列;
[0052] 任务序列确定模块,用于将所述每个场桥的第二任务序列对应拼接到其第一任务序列的末尾,得到所述每个场桥在此决策时段的总任务序列。
[0053] 另一方面,本说明书的一些实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。
[0054] 另一方面,本说明书的一些实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
[0055] 另一方面,本说明书的一些实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
[0056] 本说明书的一些实施例提供的一个或者多个技术方案,至少具有如下的技术效果:
[0057] 本说明书的实施例自动获取每个决策时段可调度任务的特征和上一决策时段未执行完成的任务序列,并基于该特征为可调度任务分配场桥,该任务分配方法能够消除场桥间不能相互穿越的约束,使优化问题可以解耦到每个场桥,极大缩减了对应的优化问题难度,提高了求解效率。随后调用旅行商问题求解算法为每个场桥中的任务进行排序,得到每个场桥新的任务序列,并将上一决策时段未执行的序列放置在新序列前,得到场桥总的可执行任务序列。相比于现有技术中基于滚动优化的方法,能够利用上一决策时段被优化但未被执行的任务序列,节省了计算资源。
[0058] 上述说明仅是本说明书的一些实施例技术方案的概述,为了能够更清楚了解本说明书的一些实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本说明书的一些实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本说明书的一些实施例的具体实施方式。

附图说明

[0059] 为了更清楚地说明本说明书的实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0060] 图1示出了本说明书实施例中一种堆场内多场桥任务调度方法的流程图;
[0061] 图2示出了本说明书实施例中为每个决策时段所有可调度搬运任务分配场桥的步骤示意图;
[0062] 图3示出了本说明书实施例中堆场中两场桥任务划分算法的示意图;
[0063] 图4示出了本说明书实施例中根据所述每个场桥的总任务序列判断相邻两场桥之间是否发生冲突的步骤示意图;
[0064] 图5(a)‑图5(d)示出了本说明书实施例中存在场桥交叉冲突的部分决策时段中两个场桥的位置随时间变化的曲线示意图;
[0065] 图6(a)‑图6(b)示出了本说明书实施例中不存在场桥交叉冲突的部分决策时段中两个场桥的位置随时间变化的曲线示意图;
[0066] 图7为本说明书实施例中一种堆场内多场桥任务调度装置的结构示意图;
[0067] 图8为本说明书一些实施例中提供的计算机设备结构示意图。
[0068] 【附图标记说明】
[0069] 701、特征获取模块;
[0070] 702、任务分配模块;
[0071] 703、任务排序模块;
[0072] 704、任务序列确定模块;
[0073] 802、计算机设备;
[0074] 804、处理器;
[0075] 806、存储器;
[0076] 808、驱动机构;
[0077] 810、输入/输出接口;
[0078] 812、输入设备;
[0079] 814、输出设备;
[0080] 816、呈现设备;
[0081] 818、图形用户接口;
[0082] 820、网络接口;
[0083] 822、通信链路;
[0084] 824、通信总线。

具体实施方式

[0085] 为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
[0086] 需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本说明书的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。需要说明的是,本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
[0087] 图1是本说明书实施例提供的一种堆场内多场桥任务调度方法的流程图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。所述方法可以包括:
[0088] 101:在每个决策时段开始时,获取此决策时段的所有可调度搬运任务的特征以及每个场桥上一决策时段未执行完成的任务序列,将其作为所述每个场桥的第一任务序列;
[0089] 102:基于所述特征,为此决策时段的所有可调度搬运任务分配场桥;
[0090] 103:通过调用旅行商问题求解算法对所述每个场桥中的可调度搬运任务进行排序,得到所述每个场桥的第二任务序列;
[0091] 104:将所述每个场桥的第二任务序列对应拼接到其第一任务序列的末尾,得到所述每个场桥在此决策时段的总任务序列。
[0092] 本说明书的实施例自动获取每个决策时段可调度任务的特征和上一决策时段未执行完成的任务序列,并基于该特征为可调度任务分配场桥,该任务分配方法能够消除场桥间不能相互穿越的约束,使优化问题可以解耦到每个场桥,极大缩减了对应的优化问题难度,提高了求解效率。随后调用旅行商问题求解算法为每个场桥中的任务进行排序,得到每个场桥新的任务序列,并将上一决策时段未执行的序列放置在新序列前,得到场桥总的可执行任务序列。相比于现有技术中基于滚动优化的方法,能够利用上一决策时段被优化但未被执行的任务序列,节省了计算资源。
[0093] 在一些实施例中,将决策时段定义为从某个货船或列车到达开始,下一个货船或列车到达结束,即可调度搬运任务相邻两次发生变化的间隔。所述可调度搬运任务的特征包括搬运任务的位置和搬运任务的类型。其中所述搬运任务的位置是堆场坐标(x、y、z),所述x方向平行于场桥导轨方向,所述y方向垂直于场桥导轨方向,所述z方向为高度。所述搬运任务的类型包括:从集卡运入堆场、从堆场运出到列车、从集卡直接运到列车。所述上一决策时段未执行完成的任务序列按照上一决策时段确定的执行顺序排列。在每个决策时段开始前,根据当日货船或列车运输计划,获取此决策时段的所有可调度搬运任务的特征。以每一货船或列车的到达为事件,结合事件驱动的方案实现时间窗宽度的不均等划分,从而在货物到达密集时增加调度算法的调用频率,减小单次调度的问题规模,算法不会因为单个时间窗内需调度任务数量过多,过于复杂而无法有效求解。
[0094] 参照附图2,在一些实施例中,所述为此决策时段的所有可调度搬运任务分配场桥,可以包括:
[0095] 201:根据场桥数量,在垂直于场桥导轨的方向上选取数量比所述场桥数量少一个的场桥任务划分阈值;
[0096] 202:以所述阈值所在的位置为界限,将堆场划分为与场桥数量相等的若干区域;
[0097] 203:按照就近原则为每个所述区域分配场桥。
[0098] 场桥交叉约束和任务分配相关约束是耦合多场桥调度问题的重要约束,由于场桥沿导轨方向(x方向)移动,因此任务分配方法能完全分割各个场桥负责的区域,保证场桥在整个运行过程中不交叉。在此分配方法下,原本的多场桥联合调度问题不再耦合,退化为每个场桥单独调度的问题,而单个场桥的调度等价于一个非对称旅行商问题,现有的算法已能取得较好效果。优选地,以两场桥的可调度搬运任务分配为例,如图3所示,在垂直于场桥导轨的方向选择一个划分阈值x0,以所述划分阈值所在位置为界限,将堆场划分为两个区域。由于场桥1离左边区域更近,场桥2离右边区域更近,因此按照就近原则将所有位置坐标满足x< x0的集装箱搬运任务分配给场桥1,其余集装箱搬运任务分配给场桥2。在不存在翻箱、且场桥的移动时间取决于其x方向移动时间的情况下,对于任意不满足前述任务分配规则的分配方法,总可以将场桥1被分配的任务中x最大的任务与场桥2被分配的任务中x最小的任务交换,重复此过程,最终将近似得到满足前述任务分配规则的分配方法,因此所述的任务分配方法具有一定的性能保证。
[0099] 参照附图3,优选地,以两场桥的场桥调度为例,所述在垂直于场桥导轨的方向上选取数量比所述场桥数量少一个的场桥任务划分阈值,可以包括:
[0100] 枚举堆场中堆放集装箱的列数,本实施例中列数为9,每列表示一组箱位数,每个箱位存储一组集装箱,将每列箱位在x方向的位置作为候选划分阈值,表示为一个集合;
[0101] 仿真获得所述候选划分阈值下,所有场桥完成所有搬运任务的时间;
[0102] 选取完成时间最短的候选划分阈值作为最优划分阈值;
[0103] 将所述可调度搬运任务的特征、场桥位置以及所有场桥完成所有搬运任务的时间作为分类器的输入,输出每个候选划分阈值作为最优划分阈值的概率;
[0104] 选取所述概率最大的候选阈值作为最优划分阈值。
[0105] 通过枚举堆场中排放集装箱的列数,将所述列数作为候选划分阈值,然后仿真获得所述候选划分阈值下,所有场桥完成所有搬运任务的时间,选取完成时间最短的候选划分阈值作为最优划分阈值的方法在理论上一定能获得最优解,但难以满足实际问题中的实时性要求。因此将从枚举方法中得到的候选划分阈值、可调度搬运任务的特征、场桥位置以及所有场桥完成所有搬运任务的时间作为数据集,使用监督学习方法训练分类器,拟合从上述堆场特征到每个候选划分阈值作为最优划分阈值的概率所构成的向量的映射。在实际应用时,将可调度搬运任务的特征输入训练好的模型中,模型输出每个候选划分阈值作为最优划分阈值的概率,选取概率最高的候选划分阈值作为最优划分阈值。进一步地,利用监督学习方法训练分类器的过程采用目前主流的方法均可,本说明书对此不作限定。
[0106] 优选地,本说明书实施例中,所述使用监督学习方法训练分类器的过程,可以包括以下步骤:
[0107] 步骤a:读取所述枚举方法收集到的数据集;
[0108] 步骤b:初始化分类器和优化器,本说明书实施过程中选用Adam优化器;
[0109] 步骤c:指定训练轮数;
[0110] 步骤d:每轮训练中从数据集中抽取若干条数据,每条数据包括堆场特征(输入)及每个划分位置x作为最优划分位置的概率所构成的向量(标签);
[0111] 步骤e:将上述可调度搬运任务特征输入分类器,得到预测结果;
[0112] 步骤f:根据预测结果和数据标签求解交叉熵损失,对损失进行梯度反向传播,使用优化器更新分类器参数。
[0113] 进一步地,所述分类器采用目前主流的分类器均可,本说明书对此不作限定。优选地,本说明书实施例中,所述分类器的处理逻辑,可以包括:
[0114] 将所述可调度搬运任务的特征依次经过两层卷积层后展平为一维向量,再经一层全连接层后得到可调度搬运任务特征向量;
[0115] 将所述每个场桥的位置坐标拼接成的向量经过一层全连接层后得到场桥位置向量;
[0116] 将所述可调度搬运任务特征向量和所述场桥位置向量进行拼接,再经一层全连接层后得到拼接后的向量;
[0117] 将所述拼接后的向量通过激活函数得到所述每个划分阈值是最优划分阈值的概率。
[0118] 在一些实施例中,所述旅行商问题求解算法包括LKH‑3求解器,所述调用旅行商问题求解算法对所述每个场桥中的可调度搬运任务进行排序,包括:
[0119] 随机选择初始任务排序;
[0120] 计算按照所述初始任务排序进行可调度任务搬运所花费的时间;
[0121] 调整初始任务排序的顺序,同时计算调整后的排序进行可调度任务搬运时所花费的时间;
[0122] 若调整后的任务排序进行任务搬运时所花费的时间小于按照初始任务排序进行任务搬运时花费的时间,则将初始排序替换为调整后的任务排序;
[0123] 遍历所有可调度搬运任务,直至任务排序不再更新后输出最终任务序列。
[0124] 可以理解为,将每个场桥被分配的每个任务作为一个路径点,定义两个任务a、b的距离为场桥完成任务a的时间与场桥从任务a的终止点移动到任务b的起始点所需的时间,这一距离是非对称的,因此可以将场桥对其被分配的任务进行排序的过程视为非对称旅行商问题(ATSP),通过调用ATSP求解方法对被分配的任务进行排序。进一步地,ATSP求解方法可以为模拟退火算法、遗传算法、蚁群算法、禁忌搜索算法等,本说明书对此不作限定。优选地,本说明书实施例中选择LKH‑3求解器来对场桥中被分配的任务进行排序。LKH求解器是当前求解旅行商问题较好的算法,基于Lin‑Kernighan思想,通过将路径点的连接边切断、重连的方式,不断改进获得最优的路径解。LKH‑3求解器作为LKH求解器的扩展,具有更高的求解效率。
[0125] 进一步地,在一些实施例中,在得到所述每个场桥在所述决策时段的总任务序列之后,进一步可以包括:
[0126] 根据所述每个场桥的总任务序列判断相邻两场桥之间是否发生交叉冲突;
[0127] 若发生冲突,则根据所述发生交叉冲突的相邻两场桥完成所述任务的总时间来调整相应场桥的调度。
[0128] 参照附图4,一些实施例中,根据所述每个场桥的总任务序列判断相邻两场桥之间是否发生冲突,可以包括以下步骤:
[0129] 401:获取所述每个场桥的移动速度。具体而言,场桥的移动速度是预先设定的,表示为一个向量,包含场桥在运行过程中在三个方向的平均速度,且均为匀速移动;
[0130] 402:根据所述特征得到所述每个可调度搬运任务的位置;
[0131] 403:根据所述每个场桥的总任务序列和场桥移动速度计算得到所述每个场桥的移动时间;
[0132] 404:根据所述位置和所述每个场桥的移动时间得到所述每个场桥位置坐标随时间变化的曲线图。具体而言,记Z为每个栈最大堆放箱数。记场桥当前位置为,需搬运的集装箱位置为 ,分别需要搬运到 ,即位置位于 的集装箱要运到位置 ,i取值为 。首先根据每个集装箱的
当前位置和目标位置获取场桥关键点序列: ,对于每一个
轨迹片段 ,分为以下3个移动阶段依次进行:
[0133] 1)上升: ,花费时间为: *箱位高度/场桥z方向速度;
[0134] 2)水平移动: ,花费时间为: ,其中 *箱位x方向长度/场桥x方向速度, *箱位y方向长度/
场桥y方向速度;
[0135] 3)下降: ,花费时间为: *箱位高度/场桥z方向速度;
[0136] 其中水平移动时间取x、y方向的时间最大值是因为场桥在x、y方向可以同时移动,但也有部分场桥在x、y方向不能同时移动,此时应分别考虑。
[0137] 特别地,当 且 时,场桥的移 动过程可简化为:,花费时间为: *箱位高度/场桥z方向速度。
[0138] 另外,对于集装箱运出任务,移动部分结束后,还需计算翻箱轨迹,对于需运出的集装箱 ,翻箱位位于 ,此处z=0是因为翻箱位每次使用后需保证清空,翻箱过程包括以下部分:
[0139] 1)将需运出集装箱上方每一个集装箱 运送到翻箱区,其中 ;
[0140] 2)将待运出集装箱 移至运出位置 ;
[0141] 3)将翻箱区每个集装箱 运回 。
[0142] 翻箱过程的移动时间计算同前,根据以上过程,可得到场桥完整的x‑t曲线。
[0143] S405:若所述曲线图上存在曲线交叉,则判定所述曲线图对应的场桥之间存在交叉冲突,否则,判定不存在交叉冲突。
[0144] 图5(a)‑图5(d)是本说明书实施例中存在场桥交叉冲突的部分决策时段中两个场桥的位置随时间变化的曲线示意图,横坐标为时间,单位是分钟,纵坐标为场桥x坐标。其中图5(a)、图5(b)分别表示一个实施例中发生交叉冲突后调整场桥调度前后两场桥的x‑t曲线图,图5(a)的场桥x‑t曲线图中存在虚线位于实线下方的部分,表明两场桥发生了交叉冲突,经过调整调度后曲线图中不存在虚线位于实线下方的部分,说明此时已不存在交叉冲突。图5(c)、图5(d)分别表示另一实施例中发生交叉冲突后调整场桥调度前后两场桥的x‑t曲线图。图6(a)‑图6(b)是本说明书实施例中不存在场桥交叉冲突的部分决策时段中两个场桥的位置随时间变化的曲线示意图,横坐标为时间,单位是分钟,纵坐标为场桥x坐标。其中图6(a)表示一个实施例中不存在交叉冲突的两场桥的x‑t曲线图,图6(b)表示另一实施例中不存在交叉冲突的两场桥的x‑t曲线图,从图中可以看出,不存在虚线位于实线下方的部分,表明不存在交叉冲突,只需按原定任务序列执行任务即可。
[0145] 在一些实施例中,根据所述每个场桥完成所述任务的总时间来调整所述每个场桥的调度,可以包括以下步骤:
[0146] 步骤a:分别求解所述相邻两场桥完成其总任务序列中任务花费的总时间;
[0147] 步骤b:在发生交叉冲突时刻,先执行所述总时间较大的场桥在所述时刻负责的任务,所述花费总时间较小的场桥移动到安全距离躲避,并且记录避让过程花费的时间;
[0148] 其中安全距离是预先设定的,通常指两个场桥在导轨上的最小距离;将花费总时间较大的场桥记为 ,花费总时间较小的场桥记为 ,当场桥 的目标位置固定后,场桥 移动到距离场桥 的目标位置安全距离处的位置等待;
[0149] 步骤c:检查所述场桥 执行下一个任务的过程中是否会与所述场桥 产生交叉冲突;
[0150] 步骤d:若产生冲突,则所述场桥 避让所述场桥 ,不执行下一个任务,移动到安全距离躲避,并且记录所述场桥 因避让而额外花费的时间;
[0151] 具体而言,所述因避让而额外花费的时间并不只是场桥 移动到安全距离这一移动过程和躲避这一等待过程需要的时间;举例来说,假设 当前位于x=3,原本的下一个目标位置在x=6, 从当前位置移动到目标位置只需花费3单位时间。但为避让另一个场桥需要首先移动到x=1,并在x=1等待2单位时间,再从1移动到6,共花费2+5+2=9单位的时间,因此因避让而额外花费的时间即为(2+5+2)‑3=6,而不只是移动到安全距离这一移动过程和躲避这一等待过程需要的时间,即2+2=4;
[0152] 步骤e:若不产生冲突,则所述花费总时间较小的场桥继续正常执行其所述总任务序列中的下一个任务;
[0153] 步骤f:更新两场桥完成任务花费总时间。
[0154] 具体而言,所述完成任务花费总时间是动态变化的,每一次场桥进行避让后,都会附加上场桥因避让而额外花费的时间再重新计算两场桥的完成任务的总时间,因此,花费总时间较小的场桥也会随着“所述花费总时间”的更新而动态变化。
[0155] 重复上述过程,直至两个场桥的全部任务均被执行。
[0156] 本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
[0157] 与上述的堆场内多场桥任务调度方法对应,本说明书的一些实施例还提供了一种堆场内多场桥任务调度装置,参考图7所示,在一些实施例中,所述装置可以包括:
[0158] 特征获取模块701,用于在每个决策时段开始时,获取此决策时段的所有可调度搬运任务的特征以及每个场桥上一决策时段未执行完成的任务序列,将其作为所述每个场桥的第一任务序列;
[0159] 任务分配模块702,用于为此决策时段的所有可调度搬运任务分配场桥;
[0160] 任务排序模块703,用于对所述每个场桥中的可调度搬运任务进行排序,得到所述每个场桥的第二任务序列;
[0161] 任务序列确定模块704,用于将所述每个场桥的第二任务序列对应拼接到其第一任务序列的末尾,得到所述每个场桥在此决策时段的总任务序列。
[0162] 需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
[0163] 如图8所示为本说明书实施例节点的结构示意图,在本实施例中描述了侧链网络中的节点以及主链网络中的节点的结构,可以包括中继节点、决策者节点或其他职能节点,所述节点在本实施例中被称为计算机设备,计算机设备802可以包括一个或多个处理器804,诸如一个或多个中央处理单元(CPU),每个处理单元可以实现一个或多个硬件线程。计算机设备802还可以包括任何存储器806,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储器806可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备802的固定或可移除部件。在一种情况下,当处理器804执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备802可以执行相关联指令的任一操作。计算机设备802还包括用于与任何存储器交互的一个或多个驱动机构808,诸如硬盘驱动机构、光盘驱动机构等。
[0164] 计算机设备802还可以包括输入/输出模块810(I/O),其用于接收各种输入(经由输入设备812)和用于提供各种输出(经由输出设备814)。一个具体输出机构可以包括呈现设备816和相关联的图形用户接口(GUI)818。在其他实施例中,还可以不包括输入/输出模块810(I/O)、输入设备812以及输出设备814,仅作为网络中的一台计算机设备。计算机设备802还可以包括一个或多个网络接口820,其用于经由一个或多个通信链路822与其他设备交换数据。一个或多个通信总线824将上文所描述的部件耦合在一起。
[0165] 通信链路822可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路822可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
[0166] 本申请是参照本说明书一些实施例的方法、设备(系统)、计算机可读存储介质和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理器的处理器以产生一个机器,使得通过计算机或其他可编程数据处理器的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0167] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理器以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0168] 这些计算机程序指令也可装载到计算机或其他可编程数据处理器上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0169] 在一个典型的配置中,计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0170] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0171] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算机设备访问的信息。按照本说明书中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0172] 本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0173] 应理解,在本说明书的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本说明书实施例的实施过程构成任何限定。
[0174] 还应理解,在本说明书实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本说明书中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0175] 本领域普通技术人员可以意识到,结合本说明书中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本说明书的范围。
[0176] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0177] 在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0178] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本说明书实施例方案的目的。
[0179] 另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0180] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0181] 本说明书中应用了具体实施例对本说明书的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本说明书的方法及其核心思想;同时,对于本领域的一般技术人员,依据本说明书的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本说明书的限制。