基于多目标蚁群算法的整车物流调度方法及装置、存储介质、终端转让专利

申请号 : CN201811081434.3

文献号 : CN108846623B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 金忠孝梁亮

申请人 : 安吉汽车物流股份有限公司上海汽车集团股份有限公司

摘要 :

一种基于多目标蚁群算法的整车物流调度方法及装置、存储介质、终端,所述方法包括:获取整车物流数据,所述整车物流数据包括订单数据及运力数据;基于所述整车物流数据获取M个候选分配方案,其中,M≥1;将所述候选分配方案记为蚂蚁,将M只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,舍弃所述蚁群中所有目标向量均被支配的蚂蚁,以获取非劣解集,所述蚂蚁在每一目标上的投影记为对应于该目标的目标向量;当所述蚁群的转移状态满足预设终止条件时,根据业务场景从获取的所述非劣解集中选取最优调度方案。通过本发明提供的方案能够实现整车物流的自动化调度,且利于实现最优调度,从整体上降低货运车的动态调度成本。

权利要求 :

1.一种基于多目标蚁群算法的整车物流调度方法,其特征在于,包括:

获取整车物流数据,所述整车物流数据包括订单数据及运力数据;

基于所述整车物流数据获取M个候选分配方案,其中,M≥1;

将所述候选分配方案记为蚂蚁,将M只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,每只蚂蚁每走一步,舍弃所述蚁群中所有目标向量均被支配的蚂蚁,以获取非劣解集,所述蚂蚁在每一目标上的投影记为对应于该目标的目标向量,其中,对于一个候选分配方案包括的订单和运力,所述蚂蚁的转移表征所述订单和运力的匹配结果的变化,所述蚁群中的每只蚂蚁均分配有i个初始化信息素矩阵和启发信息矩阵,i为目标数,所述初始化信息素矩阵和启发信息矩阵与目标一一对应,其中,对于每只蚂蚁的每一目标,所述启发信息矩阵用于描述所述蚂蚁在所述目标下的订单与运力的初始匹配结果,所述初始化信息素矩阵用于描述所述蚂蚁在所述目标下各订单在各运力之间的初始转移概率;

当所述蚁群的转移状态满足预设终止条件时,根据业务场景从获取的所述非劣解集中选取最优调度方案;

其中,所述在所述蚁群中各只蚂蚁转移期间,每只蚂蚁每走一步,舍弃所述蚁群中所有目标向量均被支配的蚂蚁,以获取非劣解集包括:在所述蚁群中各只蚂蚁转移期间,每只蚂蚁每走一步,基于蚁群算法计算和更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵,其中,对于每只蚂蚁的每一目标,所述状态转移矩阵用于描述所述蚂蚁在所述目标下的订单和运力的最新匹配结果,所述信息素矩阵用于描述所述蚂蚁在所述目标下各订单在运力之间的最新转移概率;

对于每只蚂蚁,根据所述状态转移矩阵计算所述蚂蚁在各目标上的目标向量;

舍弃在各目标上的目标向量均劣于蚁群中其他蚂蚁的对应的目标向量的蚂蚁,以获取所述非劣解集,其中,对于所述非劣解集中的蚂蚁,所述蚂蚁至少在一个目标上的目标向量优于所述非劣解集中的其他蚂蚁;

其中,在所述蚂蚁转移期间,对于每只蚂蚁的每一目标,将更新后的信息素矩阵作为所述蚂蚁下一次转移时的初始化信息素矩阵。

2.根据权利要求1所述的整车物流调度方法,其特征在于,所述基于所述整车物流数据获取M个候选分配方案包括:循环迭代地随机匹配所述订单数据和运力数据,对于每次迭代,当订单分配完毕且匹配的运力最少时,或者,当运力分配完毕时,将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案;

基于预设约束条件筛选历次迭代获取的候选分配方案,以获取所述M个候选分配方案。

3.根据权利要求2所述的整车物流调度方法,其特征在于,所述循环迭代地随机匹配所述订单数据和运力数据包括:从所述运力数据中随机抽取一个运力并开始内迭代,所述内迭代的过程包括:遍历所述订单数据包括的订单,以从中筛选出与所述运力满足装载约束的所有订单;判断所述运力是否满载;

当所述运力未满载时,清空所述运力的匹配结果并重新执行所述内迭代,直至本次内迭代的结果为所述运力满载时,判断所述订单数据包括的订单是否分配完毕;

当所述订单数据包括的订单未分配完毕,且所述运力数据包括的运力未分配完毕时,继续从所述运力数据中随机抽取一运力并执行所述内迭代,直至所述运力数据包括的运力分配完毕或所述订单数据包括的订单分配完毕,以完成一次循环迭代。

4.根据权利要求3所述的整车物流调度方法,其特征在于,所述将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案包括:比较本次循环迭代确定的运力的数量与上一次循环迭代确定的运力的数量;

若本次循环迭代确定的运力的数量小于上一次循环迭代确定的运力的数量,将本次循环迭代确定的运力与订单的匹配结果作为本次迭代获取的候选分配方案。

5.根据权利要求3所述的整车物流调度方法,其特征在于,所述遍历所述订单数据包括的订单,以从中筛选出与所述运力满足装载约束的所有订单包括:从所述订单数据中随机抽取一个订单;

判断所述运力和所述订单是否满足所述装载约束;

当所述运力和所述订单不满足所述装载约束时,重新从所述订单数据中随机抽取一个订单,直至本次随机抽取的订单与所述运力满足所述装载约束时,判断所述订单数据包括的订单是否遍历完毕;

当所述订单数据包括的订单未遍历完毕时,继续从所述订单数据中随机抽取一个订单并判断所述运力和本次随机抽取的订单是否满足所述装载约束,直至所述订单数据包括的订单全部遍历完毕。

6.根据权利要求2所述的整车物流调度方法,其特征在于,所述预设约束条件选自:配载约束;

意向方向约束;

可拼城市数量约束。

7.根据权利要求1所述的整车物流调度方法,其特征在于,对于每只蚂蚁,所述启发信息矩阵基于如下公式表示:Bx=(buv);

其中,Bx为所述蚂蚁的第x个目标的启发信息矩阵,1≤x≤i,buv为所述启发信息矩阵中第u行第v列的元素,u为所述订单数据中的第u个订单,1≤u≤U,U为所述订单数据包括的总订单数,v为所述运力数据中的第v个运力,1≤v≤V,V为所述运力数据包括的总运力数,当buv=1时表示在所述蚂蚁中第u个订单与第v个运力相匹配,当buv=0时表示在所述蚂蚁中第u个订单与第v个运力不相匹配。

8.根据权利要求1所述的整车物流调度方法,其特征在于,对于每只蚂蚁,所述蚂蚁在第x个目标的初始化信息素矩阵Ax包括U×V个元素,其中,U为所述订单数据包括的总订单数,V为所述运力数据包括的总运力数,所述U×V个元素均以预设常数填充。

9.根据权利要求1所述的整车物流调度方法,其特征在于,在所述蚁群中各只蚂蚁转移期间,更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵的更新周期是以各只蚂蚁转移时的步长为单位的。

10.根据权利要求1所述的整车物流调度方法,其特征在于,对于所述蚁群中的每只蚂蚁,所述蚂蚁是按照确定性概率或随机性概率进行转移的,其中,所述按照确定性概率进行转移是指按照所述蚂蚁的信息素矩阵指示的最大概率方向进行转移,所述按照随机性概率进行转移是指按照随机方向进行转移,所述信息素矩阵用于描述所述蚂蚁的各订单在运力之间的最新转移概率。

11.根据权利要求10所述的整车物流调度方法,其特征在于,所述蚂蚁按照确定性概率或随机性概率进行转移的过程包括:所述蚂蚁从预设区间内抽取一个随机数;

当所述随机数小于预设阈值时,按照确定性概率进行转移;否则,按照随机性概率进行转移。

12.根据权利要求1所述的整车物流调度方法,其特征在于,所述预设终止条件包括:所述蚁群中各只蚂蚁的转移次数达到预设循环次数。

13.根据权利要求1所述的整车物流调度方法,其特征在于,所述整车物流数据是通过对原始数据进行预处理获得的,所述获取整车物流数据包括:获取所述原始数据;

根据预设标准值范围筛查所述原始数据,以剔除所述原始数据中不符合对应的预设标准值范围的数据;

根据筛查后的原始数据获取所述整车物流数据。

14.根据权利要求1至13中任一项所述的整车物流调度方法,其特征在于,所述目标选自:最大化装载数量;

最大化装载商品车紧急程度;

最大化装载大、中型商品车数量。

15.根据权利要求1至13中任一项所述的整车物流调度方法,其特征在于,所述候选分配方案的数量M是根据所述订单数据确定的。

16.一种基于多目标蚁群算法的整车物流调度装置,其特征在于,包括:获取模块,用于获取整车物流数据,所述整车物流数据包括订单数据及运力数据;

初始装载模块,用于基于所述整车物流数据获取M个候选分配方案,其中,M≥1;

多目标蚁群算法优化模块,将所述候选分配方案记为蚂蚁,将M只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,每只蚂蚁每走一步,舍弃所述蚁群中所有目标向量均被支配的蚂蚁,以获取非劣解集,所述蚂蚁在每一目标上的投影记为对应于该目标的目标向量,其中,对于一个候选分配方案包括的订单和运力,所述蚂蚁的转移表征所述订单和运力的匹配结果的变化,所述蚁群中的每只蚂蚁均分配有i个初始化信息素矩阵和启发信息矩阵,i为目标数,所述初始化信息素矩阵和启发信息矩阵与目标一一对应,其中,对于每只蚂蚁的每一目标,所述启发信息矩阵用于描述所述蚂蚁在所述目标下的订单与运力的初始匹配结果,所述初始化信息素矩阵用于描述所述蚂蚁在所述目标下各订单在各运力之间的初始转移概率;

选取模块,当所述蚁群的转移状态满足预设终止条件时,根据业务场景从获取的所述非劣解集中选取最优调度方案;

其中,所述多目标蚁群算法优化模块执行如下步骤:

在所述蚁群中各只蚂蚁转移期间,每只蚂蚁每走一步,基于蚁群算法计算和更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵,其中,对于每只蚂蚁的每一目标,所述状态转移矩阵用于描述所述蚂蚁在所述目标下的订单和运力的最新匹配结果,所述信息素矩阵用于描述所述蚂蚁在所述目标下各订单在运力之间的最新转移概率;

对于每只蚂蚁,根据所述状态转移矩阵计算所述蚂蚁在各目标上的目标向量;

舍弃在各目标上的目标向量均劣于蚁群中其他蚂蚁的对应的目标向量的蚂蚁,以获取所述非劣解集,其中,对于所述非劣解集中的蚂蚁,所述蚂蚁至少在一个目标上的目标向量优于所述非劣解集中的其他蚂蚁;

其中,在所述蚂蚁转移期间,对于每只蚂蚁的每一目标,将更新后的信息素矩阵作为所述蚂蚁下一次转移时的初始化信息素矩阵。

17.一种存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至15中任一项所述方法的步骤。

18.一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,其特征在于,所述处理器运行所述计算机指令时执行权利要求1至15中任一项所述方法的步骤。

说明书 :

基于多目标蚁群算法的整车物流调度方法及装置、存储介质、

终端

技术领域

[0001] 本发明涉及汽车物流技术领域,具体地涉及一种基于多目标蚁群算法的整车物流调度方法及装置、存储介质、终端。

背景技术

[0002] 整车物流是指整车从主机厂、各配送站点、经销商运送到最终客户的一系列活动和过程,整车物流调度需要解决物流路径规划、配载和车辆调度等一系列问题。
[0003] 现有整车物流调度涉及的因素较为复杂,约束条件众多,目标多元且相互制约,例如包括主机厂及其仓库、物流公司及其中转库、承运商及其合约司机、经销商及其仓库等多个方面,归纳来讲是一个多目标优化问题。
[0004] 而大多数的物流公司是根据人工经验来定制调度运输方案的,配载过程多采用手工操作,配载方案完全取决于调度人员的自身经验。这样的整车物流调度方式存在考虑变量因素少、调度方案非最优、运力资源使用率不高、订单反应速度慢等诸多缺点,无法达到汽车厂商及客户的预期。

发明内容

[0005] 本发明解决的技术问题是如何实现整车物流的自动化调度,以更合理、全面的调度逻辑从整体上降低货运车的动态调度成本。
[0006] 为解决上述技术问题,本发明实施例提供一种基于多目标蚁群算法的整车物流调度方法,包括:获取整车物流数据,所述整车物流数据包括订单数据及运力数据;基于所述整车物流数据获取M个候选分配方案,其中,M≥1;将所述候选分配方案记为蚂蚁,将M只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,舍弃所述蚁群中所有目标向量均被支配的蚂蚁,以获取非劣解集,所述蚂蚁在每一目标上的投影记为对应于该目标的目标向量;当所述蚁群的转移状态满足预设终止条件时,根据业务场景从获取的所述非劣解集中选取最优调度方案。
[0007] 可选的,所述基于所述整车物流数据获取M个候选分配方案包括:循环迭代地随机匹配所述订单数据和运力数据,对于每次迭代,当订单分配完毕且匹配的运力最少时,或者,当运力分配完毕时,将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案;基于预设约束条件筛选历次迭代获取的候选分配方案,以获取所述M个候选分配方案。
[0008] 可选的,所述循环迭代地随机匹配所述订单数据和运力数据包括:从所述运力数据中随机抽取一个运力并开始内迭代,所述内迭代的过程包括:遍历所述订单数据包括的订单,以从中筛选出与所述运力满足装载约束的所有订单;判断所述运力是否满载;当所述运力未满载时,清空所述运力的匹配结果并重新执行所述内迭代,直至本次内迭代的结果为所述运力满载时,判断所述订单数据包括的订单是否分配完毕;当所述订单数据包括的订单分配未完毕,且所述运力数据包括的运力未分配完毕时,继续从所述运力数据中随机抽取一运力并执行所述内迭代,直至所述运力数据包括的运力分配完毕或所述订单数据包括的订单分配完毕,以完成一次循环迭代。
[0009] 可选的,所述将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案包括:比较本次循环迭代确定的运力的数量与上一次循环迭代确定的运力的数量;若本次循环迭代确定的运力的数量小于上一次循环迭代确定的运力的数量,将本次循环迭代确定的运力与订单的匹配结果作为本次迭代获取的候选分配方案。
[0010] 可选的,所述遍历所述订单数据包括的订单,以从中筛选出与所述运力满足装载约束的所有订单包括:从所述订单数据中随机抽取一个订单;判断所述运力和所述订单是否满足所述装载约束;当所述运力和所述订单不满足所述装载约束时,重新从所述订单数据中随机抽取一个订单,直至本次随机抽取的订单与所述运力满足所述装载约束时,判断所述订单数据包括的订单是否遍历完毕;当所述订单数据包括的订单未遍历完毕时,继续从所述订单数据中随机抽取一个订单并判断所述运力和本次随机抽取的订单是否满足所述装载约束,直至所述订单数据包括的订单全部遍历完毕。
[0011] 可选的,所述预设约束条件选自:配载约束;意向方向约束;可拼城市数量约束。
[0012] 可选的,所述蚁群中的每只蚂蚁均分配有i个初始化信息素矩阵和启发信息矩阵,i为目标数,所述初始化信息素矩阵和启发信息矩阵与目标一一对应,其中,对于每只蚂蚁的每一目标,所述启发信息矩阵用于描述所述蚂蚁在所述目标下的订单与运力的初始匹配结果,所述初始化信息素矩阵用于描述所述蚂蚁在所述目标下各订单在各运力之间的初始转移概率。
[0013] 可选的,对于每只蚂蚁,所述启发信息矩阵基于如下公式表示:Bx=(buv);其中,Bx为所述蚂蚁的第x个目标的启发信息矩阵,1≤x≤i,buv为所述启发信息矩阵中第u行第v列的元素,u为所述订单数据中的第u个订单,1≤u≤U,U为所述订单数据包括的总订单数,v为所述运力数据中的第v个运力,1≤v≤V,V为所述运力数据包括的总运力数,当buv=1时表示在所述蚂蚁中第u个订单与第v个运力相匹配,当buv=0时表示在所述蚂蚁中第u个订单与第v个运力不相匹配。
[0014] 可选的,对于每只蚂蚁,所述蚂蚁在第x个目标的初始化信息素矩阵Ax包括U×V个元素,其中,U为所述订单数据包括的总订单数,V为所述运力数据包括的总运力数,所述U×V个元素均以预设常数填充。
[0015] 可选的,所述在所述蚁群中各只蚂蚁转移期间,舍弃所述蚁群中所有的目标向量均被支配的蚂蚁,以获取非劣解集包括:在所述蚁群中各只蚂蚁转移期间,基于蚁群算法计算和更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵,其中,对于每只蚂蚁的每一目标,所述状态转移矩阵用于描述所述蚂蚁在所述目标下的订单和运力的最新匹配结果,所述信息素矩阵用于描述所述蚂蚁在所述目标下各订单在运力之间的最新转移概率;对于每只蚂蚁,根据所述状态转移矩阵计算所述蚂蚁在各目标上的目标向量;舍弃在各目标上的目标向量均劣于蚁群中其他蚂蚁的对应的目标向量的蚂蚁,以获取所述非劣解集,其中,对于所述非劣解集中的蚂蚁,所述蚂蚁至少在一个目标上的目标向量优于所述非劣解集中的其他蚂蚁。
[0016] 可选的,在所述蚁群中各只蚂蚁转移期间,更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵的更新周期是以各只蚂蚁转移时的步长为单位的。
[0017] 可选的,在所述蚂蚁转移期间,对于每只蚂蚁的每一目标,将更新后的信息素矩阵作为所述蚂蚁下一次转移时的初始化信息素矩阵。
[0018] 可选的,对于所述蚁群中的每只蚂蚁,所述蚂蚁是按照确定性概率或随机性概率进行转移的,其中,所述按照确定性概率进行转移是指按照所述蚂蚁的信息素矩阵指示的最大概率方向进行转移,所述按照随机性概率进行转移是指按照随机方向进行转移,所述信息素矩阵用于描述所述蚂蚁的各订单在运力之间的最新转移概率。
[0019] 可选的,所述蚂蚁按照确定性概率或随机性概率进行转移的过程包括:所述蚂蚁从预设区间内抽取一个随机数;当所述随机数小于预设阈值时,按照确定性概率进行转移;否则,按照随机性概率进行转移。
[0020] 可选的,所述预设终止条件包括:所述蚁群中各只蚂蚁的转移次数达到预设循环次数。
[0021] 可选的,所述整车物流数据是通过对原始数据进行预处理获得的,所述获取整车物流数据包括:获取所述原始数据;根据预设标准值范围筛查所述原始数据,以剔除所述原始数据中不符合对应的预设标准值范围的数据;根据筛查后的原始数据获取所述整车物流数据。
[0022] 可选的,所述目标选自:最大化装载数量;最大化装载商品车紧急程度;最大化装载大、中型商品车数量。
[0023] 可选的,所述候选分配方案的数量M是根据所述订单数据确定的。
[0024] 为解决上述技术问题,本发明实施例还提供一种基于多目标蚁群算法的整车物流调度装置,包括:获取模块,用于获取整车物流数据,所述整车物流数据包括订单数据及运力数据;初始装载模块,用于基于所述整车物流数据获取M个候选分配方案,其中,M≥1;多目标蚁群算法优化模块,将所述候选分配方案记为蚂蚁,将M只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,舍弃所述蚁群中所有目标向量均被支配的蚂蚁,以获取非劣解集,所述蚂蚁在每一目标上的投影记为对应于该目标的目标向量;选取模块,当所述蚁群的转移状态满足预设终止条件时,根据业务场景从获取的所述非劣解集中选取最优调度方案。
[0025] 为解决上述技术问题,本发明实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述方法的步骤。
[0026] 为解决上述技术问题,本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述方法的步骤。
[0027] 与现有技术相比,本发明实施例的技术方案具有以下有益效果:
[0028] 本发明实施例提供一种基于多目标蚁群算法的整车物流调度方法,包括:获取整车物流数据,所述整车物流数据包括订单数据及运力数据;基于所述整车物流数据获取M个候选分配方案,其中,M≥1;将所述候选分配方案记为蚂蚁,将M只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,舍弃所述蚁群中所有目标向量均被支配的蚂蚁,以获取非劣解集,所述蚂蚁在每一目标上的投影记为对应于该目标的目标向量;当所述蚁群的转移状态满足预设终止条件时,根据业务场景从获取的所述非劣解集中选取最优调度方案。较之现有采用人工进行整车物流调度的实现方式,本发明实施例的方案以智能化的自动求解方案替代现有的人工操作方式,将获取的每一候选分配方案记为一只蚂蚁,结合蚁群算法的原理,在不断迭代期间通过每只蚂蚁的转移获取一组由对应于不同目标的非劣解组成的非劣解集作为待选方案,进而根据业务场景的具体要求从所述待选方案中选取最优调度方案。本领域技术人员理解,本发明实施例的方案通过多目标蚁群算法来对整车物流调度进行精确描述和推演,最终获得的待选方案可以灵活对应不同的调度场景,充分考虑各方面要求,避免产生失效调度,从而提高整车调度系统的系统效率,确保所述整车调度系统能够有条不紊地运行。进一步,本发明实施例的方案不仅能够提高运算效率,还能够确保最优方案的求解,降低成本,提高客户满意度。
[0029] 进一步,所述基于所述整车物流数据获取M个候选分配方案包括:循环迭代地随机匹配所述订单数据和运力数据,对于每次迭代,当订单分配完毕且匹配的运力最少时,或者,当运力分配完毕时,将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案;基于预设约束条件筛选历次迭代获取的候选分配方案,以获取所述M个候选分配方案。本领域技术人员理解,在本实施例的初始化装载过程中,采用贪心算法进行订单和运力的初步匹配,以直接计算出一个可行的调度方案,然后在通过本实施例的多目标蚁群算法对该可行的调度方案进行逐优推演,以获取最优方案。
[0030] 进一步,所述在所述蚁群中各只蚂蚁转移期间,舍弃所述蚁群中所有的目标向量均被支配的蚂蚁,以获取非劣解集包括:在所述蚁群中各只蚂蚁转移期间,基于蚁群算法计算和更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵,其中,对于每只蚂蚁的每一目标,所述状态转移矩阵用于描述所述蚂蚁在所述目标下的订单和运力的最新匹配结果,所述信息素矩阵用于描述所述蚂蚁在所述目标下各订单在运力之间的最新转移概率;对于每只蚂蚁,根据所述状态转移矩阵计算所述蚂蚁在各目标上的目标向量;舍弃在各目标上的目标向量均劣于蚁群中其他蚂蚁的对应的目标向量的蚂蚁,以获取所述非劣解集,其中,对于所述非劣解集中的蚂蚁,所述蚂蚁至少在一个目标上的目标向量优于所述非劣解集中的其他蚂蚁。本实施例的方案结合蚁群算法的原理,将分配方案所记载的订单和运力之间的匹配关系的变化情况等效为蚂蚁的转移,从而在蚁群中每只蚂蚁转移期间计算各只蚂蚁的状态转移矩阵和信息素矩阵,以从中选取出在至少一个目标上的目标向量不劣于其他蚂蚁在该目标上的目标向量的蚂蚁并组成所述非劣解集。本领域技术人员理解,基于本实施例的方案,能够利用蚁群的正反馈机制向最优方案逼近,确保不同的应用场景均能在最终获得的非劣解集中对应合适的非劣解(即最优方案)。

附图说明

[0031] 图1是本发明实施例的一种基于多目标蚁群算法的整车物流调度方法的流程图;
[0032] 图2是图1中步骤S101的一个具体实施方式的流程图;
[0033] 图3是图1中步骤S102的一个具体实施方式的流程图;
[0034] 图4是图3的一个典型应用场景的流程图;
[0035] 图5是图1中步骤S103的一个具体实施方式的流程图;
[0036] 图6是图5的一个典型应用场景的流程图;
[0037] 图7是本发明实施例的一种基于多目标蚁群算法的整车物流调度装置的结构示意图。

具体实施方式

[0038] 本领域技术人员理解,如背景技术所言,传统的整车物流调度模式没有充分考虑具体的调度场景,没有对任务目标进行配载优化,也没有充分考虑输入的订单本身的约束需求,而是简单地通过人工分配订单到车辆的方式来形成调度计划(即调度方案)。正时由于现有的整车物流调度方案中人工调度存在的不足,导致存在考虑变量因素少、调度方案非最优、运力资源使用率低、订单反应速度满等诸多缺点,在实际应用中无法满足业务合同等角度提出的约束,对任务各个方面的利益关系方造成损害,更会由于忽视一些调度系统中的现实因素而产生无效方案,影响整个系统的正常运作,造成效率低下、系统混乱。
[0039] 另一方面,现有的整车物流调度模式没有梳理系统目标并进行多方面的统筹优化,限制了系统能力的提升和对各方面利益的最大化,或者不能权衡调度体系的各个目标,造成顾此失彼,本末倒置,更无法从时间的角度进行全局的统筹优化。
[0040] 为了实现智能化的自动求解整车调度方案,本申请发明人研究发现:
[0041] 一般而言,对于典型的多目标问题的求解思路是对其进行数学建模,将其抽象为数值函数的优化问题。但在实际应用中,由于实际因素复杂,这些函数通常会显示出不同的数学特征,如目标函数和约束函数是否连续可微,是否有凸性质等,使得计算结果可能难以满足实际条件。所以,大多数情况下,需要通过数值计算的方法进行近似优化计算。也即,针对当前应用场景,需要在可接受的时间和精度范围内,求出数值函数近似最优解。而启发式算法对于目标函数和约束条件的要求较为宽松,不要求达到精确最优解,因而成为当前较为流行的解法。
[0042] 作为启发式算法的一种具体解法,蚁群算法是一种用来在图中寻找优化路径的机率型算法。其灵感来源于蚂蚁觅食过程中发现最短路径的行为。具体而言,蚂蚁在路径上前进时会根据先前蚂蚁分泌的信息素浓度来选择下一步路径,其选择一条路径的概率与信息素的浓度呈正比。由此,蚁群的集体行为构成了正反馈机制,也即,某条路径走过的蚂蚁越多,后面的蚂蚁选择该路径的概率越大。蚁群算法正时根据这一现象,用人工蚂蚁模拟蚁群的行为,从而实现寻优。
[0043] 另一方面,在进行多目标求解时可能会存在相互冲突的情况,因此,多目标优化问题极有可能找不到唯一的全局最优解以使得所有的目标严格意义上最优。
[0044] 因而,本申请所述方案基于多目标蚁群算法产生的多个解不会对于一个或多个目标进行进一步的优化,也即,基于本发明实施例的方案产生的针对一个目标的最优解对剩余的其他目标只要达到不至于劣化的程度即可,因此可以将这多个解归为非劣解集(或称Pareto解集)。
[0045] 为了解决背景技术所述的技术问题,本申请公开的方案通过带约束的动态规划与多目标优化相结合的方式,实现智能化、自动化的整车物流调度,能够考虑尽可能多的变量因素、利于获取最优的调度方案,极大提高运力资源使用率,改善订单反应速度。
[0046] 具体而言,本发明实施例提供一种基于多目标蚁群算法的整车物流调度方法,包括:获取整车物流数据,所述整车物流数据包括订单数据及运力数据;基于所述整车物流数据获取M个候选分配方案,其中,M≥1;将所述候选分配方案记为蚂蚁,将M只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,舍弃所述蚁群中所有目标向量均被支配的蚂蚁,以获取非劣解集,所述蚂蚁在每一目标上的投影记为对应于该目标的目标向量;当所述蚁群的转移状态满足预设终止条件时,根据业务场景从获取的所述非劣解集中选取最优调度方案。
[0047] 本领域技术人员理解,本发明实施例的方案以智能化的自动求解方案替代现有的人工操作方式,将获取的每一候选分配方案记为一只蚂蚁,结合蚁群算法的原理,在不断迭代期间通过每只蚂蚁的转移获取一组由对应于不同目标的非劣解组成的非劣解集作为待选方案,进而根据业务场景的具体要求从所述待选方案中选取最优调度方案。
[0048] 进一步,本发明实施例的方案通过多目标蚁群算法来对整车物流调度进行精确描述和推演,最终获得的待选方案可以灵活对应不同的调度场景,充分考虑各方面要求,避免产生失效调度,从而提高整车调度系统的系统效率,确保所述整车调度系统能够有条不紊地运行。
[0049] 进一步,本发明实施例的方案不仅能够提高运算效率,还能够确保最优方案的求解,降低成本,提高客户满意度。
[0050] 本领域技术人员理解,本发明实施例的方案将多目标蚁群算法应用于带约束的多目标优化来进行调度方案的求解。例如,基于本发明实施例的方案,可以以最大化装载数量、最大化装载订单紧急程度、最大化装载大中型商品车数量等目标作为算法的目标;可以将配载约束、意向目的地约束、可拼城市数量约束等作为算法的约束;在上述目标和约束的基础上采用多目标蚁群算法对调度方案进行迭代寻优,以获取一组能够包含多种调度场景的方案解集。进一步地,针对不同的调度场景,可以采用不同的目标权重参数挑选最终的调度方案,而不是采用同一套参数,以使获取的调度方案是最适合于当前调度场景的最优方案。
[0051] 为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
[0052] 图1是本发明实施例的一种基于多目标蚁群算法的整车物流调度方法的流程图。其中,所述整车物流调度可以指整车从出厂、经由配送站点和经销商到最终客户期间的物流路径规划、配载和运力调度。本发明实施例的方案可以适用于整车物流调度应用场景,以确定针对特定的业务场景(也可称为调度场景)的最优调度方案。
[0053] 具体地,参考图1,本实施例所述基于多目标蚁群算法的整车物流调度方法可以包括如下步骤:
[0054] 步骤S101,获取整车物流数据,所述整车物流数据包括订单数据及运力数据。
[0055] 步骤S102,基于所述整车物流数据获取M个候选分配方案,其中,M≥1。
[0056] 步骤S103,将所述候选分配方案记为蚂蚁,将M只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,舍弃所述蚁群中所有目标向量均被支配的蚂蚁,以获取非劣解集,所述蚂蚁在每一目标上的投影记为对应于该目标的目标向量。
[0057] 步骤S104,当所述蚁群的转移状态满足预设终止条件时,根据业务场景从获取的所述非劣解集中选取最优调度方案。
[0058] 更为具体地,所述订单数据可以用于描述与待调度的整车相关的信息。例如,所述订单数据可以包括待配送的车型、目的地、交付日期、订单紧急程度等。
[0059] 进一步地,所述运力数据可以用于描述可用于运输所述待调度的整车的运输工具的配载信息。例如,所述运力数据可以包括所述运输工具的数量、装载容量等。优选地,所述运输工具可以包括轿运车。
[0060] 进一步地,所述整车物流数据还可以包括节点数据,用于描述制定调度方案时需要经过的配送站点、经销商等。
[0061] 进一步地,所述整车物流数据还可以包括场景数据,用于描述制定调度方案时需要考虑的注意事项。例如,特定订单的优先级排序、特定车型的优先配送要求等。
[0062] 优选地,对于每条订单数据,所述订单数据可以包括多个字段,所述字段可以包括经销商信息、客户信息、整车车型、整车个性化设置内容、交付期限等。类似的,对于每条运力数据,所述运力数据也可以包括多个字段,所述字段可以包括装载限额、轿运车数量、轿运车可装整车车型等。
[0063] 进一步地,所述整车物流数据可以是通过对原始数据进行预处理获得的,所述原始数据同样可以包括订单数据、运力数据、节点数据、场景数据等。例如,可以从经销商处获取所述订单数据、节点数据和场景数据,从物流方获取所述运力数据。
[0064] 本领域技术人员理解,所述原始数据可以整合自多数据源,而各个数据源在录入各自的数据时极有可能出现数据缺失、数据填写错误等问题。另一方面,由于传统整车物流场景大多依靠人工经验形成调度计划,调度过程中产生的数据都以非结构化的方式被记录下来,因而会产生和混入较多无关数据和错误数据。因而,在初始数据获取阶段,可以对获取的原始数据进行清洗,以排除原始数据中相互矛盾的错误数据,提取执行后续算法所需的有用信息,从而确保所述整车物流数据本身的可靠性和合理性。
[0065] 作为一个非限制性实施例,参考图2,所述步骤S101可以包括如下步骤:
[0066] 步骤S1011,获取所述原始数据。
[0067] 步骤S1012,根据预设标准值范围筛查所述原始数据,以剔除所述原始数据中不符合对应的预设标准值范围的数据。
[0068] 步骤S1013,根据筛查后的原始数据获取所述整车物流数据。
[0069] 具体地,所述预设标准范围可以与所述字段一一对应。在实际应用中,可以针对所述原始数据中的每一个字段设置对应的预设标准范围,当获取的原始数据的字段不符合对应的预设标准范围时,剔除该数据,以确保最终保留下来的数据的有效性。
[0070] 以所述运力数据的装载限额字段为例,可以预先设置所述装载限额只能选自固定值集合{8,10},若获取的数值不属于所述固定值集合,则判断该原始数据错误,提出该原始数据。
[0071] 优选地,所述原始数据对应的所述预设标准值范围可以由提供该原始数据的数据提供方预先设定;或者,也可以由本实施例所述整车物流调度方法的提供方制定,所述数据提供方可以根据需要调整所述预设标准值范围的具体数值。
[0072] 进一步地,所述候选分配方案可以用于描述初始状态下订单和运力的匹配结果,所述匹配结果即为调度方案,所述初始状态是指执行多目标蚁群算法之初的状态。也即,在对所述原始数据进行清理后,可以基于清洗后的数据(即所述整车物流数据)进行装载,将订单分配到轿运车上,以便进行后续的多目标蚁群算法。优选地,所述M个候选分配方案可以作为后续蚁群算法时的初始化蚁群参数。
[0073] 例如,可以通过人工调度的经验制定贪心算法,先按照订单数据中车型大小以及紧急程度安排订单的优先级,然后选择在当前看来是最好的装载方案进行配载,从而直接计算出一个可行的调度方案作为所述候选分配方案。其中,所述可行的调度方案需要满足预设约束条件。
[0074] 进一步地,所述候选分配方案的数量M可以是根据所述订单数据确定的。例如,针对100个订单数据可以获取10个候选分配方案。
[0075] 作为一个非限制性实施例,参考图3,所述步骤S102可以包括如下步骤:
[0076] 步骤S1021,循环迭代地随机匹配所述订单数据和运力数据,对于每次迭代,当订单分配完毕且匹配的运力最少时,或者,当运力分配完毕时,将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案。
[0077] 步骤S1022,基于预设约束条件筛选历次迭代获取的候选分配方案,以获取所述M个候选分配方案。
[0078] 在一个优选例中,所述随机匹配可以指:将所述订单数据包括的订单按紧急程度排序,每次循环迭代时按照紧急程度由高到低的顺序依次抽取一个订单,并从所述运力数据中随机抽取一个运力开始匹配操作。
[0079] 作为一个变化例,所述随机匹配可以指:将所述运力数据包括的轿运车按车型大小排序,每次循环迭代时按照车型由大到小的顺序依次抽取一个运力,并从所述订单数据中随机抽取一个订单开始匹配操作。
[0080] 作为另一个变化例,所述随机匹配还可以指:每次循环迭代时分别从所述订单数据和运力数据中各随机抽取一个订单和一个运力开始匹配操作。
[0081] 接下来以上述第三种随机匹配方式为例,结合图4对本实施例所述候选分配方案的获取流程作具体阐述。
[0082] 在一个典型的应用场景中,参考图4,首先,可以执行步骤a101,以从所述运力数据中随机抽取一个运力并开始内迭代。
[0083] 具体地,所述内迭代的过程可以包括如下步骤:步骤a102,遍历所述订单数据包括的订单,以从中筛选出与所述运力满足装载约束的所有订单;步骤a103,判断所述运力是否满载。
[0084] 优选地,所述装载约束可以指大小约束,也即,运力能否装下订单。
[0085] 更为具体地,所述步骤a102可以包括如下步骤:步骤a1021,从所述订单数据中随机抽取一个订单;步骤a1022,将所述订单装载至所述运力;步骤a1023,判断所述运力和所述订单是否满足所述装载约束。
[0086] 当所述步骤a1023的判断结果为否定的,也即,当所述运力和所述订单不满足所述装载约束时,重新执行所述步骤a1021,以重新从所述订单数据中随机抽取一个订单,直至本次随机抽取的订单与所述运力满足所述装载约束(也即直至所述步骤a1023的判断结果为肯定的)时,执行步骤a1024,以判断所述订单数据包括的订单是否遍历完毕。
[0087] 当所述步骤a1024的判断结果为否定的,也即,当所述订单数据包括的订单未遍历完毕时,继续执行所述步骤a1021至步骤a1023,以继续从所述订单数据中随机抽取一个订单并判断所述运力和本次随机抽取的订单是否满足所述装载约束,直至所述订单数据包括的订单全部遍历完毕(也即直至所述步骤a1024的判断结果为肯定的)。
[0088] 当所述步骤a1024的判断结果为肯定的时,执行所述步骤a103,以判断所述运力是否满载。
[0089] 当所述步骤a103的判断结果为否定的,也即,当所述运力未满载时,执行步骤a104,以清空所述运力的匹配结果并重新执行所述内迭代(也即重新执行所述步骤a102和步骤a103),直至本次内迭代的结果为所述运力满载(即直至所述步骤s103的判断结果为肯定的)时,执行步骤a105,以判断所述订单数据包括的订单是否分配完毕。
[0090] 当所述步骤a105的判断结果为否定的,也即,当所述订单数据包括的订单未分配完毕,且所述运力数据包括的运力未分配完毕时,继续执行所述步骤a101至步骤a105(即继续从所述运力数据中随机抽取一个运力并执行所述内迭代),直至所述订单数据包括的订单均分配完毕或所述运力数据包括的运力分配完毕,以完成一次循环迭代。
[0091] 当所述步骤a105的判断结果为肯定的,也即,当所述订单数据包括的订单均分配完毕时,可以执行步骤a106,以比较本次循环迭代确定的运力的数量是否小于上一次循环迭代确定的运力的数量。
[0092] 若本次循环迭代确定的运力的数量小于(可以包括等于)上一次循环迭代确定的运力的数量,也即,若所述步骤a106的判断结果为肯定的,则可以将本次循环迭代确定的运力与订单的匹配结果作为本次迭代获取的候选分配方案。
[0093] 否则,若本次循环迭代确定的运力的数量大于上一次循环迭代确定的运力的数量,也即,若所述步骤a106的判断结果为否定的,则重新自所述步骤a101开始执行,以重新获取订单数据和运力数据的随机匹配结果。
[0094] 作为一个变化例,在循环迭代期间,当所述运力数据包括的运力均分配完毕时,也可以执行所述步骤a106。
[0095] 进一步地,所述预设约束条件可以选自:配载约束;意向方向约束;可拼城市数量约束。其中,所述意向方向可以指意向城市,也即所述订单的目的地、可拼城市等。在实际应用中,本领域技术人员也可以根据需要调整所述预设约束条件的具体内容。
[0096] 进一步地,基于整车调度问题的多变量、离散性、高维数、数据量与解空间大以及要求计算时间短等特点,本实施例的方案拟采用蚁群算法进行调度方案的求解。
[0097] 具体而言,对于给定的订单和运力,在满足各种约束的前提下,可以根据系统目标进行基于先验的贪心算法的订单初步装载(即执行所述步骤S102)。在若干初步装载方案的基础上,通过蚁群算法的迭代优化,产生逐步最大化任务目标的方案。其中,利用蚁群的正反馈机制向最优方案逼近;采用确定性选择和随机性选择相结合的选择策略,避免算法的停滞现象;对所有完成一次转移的蚂蚁进行局部规则更新以及对每次循环最优的蚂蚁使用全局更新避免陷入局部最优;对每代的最优蚂蚁所走路径进行信息更新,将其限制在有上下界区间内,避免收敛于局部最优解;对每代产生的方案进行目标向量比较产生非劣解集待选方案解集。
[0098] 进一步地,基本的蚁群算法模型可以用旅行商问题(Travelling salesman problem,简称TSP)描述。对于给定的n个城市节点以及连接节点的边的集合,找出一条最短的闭回路,使得该闭回路在每个节点都只经过一次。
[0099] 具体而言,在基本蚁群算法中,有两个基本要素:状态转移规则和信息素更新规则。
[0100] 对于状态转移规则,人工蚂蚁(可简称为蚂蚁)随机选择某个节点作为初始化节点,然后经由该节点转移到下一节点,直到完成经过所有节点的闭回路。
[0101] 对应的,每只蚂蚁的状态转移规则为:
[0102]
[0103] 其中,第k只蚂蚁所在节点为i,转移到j的概率为pij;η(i,j)表示启发信息,一般选取为城市节点距离的倒数; 是未经过的节点集合;α,β分别表示信息素和启发信息的参数因子;τ(i,j)表示路径(i,j)上的信息素总量。
[0104] 所述信息素更新规则可以总结为以下公式:
[0105]
[0106] τ(i,j)=(1-ρ)·τ(i,j)+Δτ(i,j);
[0107] 其中,m只人工蚂蚁通过n-1次选择完成路线,在其路线上释放信息素。 为第k只蚂蚁在(i,j)转移时释放的信息素,该路线总的信息素更新量为Δτ(i,j)。同时,引入信息素挥发机制,挥发系数为ρ,信息素的调整为信息素的保持量加上新增信息素释放量。
[0108] 由于多目标蚁群算法是为了求出一组非劣解集,信息素矩阵和启发信息矩阵包含了所有柏拉图(Pareto)最优解的可能位置,因此针对不同的目标需要应用多个对应的信息素矩阵和启发信息矩阵。
[0109] 在本实施例中,将所述候选分配方案记为蚂蚁,将M只蚂蚁构成的集合记为蚁群,所述蚁群中的每只蚂蚁均可以分配有i个初始化信息素矩阵和启发信息矩阵,i为目标数,所述初始化信息素矩阵和启发信息矩阵与目标一一对应,其中,对于每只蚂蚁的每一目标,所述启发信息矩阵用于描述所述蚂蚁在所述目标下的订单与运力的初始匹配结果,所述初始化信息素矩阵用于描述所述蚂蚁在所述目标下各订单在各运力之间的初始转移概率。
[0110] 具体而言,所述启发信息矩阵和初始化信息素矩阵相结合,可以决定所述蚁群中各只蚂蚁第一步转移的位置和方向。
[0111] 记所述订单数据包括的订单的集合shipmentset={shipmentu},u∈U,其中,U为所述订单数据包括的总订单数。类似的,记所述运力数据包括的轿运车的集合Trailerset={Trailerv},v∈V,其中,V为所述运力数据包括的总运力数(即总轿运车数)。
[0112] 作为一个非限制性实施例,对于每只蚂蚁,所述启发信息矩阵可以基于如下公式表示:
[0113] Bx=(buv);
[0114]
[0115] 其中,Bx为所述蚂蚁的第x个目标的启发信息矩阵,1≤x≤i,buv为所述启发信息矩阵中第u行第v列的元素,u为所述订单数据中的第u个订单,1≤u≤U,v为所述运力数据中的第v个运力,1≤v≤V,当buv=1时表示在所述蚂蚁中第u个订单与第v个运力相匹配(即第u个订单被第v个运力装载),当buv=0时表示在所述蚂蚁中第u个订单与第v个运力不相匹配(即第u个订单未被第v个运力装载)。
[0116] 可选的,对于每只蚂蚁,所述蚂蚁在第x个目标的初始化信息素矩阵Ax可以包括U×V个元素,其中,所述U×V个元素均以预设常数填充。例如,所述预设常数可以为1,也即所述蚂蚁在第x个目标上的各订单在各运力之间的初始转移概率均为1。
[0117] 在本实施例中,对于一个分配方案包括的订单和运力,可以将所述订单和所述运力的匹配结果的变化即为蚂蚁的转移。本实施例正是通过蚂蚁的不断转移来不断改变装车状态,直至在对应目标的性能评价最优。
[0118] 作为一个非限制性实施例,参考图5,所述步骤S103可以包括如下步骤:
[0119] 步骤S1031,在所述蚁群中各只蚂蚁转移期间,基于蚁群算法计算和更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵,其中,对于每只蚂蚁的每一目标,所述状态转移矩阵用于描述所述蚂蚁在所述目标下的订单和运力的最新匹配结果,所述信息素矩阵用于描述所述蚂蚁在所述目标下各订单在运力之间的最新转移概率。
[0120] 步骤S1032,对于每只蚂蚁,根据所述状态转移矩阵计算所述蚂蚁在各目标上的目标向量。
[0121] 步骤S1033,舍弃在各目标上的目标向量均劣于蚁群中其他蚂蚁的对应的目标向量的蚂蚁,以获取所述非劣解集,其中,对于所述非劣解集中的蚂蚁,所述蚂蚁至少在一个目标上的目标向量优于所述非劣解集中的其他蚂蚁。
[0122] 本领域技术人员理解,本实施例的方案结合蚁群算法的原理,将分配方案所记载的订单和运力之间的匹配关系的变化情况等效为蚂蚁的转移,从而在蚁群中每只蚂蚁转移期间计算各只蚂蚁的状态转移矩阵和信息素矩阵,以从中选取出在至少一个目标上的目标向量不劣于其他蚂蚁在该目标上的目标向量的蚂蚁并组成所述非劣解集。本领域技术人员理解,基于本实施例的方案,能够利用蚁群的正反馈机制向最优方案逼近,确保不同的应用场景均能在最终获得的非劣解集中对应合适的非劣解(即最优方案)。
[0123] 具体地,所述状态转移矩阵初始即为所述启发信息矩阵。
[0124] 进一步地,可以有公式:状态转移矩阵=信息素矩阵×启发信息矩阵。
[0125] 在所述步骤S1031中,M只蚂蚁并行开始随机转移,每转移一步均可以获得M个新的方案,并各自更新自己的信息素矩阵,基于本次蚂蚁的信息素和上一次转移时的信息素矩阵按照上述信息素更新规则运算获得新的信息素矩阵。也即,在所述蚂蚁中各只蚂蚁转移期间,对于每只蚂蚁的每一目标,可以将更新后的信息素矩阵作为所述蚂蚁下一次转移时的初始化信息素矩阵。
[0126] 作为一个可选的方案,当M只蚂蚁转移完毕(即每只蚂蚁中所有订单和所有运力均匹配过一次)后,从中选出最优蚂蚁,并将所述最优蚂蚁的最新的信息素矩阵作为下一次循环时所有蚂蚁的初始信息素矩阵。
[0127] 进一步地,在所述蚁群中各只蚂蚁转移期间,更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵的更新周期可以是以各只蚂蚁转移时的步长为单位的。也即,蚂蚁每转移一次(即每走一步),更新一次所述蚂蚁的状态转移矩阵和信息素矩阵。
[0128] 进一步地,对于每只蚂蚁的每一个目标,可以基于上述状态转移规则和信息素更新规则计算和更新对应的状态转移矩阵和信息素矩阵。
[0129] 在所述步骤S1032中,由于所述状态转移矩阵实际反映的是最新的分配方案,因而,可以计算所述分配方案在对应目标上的投影(即目标向量),所述投影可以为一个量化的结果,用于衡量该分配方案在该目标上的优劣程度。
[0130] 作为一个非限制性实施例,对于所述蚁群中的每只蚂蚁,所述蚂蚁可以是按照确定性概率或随机性概率进行转移的,其中,所述按照确定性概率进行转移是指按照所述蚂蚁的信息素矩阵指示的最大概率方向进行转移,所述按照随机性概率进行转移是指按照随机方向进行转移,所述信息素矩阵用于描述所述蚂蚁的各订单在运力之间的最新转移概率。
[0131] 在一个优选例中,所述蚂蚁按照确定性概率或随机性概率进行转移的过程可以包括:所述蚂蚁从预设区间内抽取一个随机数;当所述随机数小于预设阈值时,按照确定性概率进行转移;否则,按照随机性概率进行转移。
[0132] 例如,假定所述预设区间为(0,1)且所述预设阈值为0.9,对于一只蚂蚁,本次转移时从所述预设区间中随机抽取一个数,若该数值为0.2,则本次转移按照随机性概率转移;若该数值为0.98,则本次转移按照确定性概率转移。
[0133] 进一步地,对于每只蚂蚁,其在每次转移之前都可以执行上述操作,以确定是按照随机性概率还是确定性概率转移。
[0134] 进一步地,所述预设终止条件可以包括:所述蚁群中各只蚂蚁的转移次数达到预设循环次数。优选地,所述预设循环次数可以是根据所述订单数据和运力数据确定的,其目的在于确保最终获取的调度方案为一个收敛的结果。
[0135] 进一步地,所述目标可以选自:最大化装载数量;最大化装载商品车紧急程度;最大化装载大、中型商品车数量。在实际应用中,本领域技术人员还可根据需要调整所述目标的具体内容和数量。
[0136] 进一步地,所述业务场景可以用于描述针对所述调度方案的特定需求,如订单紧急程度、订单包括的整车的车型要求等。所述业务场景可以与所述目标相关联。
[0137] 在一个典型的应用场景中,参考图6,在基于上述图4所述方案获取M个候选分配方案(即M只蚂蚁)后,可以继续执行步骤b101,以使每只蚂蚁被分配到与目标数相同数量的信息素矩阵与启发信息矩阵,并分别计算每只蚂蚁的不同的状态转移矩阵。
[0138] 进一步地,执行步骤b102,每只蚂蚁按照确定性或者随机性概率进行转移,每转移一步即更新各自的信息素矩阵。
[0139] 进一步地,在所述蚁群中各只蚂蚁转移期间,每只蚂蚁每走一步,执行步骤b103,以根据目标向量舍弃蚁群当中被完全支配的蚂蚁,将其余蚂蚁对应的最新分配方案选入非劣解集作为待选方案。
[0140] 然后,执行步骤b104,以判断当前是否满足结束条件。例如,所述结束条件可以指所述步骤b102至步骤b104的循环次数是否达到预设循环次数。
[0141] 当所述步骤b104的判断结果为肯定的,也即,当满足所述结束条件时,结束该算法模块,得到待选方案集合(即所述非劣解集)。
[0142] 否则,即当所述步骤b104的判断结果为否定的时,用本次循环获取的最优蚂蚁进行信息素矩阵的更新,通过信息素矩阵计算状态转移矩阵,通过状态转移矩阵更新蚁群,重新执行所述步骤b102至步骤b104,如此滚动迭代,直至满足所述结束条件。
[0143] 进一步地,当所述步骤b104的判断结果为肯定的时,继续执行步骤b105,以根据实际的业务场景,结合待选方案集合用加权求和的方式比较各方案目标值大小,输出最优调度方案。
[0144] 本领域技术人员理解,本实施例的方案充分利用蚁群算法的全局寻优能力与并行搜索能力,提高了智能调度的实时性,并且,本实施例的方案能够满足不同的调度业务场景进行最优调度方案的求解。
[0145] 由上,采用本实施例的方案,以智能化的自动求解方案替代现有的人工操作方式,将获取的每一候选分配方案记为一只蚂蚁,结合蚁群算法的原理,在不断迭代期间通过每只蚂蚁的转移获取一组由对应于不同目标的非劣解组成的非劣解集作为待选方案,进而根据业务场景的具体要求从所述待选方案中选取最优调度方案。
[0146] 本领域技术人员理解,本发明实施例的方案通过多目标蚁群算法来对整车物流调度进行精确描述和推演,最终获得的待选方案可以灵活对应不同的调度场景,充分考虑各方面要求,避免产生失效调度,从而提高整车调度系统的系统效率,确保所述整车调度系统能够有条不紊地运行。
[0147] 进一步,本发明实施例的方案不仅能够提高运算效率,还能够确保最优方案的求解,降低成本,提高客户满意度。
[0148] 图7是本发明实施例的一种基于多目标蚁群算法的整车物流调度装置的结构示意图。本领域技术人员理解,本实施例所述基于多目标蚁群算法的整车物流调度装置7(以下简称为整车物流调度装置7)用于实施上述图1至图6所示实施例中所述的方法技术方案。
[0149] 具体地,在本实施例中,所述整车物流调度装置7可以包括:获取模块71,用于获取整车物流数据,所述整车物流数据包括订单数据及运力数据;初始装载模块72,用于基于所述整车物流数据获取M个候选分配方案,其中,M≥1;多目标蚁群算法优化模块73,将所述候选分配方案记为蚂蚁,将M只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,舍弃所述蚁群中所有目标向量均被支配的蚂蚁,以获取非劣解集,所述蚂蚁在每一目标上的投影记为对应于该目标的目标向量;选取模块74,当所述蚁群的转移状态满足预设终止条件时,根据业务场景从获取的所述非劣解集中选取最优调度方案。
[0150] 更为具体地,所述初始装载模块72可以执行如下步骤:循环迭代地随机匹配所述订单数据和运力数据,对于每次迭代,当订单分配完毕且匹配的运力最少时,或者,当运力分配完毕时,将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案;基于预设约束条件筛选历次迭代获取的候选分配方案,以获取所述M个候选分配方案。
[0151] 优选地,所述整车物流调度装置7还可以包括:约束模块76,用于存储和提供所述预设约束条件。
[0152] 进一步地,所述循环迭代地随机匹配所述订单数据和运力数据可以包括:从所述运力数据中随机抽取一个运力并开始内迭代,所述内迭代的过程包括:遍历所述订单数据包括的订单,以从中筛选出与所述运力满足装载约束的所有订单;判断所述运力是否满载;当所述运力未满载时,清空所述运力的匹配结果并重新执行所述内迭代,直至本次内迭代的结果为所述运力满载时,判断所述订单数据包括的订单是否分配完毕;当所述订单数据包括的订单分配未完毕,且所述运力数据包括的运力未分配完毕时,继续从所述运力数据中随机抽取一运力并执行所述内迭代,直至所述运力数据包括的运力分配完毕或所述订单数据包括的订单分配完毕,以完成一次循环迭代。
[0153] 进一步地,所述将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案可以包括:比较本次循环迭代确定的运力的数量与上一次循环迭代确定的运力的数量;若本次循环迭代确定的运力的数量小于上一次循环迭代确定的运力的数量,将本次循环迭代确定的运力与订单的匹配结果作为本次迭代获取的候选分配方案。
[0154] 进一步地,所述遍历所述订单数据包括的订单,以从中筛选出与所述运力满足装载约束的所有订单可以包括:从所述订单数据中随机抽取一个订单;判断所述运力和所述订单是否满足所述装载约束;当所述运力和所述订单不满足所述装载约束时,重新从所述订单数据中随机抽取一个订单,直至本次随机抽取的订单与所述运力满足所述装载约束时,判断所述订单数据包括的订单是否遍历完毕;当所述订单数据包括的订单未遍历完毕时,继续从所述订单数据中随机抽取一个订单并判断所述运力和本次随机抽取的订单是否满足所述装载约束,直至所述订单数据包括的订单全部遍历完毕。
[0155] 进一步地,所述预设约束条件可以选自:配载约束;意向方向约束;可拼城市数量约束。
[0156] 进一步地,所述蚁群中的每只蚂蚁均可以分配有i个初始化信息素矩阵和启发信息矩阵,i为目标数,所述初始化信息素矩阵和启发信息矩阵与目标一一对应,其中,对于每只蚂蚁的每一目标,所述启发信息矩阵用于描述所述蚂蚁在所述目标下的订单与运力的初始匹配结果,所述初始化信息素矩阵用于描述所述蚂蚁在所述目标下各订单在各运力之间的初始转移概率。
[0157] 进一步地,对于每只蚂蚁,所述启发信息矩阵可以基于如下公式表示:Bx=(buv);其中,Bx为所述蚂蚁的第x个目标的启发信息矩阵,1≤x≤i,buv为所述启发信息矩阵中第u行第v列的元素,u为所述订单数据中的第u个订单,1≤u≤U,U为所述订单数据包括的总订单数,v为所述运力数据中的第v个运力,1≤v≤V,V为所述运力数据包括的总运力数,当buv=1时表示在所述蚂蚁中第u个订单与第v个运力相匹配,当buv=0时表示在所述蚂蚁中第u个订单与第v个运力不相匹配。
[0158] 进一步地,对于每只蚂蚁,所述蚂蚁在第x个目标的初始化信息素矩阵Ax可以包括U×V个元素,其中,U为所述订单数据包括的总订单数,V为所述运力数据包括的总运力数,所述U×V个元素均以预设常数填充。
[0159] 进一步地,所述多目标蚁群算法优化模块73可以执行如下步骤:在所述蚁群中各只蚂蚁转移期间,基于蚁群算法计算和更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵,其中,对于每只蚂蚁的每一目标,所述状态转移矩阵用于描述所述蚂蚁在所述目标下的订单和运力的最新匹配结果,所述信息素矩阵用于描述所述蚂蚁在所述目标下各订单在运力之间的最新转移概率;对于每只蚂蚁,根据所述状态转移矩阵计算所述蚂蚁在各目标上的目标向量;舍弃在各目标上的目标向量均劣于蚁群中其他蚂蚁的对应的目标向量的蚂蚁,以获取所述非劣解集,其中,对于所述非劣解集中的蚂蚁,所述蚂蚁至少在一个目标上的目标向量优于所述非劣解集中的其他蚂蚁。
[0160] 进一步地,所述整车物流调度装置7还可以包括:目标向量比较模块75,用于根据每只蚂蚁在各个目标上的状态转移矩阵计算对应的目标向量,并从中选取非劣解以组成所述非劣解集。具体地,所述目标向量比较模块75可以用于描述调度方案是否被其他调度方案所支配,进而选取出所述非劣解集。
[0161] 进一步地,在所述蚁群中各只蚂蚁转移期间,更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵的更新周期可以是以各只蚂蚁转移时的步长为单位的。
[0162] 进一步地,在所述蚂蚁转移期间,对于每只蚂蚁的每一目标,可以将更新后的信息素矩阵作为所述蚂蚁下一次转移时的初始化信息素矩阵。
[0163] 进一步地,对于所述蚁群中的每只蚂蚁,所述蚂蚁可以是按照确定性概率或随机性概率进行转移的,其中,所述按照确定性概率进行转移是指按照所述蚂蚁的信息素矩阵指示的最大概率方向进行转移,所述按照随机性概率进行转移是指按照随机方向进行转移,所述信息素矩阵用于描述所述蚂蚁的各订单在运力之间的最新转移概率。
[0164] 进一步地,所述蚂蚁按照确定性概率或随机性概率进行转移的过程可以包括:所述蚂蚁从预设区间内抽取一个随机数;当所述随机数小于预设阈值时,按照确定性概率进行转移;否则,按照随机性概率进行转移。
[0165] 进一步地,所述预设终止条件可以包括:所述蚁群中各只蚂蚁的转移次数达到预设循环次数。
[0166] 进一步地,所述整车物流数据可以是通过对原始数据进行预处理获得的,所述获取模块71可以执行如下步骤:获取所述原始数据;根据预设标准值范围筛查所述原始数据,以剔除所述原始数据中不符合对应的预设标准值范围的数据;根据筛查后的原始数据获取所述整车物流数据。
[0167] 进一步地,所述目标可以选自:最大化装载数量;最大化装载商品车紧急程度;最大化装载大、中型商品车数量。
[0168] 进一步地,所述候选分配方案的数量M可以是根据所述订单数据确定的。
[0169] 关于所述整车物流调度装置7的工作原理、工作方式的更多内容,可以参照上述图1至图6中的相关描述,这里不再赘述。
[0170] 由上,采用本实施例的方案,原始数据经过所述获取模块71清洗后,将有效可用的订单信息、运力信息、节点信息、场景描述传到初始装载模块72;初始装载模块72按照约束模块76的要求,通过先验按照特定规则进行贪心装载形成初步的装载方式(即所述M个候选分配方案);多目标蚁群算法优化模块73以初始装载结果为起点,结合目标向量比较模块75,利用蚁群算法进行迭代优化,进而计算出一组针对不同目标的待选方案,最后由选取模块74根据调度场景筛选出最优调度方案。
[0171] 本领域技术人员理解,本实施例的方案基于所述多目标蚁群算法优化模块73完成订单与运力在各个约束条件下相匹配的过程,利用蚁群算法进行方案寻优,结合目标向量比较模块75进行调度方案的取舍,最终得到满足约束模块的在特定性能上最优的调度方案。
[0172] 进一步地,本发明实施例还公开一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述图1至图6所示实施例中所述的方法技术方案。优选地,所述存储介质可以包括诸如非挥发性(non-volatile)存储器或者非瞬态(non-transitory)存储器等计算机可读存储介质。所述存储介质可以包括ROM、RAM、磁盘或光盘等。
[0173] 进一步地,本发明实施例还公开一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述图1至图6所示实施例中所述的方法技术方案。
[0174] 虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。