自动化立体仓库作为物流产业主要环节之一, 日益成为仓储企业优先发展的对象。仓储企业追求自身利益最大化的需要, 使得货架货位优化设计、货位分区布局、货品出入库作业、堆垛机路径调度等内容的研究成为了热点。
现在的仓储开始向货品存取作业小批量、多数量、多种类、高时效性等方向发展, 需要进行存取作业的货品的种类、数量不断增加, 货品的流动频率也在迅速提高。如何在尽量降低仓储成本的同时, 提高工作效率缩短货品作业时间[1]就成了仓储企业亟待解决的问题之一。
许多专家学者已经在这方面进行了大量的研究, 不过从仓库布局的角度来研究货位分配优化的很少。本文着重从仓库布局这一角度对仓库货位分配优化及运送货品作业时间优化的问题进行了研究, 并针对其中的主要影响因素如货架的稳定性、货品的存取频率及运送货品所需时间等建立了数学优化模型, 并根据所建模型的复杂度, 利用改进的遗传算法, 实现了对问题的优化求解。
现代仓储企业为了满足客户的不同需求、为客户提供更好的服务, 需要对自动化立体仓库进行不同方面的优化设计, 确保在充分利用仓库设备的基础上, 能够在单位时间内完成更多货品的出入库作业, 提高企业的效益。为了保证自动小车在繁忙时段能够按时完成所有货品的出入库作业, 就需要尽可能地减少其平均作业所耗的时间。而行驶时间作为影响自动小车作业时间的重要因素, 就成为了需要优化的重点。
本文研究的基础是Fishbone布局。如图1所示, Fishbone布局有两条主拣货通道, 使得自动小车的行驶距离大大减少, 据Gue和Meller[2,3,4]研究, 与普通仓库相比, 其移动距离减少了约20%[5]。
为方便地说明问题, 对货位优化数学模型做如下假设: (1) 仓库规模适合实行四分货区, 采用单端出入库的方式; (2) 入库货品的数量不超过仓库的最大存放量, 且其质量、存取频率及所占货位个数等信息已知; (3) 仓库中相邻两排货架之间的巷道的宽度等于单排货架 (货格) 的宽度; (4) 同一种类的货品可以存放于不同的货格, 但是同一货格内不能存放不同种类的货品; (5) 在运行过程中自动小车的速度保持不变, 不受所载的货品重量的影响, 不考虑小车的制动和起动过程; (6) 搬运过程中自动小车一次只搬运一个货格所能存放的货物量。
整个仓库共有4n排货架 (有四个均分货区, 各有n排货架) , 按Fishbone布局摆放, 如图1。从仓库左下角的区域开始, 逆时针依次分为第一、二、三、四货区。
l表示货格的长和宽、h表示货格的高, k, k=1, 2, 3, 4, 表示货区个数, x x=, 1, 2, …, n, 表示货架的排数, y y=, 1, 2, …, p, 表示货架的层数, z z, =1, 2, …, qx, 表示货架的列数。位于第k区x排y层z列的货位记为k, , x, y, z, 。设mkxyz为货品的质量, fkxyz为货品的存取频率, v1为小车在水平方向上的运动速度, v2为小车在垂直方向上的运动速度。
每排货架有p层qx列, 其中p保持不变, qx随着x不断变化, 其变化规律为:
其中, 第一排 (即x=1时) 货架有q列。
货位分配优化模型是基于立体仓库货品存储原则建立的。
(1) 货品存放上轻下重原则。使整排货架上的货品的重心最低, 即使得货架上所有货品的质量与所在层数的乘积之和最小, 满足货架上每层货品的质量之和由下到上逐层递减。则货位优化函数可以描述为:
(2) 货品出入库效率优先原则。使存取频率较高的货品存放于距离出入库台较近的货位, 即使得所有货品的存取频率与运送该货品所需时间的乘积之和最小, 满足货品的存取频率越低, 自动小车运送该货品所需的时间越长。则货位优化函数可以描述为:
Lx是出入库台到货品所在货架的距离, tx是自动小车从出入库台运行到货品所在货架所用的时间, tz是自动小车从货品所在货架运行到所在货位所用的时间, ty是自动小车从出入库台运行到货品所在货位垂直方向上所用的时间。
仓库的货位分配优化问题是一个多目标函数优化问题, 本文采用基于遗传算法的权重系数变换法求解此多目标优化问题[6,7]。通过对两目标函数赋给权重, 将两目标函数问题变成单目标函数问题, 所给权重分别为w1、w2, 可以得到:
综上所述, 货位分配优化的数学模型为:
遗传算法是通过模拟自然进化过程来搜索最优解。它利用某种编码技术, 作用于被称为染色体的数字串, 模拟由这些串组成的群体的进化过程, 并通过有组织的、随机的信息交换来重新组合那些适应性好的串, 生成新的串的群体[8]。
遗传算法的一般流程为:
(1) 编码。采用矩阵方式编码[9]。根据所建立的数学模型, 本文对矩阵编码方式做了部分改进, 具体如下:
(1) 仓库货位采用p×qx矩阵方式进行编码。
(2) 矩阵的第x行z列元素表示为a k, , y, (k为货区个数, y为货架层数) ;矩阵中每个元素代表一个货位, 采用一对一编码方式。
(3) 整数1, 2, 3, …, a表示货物的编号, 货位为空时用0表示。
(4) 一个货位组合对应一条染色体。
(2) 初始化种群。随机生成N个个体作为初始种群。
(3) 计算个体适应度。本文研究的目标函数是求最小值, 故把目标函数值的倒数作为个体的适应度值[10]。适应度计算函数为:
计算群体中各个个体的适应度。
(4) 选择操作。选择操作采用轮盘赌法, 即基于适应度比例的选择策略, 个体i被选中的概率为:
其中, Gi为个体i的适应度值, N为种群个体数目[11]。
(5) 交叉操作。分别在两个相互配对的父代货位编码矩阵中随机选择一行和一列, 进行行行交换和列列交换, 生成两个新的子代编码矩阵。
(6) 变异操作。在一个货位编码矩阵中随机选择两个货位, 将这两个货位上的货品进行位置对换, 生成一个新的子代编码矩阵。
(7) 运算终止。若进化代数超过预先设定值, 则运算终止。
某K有一仓库, 其内部的货架按Fishbone布局排布。仓库内设备的具体信息为:货区个数k=4;每个货区货架的排数n=3;货架层数p=4;货架列数q=6;货格长l=1m;货格高h=0.8m;小车水平速度v1=2m/s;小车垂直速度v2=1m/s。
对遗传算法在运行过程所设置的一些具体信息为:货位编码矩阵元素a k, , y, 中的k和y随机选取1~4中的一个;进化代数计数器t←0, 最大进化代数T=4 000, 随机生成N=200个个体作为初始群体p, 0, , 交叉概率pc=0.4, 变异概率pm=0.1, 群体p, t, 在经过选择、交叉、变异后得到下一代群体p t+, 1, ;若t≤T, 令t←t+1, 转到步骤 (3) , 运算继续运行, 若t>T, 则以进化过程中所得到的适应度最大的个体作为最优解输出, 运算终止。
现有40种货品需要入库, 其信息如表1所示。
根据上述的遗传算法, 运用MATLAB编写程序后, 得到的入库货品的货位分配优化结果如图2。
从图2可以看到, 通过运用MATLAB求解, 目标函数值在迭代过程中呈现逐步下降的趋势, 当迭代次数到达约2 700时, 目标函数值接近2 860, 此时的目标函数值趋于收敛状态, 得到货位分配的优化结果。
得到的40种入库货品的入库后详细的货位信息如表2、表3所示。
本文在仓库的布局、货区的分划、货架和货格的排布、自动小车的行驶路线、货品货位的分配等方面对如何提高仓库工作效率、缩短工作时间进行了优化研究。立足仓库货品存储的基本原则, 建立了以货品存取作业所需时间为最小化目标函数的货位分配优化模型, 利用改进的遗传算法对货位优化模型进行了求解。结果表明, 该模型能够在保证对仓库进行方便管理、保持货架运行稳定性的同时, 减少自动小车在搬运过程中的行驶时间, 提高仓库的出入库工作效率。
表1 货品信息 下载原表
表2 货品的货位信息 (1) 下载原表
表3 货品的货位信息 (2) 下载原表