一种基于变邻域NSGA-Ⅱ算法的多目标货位优化方法
技术领域
本发明属于自动化立体仓库货位优化技术领域,特别涉及一种基于变邻域NSGA-Ⅱ算法的多目标货位优化方法。
背景技术
随着经济环境和相关政策的影响全球仓储业的效率和管理水平得到迅速提高并稳步发展。各仓储企业不断追求仓储的自动化与无人化,以释放劳动力、提高仓储作业运转效率等。自动化立体仓库的货位优化是提高仓储作业效率的关键之一。
自动化立体仓库货位优化问题是指根据货物属性以及仓库相关参数将货物分配到指定的货位位置,并且满足相应的约束条件。目前,在货位优化问题模型建立中主要以出入库效率、货架整体重心、同类货物就近存放测量为中心。在货位优化模型求解方面,已广泛采用启发式优化算法。其中,NSGA-Ⅱ算法因其使用于多目标优化求解而被广泛应用于货位优化模型问题的求解。
尽管许多研究人员在货位优化问题方面进行了大量研究,但是多以出入库效率为首选目标,并基于不同的问题进行目标和约束的扩展,往往忽略了各条巷道堆垛机工作量均衡问题以及同类货物在仓库的分布情况,所求解的最优货位分配方案可能会导致距离仓库出口较近的货架上货物过于集中,最终导致仓库作业过于集中和不平衡,容易造成通道堵塞。
发明内容
为克服现有技术在解决货位优化问题存在的不足,本发明提供一种基于变邻域NSGA-Ⅱ算法的多目标货位优化方法。
本发明的一种基于变邻域NSGA-Ⅱ算法的多目标货位优化方法,包括:
步骤1:货物和仓库参数确定:设定仓库货物属性,确定货架、堆垛机和传送带参数;设出入库口位置坐标为(0,0,0);则(x,y,z)表示货物放置在第x排y列z层的货位上。
步骤2:建立货位分配多目标优化的数学模型:以出入库效率、货架整体重心、同类货物间距离、巷道堆垛机工作量分别建立目标模型。
2.1出入库效率模型
式中,x表示仓库第x排货架,x={1,2,3…X};y表示仓库第y列货架,y={1,2,3…Y};z表示仓库第z层货架,z={1,2,3…Z};pji表示第i类货物中第j个货物的出入库频率;(xji,yji,zji)表示第i类货物中第j个货物的货位坐标;t(xji,yji,zji)表示第i类货物中第j个货物从仓库出口到货位的时间,其计算公式如下:
式中,vx表示传送带沿水平方向的平均速度;vy表示堆垛机沿巷道方向的平均速度;vz表示堆垛机沿竖直方向的平均速度;L0代表巷道宽度;L代表货位宽度。
2.2货架整体重心模型
式中,mji代表第i类货物中第j个货物的重量。
2.3同类货物间距离模型
用同类货物到该类货物位置中心的距离差之和作为同类货物间的距离,其计算公式如下:
式中,Ai代表第i类货物的中心坐标的横坐标,Bi代表第i类货物的中心坐标的纵坐标,Ci代表第i类货物的中心坐标的竖坐标,其计算公式如下:
式中,J代表第i类货物的总数。
2.4巷道堆垛机工作量均衡模型
巷道堆垛机工作量均衡用巷道两侧货架上堆放货物总数来反映该巷道堆垛机的工作量,为了使各条巷道堆垛机工作量均衡将同类货物均匀分布到各条巷道两侧的货架上,由此可以使得各巷道堆垛机工作量均衡且货物的分布也更加均匀,其公式如下:
式中:h代表巷道序号;H代表巷道总数;h(xji,yji,zji)表示第i类货物中第j个货物在不在巷道h中,如果i类货物中第j个货物在巷道h中则h(xji,yji,zji)=1,否则h(xji,yji,zji)=0。
2.5将上述目标模型函数集合成多目标优化函数,具体如下:
min[f1(x,y,z),f2(x,y,z),f3(x,y,z),f4(x,y,z)](7)
式中:f1(x,y,z)表示出入库效率;f2(x,y,z)货架整体重心;f3(x,y,z)同类货物间距离;f4(x,y,z)巷道堆垛机工作量。约束条件为:
1≤h≤H且h为正整数(9)
式中:G(x)max代表第x排货架的最大承重;式(8)表示仓库货架的行数、列数、层数不能超过其最大值;式(9)表示仓库巷道数不能超过最大巷道数H;式(10)表示货架x的存放货物的总重量不能超过货架最大承重。
步骤3:变邻域NSGA-II算法优化求解模型,得出最优货位分配方案:变邻域NSGA-Ⅱ算法步骤如下:
3.1初始化参数:设置种群大小为PopSize,交叉概率为Pc,变异概率为Pm,最大迭代次数为Gmax,最优前端个体系数PF,邻域初始种群大小VNSize,变邻域最大循环次数VNS_Gmax。
3.2初始化种群:采用实数编码随机生成初始种群Initial_Pop。
3.3目标函数值的计算:根据公式(1)、(3)、(4)、(6)计算四个目标函数值f1、f2、f3、f4。
3.4非支配排序和拥挤度计算:
3.4.1非支配排序:根据目标函数值进行个体序值的计算。
3.4.2拥挤距离计算:对四个目标分别计算相应的拥挤距离,再将四个目标函数的拥挤距离相加得到最后的拥挤距离。
3.5遗传操作:
3.5.1选择操作:锦标赛选择,根据序值和拥挤度进行选择操作,对于种群中的两个随机个体,当序值不同时,序值小的个体将被选中;当序值相同时,拥挤距离大的个体将被选中。
3.5.2交叉:单点交叉,并运用同位基因的思想进行交叉前的处理。
3.5.3变异:为避免在前两个操作中优秀基因的丢失,选择随机性更大的对调基因位的变异方式。
3.6变领域操作:从变异后种群中随机选部分个体进行变邻域操作,变邻域操作流程如下:
3.6.1对初始邻域种群进行邻域操作;
3.6.2将变邻域产生的种群与初始邻域种群进行合并;
3.6.3对合并后的种群进行选择得到新一代邻域种群;
3.6.4判断是否满足邻域终止条件,满足则结束变邻域操作得到变邻域解集,不满足则返回3.6.1继续执行变邻域操作直到满足邻域终止条件。
3.7种群合并:将变领域搜索产生的个体与变异之后未进行变邻域操作的个体合并再与初始父种群合并。
3.8生成新种群:根据父代种群规模对合并后的种群进行修剪生成新的父代种群。
3.9判断是否达到终止条件,若满足则结束,否则,转去执行步骤3.5。
进一步的,货物属性包括货物的类型、重量和出入库频率。
进一步的,变邻域操作包括三种邻域结构,分别为:
邻域1:前插入操作,从染色体基因序列中随机选择两个不同的基因位点Gen(a)和Gen(b)(b>a),在基因位Gen(a)之前插入Gen(b)。
领域2:后插入操作,从染色体基因序列中随机选择两个不同的基因位点Gen(a)和Gen(b)(b>a),在基因位Gen(b)之前插入Gen(a)。
领域3:基因片段倒序,从染色体基因序列中随机选择两个不同的基因位点Gen(a)和Gen(b)(b>a),然后将基因片段从Gen(a)到Gen(b)进行倒序操作。
本发明与现有技术相比的有益技术效果为:
(1)考虑了各巷道堆垛机工作量均衡以及货物在仓库各条巷道两侧货架的分布情况。使得求解的货位分配方案在满足出入库效率、货架整体重心、同类货物间距离变化很小的情况下,巷道堆垛机工作量平衡性得到一定的提高。
(2)采用了变邻域NSGA-Ⅱ算法求解多目标货位优化问题。通过设计三种领域对遗传操作后的部分个体进行变邻域操作,以此来提高算法的局部搜索能力同时降低了算法求解陷入局部最优的可能性,使之较传统NSGA-Ⅱ算法求解更具优越性。
附图说明
图1为变邻域NSGA-Ⅱ算法流程示意图;
图2为前插入变邻域操作图;
图3为后插入变邻域操作图;
图4为基因片段倒序变邻域操作图;
图5为货架布局图;
图6为货物分布图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细说明。
本发明的一种基于变邻域NSGA-Ⅱ算法的多目标货位优化方法具体如下:
1、确定货位优化问题的描述和相关假设
自动化立体仓库由货架、堆垛机、传送带组成。货位分配优化问题可以描述为:已知一系列货物的类型、重量和出入库频率等相关属性,按照一定的货位分配原则,通过传送带和巷道堆垛机将这些货物放置在第x排y列z层的货位上,以实现同类货物在各巷道两侧的货架上分布均匀,各巷道堆垛机工作量均衡,同类货物就近存放,提高货架的整体稳定性和货物出入库效率。根据仓库货物属性、货架、堆垛机、传送带参数,建立自动化立体库多目标货位分配模型。整个货位分配过程满足如下假设:每个货位只能存放一个货物,不考虑货箱以及托盘的重量;堆垛机和传送带以平均速度运行,不考虑启动和停止时间;堆垛机每次只能存取一个货物;不考虑货架自身重量;存储货物后,货位的重心位于该货位的几何中心;巷道为单向出口;出入库口位置坐标为(0,0,0);堆垛机存取巷道左右两排货架上的货物;货物的重量不影响堆垛机和传送带的运行时间。
2、建立货位分配多目标优化的数学模型
在以上假设条件下,以出入库效率、货架整体重心、同类货物间距离、巷道堆垛机工作量建立多目标数学模型,以满足出入库效率原则、货架稳定性原则、分巷道储存原则、同类货物就近存放原则。
出入库效率模型
式中,x表示仓库第x排货架,x={1,2,3…X};y表示仓库第y列货架,y={1,2,3…Y};z表示仓库第z层货架,z={1,2,3…Z};pji表示第i类货物中第j个货物的出入库频率;(xji,yji,zji)表示第i类货物中第j个货物的货位坐标;t(xji,yji,zji)表示第i类货物中第j个货物从仓库出口到货位的时间,其计算公式如下:
式中,vx表示传送带沿水平方向的平均速度;vy表示堆垛机沿巷道方向的平均速度;vz表示堆垛机沿竖直方向的平均速度;L0代表巷道宽度;L代表货位宽度。
货架整体重心模型
式中,mji代表第i类货物中第j个货物的重量。
同类货物间距离模型
用同类货物到该类货物位置中心的距离差之和作为同类货物间的距离,其计算公式如下:
式中,Ai代表第i类货物的中心坐标的横坐标,Bi代表第i类货物的中心坐标的纵坐标,Ci代表第i类货物的中心坐标的竖坐标,其计算公式如下:
式中,J代表第i类货物的总数。
巷道堆垛机工作量均衡模型
巷道堆垛机工作量均衡用巷道两侧货架上堆放货物总数来反映该巷道堆垛机的工作量,为了使各条巷道堆垛机工作量均衡将同类货物均匀分布到各条巷道两侧的货架上,由此可以使得各巷道堆垛机工作量均衡且货物的分布也更加均匀,其公式如下:
式中:h代表巷道序号;H代表巷道总数;h(xji,yji,zji)表示第i类货物中第j个货物在不在巷道h中,如果i类货物中第j个货物在巷道h中则h(xji,yji,zji)=1,否则h(xji,yji,zji)=0。
将上述目标模型函数集合成多目标优化函数,具体如下:
min[f1(x,y,z),f2(x,y,z),f3(x,y,z),f4(x,y,z)](7)
式中:f1(x,y,z)表示出入库效率;f2(x,y,z)货架整体重心;f3(x,y,z)同类货物间距离;f4(x,y,z)巷道堆垛机工作量。约束条件为:
1≤h≤H且h为正整数(9)
式中:G(x)max代表第x排货架的最大承重;式(8)表示仓库货架的行数、列数、层数不能超过其最大值;式(9)表示仓库巷道数不能超过最大巷道数H;式(10)表示货架x的存放货物的总重量不能超过货架最大承重。
3、变邻域NSGA-II算法优化求解,得出最优货位分配方案
传统的多目标优化是将不同的目标分配一定的权重以转化为单目标优化。然而,目标的权重系数往往根据经验或试错法得出且难以灵活调整以适应问题的变化和需求。由此Deb等人于2002年提出了NSGA-II以优化出适用多目标问题的非支配解种群,这种方法的主要思想是对种群中个体的各个目标函数值进行非支配解分层,同一层个体为非支配关系,在同一层的非支配解中更加倾向于选择拥挤度更大的个体以得到各个目标函数最优值。为提高传统NSGA-Ⅱ算法局部搜索能力,提出一种变邻域NSGA-Ⅱ算法对遗传操作后的部分个体进行变邻域操作以增强其搜索能力,其算法流程图见图1.
变邻域NSGA-Ⅱ算法步骤如下:
1)初始化参数:设置种群大小为PopSize,交叉概率为Pc,变异概率为Pm,最大迭代次数为Gmax,最优前端个体系数PF,邻域初始种群大小VNSize,变邻域最大循环次数VNS_Gmax。
2)初始化种群:采用实数编码随机生成初始种群Initial_Pop。
3)目标函数值的计算:根据公式(1)、(3)、(4)、(6)计算四个目标函数值f1、f2、f3、f4。
4)非支配排序和拥挤度计算:
非支配排序:根据目标函数值进行个体序值的计算。
拥挤距离计算:对四个目标分别计算相应的拥挤距离,再将四个目标函数的拥挤距离相加得到最后的拥挤距离。
5)遗传操作:
选择操作:锦标赛选择,根据序值和拥挤度进行选择操作,对于种群中的两个随机个体,当序值不同时,序值小的个体将被选中;当序值相同时,拥挤距离大的个体将被选中。
交叉:单点交叉,并运用同位基因的思想进行交叉前的处理。
变异:为避免在前两个操作中优秀基因的丢失,选择随机性更大的对调基因位的变异方式。
6)变领域操作:从变异后种群中随机选部分个体进行变邻域操作,变邻域操作流程如下:
A、对初始邻域种群进行邻域操作;
B、将变邻域产生的种群与初始邻域种群进行合并;
C、对合并后的种群进行选择得到新一代邻域种群;
D、判断是否满足邻域终止条件,满足则结束变邻域操作得到变邻域解集,不满足则返回A继续执行变邻域操作直到满足邻域终止条件。
变邻域操作包括三种邻域结构,分别为:
邻域1:前插入操作,从染色体基因序列中随机选择两个不同的基因位点Gen(a)和Gen(b)(b>a),在基因位Gen(a)之前插入Gen(b)。具体操作见图2。
领域2:后插入操作,从染色体基因序列中随机选择两个不同的基因位点Gen(a)和Gen(b)(b>a),在基因位Gen(b)之前插入Gen(a)。具体操作见图3。
领域3:基因片段倒序,从染色体基因序列中随机选择两个不同的基因位点Gen(a)和Gen(b)(b>a),然后将基因片段从Gen(a)到Gen(b)进行倒序操作。具体操作见图4。
7)种群合并:将变领域搜索产生的个体与变异之后未进行变邻域操作的个体合并再与初始父种群合并。
8)生成新种群:根据父代种群规模对合并后的种群进行修剪生成新的父代种群。
9)判断是否达到终止条件,若满足则结束,否则,转去执行步骤5)。
实施实例:
以某车间的固定式自动化立体仓库的实际数据进行实验分析。
1、数据与参数
自动化立体仓库共3条巷道和一条传送带,即巷道编号h从1到3,堆垛机工作巷道的宽度为1.5m。仓库货架6排6列5层,每个货位的长、宽、高都为1m,传送带平均速度Vx=1.5m/s,堆垛机沿巷道方向平均速度Vy=1m/s,堆垛机沿巷道竖直方向平均速度Vz=0.5m/s。货架平面布局图见图5。有5种类型的货物共100个需要分配到合适的仓库位置。货物基础信息如表1所示。NSGA-Ⅱ算法和变邻域NSGA-Ⅱ算法参数赋值见表2。
表1货物信息表
表2变邻域NSGA-Ⅱ算法参数赋值及含义
2、实验结果与分析
通过上文的方法进行编码和求解,先运用NSGA-Ⅱ算法求解不加巷道堆垛机工作量平衡目标(先求解f1、f2、f3再将求解结果带入公式(6)计算f4)和加巷道堆垛机工作量平衡目标验证模型的有效性,再运用变邻域NSGA-Ⅱ算法求解加巷道堆垛机工作量平衡目标与NSGA-Ⅱ算法求解结果进行对比验证算法的优越性。应用MATLAB R2014a软件编程实现问题模型算法,分别运行10次取每次运行结果的平均值进行比较见表3。
表3变邻域NSGA-Ⅱ与NSGA-Ⅱ计算结果对比表
通过表3对比NSGA-Ⅱ算法求解加巷道堆垛机工作量均衡目标与不加巷道堆垛机工作量均衡目标可以得到,出入库效率、货架整体重心、同类货物间距离变化很小的情况下,巷道堆垛机工作量平衡性提高了13.06%。通过对比变邻域NSGA-Ⅱ算法与NSGA-Ⅱ算法求解加巷道堆垛机工作量均衡目标的计算结果可以看出,出入库效率、货架整体重心、同类货物间距离变化不大的情况下,巷道堆垛机工作量平衡性提高了54.39%,得到极大地提高。显而易见,所提出的变邻域NSGA-Ⅱ算法优化结果更好。选取计算结果中的一种分配方案见图6。