基于蚁群算法的整车物流调度方法及装置、存储介质、终端与流程

文档序号:16883902发布日期:2019-02-15 22:27阅读:198来源:国知局
基于蚁群算法的整车物流调度方法及装置、存储介质、终端与流程

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



背景技术:

整车物流是指整车从主机厂、各配送站点、经销商运送到最终客户的一系列活动和过程,整车物流调度需要解决物流路径规划、配载和车辆调度等一系列问题。

现有整车物流调度涉及的因素较为复杂,约束条件众多,目标多元且相互制约,其中包括主机厂及其仓库、物流公司及其中转库、承运商及其合约司机、经销商及其仓库等多个方面,归纳来讲是一个多目标优化问题。

而大多数的物流公司根据人工经验来定制调度运输方案,配载过程多采用手工操作,配载方案完全取决于调度人员的自身经验。这样的整车物流调度方式存在考虑变量因素少、调度方案非最优、运力资源使用率不高、订单反应速度慢等诸多缺点,无法达到汽车厂商及客户的预期。



技术实现要素:

本发明解决的技术问题是如何实现整车物流的自动化调度,以更合理、全面的调度逻辑从整体上降低货运车的动态调度成本。

为解决上述技术问题,本发明实施例提供一种基于蚁群算法的整车物流调度方法,包括:获取整车物流数据,所述整车物流数据包括订单数据及运力数据;基于所述整车物流数据获取m个候选分配方案,其中,m≥1;将所述候选分配方案记为蚂蚁,将m只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,从所述蚁群中选取目标向量最大的蚂蚁,所述蚂蚁在预设目标集合上的投影记为对应于该蚂蚁的目标向量;当所述蚁群的转移状态满足预设终止条件时,将最近一次转移时选取的目标向量最大的蚂蚁对应的分配方案确定为最优调度方案。

可选的,所述基于所述整车物流数据获取m个候选分配方案包括:循环迭代地随机匹配所述订单数据和运力数据,对于每次迭代,当订单分配完毕且匹配的运力最少时,或者,当运力分配完毕时,将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案;基于预设约束条件筛选历次迭代获取的候选分配方案,以获取所述m个候选分配方案。

可选的,所述循环迭代地随机匹配所述订单数据和运力数据包括:从所述运力数据中随机抽取一个运力并开始内迭代,所述内迭代的过程包括:遍历所述订单数据包括的订单,以从中筛选出与所述运力满足装载约束的所有订单;判断所述运力是否满载;当所述运力未满载时,清空所述运力的匹配结果并重新执行所述内迭代,直至本次内迭代的结果为所述运力满载时,判断所述订单数据包括的订单是否分配完毕;当所述订单数据包括的订单分配完毕,且所述运力数据包括的运力未分配完毕时,继续从所述运力数据中随机抽取一个运力并执行所述内迭代,直至所述运力数据包括的运力分配完毕或所述订单数据包括的订单分配完毕,以完成一次循环迭代。

可选的,所述将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案包括:比较本次循环迭代确定的运力的数量与上一次循环迭代确定的运力的数量;若本次循环迭代确定的运力的数量小于上一次循环迭代确定的运力的数量,将本次循环迭代确定的运力与订单的匹配结果作为本次迭代获取的候选分配方案。

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

可选的,所述预设约束条件选自:配载约束;意向方向约束;可拼城市数量约束。

可选的,所述蚁群中的每只蚂蚁均分配有初始化信息素矩阵和启发信息矩阵,所述初始化信息素矩阵和启发信息矩阵与目标一一对应,其中,对于每只蚂蚁,所述启发信息矩阵用于描述所述蚂蚁的订单与运力的初始匹配结果,所述初始化信息素矩阵用于描述所述蚂蚁的各订单在各运力之间的初始转移概率。

可选的,对于每只蚂蚁,所述启发信息矩阵基于如下公式表示:b=(buv);其中,b为所述蚂蚁的启发信息矩阵,buv为所述启发信息矩阵中第u行第v列的元素,u为所述订单数据中的第u个订单,1≤u≤u,u为所述订单数据包括的总订单数,v为所述运力数据中的第v个运力,1≤v≤v,v为所述运力数据包括的总运力数,当buv=1时表示在所述蚂蚁中第u个订单与第v个运力相匹配,当buv=0时表示在所述蚂蚁中第u个订单与第v个运力不相匹配。

可选的,对于每只蚂蚁,所述蚂蚁的初始化信息素矩阵a包括u×v个元素,其中,u为所述订单数据包括的总订单数,v为所述运力数据包括的总运力数,所述u×v个元素均以预设常数填充。

可选的,所述在所述蚁群中各只蚂蚁转移期间,从所述蚁群中选取目标向量最大的蚂蚁包括:在所述蚁群中各只蚂蚁转移期间,基于蚁群算法计算和更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵,其中,对于每只蚂蚁,所述状态转移矩阵用于描述所述蚂蚁的订单和运力的最新匹配结果,所述信息素矩阵用于描述所述蚂蚁的各订单在运力之间的最新转移概率;对于每只蚂蚁,根据所述状态转移矩阵计算所述蚂蚁的目标向量;选取所述目标向量最大的蚂蚁。

可选的,在所述蚁群中各只蚂蚁转移期间,更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵的更新周期是以各只蚂蚁转移时的步长为单位的。

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

可选的,当选取出目标向量最大的蚂蚁时,将该蚂蚁的信息素矩阵作为所述蚁群中各只蚂蚁下一次转移时的初始化信息素矩阵。

可选的,对于所述蚁群中的每只蚂蚁,所述蚂蚁是按照确定性概率或随机性概率进行转移的,其中,所述按照确定性概率进行转移是指按照所述蚂蚁的信息素矩阵指示的最大概率方向进行转移,所述按照随机性概率进行转移是指按照随机方向进行转移,所述信息素矩阵用于描述所述蚂蚁的各订单在运力之间的最新转移概率。

可选的,所述蚂蚁按照确定性概率或随机性概率进行转移的过程包括:所述蚂蚁从预设区间内抽取一个随机数;当所述随机数小于预设阈值时,按照确定性概率进行转移;否则,按照随机性概率进行转移。

可选的,所述预设终止条件包括:所述蚁群中各只蚂蚁的转移次数达到预设循环次数。

可选的,所述整车物流数据是通过对原始数据进行预处理获得的,所述获取整车物流数据包括:获取所述原始数据;根据预设标准值范围筛查所述原始数据,以剔除所述原始数据中不符合对应的预设标准值范围的数据;根据筛查后的原始数据获取所述整车物流数据。

可选的,对于每只蚂蚁,所述蚂蚁的目标向量的计算过程包括:分别计算所述蚂蚁在所述预设目标集合包括的每一个目标上的投影;对各个目标上的投影进行加权求和,以获取所述蚂蚁的目标向量,所述各个目标上的投影的权重是根据对对应目标的先验结果分配的。

可选的,所述预设目标集合中的目标包括:最大化装载数量;最大化装载商品车紧急程度;最大化装载大、中型商品车数量。

可选的,所述候选分配方案的数量m是根据所述订单数据确定的。

为解决上述技术问题,本发明实施例还提供一种基于蚁群算法的整车物流调度装置,包括:获取模块,用于获取整车物流数据,所述整车物流数据包括订单数据及运力数据;初始装载模块,用于基于所述整车物流数据获取m个候选分配方案,其中,m≥1;蚁群算法优化模块,将所述候选分配方案记为蚂蚁,将m只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,从所述蚁群中选取目标向量最大的蚂蚁,所述蚂蚁在预设目标集合上的投影记为对应于该蚂蚁的目标向量;选取模块,当所述蚁群的转移状态满足预设终止条件时,将最近一次转移时选取的目标向量最大的蚂蚁对应的分配方案确定为最优调度方案。

为解决上述技术问题,本发明实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述方法的步骤。

为解决上述技术问题,本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述方法的步骤。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

本发明实施例提供一种基于蚁群算法的整车物流调度方法,包括:获取整车物流数据,所述整车物流数据包括订单数据及运力数据;基于所述整车物流数据获取m个候选分配方案,其中,m≥1;将所述候选分配方案记为蚂蚁,将m只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,从所述蚁群中选取目标向量最大的蚂蚁,所述蚂蚁在预设目标集合上的投影记为对应于该蚂蚁的目标向量;当所述蚁群的转移状态满足预设终止条件时,将最近一次转移时选取的目标向量最大的蚂蚁对应的分配方案确定为最优调度方案。较之现有采用人工进行整车物流调度的实现方式,本发明实施例的方案以智能化的自动求解方案替代现有的人工操作方式,将获取的每一候选分配方案记为一只蚂蚁,结合蚁群算法的原理,充分利用蚁群算法的全局寻优能力和并行搜索能力,提高智能调度的实时性。具体而言,本发明实施例的方案在不断迭代期间产生逐步最大化任务目标的方案,直至满足预设终止条件时,将最新产生的最符合任务目标(即目标向量最大)的蚂蚁对应的分配方案确定为最优调度方案。本领域技术人员理解,本发明实施例的方案通过蚁群算法对整车物流调度进行精确描述和推演,最终通过目标性能评价获得最大程度利用运力并装载最多订单的最优调度方案,从而提高整车调度系统的系统效率,确保所述整车调度系统能够有条不紊地运行。进一步,本发明实施例的方案不仅能够提高运算效率,还能够确保最优方案的求解,降低成本,提高客户满意度。

进一步,所述基于所述整车物流数据获取m个候选分配方案包括:循环迭代地随机匹配所述订单数据和运力数据,对于每次迭代,当订单分配完毕且匹配的运力最少时,或者,当运力分配完毕时,将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案;基于预设约束条件筛选历次迭代获取的候选分配方案,以获取所述m个候选分配方案。本领域技术人员理解,在本实施例的初始化装载过程中,采用贪心算法进行订单和运力的初步匹配,以直接计算出一个可行的调度方案,然后在通过本实施例的蚁群算法对该可行的调度方案进行逐优推演,以获取最优方案。

进一步,所述在所述蚁群中各只蚂蚁转移期间,从所述蚁群中选取目标向量最大的蚂蚁包括:在所述蚁群中各只蚂蚁转移期间,基于蚁群算法计算和更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵,其中,对于每只蚂蚁,所述状态转移矩阵用于描述所述蚂蚁的订单和运力的最新匹配结果,所述信息素矩阵用于描述所述蚂蚁的各订单在运力之间的最新转移概率;对于每只蚂蚁,根据所述状态转移矩阵计算所述蚂蚁的目标向量;选取所述目标向量最大的蚂蚁。本实施例的方案结合蚁群算法的原理,将分配方案所记载的订单和运力之间的匹配关系的变化情况等效为蚂蚁的转移,从而在蚁群中每只蚂蚁转移期间计算各只蚂蚁的状态转移矩阵和信息素矩阵,以从中选取出目标向量最大的蚂蚁作为候选最优方案。本领域技术人员理解,基于本实施例的方案,能够利用蚁群的正反馈机制向最优方案逼近,产生逐步最大化预设目标集合中的各个目标的方案(即所述最优调度方案)。

附图说明

图1是本发明实施例的一种基于蚁群算法的整车物流调度方法的流程图;

图2是图1中步骤s101的一个具体实施方式的流程图;

图3是图1中步骤s102的一个具体实施方式的流程图;

图4是图3的一个典型应用场景的流程图;

图5是图1中步骤s103的一个具体实施方式的流程图;

图6是图5的一个典型应用场景的流程图;

图7是本发明实施例的一种基于蚁群算法的整车物流调度装置的结构示意图。

具体实施方式

本领域技术人员理解,如背景技术所言,传统的整车物流调度模式没有对任务目标进行配载优化,也没有充分考虑输入的订单本身的约束需求,而是简单地通过人工分配订单到车辆的方式来形成调度计划(即调度方案)。正是由于现有的整车物流调度方案中人工调度存在的不足,导致存在考虑变量因素少、调度方案非最优、运力资源使用率低、订单反应速度满等诸多缺点,在实际应用中无法满足业务合同等角度提出的约束,对任务各个方面的利益关系方造成损害,更会由于忽视一些调度系统中的现实因素而产生无效方案,影响整个系统的正常运作,造成效率低下、系统混乱。

另一方面,现有的整车物流调度模式没有梳理系统目标并进行多方面的统筹优化,限制了系统能力的提升和对各方面利益的最大化,或者不能权衡调度体系的各个目标,造成顾此失彼,本末倒置,更无法从时间的角度进行全局的统筹优化。

为了实现智能化的自动求解整车调度方案,本申请发明人研究发现:

一般而言,对于典型的多目标问题的求解思路是对其进行数学建模,将其抽象为数值函数的优化问题。但在实际应用中,由于实际因素复杂,这些函数通常会显示出不同的数学特征,如目标函数和约束函数是否连续可微,是否有凸性质等,使得计算结果可能难以满足实际条件。所以,大多数情况下,需要通过数值计算的方法进行近似优化计算。也即,针对当前应用场景,需要在可接受的时间和精度范围内,求出数值函数近似最优解。而启发式算法对于目标函数和约束条件的要求较为宽松,不要求达到精确最优解,因而成为当前较为流行的解法。

作为启发式算法的一种具体解法,蚁群算法是一种用来在图中寻找优化路径的机率型算法。其灵感来源于蚂蚁觅食过程中发现最短路径的行为。具体而言,蚂蚁在路径上前进时会根据先前蚂蚁分泌的信息素浓度来选择下一步路径,其选择一条路径的概率与信息素的浓度呈正比。由此,蚁群的集体行为构成了正反馈机制,也即,某条路径走过的蚂蚁越多,后面的蚂蚁选择该路径的概率越大。蚁群算法正是根据这一现象,用人工蚂蚁模拟蚁群的行为,从而实现寻优。

为了解决背景技术所述的技术问题,本申请公开的方案通过将蚁群算法用于带约束的多目标优化以进行最优方案的求解,实现智能化、自动化的整车物流调度,能够考虑尽可能多的变量因素、利于获取最优的调度方案,极大提高运力资源使用率,改善订单反应速度。

具体而言,本发明实施例提供一种基于蚁群算法的整车物流调度方法,包括:获取整车物流数据,所述整车物流数据包括订单数据及运力数据;基于所述整车物流数据获取m个候选分配方案,其中,m≥1;将所述候选分配方案记为蚂蚁,将m只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,从所述蚁群中选取目标向量最大的蚂蚁,所述蚂蚁在预设目标集合上的投影记为对应于该蚂蚁的目标向量;当所述蚁群的转移状态满足预设终止条件时,将最近一次转移时选取的目标向量最大的蚂蚁对应的分配方案确定为最优调度方案。

本领域技术人员理解,本发明实施例的方案以智能化的自动求解方案替代现有的人工操作方式,将获取的每一候选分配方案记为一只蚂蚁,结合蚁群算法的原理,充分利用蚁群算法的全局寻优能力和并行搜索能力,提高智能调度的实时性。

具体而言,本发明实施例的方案在不断迭代期间产生逐步最大化任务目标的方案,直至满足预设终止条件时,将最新产生的最符合任务目标(即目标向量最大)的蚂蚁对应的分配方案确定为最优调度方案。

进一步,本发明实施例的方案通过蚁群算法对整车物流调度进行精确描述和推演,最终通过目标性能评价获得最大程度利用运力并装载最多订单的最优调度方案,从而提高整车调度系统的系统效率,确保所述整车调度系统能够有条不紊地运行。

进一步,本发明实施例的方案不仅能够提高运算效率,还能够确保最优方案的求解,降低成本,提高客户满意度。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1是本发明实施例的一种基于蚁群算法的整车物流调度方法的流程图。其中,所述整车物流调度可以指整车从出厂、经由配送站点和经销商到最终客户期间的物流路径规划、配载和运力调度。本发明实施例的方案可以适用于整车物流调度应用场景,以确定最优调度方案。

具体地,参考图1,本实施例所述基于蚁群算法的整车物流调度方法可以包括如下步骤:

步骤s101,获取整车物流数据,所述整车物流数据包括订单数据及运力数据。

步骤s102,基于所述整车物流数据获取m个候选分配方案,其中,m≥1。

步骤s103,将所述候选分配方案记为蚂蚁,将m只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,从所述蚁群中选取目标向量最大的蚂蚁,所述蚂蚁在预设目标集合上的投影记为对应于该蚂蚁的目标向量。

步骤s104,当所述蚁群的转移状态满足预设终止条件时,将最近一次转移时选取的目标向量最大的蚂蚁对应的分配方案确定为最优调度方案。

更为具体地,所述订单数据可以用于描述与待调度的整车相关的信息。例如,所述订单数据可以包括待配送的车型、目的地、交付日期、订单紧急程度等。

进一步地,所述运力数据可以用于描述可用于运输所述待调度的整车的运输工具的配载信息。例如,所述运力数据可以包括所述运输工具的数量、装载容量等。优选地,所述运输工具可以包括轿运车。

进一步地,所述整车物流数据还可以包括节点数据,用于描述制定调度方案时需要经过的配送站点、经销商等。

进一步地,所述整车物流数据还可以包括场景数据(也可称为目标数据),用于描述制定调度方案时需要考虑的注意事项。例如,特定订单的优先级排序、特定车型的优先配送要求等。

优选地,对于每条订单数据,所述订单数据可以包括多个字段,所述字段可以包括经销商信息、客户信息、整车车型、整车个性化设置内容、交付期限等。类似的,对于每条运力数据,所述运力数据也可以包括多个字段,所述字段可以包括装载限额、轿运车数量、轿运车可装整车车型等。

进一步地,所述整车物流数据可以是通过对原始数据进行预处理获得的,所述原始数据同样可以包括订单数据、运力数据、节点数据、场景数据等。例如,可以从经销商处获取所述订单数据、节点数据和场景数据,从物流方获取所述运力数据。

本领域技术人员理解,所述原始数据可以整合自多数据源,而各个数据源在录入各自的数据时极有可能出现数据缺失、数据填写错误等问题。另一方面,由于传统整车物流场景大多依靠人工经验形成调度计划,调度过程中产生的数据都以非结构化的方式被记录下来,因而会产生和混入较多无关数据和错误数据。因而,在初始数据获取阶段,可以对获取的原始数据进行清洗,以排除原始数据中相互矛盾的错误数据,提取执行后续算法所需的有用信息,从而确保所述整车物流数据本身的可靠性和合理性。

作为一个非限制性实施例,参考图2,所述步骤s101可以包括如下步骤:

步骤s1011,获取所述原始数据。

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

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

具体地,所述预设标准范围可以与所述字段一一对应。在实际应用中,可以针对所述原始数据中的每一个字段设置对应的预设标准范围,当获取的原始数据的字段不符合对应的预设标准范围时,剔除该数据,以确保最终保留下来的数据的有效性。

以所述运力数据的装载限额字段为例,可以预先设置所述装载限额只能选自固定值集合{8,10},若获取的数值不属于所述固定值集合,则判断该原始数据错误,提出该原始数据。

优选地,所述原始数据对应的所述预设标准值范围可以由提供该原始数据的数据提供方预先设定;或者,也可以由本实施例所述整车物流调度方法的提供方制定,所述数据提供方可以根据需要调整所述预设标准值范围的具体数值。

进一步地,所述候选分配方案可以用于描述初始状态下订单和运力的匹配结果,所述匹配结果即为调度方案,所述初始状态是指执行蚁群算法之初的状态。也即,在对所述原始数据进行清理后,可以基于清洗后的数据(即所述整车物流数据)进行装载,将订单分配到轿运车上,以便进行后续的蚁群算法。优选地,所述m个候选分配方案可以作为后续蚁群算法时的初始化蚁群参数。

例如,可以通过人工调度的经验制定贪心算法,先按照订单数据中车型大小以及紧急程度安排订单的优先级,然后选择在当前看来是最好的装载方案进行配载,从而直接计算出一个可行的调度方案作为所述候选分配方案。其中,所述可行的调度方案需要满足预设约束条件。

进一步地,所述候选分配方案的数量m可以是根据所述订单数据确定的。例如,针对100个订单数据可以获取10个候选分配方案。

作为一个非限制性实施例,参考图3,所述步骤s102可以包括如下步骤:

步骤s1021,循环迭代地随机匹配所述订单数据和运力数据,对于每次迭代,当订单分配完毕且匹配的运力最少时,或者,当运力分配完毕时,将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案。

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

本领域技术人员理解,在本实施例的初始化装载过程中,采用贪心算法进行订单和运力的初步匹配,以直接计算出一个可行的调度方案,然后在通过本实施例的蚁群算法对该可行的调度方案进行逐优推演,以获取最优方案。

在一个优选例中,所述随机匹配可以指:将所述订单数据包括的订单按紧急程度排序,每次循环迭代时按照紧急程度由高到低的顺序依次抽取一个订单,并从所述运力数据中随机抽取一个运力开始匹配操作。

作为一个变化例,所述随机匹配可以指:将所述运力数据包括的轿运车按车型大小排序,每次循环迭代时按照车型由大到小的顺序依次抽取一个运力,并从所述订单数据中随机抽取一个订单开始匹配操作。

作为另一个变化例,所述随机匹配还可以指:每次循环迭代时分别从所述订单数据和运力数据中各随机抽取一个订单和一个运力开始匹配操作。

接下来以上述第三种随机匹配方式为例,结合图4对本实施例所述候选分配方案的获取流程作具体阐述。

在一个典型的应用场景中,参考图4,首先,可以执行步骤a101,以从所述运力数据中随机抽取一个运力并开始内迭代。

具体地,所述内迭代的过程可以包括如下步骤:步骤a102,遍历所述订单数据包括的订单,以从中筛选出与所述运力满足装载约束的所有订单;步骤a103,判断所述运力是否满载。

优选地,所述装载约束可以指大小约束,也即,运力能否装下订单。

更为具体地,所述步骤a102可以包括如下步骤:步骤a1021,从所述订单数据中随机抽取一个订单;步骤a1022,将所述订单装载至所述运力;步骤a1023,判断所述运力和所述订单是否满足所述装载约束。

当所述步骤a1023的判断结果为否定的,也即,当所述运力和所述订单不满足所述装载约束时,重新执行所述步骤a1021,以重新从所述订单数据中随机抽取一个订单,直至本次随机抽取的订单与所述运力满足所述装载约束(也即直至所述步骤a1023的判断结果为肯定的)时,执行步骤a1024,以判断所述订单数据包括的订单是否遍历完毕。

当所述步骤a1024的判断结果为否定的,也即,当所述订单数据包括的订单未遍历完毕时,继续执行所述步骤a1021至步骤a1023,以继续从所述订单数据中随机抽取一个订单并判断所述运力和本次随机抽取的订单是否满足所述装载约束,直至所述订单数据包括的订单全部遍历完毕(也即直至所述步骤a1024的判断结果为肯定的)。

当所述步骤a1024的判断结果为肯定的时,执行所述步骤a103,以判断所述运力是否满载。

当所述步骤a103的判断结果为否定的,也即,当所述运力未满载时,执行步骤a104,以清空所述运力的匹配结果并重新执行所述内迭代(也即重新执行所述步骤a102和步骤a103),直至本次内迭代的结果为所述运力满载(即直至所述步骤s103的判断结果为肯定的)时,执行步骤a105,以判断所述订单数据包括的订单是否分配完毕。

当所述步骤a105的判断结果为否定的,也即,当所述订单数据包括的订单分配完毕,且所述运力数据包括的运力未分配完毕时,继续执行所述步骤a101至步骤a105(即继续从所述运力数据中随机抽取一个运力并执行所述内迭代),直至所述运力数据包括的运力分配完毕或所述订单数据包括的订单分配完毕,以完成一次循环迭代。

当所述步骤a105的判断结果为肯定的,也即,当所述订单数据包括的订单均分配完毕时,可以执行步骤a106,以比较本次循环迭代确定的运力的数量是否小于上一次循环迭代确定的运力的数量。

若本次循环迭代确定的运力的数量小于(可以包括等于)上一次循环迭代确定的运力的数量,也即,若所述步骤a106的判断结果为肯定的,则可以将本次循环迭代确定的运力与订单的匹配结果作为本次迭代获取的候选分配方案。

否则,若本次循环迭代确定的运力的数量大于上一次循环迭代确定的运力的数量,也即,若所述步骤a106的判断结果为否定的,则重新自所述步骤a101开始执行,以重新获取订单数据和运力数据的随机匹配结果。

作为一个变化例,在循环迭代期间,当所述运力数据包括的运力均分配完毕时,也可以执行所述步骤a106。

进一步地,所述预设约束条件可以选自:配载约束;意向方向约束;可拼城市数量约束。其中,所述意向方向可以指意向城市,也即所述订单的目的地、可拼城市等。在实际应用中,本领域技术人员也可以根据需要调整所述预设约束条件的具体内容。

进一步地,基于整车调度问题的多变量、离散性、高维数、数据量与解空间大以及要求计算时间短等特点,本实施例的方案拟采用蚁群算法进行调度方案的求解。

具体而言,对于给定的订单和运力,在满足各种约束的前提下,可以根据系统目标进行基于先验的贪心算法的订单初步装载(即执行所述步骤s102)。在若干初步装载方案的基础上,通过蚁群算法的迭代优化,产生逐步最大化任务目标的方案。其中,利用蚁群的正反馈机制向最优方案逼近;采用确定性选择和随机性选择相结合的选择策略,避免算法的停滞现象;对所有完成一次转移的蚂蚁进行局部规则更新以及对每次循环最优的蚂蚁使用全局更新避免陷入局部最优;对每代的最优蚂蚁所走路径进行信息更新,将其限制在有上下界区间内,避免收敛于局部最优解。

进一步地,基本的蚁群算法模型可以用旅行商问题(travellingsalesmanproblem,简称tsp)描述。对于给定的n个城市节点以及连接节点的边的集合,找出一条最短的闭回路,使得该闭回路在每个节点都只经过一次。

具体而言,在基本蚁群算法中,有两个基本要素:状态转移规则和信息素更新规则。

对于状态转移规则,人工蚂蚁(可简称为蚂蚁)随机选择某个节点作为初始化节点,然后经由该节点转移到下一节点,直到完成经过所有节点的闭回路。

对应的,每只蚂蚁的状态转移规则为:

其中,第k只蚂蚁所在节点为i,转移到j的概率为pij;η(i,j)表示启发信息,一般选取为城市节点距离的倒数;是未经过的节点集合;α,β分别表示信息素和启发信息的参数因子;τ(i,j)表示路径(i,j)上的信息素总量。

所述信息素更新规则可以总结为以下公式:

τ(i,j)=(1-ρ)·τ(i,j)+δτ(i,j);

其中,m只人工蚂蚁通过n-1次选择完成路线,在其路线上释放信息素。为第k只蚂蚁在(i,j)转移时释放的信息素,该路线总的信息素更新量为δτ(i,j)。同时,引入信息素挥发机制,挥发系数为ρ,信息素的调整为信息素的保持量加上新增信息素释放量。

在本实施例中,将所述候选分配方案记为蚂蚁,将m只蚂蚁构成的集合记为蚁群,所述蚁群中的每只蚂蚁均可以分配有初始化信息素矩阵和启发信息矩阵,所述初始化信息素矩阵和启发信息矩阵与目标一一对应,其中,对于每只蚂蚁,所述启发信息矩阵用于描述所述蚂蚁的订单与运力的初始匹配结果,所述初始化信息素矩阵用于描述所述蚂蚁的各订单在各运力之间的初始转移概率。

具体而言,所述启发信息矩阵和初始化信息素矩阵相结合,可以决定所述蚁群中各只蚂蚁第一步转移的位置和方向。

记所述订单数据包括的订单的集合shipmentset={shipmentu},u∈u,其中,u为所述订单数据包括的总订单数。类似的,记所述运力数据包括的轿运车的集合trailerset={trailerv},v∈v,其中,v为所述运力数据包括的总运力数(即总轿运车数)。

作为一个非限制性实施例,对于每只蚂蚁,所述启发信息矩阵可以基于如下公式表示:

b=(buv);

其中,b为所述蚂蚁的启发信息矩阵,buv为所述启发信息矩阵中第u行第v列的元素,u为所述订单数据中的第u个订单,1≤u≤u,u为所述订单数据包括的总订单数,v为所述运力数据中的第v个运力,1≤v≤v,v为所述运力数据包括的总运力数,当buv=1时表示在所述蚂蚁中第u个订单与第v个运力相匹配(即第u个订单被第v个运力装载),当buv=0时表示在所述蚂蚁中第u个订单与第v个运力不相匹配(即第u个订单未被第v个运力装载)。

可选的,对于每只蚂蚁,所述蚂蚁的初始化信息素矩阵a可以包括u×v个元素,其中,u为所述订单数据包括的总订单数,v为所述运力数据包括的总运力数,所述u×v个元素均以预设常数填充。例如,所述预设常数可以为1,也即所述蚂蚁的各订单在各运力之间的初始转移概率均为1。

在本实施例中,对于一个分配方案包括的订单和运力,可以将所述订单和所述运力的匹配结果的变化即为蚂蚁的转移。本实施例正是通过蚂蚁的不断转移来不断改变装车状态,直至在预设目标集合的性能评价最优。

作为一个非限制性实施例,参考图5,所述步骤s103可以包括如下步骤:

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

步骤s1032,对于每只蚂蚁,根据所述状态转移矩阵计算所述蚂蚁的目标向量。

步骤s1033,选取所述目标向量最大的蚂蚁。

本实施例的方案结合蚁群算法的原理,本实施例的方案结合蚁群算法的原理,将分配方案所记载的订单和运力之间的匹配关系的变化情况等效为蚂蚁的转移,从而在蚁群中每只蚂蚁转移期间计算各只蚂蚁的状态转移矩阵和信息素矩阵,以从中选取出目标向量最大的蚂蚁作为候选最优方案。本领域技术人员理解,基于本实施例的方案,能够利用蚁群的正反馈机制向最优方案逼近,产生逐步最大化预设目标集合中的各个目标的方案(即所述最优调度方案)。具体而言,基于本实施例的方案,能够在满足预设约束条件的前提下,最大限度的利用运力容积装载整车订单,尤其是紧急订单和大型商品车订单,最大程度地降低运力的行驶里程数和装卸次数,进而整体上降低运力的调度成本,提高用户满意度。

具体地,所述状态转移矩阵初始即为所述启发信息矩阵。

进一步地,可以有公式:状态转移矩阵=信息素矩阵×启发信息矩阵。

在所述步骤s1031中,m只蚂蚁并行开始随机转移,每转移一步均可以获得m个新的方案,并各自更新自己的信息素矩阵,基于本次蚂蚁的信息素和上一次转移时的信息素矩阵按照上述信息素更新规则运算获得新的信息素矩阵。也即,在所述蚂蚁中各只蚂蚁转移期间,对于每只蚂蚁,可以将更新后的信息素矩阵作为所述蚂蚁下一次转移时的初始化信息素矩阵。

作为一个可选的方案,当m只蚂蚁转移完毕(即每只蚂蚁中所有订单和所有运力均匹配过一次)后,从中选出最优蚂蚁(即目标向量最大的蚂蚁),并将所述最优蚂蚁的最新的信息素矩阵作为下一次循环时所有蚂蚁的初始信息素矩阵。

进一步地,在所述蚁群中各只蚂蚁转移期间,更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵的更新周期是以各只蚂蚁转移时的步长为单位的。也即,蚂蚁每转移一次(即每走一步),更新一次所述蚂蚁的状态转移矩阵和信息素矩阵。

进一步地,对于每只蚂蚁,可以基于上述状态转移规则和信息素更新规则计算和更新对应的状态转移矩阵和信息素矩阵。

在所述步骤s1032中,由于所述状态转移矩阵实际反映的是最新的分配方案,因而,可以计算所述分配方案在预设目标集合包括的各个目标上的投影(即目标向量),所述投影可以为一个量化的结果,用于衡量该分配方案在该目标上的优劣程度。

例如,对于每只蚂蚁,所述蚂蚁的目标向量的计算过程可以包括:分别计算所述蚂蚁在所述预设目标集合包括的每一个目标上的投影;对各个目标上的投影进行加权求和,以获取所述蚂蚁的目标向量,所述各个目标上的投影的权重是根据对对应目标的先验结果分配的。具体而言,所述对应目标的先验结果可以是根据历史上运力和订单的分配结果对该目标的符合程度确定的。

作为一个非限制性实施例,对于所述蚁群中的每只蚂蚁,所述蚂蚁可以是按照确定性概率或随机性概率进行转移的,其中,所述按照确定性概率进行转移是指按照所述蚂蚁的信息素矩阵指示的最大概率方向进行转移,所述按照随机性概率进行转移是指按照随机方向进行转移,所述信息素矩阵用于描述所述蚂蚁的各订单在运力之间的最新转移概率。

在一个优选例中,所述蚂蚁按照确定性概率或随机性概率进行转移的过程可以包括:所述蚂蚁从预设区间内抽取一个随机数;当所述随机数小于预设阈值时,按照确定性概率进行转移;否则,按照随机性概率进行转移。

例如,假定所述预设区间为(0,1)且所述预设阈值为0.9,对于一只蚂蚁,本次转移时从所述预设区间中随机抽取一个数,若该数值为0.2,则本次转移按照随机性概率转移;若该数值为0.98,则本次转移按照确定性概率转移。

进一步地,对于所述蚁群中的每只蚂蚁,其在每次转移之前都可以执行上述操作,以确定是按照随机性概率还是确定性概率转移。

进一步地,所述预设终止条件可以包括:所述蚁群中各只蚂蚁的转移次数达到预设循环次数。优选地,所述预设循环次数可以是根据所述订单数据和运力数据确定的,其目的在于确保最终获取的调度方案为一个收敛的结果。

进一步地,所述预设目标集合中的目标可以包括:最大化装载数量;最大化装载商品车紧急程度;最大化装载大、中型商品车数量。在实际应用中,本领域技术人员还可根据需要调整所述目标的具体内容和数量。

在一个典型的应用场景中,参考图6,在基于上述图4所述方案获取m个候选分配方案(即m只蚂蚁)后,可以继续执行步骤b101,以使每只蚂蚁被分配信息素矩阵与启发信息矩阵,并分别计算每只蚂蚁的不同的状态转移矩阵。

进一步地,执行步骤b102,每只蚂蚁按照确定性或者随机性概率进行转移,每转移一步即更新各自的信息素矩阵。

进一步地,在所述蚁群中各只蚂蚁转移期间,每只蚂蚁每走一步,执行步骤b103,以对每只蚂蚁进行目标性能评价,并从中选取目标向量最大的蚂蚁。

然后,执行步骤b104,以判断当前是否满足结束条件。例如,所述结束条件可以指所述步骤b102至步骤b104的循环次数是否达到预设循环次数。

当所述步骤b104的判断结果为肯定的,也即,当满足所述结束条件时,结束该算法模块,输出的最近一次循环获得的目标向量最大的蚂蚁(即最优蚂蚁)即为最优调度方案。

否则,即当所述步骤b104的判断结果为否定的时,用本次循环获取的最优蚂蚁进行信息素矩阵的更新,通过信息素矩阵计算状态转移矩阵,通过状态转移矩阵更新蚁群,重新执行所述步骤b102至步骤b104,如此滚动迭代,直至满足所述结束条件。

本领域技术人员理解,本实施例的方案通过结合先验有偏好的初始化调度方案,实现整车订单向运力的初步装载。进一步地,通过蚁群算法的正反馈机制,在满足预设约束条件的前提下,最大限度的利用运力容积装载订单,最大程度降低运力的行驶里程数和装卸次数,整体上降低运力的调度成本,提高用户满意度。

由上,采用本实施例的方案,将智能化的自动求解方案替代现有的人工操作方式,将获取的每一候选分配方案记为一只蚂蚁,结合蚁群算法的原理,充分利用蚁群算法的全局寻优能力和并行搜索能力,提高智能调度的实时性。

具体而言,本发明实施例的方案在不断迭代期间产生逐步最大化任务目标的方案,直至满足预设终止条件时,将最新产生的最符合任务目标(即目标向量最大)的蚂蚁对应的分配方案确定为最优调度方案。

本领域技术人员理解,本实施例的方案通过蚁群算法对整车物流调度进行精确描述和推演,最终通过目标性能评价获得最大程度利用运力并装载最多订单的最优调度方案,从而提高整车调度系统的系统效率,确保所述整车调度系统能够有条不紊地运行。

进一步,本发明实施例的方案不仅能够提高运算效率,还能够确保最优方案的求解,降低成本,提高客户满意度。

图7是本发明实施例的一种基于蚁群算法的整车物流调度装置的结构示意图。本领域技术人员理解,本实施例所述基于蚁群算法的整车物流调度装置7(以下简称为整车物流调度装置7)用于实施上述图1至图6所示实施例中所述的方法技术方案。

具体地,在本实施例中,所述整车物流调度装置7可以包括:获取模块71,用于获取整车物流数据,所述整车物流数据包括订单数据及运力数据;初始装载模块72,用于基于所述整车物流数据获取m个候选分配方案,其中,m≥1;蚁群算法优化模块73,将所述候选分配方案记为蚂蚁,将m只蚂蚁构成的集合记为蚁群,在所述蚁群中各只蚂蚁转移期间,从所述蚁群中选取目标向量最大的蚂蚁,所述蚂蚁在预设目标集合上的投影记为对应于该蚂蚁的目标向量;选取模块74,当所述蚁群的转移状态满足预设终止条件时,将最近一次转移时选取的目标向量最大的蚂蚁对应的分配方案确定为最优调度方案。

更为具体地,所述初始装载模块72可以执行如下步骤:循环迭代地随机匹配所述订单数据和运力数据,对于每次迭代,当订单分配完毕且匹配的运力最少时,或者,当运力分配完毕时,将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案;基于预设约束条件筛选历次迭代获取的候选分配方案,以获取所述m个候选分配方案。

优选地,所述整车物流调度装置7还可以包括:约束模块76,用于存储和提供所述预设约束条件。

进一步地,所述循环迭代地随机匹配所述订单数据和运力数据可以包括:从所述运力数据中随机抽取一个运力并开始内迭代,所述内迭代的过程包括:遍历所述订单数据包括的订单,以从中筛选出与所述运力满足装载约束的所有订单;判断所述运力是否满载;当所述运力未满载时,清空所述运力的匹配结果并重新执行所述内迭代,直至本次内迭代的结果为所述运力满载时,判断所述订单数据包括的订单是否分配完毕;当所述订单数据包括的订单分配完毕,且所述运力数据包括的运力未分配完毕时,继续从所述运力数据中随机抽取一个运力并执行所述内迭代,直至所述运力数据包括的运力分配完毕或所述订单数据包括的订单分配完毕,以完成一次循环迭代。

进一步地,所述将已分配的订单和运力的匹配结果作为本次迭代获取的候选分配方案可以包括:比较本次循环迭代确定的运力的数量与上一次循环迭代确定的运力的数量;若本次循环迭代确定的运力的数量小于上一次循环迭代确定的运力的数量,将本次循环迭代确定的运力与订单的匹配结果作为本次迭代获取的候选分配方案。

进一步地,所述遍历所述订单数据包括的订单,以从中筛选出与所述运力满足装载约束的所有订单可以包括:从所述订单数据中随机抽取一个订单;判断所述运力和所述订单是否满足所述装载约束;当所述运力和所述订单不满足所述装载约束时,重新从所述订单数据中随机抽取一个订单,直至本次随机抽取的订单与所述运力满足所述装载约束时,判断所述订单数据包括的订单是否遍历完毕;当所述订单数据包括的订单未遍历完毕时,继续从所述订单数据中随机抽取一个订单并判断所述运力和本次随机抽取的订单是否满足所述装载约束,直至所述订单数据包括的订单全部遍历完毕。

进一步地,所述预设约束条件可以选自:配载约束;意向方向约束;可拼城市数量约束。

进一步地,所述蚁群中的每只蚂蚁均可以分配有初始化信息素矩阵和启发信息矩阵,所述初始化信息素矩阵和启发信息矩阵与目标一一对应,其中,对于每只蚂蚁,所述启发信息矩阵用于描述所述蚂蚁的订单与运力的初始匹配结果,所述初始化信息素矩阵用于描述所述蚂蚁的各订单在各运力之间的初始转移概率。

进一步地,对于每只蚂蚁,所述启发信息矩阵可以基于如下公式表示:其中,b为所述蚂蚁的启发信息矩阵,buv为所述启发信息矩阵中第u行第v列的元素,u为所述订单数据中的第u个订单,1≤u≤u,u为所述订单数据包括的总订单数,v为所述运力数据中的第v个运力,1≤v≤v,v为所述运力数据包括的总运力数,当buv=1时表示在所述蚂蚁中第u个订单与第v个运力相匹配,当buv=0时表示在所述蚂蚁中第u个订单与第v个运力不相匹配。

进一步地,对于每只蚂蚁,所述蚂蚁的初始化信息素矩阵a可以包括u×v个元素,其中,u为所述订单数据包括的总订单数,v为所述运力数据包括的总运力数,所述u×v个元素均可以以预设常数填充。

进一步地,所述蚁群算法优化模块73可以执行如下步骤:在所述蚁群中各只蚂蚁转移期间,基于蚁群算法计算和更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵,其中,对于每只蚂蚁,所述状态转移矩阵用于描述所述蚂蚁的订单和运力的最新匹配结果,所述信息素矩阵用于描述所述蚂蚁的各订单在运力之间的最新转移概率;对于每只蚂蚁,根据所述状态转移矩阵计算所述蚂蚁的目标向量;选取所述目标向量最大的蚂蚁。

进一步地,所述整车物流调度装置7还可以包括:目标性能评价模块75,用于在转移期间计算每只蚂蚁的目标向量。具体地,对于每只蚂蚁,所述蚂蚁的目标向量的计算过程可以包括:分别计算所述蚂蚁在所述预设目标集合包括的每一个目标上的投影;对各个目标上的投影进行加权求和,以获取所述蚂蚁的目标向量,所述各个目标上的投影的权重是根据对对应目标的先验结果分配的。

进一步地,在所述蚁群中各只蚂蚁转移期间,更新所述蚁群中各只蚂蚁的状态转移矩阵和信息素矩阵的更新周期可以是以各只蚂蚁转移时的步长为单位的。

进一步地,在所述蚂蚁转移期间,对于每只蚂蚁,可以将更新后的信息素矩阵作为所述蚂蚁下一次转移时的初始化信息素矩阵。

进一步地,当选取出目标向量最大的蚂蚁时,可以将该蚂蚁的信息素矩阵作为所述蚁群中各只蚂蚁下一次转移时的初始化信息素矩阵。

进一步地,对于所述蚁群中的每只蚂蚁,所述蚂蚁可以是按照确定性概率或随机性概率进行转移的,其中,所述按照确定性概率进行转移是指按照所述蚂蚁的信息素矩阵指示的最大概率方向进行转移,所述按照随机性概率进行转移是指按照随机方向进行转移,所述信息素矩阵用于描述所述蚂蚁的各订单在运力之间的最新转移概率。

进一步地,所述蚂蚁按照确定性概率或随机性概率进行转移的过程可以包括:所述蚂蚁从预设区间内抽取一个随机数;当所述随机数小于预设阈值时,按照确定性概率进行转移;否则,按照随机性概率进行转移。

进一步地,所述预设终止条件可以包括:所述蚁群中各只蚂蚁的转移次数达到预设循环次数。

进一步地,所述整车物流数据可以是通过对原始数据进行预处理获得的,所述获取模块71可以执行如下步骤:获取所述原始数据;根据预设标准值范围筛查所述原始数据,以剔除所述原始数据中不符合对应的预设标准值范围的数据;根据筛查后的原始数据获取所述整车物流数据。

进一步地,所述预设目标集合中的目标可以包括:最大化装载数量;最大化装载商品车紧急程度;最大化装载大、中型商品车数量。

进一步地,所述候选分配方案的数量m可以是根据所述订单数据确定的。

关于所述整车物流调度装置7的工作原理、工作方式的更多内容,可以参照上述图1至图6中的相关描述,这里不再赘述。

由上,采用本实施例的方案,原始数据经过所述获取模块71清洗后,将有效可用的订单信息、运力信息、节点信息、场景描述传到初始装载模块72;初始装载模块72按照约束模块76的要求,通过先验按照特定规则进行贪心装载形成初步的装载方式(即所述m个候选分配方案);蚁群算法优化模块73以初始装载结果为起点,结合目标性能评价模块75,利用蚁群算法进行迭代优化,产生逐步最大化预设目标集合中目标的分配方案,最后在满足预设条件时由选取模块74从蚁群中选出最优调度方案。

本领域技术人员理解,本实施例的方案基于所述蚁群算法优化模块73完成订单与运力在各个约束条件下相匹配的过程,利用蚁群算法进行方案寻优,结合目标性能评价模块75进行调度方案的取舍,最终得到满足约束模块的最大化任务目标的调度方案。

进一步地,本发明实施例还公开一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述图1至图6所示实施例中所述的方法技术方案。优选地,所述存储介质可以包括诸如非挥发性(non-volatile)存储器或者非瞬态(non-transitory)存储器等计算机可读存储介质。所述存储介质可以包括rom、ram、磁盘或光盘等。

进一步地,本发明实施例还公开一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述图1至图6所示实施例中所述的方法技术方案。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

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