CN113313447B - 一种基于寄居蟹算法的立体仓库货位分配方法 - Google Patents
一种基于寄居蟹算法的立体仓库货位分配方法 Download PDFInfo
- Publication number
- CN113313447B CN113313447B CN202110593361.1A CN202110593361A CN113313447B CN 113313447 B CN113313447 B CN 113313447B CN 202110593361 A CN202110593361 A CN 202110593361A CN 113313447 B CN113313447 B CN 113313447B
- Authority
- CN
- China
- Prior art keywords
- goods
- warehouse
- living
- crabs
- crab
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
Abstract
本发明公开了一种基于寄居蟹算法的立体仓库货位分配方法,包括:对货物和货位进行ABC分类,将存储空间分为多个仓储区,确定各类货物的存储位置;将入库订单定义为寄居蟹,货位定义为保护壳,在保护壳中嵌入货位的物理属性和目标值计算函数;无保护壳寄居蟹集合中选择一部分寄居蟹进行分配保护壳操作;在有保护壳寄居蟹集合中选择部分寄居蟹在既定的保护壳顺序上进行游走,将最优的壳分配给最优的蟹;评价当前货位分配的结果,同时根据当前优化分配结果的状态更新停止标志;重复步骤,保存货位分配优化结果。该方法考虑了货架的稳定性和立体仓库的出入库效率,能够在合理的时间内实现中大型立体仓库的入库订单货位优化,提升仓库的作业效率。
Description
技术领域
本发明涉及立体仓库仓储技术领域,特别是一种基于寄居蟹算法的立体仓库货位分配方法。
背景技术
随着社会经济高速发展,物流系统面临着巨大的转型压力,传统的仓储技术效率低、空间利用率低下且耗费人力。此时,自动存取仓库应运而生,解决了传统仓储系统的诸多不足。由于缺乏精细运营的理念,许多立体仓库的运行成本高昂。其中重要的原因之一就是货位分配不合理导致的立体仓库效率降低,运营成本升高。货位分配的合理程度很大程度决定仓库管理的精细度和物料响应生产加工的速度。过往许多立体仓库仍然依靠仓库员的经验管理,在库存量大时,经常出现随机存储、出入库速度缓慢、空间利用率低的问题。为了解决这个问题,许多研究者采用群智能优化算法(中国授权专利CN110991754B)和其他元启发式算法(中国公开专利CN112100861A)。这些优化方法在求解大规模货位分配虽然能够取得较好的效果,但求解需要消耗大量的计算时间和计算资源。导致了这些方法实效性较差,且实用性不强。而且群智能方法会随着问题规模的增大,算法的效率和求解质量将会变得更差。就大规模货位分配问题,目前还没有快速有效的优化方法。针对当前货位分配优化方法的不足,本发明提出的一种基于寄居蟹算法的立体仓库货位分配方法能够在较短快速实现立体仓库中的货位分配,保证货位分配优化的实效性和实用性。
发明内容
本发明的目的是提供一种一种基于寄居蟹算法的立体仓库货位分配方法,以解决上述现有技术无法快速实现大中型立体仓库货位分配的问题,提升立体仓库的运作精细度、提升效率。
本发明提供的一种基于寄居蟹算法的立体仓库货位分配方法,包括:
步骤1:基于货物出入库频次信息将货物进行ABC分类,并将货位按照堆垛机从出/入库达到该货位的时间进行ABC分析,并结合仓库需求将存储空间分为多个仓储区,同时根据分区数量确定各类货物的存储位置;
步骤2:将入库订单定义为寄居蟹,货位定义为保护壳,在保护壳中嵌入货位的物理属性和目标值计算函数;在寄居蟹中则嵌入货物属性信息,并初始化已分配货位订单集合和未分配货位订单集合,分别定义为有保护壳寄居蟹集合和无保护壳寄居蟹集合;完成可用货位初始化、入库订单信息初始化和算法定义说明环节;
步骤3:在无保护壳寄居蟹集合中选择一部分寄居蟹进行分配保护壳操作,即给无保护壳寄居蟹分配一个保护壳,若寄居蟹的ABC分类等级优于或等于保护壳的ABC分类等级,则确认此次分配,并更新有保护壳寄居蟹集合和无保护壳寄居蟹集合;反之则对下一只无保护壳寄居蟹进行操作,循环操作直至被选选中的无保护壳寄居蟹全部进行了一次分配操作,若无保护壳寄居蟹集合为空,则进行步骤4;
步骤4:在有保护壳寄居蟹集合中选择一部分寄居蟹在既定的保护壳顺序上进行游走,将已分配保护壳的寄居蟹分成货位等级与货位等级相匹配和货位等级与货位等级不相匹配两大类,其中,对于等级匹配的寄居蟹,采取levy飞行游走策略,而对于等级不匹配的寄居蟹则采用随机选择大步长游走策略;每只寄居蟹游走的下一位置,可能是另一只寄居蟹,也可能是空的保护壳,通过对比竞争函数值进行交换,将最优的壳分配给最优的蟹;若有保护壳寄居蟹的集合为空,则转入停止标志位处理环节;
步骤5:若有保护壳寄居蟹集合不为空,评价当前货位分配的结果,同时根据当前优化分配结果的状态,更新停止标志;
步骤6:重复步骤3至步骤5直到程序停止,保存货位分配优化结果。
本发明与现有技术相比,其能够实现的有益效果至少如下:
(1)克服了传统智能优化方法针对大中型立体仓库优化时间长、容易陷入局部最优的解的问题,能够在较短的时间内获得优于传统智能优化方法的解;
(2)本发明的优化目标兼顾了仓库效率和货架的平稳性,且设计了可变权重,调节不同目标的重要程度;
(3)根据货位分配的结果动态地进行局部搜索和全局搜索,能够提升优化效果,减少货位错放现象;
(4)设计了竞争函数和竞争机制,加速了算法的收敛,提高求解速度;
(5)便于实现立体仓库实时入库优化,提升仓库效率、降低仓库运行成本;
(6)相比于常用的遗传算法有较好的实用性和时效性,因此本发明有较大的实用价值和应用价值。
附图说明
图1是本发明一种基于寄居蟹算法的立体仓库货位分配的方法流程图。
图2是本发明一种一种基于寄居蟹算法的立体仓库货位分配方法的货位分配原则示意图。
图3是本发明一种一种基于寄居蟹算法的立体仓库货位分配方法的初始化过程与寄居蟹游走示意图。
图4是本发明一种一种基于寄居蟹算法的立体仓库货位分配方法的寄居蟹游走示意图。
图5是本发明一种一种基于寄居蟹算法的立体仓库货位分配方法的寄居蟹竞争示意图。
图6是本发明一种一种基于寄居蟹算法的立体仓库货位分配方法的寄居蟹算法求解流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都是本发明保护的范围。
传统的智能优化在大规模组合优化问题上的表现差强人意,虽然智能算法在连续优化问题上取得了较好的成绩,但在离散问题上仍然有很多问题亟待解决。在这种情况下,大规模离散组合优化问题倾向于采用基于规则的方法快速求解,本发明通过模仿自然界寄居蟹寻找合适保护壳的行为来求解货位优化问题。
本发明提供的一种基于寄居蟹算法的立体仓库货位分配方法,包括以下步骤:
步骤1:基于货物出入库频次信息将货物进行ABC分类,并将货位按照堆垛机从出/入库达到该货位的时间进行ABC分析,并将存储空间根据仓库实际需求分为多个仓储区域,并确定各类货物的存储位置;
ABC分析方法划分仓储区域数量在3-5时仓库的作业效率和空间利用率更高。为了避免仓库内分区过多,在本发明其中一个实施例中,将分区数设定为3。并将货物划分为三类,分别确定每类货物的仓储区域。
步骤2:将入库订单定义为寄居蟹,货位定义为保护壳,在货位(保护壳)中嵌入货位的物理属性和目标值计算函数,加速算法的求解速度;对于入库订单(寄居蟹)中则嵌入货物属性信息,并初始化有保护壳寄居蟹集合和无保护壳寄居蟹集合,分别定义为已分配货位订单集合和未分配货位订单集合;完成可用货位初始化、入库订单初始化和算法定义说明环节;
步骤3:在无保护壳寄居蟹集合中选择一部分寄居蟹进行分配保护壳操作,即给无保护壳寄居蟹分配一个保护壳(货位)。若寄居蟹ABC分类等级优于或等于保护壳ABC分类等级,则直接确认此次分配,否则随机生成一个[0,1]间的数与既定阈值比较,根据比较结果确认分配。然后,更新有保护壳寄居蟹集合(已分配货位订单集合)和无保护壳寄居蟹集合(未分配货位订单集合);反之则对下一只无保护壳寄居蟹进行操作。循环操作直至被选选中的无壳寄居蟹全部进行了一次分配操作。若无保护壳寄居蟹集合为空,则进行步骤(4);
在本发明其中一个实施例中,为了避免货位分配过于集中,在无保护壳寄居蟹集合中选择一部分寄居蟹进行分配保护壳操作时,每次一轮分配选择当前无保护壳壳寄居蟹数量的10%至30%。
步骤4:将有保护壳寄居蟹集合中的寄居蟹(即遍历所有有壳寄居蟹)在既定的保护壳顺序上进行游走,这里将已分配保护壳的寄居蟹分成两类:货位等级与货物等级相匹配和货位等级与货物等级不相匹配两大类。针对不同的分配有保护壳的寄居蟹采取不同的游走策略。对于等级匹配的带保护壳寄居蟹,采取levy飞行游走策略;而对于等级不匹配的带保护壳寄居蟹则采用随机选择大步长游走策略。每只寄居蟹游走的下一位置,可能是另一只寄居蟹,也可能是空的保护壳。对于这两种情况都通过对比竞争函数值进行交换,将最优的保护壳分配给最优的寄居蟹。若有保护壳寄居蟹的集合为空,则转入停止标志位处理环节;
步骤5:若有保护壳寄居蟹集合不为空,处理分配结果,计算目标函数值,更新停止标志;反之仅更新停止标志。
步骤6:重复步骤3至步骤4直到程序停止,保存货位分配优化结果。
在本发明其中一个实施例中,步骤1中的货位、入库货物ABC分析,是基于数据库数据统计信息的货物ABC分析,和基于立体仓库物理属性的货位ABC分析方法。
本发明中,货物入库的原则:遵循下重上轻、分散存储、取货时间最短的原则。在本发明其中一个实施例中,根据仓库内货物上一历史时期(月、周、年等)的出入库频率统计数值排序,依照仓库的实际需求,给定不同等级货物的划分比例。根据二八原则,一般将前20%划分为A类。因此将排序结果按照Class比例划分在前20%的货物归为A类货物、排序在20%-40%的货物划归为B类货物,剩余部分称为C类货物。同理,货位ABC的划分,根据堆垛机从出/入库平台到达该货位所需的时间进行排序,按照Class的比例划分。A类货物存储在A类货位(黄金货位)中,即满足高频货物存放在靠近出/入库平台的位置上;而较重的货物则放置在较低的货架,保证货架稳定性和操作安全。
ABC分类评级机制如下:
其中,Class=20%时为B类,Class=40%为C类。
在本发明其中一个实施例中,入库订单上一时期出库频次统计,其中货物出入库频次取值范围为正实数,即大于等于0的实数集合;堆垛机从出/入库平台到达货位位置的时间采取曼哈顿距离计算,即在堆垛机水平和垂直方向上运动花费时间取极大值。
在本发明其中一个实施例中,步骤2中,仓库货位和入库订单信息初始化,本发明在优化过程中仅使用仓库剩余货位,不对已经被占用的货位进行调整。初始化具体如下:
(1)可用货位初始化,从获取的仓库状态信息中,筛选出空货位的信息,并对保护壳类进行实例化,即载入空货位的物理信息,包括但不限于空货位的重心高度、货位尺寸、堆垛机到达时间。
(2)入库订单信息初始化,在本发明其中一个实施例中,将优化单位设置为托盘,在入库订单初始化时需要将入库订单整合成相同物料的托盘存储单元,并对入库托盘进行编码、映射相应的物料和数量,并在优化程序中对寄居蟹类进行实例化,即载入物料的属性信息,包括但不限于物料的历史出入库频率、物料单位质量、物料的分类等级。
在本发明其中一个实施例中,步骤3中,无保护壳的寄居蟹(未分配保护壳的订单)在分配保护壳(空货位)过程中,采取分类概率策略,尽可能地将货物分配到相应等级的货位上,即为寄居蟹找到尺寸最合适的保护壳。具体分类概率策略的选择过程如下:
(1)入库订单与其分配的货位等级相等时,直接确认本次分配,即将该寄居蟹与分配的保护壳绑定,寄居蟹进入该保护壳中,更新保护壳有关寄居蟹的属性。
(2)货位等级相比货物等级差一级时,采取概率机制,概率阀值设为α,则该寄居蟹进入保护壳的概率为1-α。
(3)对于货位等级和货物等级相差两级的情况,直接否决本次分配,进入下一次分配循环。
在本发明其中一个实施例中,在货位类里嵌入了目标值计算函数,即绑定寄居蟹与保护壳(完成一次货位分配)时,保护壳载入寄居蟹时会自动获取寄居蟹属性信息进行计算。具体计算如下:
保护壳内嵌的目标值计算函数,包括但不限于立体仓库出入库效率最高、货位重心最低。
(1)出入库效率计算:为
EShell=ShellTime*CrabFre
其中EShell是货位效率,ShellTime是堆垛机移动到该货位的最大时间,CrabFre是该订单货物上一时期的出入库频次。ShellTime计算具体公式如下:
其中ShellZ表示仓库货位底部的垂直高度,StackerVz表示堆垛机的垂直移动速度,ShellY表示出入库到货位中心的水平距离,Stackervy表示堆垛机的水平移动速度。
(2)货位重心计算:
HShell=ShellZ*CrabQuantity*CrabWeight
其中HShell表示货位的重心,CrabQuantity表示托盘内货物的数量,CrabWeight托盘内货物的单位质量。
(3)目标值计算:
Objective=EShell*ε+(1-ε)*HShell
本发明对多目标函数进行线性化处理,将其转化为单目标函数,其中ε是权重系数,表示该目标的重要程度,ε的取值范围为[0,1],本发明中ε取为0.67。
进一步的,步骤4中,对已经获得保护壳的寄居蟹(已分配货位的订单)进行随机游走寻优,寻优过程根据寄居蟹与保护壳的等级对应情况分为两种:对于等级不匹配的寄居蟹,是随机选取一个较大的数值作为游走步长;对于等级匹配的寄居蟹,是采取levy飞行策略选择步长。具体游走步长如下:
(1)寄居蟹与保护壳等级不相等(货位等级与货物等级不相同),寄居蟹进行大步长游走,步长的选取范围为[S,Shellnum+S]。式中Shellnum表示单个货架的货位数;S表示寄居蟹游走最小步长,其取值范围为与Shellnum大小相关,一般不大于0.1*Shellnum。此时寄居蟹的游走步长从规定范围内随机选取,完成步长计算,并向下一个位置游走。
(2)寄居蟹与保护壳等级相等(货位等级与货物等级相同),寄居蟹在小范围内进行游走,完成局部搜索。步长的选定来自levy飞行策略,即步长满足levy分布,多长时间小步长,短时间长步长。由于levy分布函数无精确的表达式,因此从近似生成的levy分布中选一个数值进行向上取整,完成步长计算,并向下一个位置游走。具体公式如下:
Ceil(Random.sample(Levy(β)))
式中Ceil()为向上取整函数,Random.sample()为随机选择函数,β为levy飞行步长因子。
进一步的,levy(β)近似为以下公式:
其中,μ和v均是正态分布,可从如下分布中获得:
进一步的,σμ,σv可表示为两个正态分布的方差,其具体表达式如下:
σv=1
式中Γ()是gamma分布函数。
进一步的,步骤4中,本发明为了避免低频、少量的订单占据最优位置,在寄居蟹竞争时设计了竞争函数,通过对比竞争函数值实现寄居蟹间的保护壳竞争,式中Tmax和Zmax分别表示仓库中最大到达时间和货架最高货位中心高度。具体竞争函数如下:
式中Competevalue表示寄居蟹的竞争值,Crabweight货物的单位质量,CrabQuantity表示货物的数量。
进一步的,步骤5中,通过优化目标函数值来引导仓库货位优化过程,优化目标值的计算处理过程中,通过面向对象的编程方式在保护壳中嵌入目标函数值属性计算局部优化目标函数值,减少了计算资源浪费。同时约定空保护壳的目标函数值为0。因此优化目标值仅需将所有保护壳的目标函数值相加。具体如下:
(1)优化目标函数值计算:
其中n为本次优化中空货位的数量,k为保护壳的实例化编号,Shell_kObjectivel表示为第k个保护壳的目标函数值。
下面结合附图及具体的示例对本发明作进一步详细说明。
如图1所示,一种基于寄居蟹算法的立体仓库货位分配的方法,具体实施步骤如下:
步骤1:货位、入库货物ABC分析,主要基于数据库数据统计信息的货物ABC分析,和基于立体仓库物理属性的货位ABC分析方法:
货物入库的原则:遵循下重上轻、分散存储、取货时间最短的原则。在本发明中,根据仓库内货物上一历史时期(月、周、年等)的出入库频率统计数值排序,将排序结果按照Class划分在前20%的货物归为A类货物、排序在20%-40%的货物划归为B类货物,剩余部分称为C类货物。同理,货位ABC的划分,根据堆垛机从出/入库平台到达该货位所需的时间进行排序,按照Class的比例划分。A类货物存储在A类货位(黄金货位)中,即满足高频货物存放在靠近出/入库平台的位置上;而较重的货物则放置在较低的货架,保证货架稳定性和操作安全。
具体的分配原则,如图2所示,本发明针对立体仓库的特点考虑立体仓库的作业效率和立体仓库的货架稳定性。整体要求是,下重上轻、近高频远低频的排布,以实现仓库运作效率的最大化,安全性最大化。
ABC分类评级机制如下:
其中,Class=20%时为B类,Class=40%为C类
步骤2:仓库货位和入库订单信息初始化,本发明在优化过程中仅使用仓库剩余货位,不对已经被占用的货位进行调整,初始化过程如图3所示。初始化具体如下:
(1)入库订单信息初始化,由于本实施例的优化单位为托盘,所以需要将入库订单整合成相同物料的托盘存储单元,并对入库托盘进行编码、映射相应的物料和数量,并在优化程序中对寄居蟹类进行实例化,即载入物料的属性信息,包含但不限于物料的历史出入库频率、物料单位质量、物料的分类等级。初始化入库订单集合(寄居蟹集合),具体将有保护壳寄居蟹集合设置为空;将所有入库订单加入无壳寄居蟹集合中;
(2)可用货位初始化,从获取的仓库状态信息中,筛选出空货位的信息,并对保护壳类进行实例化,即载入空货位的物理信息,包含但不限于空货位的重心高度、货位尺寸、堆垛机到达时间。初始化可用货位(保护壳)在环境中的排布顺序。
保护壳的顺序在优化过程中不变,保护壳与其排列顺序一一对应,不存在一个顺序对应多个保护壳的情况。位置在寄居蟹游走是环状结构,即顺序结构为首位相连的链表。
入库托盘订单编码、货位顺序编码、货位编码,均采用实数编码,即从1、2、3到N的编码方式。
下表是入库托盘订单实例化的信息:
入库托盘(寄居蟹)编号 | 物料代号 | 数量 | 订单编号 |
1 | 001 | 100 | 20200410001 |
2 | 002 | 120 | 20200410002 |
3 | 003 | 200 | 20200410003 |
其中物料代号、数量、订单编号均属于寄居蟹的属性值。物料代号指的是当前托盘订单内包含的物料种类;数量则表示该托盘内物料的数量;订单编号则表示入库订单的追溯,其组成主要是时间加顺序,即年月日和订单到达顺序。
下表是可用货位实例化的信息:
其中目标值、货位编号、最大时间等均为保护壳的固有属性。在程序初始化阶段,所有保护壳的状态如保护壳1所示。随着保护壳与寄居蟹的绑定,保护壳状态转变为保护壳2或保护壳3。目标值表示为该货位绑定托盘后的目标函数值;最大时间表示为堆垛机到达该货位的最大时间;高度表示为该货格中心坐标所在的高度值,用于货架重心计算;货位等级则表示货位在货位ABC分析的结果,A、B、C分别用1、2、3表示;状态则表现了货位与货物的匹配程度,0表示货位等级与货物等级相同,1则表示货物等级与货位等级不同。
步骤3,无保护壳的寄居蟹(未分配订单)在分配保护壳(空货位)过程中,采取了分类概率策略,尽可能地将货物分配到相应等级的货位上,即为寄居蟹找到尺寸最合适的保护壳。具体分类概率选择过程如下:
(1)订单与其分配的订单等级相等时,直接确认本次分配,即将该寄居蟹与分配的保护壳绑定,寄居蟹进入该保护壳中,更新保护壳有关寄居蟹的属性。
(2)货位等级相比货物等级差一级时,采取概率机制,概率阀值设为α,则该寄居蟹进入保护壳的概率为1-α。
(3)对于货位等级和货物等级相差两级的情况,直接否决本次分配,进入下一次分配循环。
在货位(保护壳)类里嵌入了目标函数计算函数(目标值属性),即绑定寄居蟹与保护壳(完成一次货位分配)时,保护壳载入寄居蟹时会自动获取寄居蟹属性信息进行计算。具体计算如下:
保护壳内嵌的目标值计算函数,包含但不限于立体仓库出入库效率最高、货位重心最低。
(1)出入库效率计算:
EShell=ShellTime*CrabFre
其中EShell货位效率,ShellTime是堆垛机移动到该货位的最大时间,CrabFre是该订单货物上一时期的出入库频次。ShellTime计算具体公式如下:
(2)货位重心计算:
HShell=ShellZ*CrabQuantity*CrabWeight
其中HShell表示货位的重心,CrabQuantity表示托盘内货物的数量,CrabWeight托盘内货物的单位质量。
(3)目标函数值计算:
Objective=EShell*ε+(1-ε)*HShell
本发明对多目标函数进行线性化处理,将其转化为单目标函数,其中ε是权重系数,表示该目标的重要程度,ε的取值范围为[0,1],本发明中ε取为0.67。
比如,假设货位最大时间为10,高度为5;货物出入库频率为100,单位质量为0.5,数量为100;则出入库效率函数值为:1000;重心目标值为:250;目标值为:753.3333。
对步骤4:已经获得保护壳的寄居蟹(已分配货位的订单)进行随机游走寻优,寻优过程根据寄居蟹与保护壳的等级对应情况分为两种:一种是随机选取一个较大的数值作为游走步长;二是采取levy飞行策略选择步长。具体游走步长如下:
(1)寄居蟹与保护壳等级不相等(货位等级与货物等级不相同),寄居蟹进行大步长游走,步长的选取范围为[10,Shellnum+10],Shellnum表示单个货架的货位数。此时寄居蟹的游走步长从规定范围内随机选取,完成步长计算,并向下一个位置游走。
(2)寄居蟹与保护壳等级相等(货位等级与货物等级相同),寄居蟹在小范围内进行游走,完成局部搜索。步长的选定来自levy飞行策略,即步长满足levy分布,多长时间小步长,短时间长步长。由于levy分布函数无精确的表达式,因此从近似生成的levy分布中选一个数值进行向上取整,完成步长计算,并向下一个位置游走。具体公式如下:
Ceil(Random.sample(Levy(β)))
levy(β)近似为以下公式:
其中,μ和v可从如下分布中获得:
进一步的,σμ,σv可以表示为如下公式:
寄居蟹的游走操作如图4和图5所示,展示寄居蟹间的竞争和寄居蟹换保护壳过程细节。图4中,3号位置的保护壳内已经有了寄居蟹,该只寄居蟹被选中开始游走,假设其步长为1,则3号保护壳内的寄居蟹遇到了4号位置的空保护壳。寄居蟹通过对比两个保护壳的目标函数值决定是否进行换壳操作;假设游走步长为-1,则3号位置的寄居蟹遇到了2号位置的寄居蟹,两只寄居蟹通过竞争函数确定优胜方,优胜方具有选取两个保护壳中较优的权利。图5中,有壳寄居蟹在游走中遇到空保护壳,通过比较该寄居蟹在两个壳中的目标函数值大小,即比较该货物在两个货位的重心和出入库效率,寄居蟹会留在目标函数值较小的保护壳中;当两只带壳寄居蟹相遇时,两只寄居蟹通过比较自身的竞争值,优胜的寄居蟹获得两个保护壳中较优的保护壳,另一寄居蟹进入较差的保护壳中,完成竞争过程。
步骤5,若有保护壳寄居蟹集合不为空,处理分配结果,计算目标函数值,更新停止标志;反之仅更新停止标志。这里具有两个停止标志:一是目标函数阀值,即在所有入库托盘订单分配完毕,且目标函数值小于预设值时,终止程序;二程序达到了最大迭代次数,终止程序。
若有保护壳寄居蟹集合不为空,结合物理硬件约束条件,评价当前货位分配的结果,即评价当前货位分配结果的出入库效率和货架稳定性。同时根据当前优化分配结果的状态,更新停止标志。评价货位分配结果具体过程表现为计算仓库优化模型的优化目标函数值。优化目标函数值是算法终止的参考之一,决定了停止标志的状态。计算目标函数值,更新停止标志;反之仅更新停止标志。
在本发明其中一个实施例中,停止标志更新准则:当算法迭代次数达到最大迭代次数或优化目标值连续1000次(设定范围0.01-0.1*最大迭代次数)没有改变时,将停止标志设置为终止算法状态,输出货位分配优化结果;反之则为继续执行算法状态。
在本发明其中一个实施例中,物理硬件约束条件为,仓库内堆垛机的运动速度和存放货物货位的重心高度,即计算堆垛机到达所有已分配货物所在货位的时间和仓库内货架的稳定性。
(1)优化目标函数值计算:
其中n为本次优化中空货位的数量,k为保护壳的实例化编号,Shell_kObjectivel表示为第k个保护壳的目标函数值。
优化实例对比实验,实验仓库规模为20排货架,每个货架有18列14层,每个货位的尺寸为一米见方。入库订单托盘数量为2302个,包含货物种类497种。可用货位数量为5037个。
实验对比对象为随机存储、经典遗传算法。
为了排除实验的偶然性,每类货位分配实验均进行30次,且在同一实验平台进行。并通过对比不同货位分配方法的目标函数(越小越好)的平均表现(均值),稳定性(均方差)和最好的分配结果(最优值)体现方法的优越性。
下表为实验结果:
优化方法 | 均值 | 均方差 | 最优值 | 优化时间 |
随机存储 | 1030463.001 | 4010.732449 | 1018874.401 | 1s |
遗传算法 | 564086.3915 | 6136.95508 | 551080.8798 | 2114s |
本发明 | 550928.8355 | 8955.304201 | 528247.122167 | 61s |
从对比实验的结果来看,经过优化方法优化过的货位分配结果,要显著优于随机存储策略。本发明提出的方法优化结果要优于遗传算法,特别是30次实验找到的最优值较遗传算法有了明显提升;在优化结果均值上,本发明提出的方法较遗传算法有了2%左右的提升。且本发明提出的方法能在1分钟左右完成货位分配优化,具有较强的实用性,能够实现在线优化。而群智能的优化方法(遗传算法),或复杂度更高的非支配排序遗传算法则需要多花30几倍,甚至更长的优化时间。
本发明方法考虑了货架的稳定性和立体仓库的出入库效率,能够在合理的时间内实现5000个货位以上的中大型立体仓库的入库订单货位优化,提升仓库的作业效率,节约仓库运作成本,相比于常用的遗传算法有较好的实用性和时效性,有较大的实用价值和应用价值。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种基于寄居蟹算法的立体仓库货位分配方法,其特征在于,所述方法包括以下步骤:
步骤1:基于货物出入库频次信息将货物进行ABC分类,根据出入库频率将仓库内货物分别归类为A类货物、B类货物和C类货物,并将货位按照堆垛机从出/入库达到该货位的时间进行ABC分析,根据堆垛机从出/入库平台到达货位所需的时间将货位分别归类定义为A类货位、B类货位和C类货位,并结合仓库需求将存储空间分为多个仓储区,同时根据分区数量确定各类货物的存储位置;
步骤2:将入库订单定义为寄居蟹,货位定义为保护壳,在保护壳中嵌入货位的物理属性和目标值计算函数,其中,保护壳内嵌的目标值计算函数包含立体仓库出入库效率最高、货位重心最低;在寄居蟹中则嵌入货物属性信息,并初始化已分配货位订单集合和未分配货位订单集合,分别定义为有保护壳寄居蟹集合和无保护壳寄居蟹集合;完成可用货位初始化、入库订单信息初始化和算法定义说明环节;
步骤3:在无保护壳寄居蟹集合中选择一部分寄居蟹进行分配保护壳操作,即给无保护壳寄居蟹分配一个保护壳,若寄居蟹的ABC分类等级优于或等于保护壳的ABC分类等级,则确认此次分配,并更新有保护壳寄居蟹集合和无保护壳寄居蟹集合;反之则对下一只无保护壳寄居蟹进行操作,循环操作直至被选中的无保护壳寄居蟹全部进行了一次分配操作,若无保护壳寄居蟹集合为空,则进行步骤4;
步骤4:在有保护壳寄居蟹集合中选择一部分寄居蟹在既定的保护壳顺序上进行游走,将已分配保护壳的寄居蟹分成货位等级与货位等级相匹配和货位等级与货位等级不相匹配两大类,其中,对于等级匹配的寄居蟹,采取levy飞行游走策略,而对于等级不匹配的寄居蟹则采用随机选择大步长游走策略,其中,采取levy飞行游走策略时,步长满足levy分布,采用随机选择大步长游走策略时,步长在选取范围[S,Shellnum+S]内随机选取,Shellnum表示单个货架的货位数,S表示寄居蟹游走最小步长;每只寄居蟹游走的下一位置,可能是另一只寄居蟹,也可能是空的保护壳,通过对比竞争函数值进行交换,将最优的壳分配给最优的蟹;若有保护壳寄居蟹的集合为空,则转入停止标志位处理环节;
步骤5:若有保护壳寄居蟹集合不为空,评价当前货位分配的结果,即评价当前货位分配结果的出入库效率和货架稳定性,同时根据当前优化分配结果的状态,更新停止标志;
步骤6:重复步骤3至步骤5直到程序停止,输出货位分配优化结果;
其中,步骤5中通过优化目标函数值来决定是否输出货位分配结果,优化目标函数值的计算方式为:
其中n为本次优化中空货位的数量,k为保护壳的实例化编号,Shell_kObjectivel表示为第k个保护壳的目标函数值。
2.根据权利要求1中所述的一种基于寄居蟹算法的立体仓库货位分配方法,其特征在于,货物入库遵循下重上轻、分散存储、取货时间最短的原则。
3.根据权利要求1中所述的一种基于寄居蟹算法的立体仓库货位分配方法,其特征在于,步骤1中,将存储空间分为3个仓储区,且货物的种类有3种,进行货物ABC分类时,将仓库内按货物上一统计时期的出入库频率统计数值的排序结果的前20%的货物归为A类货物、排序在20%-40%的货物划归为B类货物,剩余部分称为C类货物;进行货位ABC分类时,将根据堆垛机从出/入库平台到达该货位所需的时间进行排序的排序结果的前20%的货位定义为A类货位,排序在20%-40%的货位定义为B类货位,其他的为C类货位。
4.根据权利要求3中所述的一种基于寄居蟹算法的立体仓库货位分配方法,其特征在于,堆垛机从出/入库平台到达货位位置的时间采取曼哈顿距离计算,即在堆垛机水平和垂直方向上运动花费时间取极大值。
5.根据权利要求1中所述的一种基于寄居蟹算法的立体仓库货位分配方法,其特征在于,步骤2中的仓库货位和入库订单信息初始化,优化过程中仅使用仓库剩余货位,初始化具体如下:
所述入库订单信息初始化,将入库订单整合成相同物料的托盘存储单元,并对入库托盘进行编码、映射相应的物料和数量,并在优化程序中载入物料的属性信息,包含物料的历史出入库频率、物料单位质量、物料的分类等级;
可用货位初始化,从获取的仓库状态信息中,筛选出空货位的信息,并对保护壳类载入空货位的物理信息,包含空货位的重心高度、货位尺寸、堆垛机到达时间。
6.根据权利要求1中所述的一种基于寄居蟹算法的立体仓库货位分配方法,其特征在于,步骤3中给无保护壳的寄居蟹在分配保护壳过程中,采取分类概率策略,尽可能地将货物分配到相应等级的货位上,具体过程如下:
入库订单与其分配的货位等级相等时,直接确认本次分配,即将该寄居蟹与分配的保护壳绑定,寄居蟹进入该保护壳中,更新保护壳有关寄居蟹的属性;
货位等级相比货物等级差一级时,采取概率机制,概率阈值设为α,则该寄居蟹进入保护壳的概率为1-α;
对于货位等级和货物等级相差两级的情况,直接否决本次分配,进入下一次分配循环。
7.根据权利要求1中所述的一种基于寄居蟹算法的立体仓库货位分配方法,其特征在于,所述随机选择大步长游走策略的步骤包括:寄居蟹与保护壳等级不相等,寄居蟹进行大步长游走,步长的选取范围为[S,Shellnum+S],式中Shellnum表示单个货架的货位数;S表示寄居蟹游走最小步长,此时寄居蟹的游走步长从规定范围内随机选取,完成步长计算,并向下一个位置游走;
所述levy飞行游走策略的步骤包括:当寄居蟹与保护壳等级相等时,寄居蟹在小范围内进行游走,完成局部搜索,步长的选定来自levy飞行策略,步长满足levy分布,长时间小步长,短时间长步长,从levy分布中选一个数值进行向上取整,完成步长计算,并向下一个位置游走,具体公式如下:
Ceil(Random.sample(Levy(β)))
Ceil()为向下取整函数,Random..sample()为随机选择函数,β为levy飞行步长因子。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110593361.1A CN113313447B (zh) | 2021-05-28 | 2021-05-28 | 一种基于寄居蟹算法的立体仓库货位分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110593361.1A CN113313447B (zh) | 2021-05-28 | 2021-05-28 | 一种基于寄居蟹算法的立体仓库货位分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113313447A CN113313447A (zh) | 2021-08-27 |
CN113313447B true CN113313447B (zh) | 2023-05-26 |
Family
ID=77376148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110593361.1A Active CN113313447B (zh) | 2021-05-28 | 2021-05-28 | 一种基于寄居蟹算法的立体仓库货位分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113313447B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114841642B (zh) * | 2022-04-27 | 2023-08-15 | 红云红河烟草(集团)有限责任公司 | 基于鹰栖息优化的辅料入库货位分配方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111178606B (zh) * | 2019-12-22 | 2022-09-06 | 南京理工大学 | 基于nsga-ii的自动化仓储货位分配优化方法 |
-
2021
- 2021-05-28 CN CN202110593361.1A patent/CN113313447B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113313447A (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108550007B (zh) | 一种制药企业自动化立体仓库的货位优化方法及系统 | |
CN109886478B (zh) | 一种成品酒自动化立体仓库的货位优化方法 | |
CN109034468B (zh) | 一种基于布谷鸟算法的带时间窗的物流配送路径规划方法 | |
CN107480922B (zh) | 两端式同轨双车运行模式下货位分配调度模型建立方法 | |
Van Den Berg | A literature survey on planning and control of warehousing systems | |
Burnwal et al. | Scheduling optimization of flexible manufacturing system using cuckoo search-based approach | |
CN105469201B (zh) | 一种物流配送中心作业任务处理与调度的方法 | |
CN103473616B (zh) | 用于处理多品种物资仓储的动态货位分配规划方法与系统 | |
CN110909930A (zh) | 一种面向冷库的移动式货架仓储系统货位分配方法 | |
CN107967586A (zh) | 一种电网物资仓储优化方法 | |
CN107341629A (zh) | 库位分配方法和装置 | |
CN111815233B (zh) | 基于物流总量和能量消耗的货位优化方法 | |
CN111582781B (zh) | 一种根据补货订单分配货架的方法及计算机可读存储介质 | |
CN113313447B (zh) | 一种基于寄居蟹算法的立体仓库货位分配方法 | |
CN113044458A (zh) | 一种物流机器人动态任务分配方法及系统 | |
CN112183812A (zh) | 一种计及短时低成本的成品卷烟物流车辆调度方法 | |
CN113570025A (zh) | 一种基于离散粒子群算法的电商仓储中心货位分配方法 | |
CN114723361A (zh) | 一种计及动态订单约束的仓库拣货作业双层优化方法 | |
CN113408771A (zh) | 物品出库调度方法、装置以及存储介质 | |
CN116468372B (zh) | 一种储位分配方法、系统及存储介质 | |
CN116796910A (zh) | 基于货物分配策略的订单分批优化方法 | |
CN113435805A (zh) | 物品存储信息确定方法、装置、设备和存储介质 | |
Wan et al. | Multiobjective Optimization of the Storage Location Allocation of a Retail E-commerce Picking Zone in a Picker-to-parts Warehouse. | |
CN113682705B (zh) | 库存分配方法、装置、服务器和存储介质 | |
CN113537841B (zh) | 一种考虑客户满意度的堆场起重机调度优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |