服务热线: 13472705338
新闻中心 news center

煤矿智能仓储系统研究与设计

伴随互联网、大数据、人工智能技术的迅猛发展,煤矿智能化相关技术与装备水平也在显著提升。同时,随着煤矿智能化程度...
联系我们 contact us
新闻中心
您当前的位置:首页 > 新闻中心 > 基于多种群空间映射遗...

基于多种群空间映射遗传算法的立体仓库储位优化

信息来源: 发布时间:2022-01-13 点击数:

货物在流通过程中, 会有大量的库存积压, 从而产生储位分配模式混乱的问题, 对囤积的货物进行合理的摆放是物流业中的重要环节. 一旦仓储环节存在问题, 则后续的生产和流通都将无法对接, 运输系统将发生混乱.

目前, 对储位优化问题已有大量研究, 在系统模型方面, Park等[1]提出了物品关联度的数学模型, 并设计了一种启发式算法, 再结合传统遗传算法解决问题; Muppani等[2]用物品的临界值指数(COI)值作为检测货物摆放优劣的一种指标; 李小笠等[3]改进了货位分配模型, 加入了货物分区的概念; 蔡安江等[4]不仅研究了分离式仓库优化问题, 还对堆垛机的调度方案进行了探究, 将其视为一个旅行商问题; 张鹏[5]对仓储系统用Flexsim设计了一种仿真软件, 上述几种不同的改进方法, 都将储位优化问题引入到约束条件中, 使数学模型更复杂.

对于优化算法的研究, Poulos等[6]选择遗传算法解决此问题, 用交叉算子的方法改进了原有算法, 最终得到较好的结果, 也证明了启发式算法对组合优化问题有较大帮助; Deng[7]也通过遗传算法进行寻优, 计算涉及到3个实际的优化方向, 进一步靠近工业领域; 李鹏飞等[8]提出了一种病毒协同遗传算法, 解决了多目标优化模型; 焦玉玲等[9]也对传统遗传算法进行了改进. 算法的不断更新使求解的效率逐步提升. 但针对不同类型的仓库, 当存取任务不断改变时, 储位分配的方式也应随着变化的需求进行相应地调整. 在算法方面, 多数启发式算法在寻优过程中易陷入局部最优, 性能还可以提升.

为解决上述问题, 本文构建一个带权重的多目标组合优化模型, 同时提出一种改进的遗传算法, 从编码方式、 种群构成和交叉算子等方面对储位分配问题进行改进, 使其具有较强的针对性, 仿真实验结果表明, 该算法易跳出局部最优, 寻优能力更好, 并分析了算法的适用范围.

1 模型构建

1.1 运行环境及优化目标的选择

本文以分离式货架结构为系统的运行环境, 如图1和图2所示, 其中z轴为仓库高度, y轴为仓库行数, x轴为仓库列数, 每个货格H都有一个静态坐标(a,b,c)与其对应, 对于单个货格, 其长、 宽、 高分别用dx,dy,dz表示, Wx为巷道宽度, Wy为起始宽度, x轴方向上所有y=0的点皆为入库起点.

图1 仓库立体图

图1 仓库立体图  下载原图

Fig.1 Warehouse stereogram

图2 仓库俯视图

图2 仓库俯视图  下载原图

Fig.2 Top view of warehouse

若用静态坐标(a,b,c)找到实际空间位置, 即动态坐标(xk,yk,zk), 有如下变换公式:

xk=(a1)dx+a/2Bad mglyph: D:/2201fig/h20.jpgWx,(1)yk=(b1)dy+Wy,(2)zk=(c1)dz,(3)xk=(a-1)dx+⌊a/2⋅Wx,   (1)yk=(b-1)dy+Wy,   (2)zk=(c-1)dz,   (3)

约束条件为

1aNx,1bNy,1cNz,(4){1≤a≤Νx,1≤b≤Νy,1≤c≤Νz,   (4)

其中Nx,Ny,Nz分别表示货架的总列数、 总行数和总层数, 使用约束条件一是为避免因为忽略了巷道宽度对实际距离的影响, 二是为可在随意更改WxWy的条件下不用修改(a,b,c), 降低了重复计算次数, 为后续算法计算和仿真实验奠定基础.

在实际运行过程中, 有任务T={S1,S2,…,Sn}, 其中S1,S2,…,Sn为货物, 每个货物Si都有下属信息{P,M,K}, P为货物周转率, M为货物质量, K为货物类别. 储位分配方式应满足以下要求: 周转率大的货物更靠近出口, 货架的整体重心要尽可能低, 尽量缩短同类物品的摆放距离[10]. 因此, 本文根据P,M,K分别构建相应的目标函数, 使其与动态坐标(xk,yk,zk)相联系, 并进行组合优化.

1.2 效率最优模型构建

周转率也可表示为货物出入库的频率, 需要多次进出库的物品离仓库入口的距离应尽可能小, 这样会缩短拣选时间, 达到提高分拣速度和效率的要求, 建模方案为

f1(x,y,z)=i=1n(PiTi),(5)f1(x,y,z)=∑i=1n(Ρi⋅Τi),   (5)

其中: n为本次任务中入库货物的总数量; Pi为第i个物品的周转率; Ti为存货时间,

Ti=(Tiy)2+(Tiz)2,(6)Tiy=yivy,(7)Tiz=zivz,(8)Τi=(Τiy)2+(Τiz)2,   (6)Τiy=yivy,   (7)Τiz=zivz,   (8)

式中Tiy,Tiz分别表示y轴和z轴方向所需的时间, vy,vz分别表示提升机在y轴和z轴所需的速度, 由于该模型的x轴为入口, 所以不考虑该方向时间, 其中坐标yi,zi的值是经过式(2),(3)变换后的值, 故通过式(6)~(8)可得最终的周转率模型为

f1(x,y,z)=i=1n[Pi(yivy)2+(zivz)2].(9)f1(x,y,z)=∑i=1n[Ρi⋅(yivy)2+(zivz)2].   (9)

1.3 稳定性模型构建

货物在货架的摆放过程中, 如果总质量分配不合理, 即重心过于偏向某一侧, 会导致货架倾覆, 因此一个稳定的货架可保证流通的安全性, 因此该目标函数设计为

f2(x,y,z)=i=1n(Mizidz)i=1nMi,(10)f2(x,y,z)=∑i=1n(Μi⋅zi⋅dz)∑i=1nΜi,   (10)

其中Mi为第i个货物的质量, 单位为kg. 求式(10)最小值的目的是使货架结构在垂直方向(z轴)上达到稳定, 即z轴方向数值较大, f2值越大, 货物的整体重心越高.

1.4 离散程度模型构建

在处理任务时, 通常是同类物品一起出现, 因此缩短彼此的距离可减少堆垛机反复调度的时间. 物品中心坐标的计算方法为

(xkm,ykm,zkm)=i=1nxkin,j=1nykjn,k=1nzkkn,(11)(xkm,ykm,zkm)=(∑i=1nxkin,∑j=1nykjn,∑k=1nzkkn),   (11)

其中(xkm,ykm,zkm)为第k类物品的中心坐标. 则物品相对于该点的距离可表示为

Xi=((xki,ykj,zkk)(xkm,ykm,zkm)),(12)fk=i=1nXi2,(13)f3=k=1kni=1nXi2,(14)Xi=((xki,ykj,zkk)-(xkm,ykm,zkm)),   (12)fk=∑i=1n∥Xi∥2,   (13)f3=∑k=1kn∑i=1n∥Xi∥2,   (14)

其中fk为第k类货物的离散程度, Xi表示距离向量, ‖Xi2表示每个货物与中心坐标的距离差值, kn为类别总数, 由式(12)~(14)可知离散程度模型为

f3(x,y,z)=k=1kni=1n[(xkixkm)2+(ykjykm)2+(zkkzkm)2]1/2.(15)f3(x,y,z)=∑k=1kn∑i=1n[(xki-xkm)2+(ykj-ykm)2+(zkk-zkm)2]1/2.   (15)

1.5 组合优化模型

在得到上述3个独立模型的基础上, 经过组合后得到的多目标函数将不再拥有单方向的最优解, 只能得到一个综合考虑后的可行最优解, 整合后的数学模型为

f(x,y,z)=f1(x,y,z)+f2(x,y,z)+f3(x,y,z).(16)f(x,y,z)=f1(x,y,z)+f2(x,y,z)+f3(x,y,z).   (16)

若对3个目标有不同的需求, 可在每个独立函数前增加权重系数ω, 最终的优化模型为

minf(x,y,z)=ω1f1(x,y,z)+ω2f2(x,y,z)+ω3f3(x,y,z),(17)minf(x,y,z)=ω1f1(x,y,z)+ω2f2(x,y,z)+ω3f3(x,y,z),   (17)

约束目标为

{ω1+ω2+ω3=1,0ω11,0ω21,0ω31.(18){ω1+ω2+ω3=1,0≤ω1≤1, 0≤ω2≤1, 0≤ω3≤1.   (18)

2 改进遗传算法寻优

遗传算法在解决组合优化问题上效果较好, 其模拟自然界的适者生存法则, 通过生成种群、 染色体的选择、 交叉、 变异等步骤, 逐代选择优秀个体, 直到满足终止条件[11]. 算法的优点是其可以给出多目标优化问题的可接受解, 但搜索速度较慢, 易陷入局部最优, 且编码过程繁琐, 因此本文提出空间映射编码, 多种群协同寻优, 最后结合爬山算法设计一种改进的遗传算法.

2.1 空间映射编码

编码是遗传算法的起点, 它影响后序所有步骤的计算. 当一个任务T到来时, 其包含若干个待处理货物S1,S2,…,Sn, 每个货物Si在仓库模型中都有唯一的静态坐标(a,b,c)与其对应.假设货格总数为n, 则解集空间就是n个正整数序列, 每个正整数对应一个(a,b,c), 映射方式如图3所示. 以z,y,x轴的顺序依次进行编码, 第一个坐标(1,1,1) 的编号m=1, 编码步骤如下:

图3 空间映射转换

图3 空间映射转换  下载原图

Fig.3 Space mapping transformation

1) c+1, m+1, 直到c=Nz;

2) c=0, b+1, 返回步骤1), 直到b=Ny;

3) b=0, a+1, 返回步骤1), 直到a=Nx时, 编号结束.

对应关系为

f(a,b,c)=m,m[1,Nz102+Ny10+Nx],m.(19)f(a,b,c)=m, m∈[1,Νz⋅102+Νy⋅10+Νx],  且m为整数.   (19)

该编码方式将三维空间解集降为一维线性解集处理, 常规二进制编码较复杂, 且其在高维空间中易导致无效交换. 例如(1,2,3)和(5,2,7), 这两个货位如果交换了y轴信息, 则其结果是无效的, 如图4所示. 而对于空间映射编码, 用唯一整数去对应静态坐标, 避开了对自身内部信息进行交换的问题, 只存在整体交换, 且交换后不存在无效结果, 如图5所示. 在整个算法流程中, 所有数据都将以编号的形式参与计算, 可读性更高.

图4 二进制编码存在的问题

图4 二进制编码存在的问题  下载原图

Fig.4 Problems in binary coding

图5 空间映射编码交换过程

图5 空间映射编码交换过程  下载原图

Fig.5 Exchange process of space mapping coding

2.2 初始种群的生成

若任务T中有n个待入库货物, 假设种群规模为m, 则初始种群是一个m×n的矩阵Xa=(m1,m2,…,mm)TXa中有m个行向量, 这样的向量称为一个染色体, 每个染色体中包含n个元素:

mi=(ai1,ai2,,ain)1n,(20)mi=(ai1,ai2,⋯,ain)1n,   (20)

其中aij为通过上述编码方式得到的货格编号.

2.3 适应度函数

由于本文所求是一个最小值, 所以单个货物的适应度函数为

fit(aij)=11+f(aij),1+f(aij)>0,(21)fit(aij)=11+f(aij),  1+f(aij)>0,   (21)

其中fit(aij)的值越大, 越符合要求. 对于一条染色体mi, 其适应度为

fit(mi)=k=1nfit(aik).(22)fit(mi)=∑k=1nfit(aik).   (22)

2.4 多种群协同寻优

通过fit(m)已经求得种群中每个染色体的适应度, 经过概率的归一化后, 进行优质子代的选择:

Pm=fit(mi)i=1mfit(mi),(23)Ρm=fit(mi)∑i=1mfit(mi),   (23)

其中Pm为每条染色体被选择的概率, 通过保留概率PGA, 使得在原种群中, 有一定几率留下(m×PGA)个优秀个体. 本次操作后, 得到的种群矩阵称为父类种群, 表示为Xb=(b1,b2,…,br)T. 在父类种群Xb中, 由于概率选择导致存在多个相同的染色体, 染色体出现次数越高, 证明适应度越好, 通过选择机制筛选出了更适应问题的结果.

空间映射编码虽然减少了无效交换, 但由于不产生初始解集外的新解, 所以也更易陷入局部最优. 为解决该问题, 在Xg生成时, 同时再生成k个父类种群Xbk=(bk1,bk2,…,bkr)T, 该过程相当于增大了种群规模, 在达成终止条件时, 选出k个种群中的最优解. 剩下(m-r)个染色体由Xb中两两相邻的染色体进行交叉运算, 若满足交叉概率Pc,

 


则进行交叉产生新的子代个体, 本文所用的交叉方式是随机生成两个整数es, 在染色体对应的位置上进行两两交换, 避开了产生不可行解的可能, 如图6所示. 通过变异概率Pr, 对单个染色体的某个或几个位置在编号范围内进行更改, 变异的范围和产生的新值均为可行解, 组成待选种群Xg.

图6 第k个/单个种群的进化演变方式

图6 第k个/单个种群的进化演变方式  下载原图

Fig.6 Evolution mode of kth/single population

2.5 爬山算法

Xg中的每条染色体, 都生成两个随机点位es, 类似于交叉时的操作, 对点位中所有编号进行倒序排列并重新写入原染色体, 计算当前的染色体适应度, 若fit(gi)<fit(gj), 则用gi代替gj, 相反则保留原染色体, 该过程即为爬山过程. 通过与新产生的解进行比较, 留下更适合的解, 将适应度函数得到的(m-r)个新染色体向量与Xbk组成Xck, 作为下一轮的Xbk:

Xck=Xbkc(r+1)1cm1c(r+1)ncmnmn.(25)Xck=(Xbkc(r+1)1⋯c(r+1)n⋮⋱⋮cm1⋯cmn)mn.   (25)

爬山算法属于局部范围内寻优, 本文只在邻域内搜索一次, 即fit(gi)与fit(gj)之间的比较, 在局部解中加强寻优效果, 再通过多种群并行求解的方式跳出局部最优, 二者结合使优势互补.

至此第一次子代生成结束, 同时产生了k个子代种群Xc, 其中每个都包含了r个父代染色体和(m-r)个经过交叉变异的优秀个体, 若未达到迭代次数要求, 则将Xck视为下一轮计算中的Xa, 每轮解集的单个种群更新过程如图6所示. 解集的寻优可视为一种矩阵拼接过程, 其中虚线表示阈值r. 重复上述过程, 若满足迭代次数, 则根据式(21)计算出适应度最高的一组解Xfin, 将该解作为最终结果. 改进的遗传算法流程如图7所示.

图7 改进的遗传算法流程

图7 改进的遗传算法流程  下载原图

Fig.7 Flow chart of improved genetic algorithm

3 仿真实验与结果分析

3.1 实验参数设置

本文使用MATLAB2016a对改进的遗传算法进行仿真实验, 为验证模型和算法的有效性和稳定性, 将系统参数设定为: 巷道宽度和起点宽度分别为2 m和1 m, 仓库的容量为10×10×4, 共400个固定货格, 货格长度为1 m, 堆垛机在x轴和y轴的运行速度分别为1 m/s和0.6 m/s. 遗传算法的参数设为: 最大迭代次数为1 000, 种群规模为100, 交叉概率为0.8, 变异概率为0.2, 协同种群数量为10, 保留概率为0.2. 实验选用某图书类仓库的入库任务信息列于表1. 其中, No.为货物编号, 任务T中共有30个待入库货物, 容量S=30, P为周转率, M为质量, K为类别, 这里已用数字进行了实际含义的替换.

表1 入库任务信息 导出到EXCEL

Table 1 Storage task information


No. (P,M,K) No. (P,M,K) No. (P,M,K) No. (P,M,K) No. (P,M,K)

1
(0.85,36.0,1) 7 (0.63,50.7,2) 13 (0.64,36.7,3) 19 (0.51,47.3,4) 25 (0.95,19.0,5)

2
(0.67,27.0,1) 8 (0.74,33.2,2) 14 (0.93,50.0,3) 20 (0.84,7.5,4) 26 (0.88,13.0,5)

3
(0.92,47.2,1) 9 (0.90,41.0,2) 15 (0.65,36.3,3) 21 (0.82,50.3,4) 27 (0.46,39.0,6)

4
(0.48,44.5,1) 10 (0.47,64.2,2) 16 (0.68,24.5,3) 22 (0.93,53.0,4) 28 (0.33,53.8,6)

5
(0.61,24.0,1) 11 (0.51,24.5,3) 17 (0.73,41.0,3) 23 (0.21,16.3,4) 29 (0.94,27.5,6)

6
(0.86,41.5,2) 12 (0.82,27.7,3) 18 (0.74,39.8,3) 24 (0.77,39.3,4) 30 (0.65,36.5,6)



3.2 算例分析

3.2.1 算法有效性验证

在目标函数(17)中, 每个优化方向f1,f2,f3分别可作为验证模型优化程度的3个性能指标[9]. 对表1的数据分别用传统遗传算法(GA)和多种群空间映射/改进遗传算法(IGA)进行优化求解, 给出三维仿真结果和各项指标的数值. 图8为GA优化效果, 图9为IGA优化效果. 由图8和图9可见, 同颜色为同一类别, 可从物品的摆放位置直观看出IGA的排列更紧密有序. 表2为目标函数各项求解结果. 由表2可见, IGA的目标函数值为98.71, 相比于GA的结果降低27.61%, 各性能指标(出入库时间, 整体重心, 相关性距离和)结果都较优, 分别低于GA各项的35.71%,17.64%,27.94%, 验证了IGA的有效性, 相比于GA, 在本问题上的寻优能力更强, 更易跳出局部最优.

图8 GA优化效果

图8 GA优化效果  下载原图

Fig.8 Optimization effect of GA

图9 IGA优化效果

图9 IGA优化效果  下载原图

Fig.9 Optimization effect of IGA

表2 目标函数各项求解结果 导出到EXCEL

Table 2 Solution results of objective function



容量S
算法 f f1 f2 f3

30
GA 136.36 3.78 90.23 44.35

30
IGA 98.71 2.43 74.30 31.96



3.2.2 算法稳定性验证

由于遗传算法(启发式算法)每次求解的结果不唯一, 所以为避免出现特殊情况, 需要对算法的稳定性进行实验, 对上述入库任务进行20次优化求解, 每隔5次实验计算一次f的均值和标准差, 结果列于表3.

表3 两种算法在不同实验次数下的均值和标准差 导出到EXCEL

Table 3 Mean and standard deviation of two algorithms under different experimental times



实验次数

GA

IGA

均值
标准差
均值
标准差
5 135.35 1.6 103.47 1.1

10
137.48 3.1 104.62 2.3

15
132.56 4.5 102.50 3.3

20
133.70 5.8 103.54 4.5



由表3可见, 经过不同次数的实验, IGA的标准差增长率为15%~17%, 小于GA, 在完成20次实验后, IGA的均值小于GA 22.63%, 标准差小于GA 16.67%, 可证明IGA在处理本问题上没有过多的震荡, 有足够的稳定性.

3.2.3 算法对不同任务容量的处理能力分析

实验改变任务容量, 考察优化效率随任务容量S的变化情况. 下面以S=10为间隔, 分别对不同容量进行分析讨论. 表4列出了不同任务容量下IGA较GA的各项指标提升程度.

表4 不同任务容量下IGA较GA的各项指标提升程度 导出到EXCEL

Table 4 Improvement degree of IGA is higher than that of GA under different task capacities



任务容量S
f下降率/% f1下降率/% f2下降率/% f3下降率/%

30
27.08 48.56 16.55 27.94

40
25.88 41.74 19.35 25.36

50
22.54 33.56 24.47 16.09

60
18.67 28.54 15.93 17.15

70
13.46 16.78 10.46 14.64

80
6.32 5.50 2.03 14.89

90
4.64 3.20 2.21 11.63



由表4可见, 各项优化指标在IGA的优化下总体优于GA, 但IGA的优化能力随着S的提升, 逐渐变小, 这种情况当S=80时尤为显著. 在常规的立体库任务分配上, 通常一次任务的容量不超过总容量的10%, 如图10所示, 当容量比约达到17%时(S=65), 优化空间已经受限, 目标函数的优化过程不再过分依赖于不同算法.

综上所述, 本文对自动化立体仓库中的储位分配问题进行了研究, 为应对不同的生产需求, 通过建立组合优化函数实现了对货位的动态分配, 从而提高了物流运输效率. 在问题优化过程中, 本文提出了一种多种群空间映射遗传算法. 在算法对比实验和不同任务容量的处理实验中, 用三维视图、 指标数据和迭代曲线3个指标验证了该算法在常规运行时对货位分配的能力更好, 3个性能指标均优于传统方案, 但在任务量过大时, 优化能力会减弱.

图1 0 IGA优化能力随S的变化趋势

图1 0 IGA优化能力随S的变化趋势  下载原图

Fig.10 Change trend of IGA optimization capability with S

上海阳合仓储管理
官方二维码

版权所有©:阳合仓储 公司地址:上海市嘉定区南翔嘉美路428号 联系电话:134-7270-5338 沪公网安备 31011402008347号 沪ICP备14036201号-1