拣货路径规划方法与装置
技术领域
本公开涉及机器学习技术领域,具体而言,涉及一种基于精英蚁群算法的拣货路径规划方法与装置。
背景技术
随着电子商务的发展,在仓库拣货过程中的路径规划成为提高物流效率的重要环节。在仓库中,由于逻辑区面积较大,拣选的区域范围较广,一个集合单涉及拣选的储位通常有几十个,寻找合理的拣货路径可以降低拣货距离,提升拣货效率并且节省人力成本。尤其每当大促期间,通过优化拣货环节,可以明显地加快发货速度,提高仓储的利用率并改善用户体验。
拣货路径优化是指通过优化减少拣货员在仓库间的行走距离,以最短的时间拣出货品,提高拣货效率。相关的拣货路径优化往往通过基于策略的方法,比如基于U型策略或S型策略的拣货方法。由于仓库储位布局各有区别,现有的拣货路径策略可以给出一个具有固定起点和终点的拣货路径方案,但是由于存在起点和终点固定的约束条件,生成的遍历路径难以保证路径最短,从而导致拣货人员绕路以及拣货效率低等问题;此外,拣货路径优化问题属于NP-Hard问题,随着问题规模增加,原有拣货路径算法在求解时间和优化效果上尚有一定提升空间。
因此,需要一种能够快速规划出最优拣货路径的拣货路径规划方法。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种拣货路径规划方法与路径规划装置,用于在提高拣货路径规划效率的同时提供更优的拣货路径规划方案。
根据本公开实施例的第一方面,提供一种拣货路径规划方法,包括:以多个节点为起点,启动多只蚂蚁的路径遍历,所述节点包括多个拣货节点、拣货起点、拣货终点;根据多个所述节点之间的路径的信息素数值计算所述蚂蚁转移到其他所述节点的转移概率,将蚂蚁移动到所述转移概率最大的所述节点上;判断一只蚂蚁遍历所有所述节点后,更新路径的信息素数值,记录一个遍历路径;根据多个遍历路径确定最优路径。
根据本公开实施例的第二方面,提供一种路径规划装置,包括:初始化模块,设置为以多个节点为起点,启动多只蚂蚁的路径遍历,所述节点包括多个拣货节点、拣货起点、拣货终点;路径生成模块,设置为根据多个所述节点之间的路径的信息素数值计算所述蚂蚁转移到其他所述节点的转移概率,将蚂蚁移动到所述转移概率最大的所述节点上;信息素更新模块,设置为判断一只蚂蚁遍历所有所述节点后,更新路径的信息素数值,记录一个遍历路径;最优选择模块,设置为根据多个遍历路径确定最优路径。
根据本公开的第三方面,提供一种路径规划装置,包括:存储器;以及耦合到所属存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上述任意一项所述的方法。
根据本公开的第四方面,提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如上述任意一项所述的拣货路径规划方法。
本公开提供的拣货路径规划方法通过将基于现有策略产生的最优拣货路径方案作为异步并行精英蚁群优化算法的参考精英方案,异步并行计算出最优拣货路径方案,在提高拣货路径规划效率的同时提供了更优的拣货路径规划方案。异步并行精英蚁群优化算法保证了算法的求解时间和优化效果,解决了现有单纯基于策略的拣货路径规划方案优化效果不理想和机器学习等算法时效差的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开拣货路径规划方法的流程图。
图2示意性示出本公开一个实施例中拣货路径规划方法的流程图。
图3示意性示出本公开一个实施例中拣货路径规划方法的流程图。
图4示意性示出本公开一个实施例中拣货路径规划方法的流程图。
图5示意性示出本公开一个示例性实施例中拣货路径规划装置的方框图。
图6示意性示出本公开一个示例性实施例中另一种拣货路径规划设备的方框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
下面结合附图对本公开示例实施方式进行详细说明。
图1示意性示出本公开示例性实施例中拣货路径规划方法的流程图。参考图1,拣货路径规划方法100可以包括:
步骤S102,以多个节点为起点,启动多只蚂蚁的路径遍历,所述节点包括多个拣货节点、拣货起点、拣货终点;
步骤S104,根据多个所述节点之间的路径的信息素数值计算所述蚂蚁转移到其他所述节点的转移概率,将蚂蚁移动到所述转移概率最大的所述节点上;
步骤S106,判断一只蚂蚁遍历所有所述节点后,更新路径的信息素数值,记录一个遍历路径;
步骤S108,根据多个遍历路径确定最优路径。
本公开提供的基于异步并行精英蚁群算法的拣货路径优化方法在经典ACO(Antcolony optimization,蚁群优化算法,由Marco Dorigo于1992年在他的博士论文中提出的仿生智能优化方法)基础上做了两大改进设计,在保证优化率指标前提下,降低了算法运行时间,提高了拣货路径优化效率。
首先,在本方法中,蚂蚁的起始路线不局限于N个标定起始点,算法计算阶段确保每个节点都可以作为起始点(异步并行计算);其次,引入了历史最优方案到算法计算中,在保证求解质量的同时,降低了算法运行时间(精英策略)。
下面,对拣货路径规划方法100的各步骤进行详细说明。
在步骤S102,以多个节点为起点,启动多只蚂蚁的路径遍历,所述节点包括多个拣货节点、拣货起点、拣货终点。
在计算开始之前,可以首先对模型进行初始化。设定时间t=0,路径遍历循环次数Nc=0,所有蚂蚁的总循环次数最大不超过Ncmax,拣货节点i和j之间的路径(i,j)的初始化信息量与信息量增量分别为τij(0)=const,Δτij(0)=0。
计算开始时,首先将多只蚂蚁放在多个节点(包括拣货节点、拣货起点、拣货终点)上,从多个节点启动路径遍历,设置Nc=Nc+1。
与相关路径规划方法不同,本方法通过设置多个起始节点,提高了路径规划方案的优化程度以及计算速度。
步骤S104,根据多个所述节点之间的路径的信息素数值计算所述蚂蚁转移到其他所述节点的转移概率,将蚂蚁移动到所述转移概率最大的所述节点上。
可以根据以下状态转移概率公式(1)计算蚂蚁k选择城市j的概率,j∈{C-tabuk}。其中,其中,为蚂蚁k在第i节点上转移到第j节点的转移概率,t为所述路径行走循环的次数,C为所有节点的集合,tabuk为蚂蚁k已经走过的节点,dij为i和j两个节点之间的距离,α为取值范围为[0,5]的信息素指数,β为取值范围为[0,5]的启发式因子指数,τij为节点i和j之间路径的当前信息素数值。
计算出蚂蚁在节点上对其他节点的转移概率后,将蚂蚁k移动到转移概率最大的节点。在一个实施例中,每只蚂蚁均有与其对应的禁忌表,用于记录其经过的节点,以在计算时排除这些节点,防止重复行走,保证遍历效率。因此,在将蚂蚁k转移到新的节点后,需要把前一个节点记入禁忌表tabuk。
步骤S106,判断一只蚂蚁遍历所有所述节点后,更新路径的信息素数值,记录一个遍历路径。
判断蚂蚁遍历所有节点的方法例如可以为查看其禁忌表与当前节点的并集是否等于所有节点的集合。若该蚂蚁没有遍历所有节点,则继续按照步骤S104选择下一节点,若该蚂蚁已经遍历所有节点,则将其本次遍历的路径顺序、路径总长度等路径参数记录下来,更新其经过路径上的信息素。
在一个实施例中,更新信息素可以根据以下公式进行:
τij(t+n)=(1-ρ)·τij(t)+Δτij
其中,τij为节点i和j之间路径的当前信息素数值,Δτij表示更新的信息素增量;Lk表示第k只蚂蚁在本次循环中所走路径的总长度;Q表示蚂蚁循环一周在经过路径上所释放的信息素总量,影响算法收敛速度;γ表示权重参数;Tbs表示当前最优路径,Lbs表示当前最优路径的长度;ρ表示蒸发系数。
本方法各参数的建议值如表1。
表1
序号 |
参数 |
建议值 |
解释 |
1 |
0≤α≤5 |
1 |
信息素指数 |
2 |
0≤β≤5 |
5 |
启发式因子指数 |
3 |
0.1≤ρ≤0.99 |
0.1 |
蒸发系数 |
4 |
10≤Q≤10000 |
100 |
信息素总量 |
5 |
初始化信息素const |
1 |
初始化信息素 |
6 |
γ |
100 |
权重系数 |
7 |
蚂蚁数/节点数≈1.1 |
1.1*节点数(向上取整) |
蚂蚁数 |
8 |
循环计数或重复计数 |
N_cmax=4或K=10 |
停止条件 |
步骤S108,根据多个遍历路径确定最优路径。
本公开所述的多个遍历路径不仅包括多只蚂蚁提供的多个遍历路径,在一些情况下,还包括一只蚂蚁提供的遍历路径。
举例而言,蚂蚁1、蚂蚁2同时从两个节点开始路径遍历,由于蚂蚁1选择的路径较短,率先完成遍历过程,此时记录蚂蚁1的本次遍历路径为第一遍历路径,重新启动蚂蚁1的路径遍历。如果第二个完成路径遍历的是蚂蚁2,则记录蚂蚁2的遍历路径为第二遍历路径,重新启动蚂蚁2的路径遍历。但是在一些情况下,第二个完成路径遍历的还是蚂蚁1,则此时记录蚂蚁1第二次遍历的遍历路径为第二遍历路径,重新启动蚂蚁1的路径遍历。
为保证算法收敛,可以设置最大总循环次数,在判断记录的遍历路径达到最大总循环次数时,根据即时情况输出计算结果或重新启动计算。最大总循环次数只约束总的遍历路径数量,不约束每个遍历路径是由哪只蚂蚁提供的。
图2是本公开一种改进确定最优路径方法的流程图。
参考图2,步骤S108可以包括:
步骤S1082,获取历史最优路径与一个遍历路径;
步骤S1084,将所述历史最优路径与所述遍历路径中路径长度小的选择为当前最优路径;
步骤S1086,多次获取遍历路径,将所述遍历路径与所述当前最优路径二者中路径长度小的方案选择为当前最优路径;
步骤S1088,重复上一步骤n次,在判断所述当前最优路径连续k次被选择时,将所述当前最优路径确定为最优路径,其中n为预设的最大总循环次数。
其中,在步骤S1082中,历史最优路径包括根据S型策略方法获取遍历所述拣货节点的历史最优路径。即,将现有通过S型策略方法获取的最优路径作为ACO精英路径(精英策略)。此外,在对历史最优路径的选择中,建议选择同一巷道拣货顺序从外到里(主通道为参照物)的遍历路径方案。
在步骤S1084~S1088中,算法的终止条件可以设置为在外循环(所有蚂蚁的总遍历次数)具有最大数目的约束条件下,一个遍历路径方案已经连续K次被选择为当前最优路径,此时可以判断算法已经收敛,终止计算。
通过将历史最优路径设置为精英路径,可以使本方法得出的方案至少不劣于当前算法计算得出的方案,保证了方案质量。同时,通过引入精英路径作为初始解,降低了本方法的计算量,减少了计算时间,提高了计算效率。因此,本方法在提高了计算效率的同时提高了方案的优化质量。
图3示意性示出本公开示例性实施例中拣货路径规划方法的流程图。参考图3,拣货路径规划方法100还可以包括:
步骤S110,确定仓库拣货路径的起点,根据所述起点对所述最优路径进行修改,生成最优拣货路径。
由以上所述的蚁群算法计算得出的遍历路径的起点与终点可能与仓库中实际的拣货起点与终点不同。因此,在获取到最优便利路径后,可以结合实际的拣货起点与终点对方案进行微调,从而获得最优拣货路径。
举例而言,当实际拣货起点在最优路径中处于非首尾节点时,可以以起点为原点选择顺时针遍历或逆时针遍历两个方案中路径最短的方案,生成最终的遍历方案。终点即拣货最终复合台与拣货终点有关,因此可以根据以上遍历路径中的拣货终点设置最终复合台,即终点随拣货路径变化而变化。
下面通过具体实施例来对上述方法100进行详细说明。
图4是本公开一个实施例的流程图。
参考图4,接到拣货任务单后,基于节点之间的距离表,通过方法100获得拣货路径优化方案。在图4中,步骤S402体现异步并行策略,步骤S403体现精英策略,数字代表拣货顺序。
步骤S401:初始化,设置时间t=0,总循环次数Nc=0,总最大循环次数Ncmax=4,路径(i,j)的初始化信息量τij(0)=1,Δτij(0)=0,基于原有S型策略形成的历史最优路径的距离Lbs=391。
步骤S402:将13只蚂蚁分别放在C中11个起始节点上(多余的2只蚂蚁随机放在11个节点上即可),Nc=Nc+1。
步骤S403:根据公式1和表1进行参数设置,计算转移概率如:
计算蚂蚁k选择节点j的概率,j∈{C-tabu1},为蚂蚁k选择的起始节点。
步骤S404:选择具有最大状态转移概率的点,将蚂蚁k移动到该点,并把该点记入蚂蚁k的禁忌表tabuk。
步骤S405:判断是否访问完集合C中11个节点,是则进入步骤S406,否则跳转至步骤S403。
步骤S406:根据公式(2)更新一只蚂蚁在一次遍历结束后所经过的每条路径上的信息量并生成当前最优路径。如:
τij(1)=(1-0.1)×1+0=0.9
步骤S407,判断是否有一遍历路径方案连续k此被选为当前最优路径,是则输出计算结果,否则清空禁忌表并跳转至步骤S102。
根据S型策略形成的最优拣货路径的总长度391m以及本方法形成的最优拣货路径的总长度297m,计算得出优化率a:
a=(391-297)/391=24%
经过大量实际数据测试,总体优化率(降低拣货路径成本)指标目前已超过8%,甚至达到13%,且算法运行时间符合实际业务时间需求。某仓库测试数据表明,平均优化率达9%-13%,路径优化率达8%以上,求解时间达到100ms级别。
算法性能对比分析见表2。本方法在各项指标中普遍优于标准蚁群算法,平均优化率(平均优化率=(精英ACO路径成本-原有路径距离成本)/原有路径距离成本)高于6%,算法投用率(算法投用率=通过本算法获得方案优于原有方案的总数/总方案数)高于30%,算法响应时间明显较低,明显提高了拣货效率,在65%-72%的拣货路径计算中发挥了降低成本的作用。
表2拣货路径优化方法效果性能分析
指标项 |
本方法 |
标准蚁群算法 |
平均优化率 |
9%-13% |
3%-6% |
算法投用率 |
65%-72% |
30%-40% |
算法平均响应时间 |
约100ms |
约150ms以上 |
本公开提供的拣货路径规划方法通过对经典蚁群算法做出改进,引入异步并行策略到蚁群算法中,并在拣货路径优化问题中进行求解验证,大大提高了优化效果。此外,通过引入精英策略到蚁群算法的初始解和过程求解中,大大提升了优化效果,使得本方法具有极大的实际应用价值。
对应于上述方法实施例,本公开还提供一种拣货路径规划装置,可以用于执行上述方法实施例。
图5示意性示出本公开一个示例性实施例中一种拣货路径规划装置的方框图。
参考图5,拣货路径规划装置500可以包括:
初始化模块502,设置为将多只蚂蚁放在多个节点上,启动所述蚂蚁的路径遍历循环。
路径生成模块508,设置为根据拣货节点之间的路径的信息素数值计算所述蚂蚁转移到其他拣货节点的转移概率,将蚂蚁移动到所述转移概率最大的节点上。
信息素更新模块506,设置为判断所述蚂蚁遍历所有节点后,更新路径的信息素数值,记录一个遍历路径。
最优选择模块508,设置为根据多个遍历路径确定最优路径。
在一个实施例中,还可以包括:
方案调整模块510,设置为确定仓库拣货路径的起点与终点,并根据所述起点与所述终点对所述最优路径的起点和终点进行修改,生成最优拣货路径。
由于装置500的各功能已在其对应的方法实施例中予以详细说明,本公开于此不再赘述。
根据本公开的一个方面,提供一种路径规划装置,包括:
存储器;以及
耦合到所属存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上述任意一项所述的方法。
该实施例中的装置的处理器执行操作的具体方式已经在有关该拣货路径规划方法的实施例中执行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种装置600的框图。装置600可以是智能手机、平板电脑等移动终端。
参照图6,装置600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,传感器组件614以及通信组件616。
处理组件602通常控制装置600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作以及记录操作相关联的操作等。处理组件602可以包括一个或多个处理器618来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604被配置为存储各种类型的数据以支持在装置600的操作。这些数据的示例包括用于在装置600上操作的任何应用程序或方法的指令。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储器604中还存储有一个或多个模块,该一个或多个模块被配置成由该一个或多个处理器618执行,以完成上述任一所示方法中的全部或者部分步骤。
电源组件606为装置600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为装置600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述装置600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当装置600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
传感器组件614包括一个或多个传感器,用于为装置600提供各个方面的状态评估。例如,传感器组件614可以检测到装置600的打开/关闭状态,组件的相对定位,传感器组件614还可以检测装置600或装置600一个组件的位置改变以及装置600的温度变化。在一些实施例中,该传感器组件614还可以包括磁传感器,压力传感器或温度传感器。
通信组件616被配置为便于装置600和其他设备之间有线或无线方式的通信。装置600可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在本公开的一种示例性实施例中,还提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如上述任意一项所述的拣货路径规划方法。该计算机可读存储介质例如可以为包括指令的临时性和非临时性计算机可读存储介质。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和构思由权利要求指出。