当前课程知识点:仓储系统建模与分析 > 3 整箱拣选场景下仓储系统的布局与配置 > 3.3 整箱拣选快速拣选区存储货物种类 > 整箱拣选快速拣选区存储货物种类
在讨论快速拣选区
货物种类选择之前
我们先介绍一些符号的约定
li为SKUi的最小实用货位数
即存储sku i 到快速拣选区所需的基本货位数
ui为存储sku i 所有库存所需的快速拣选区货位数
pi为一定周期内非整托盘的拣选次数
di为一定周期内因不满整托盘拣选
引起的整托盘补货数量
即pi次非整托盘拣选所消耗的整托盘数
Di为一定周期内整托盘的拣选次数
因为托盘和托盘位一一对应的
容易度量
这里li ui di Di的量纲相同
均为托盘单元
cr为从存储区向快速拣选区
进行单次补货所需的时间
c1为从快速拣选区进行单次拣货所需的时间
c2为从存储区进行单次拣货所需的时间
显然c2要大于c1
s为从快速拣选区拣货
单次可以节省的时间
即s=c2-c1
将货物分配到快速拣选区
拣选成本减少了
但是会增加内部补货的成本
从净收益的角度分析
当x=0
skui不存放在快速拣选区
其净收益等于零
当x=ui
sku i全部存放在快速拣选区
非整托盘拣选和整托盘拣选都会带来净收益
为s(pi+Di)
当x=li
sku i部分存入快速拣选区
每次从快速拣选区进行非整托盘拣选
都会带来s的收益
总收益为s*pi
同时会触发内部补货成本cr*di
净收益为s*pi-cr*di
这个式子为差值
意味着其结果有正有负
当取负值时
pi/di<cr/s
大家思考一下不等式左侧项的含义
pi/di等于每个整托盘能够支持的
非整托盘拣选的次数
直观理解
当这个指标越小时
少量几次的非整托盘拣选
就能消耗一个整托盘
这时就需要频繁内部补货
当这个指标小于阈值cr/s时
净收益为负
触发的内部补货成本就高于收益
存放在快速拣选区就不划算了
同样将不等式等价转换为 di/pi>s/cr
还可以从另一个角度理解
式子中左侧项di/pi
是单次非整托盘拣选所消耗的整托盘的比例
这个值越大
比如说1/2
意味着一个存放在快速拣选区的托盘
两次就拣完了
就要触发补货
净收益就会下降
同样当di/pi大于一定阈值时
净收益就变成负值了
不适合存放在快速拣选区了
不同货物的库存量有大有小
当库存量太大时
将所有库存全部存放在有限的
快速拣选区区域内是不可行的
当库存量较小时
则选择考虑将全部库存存放在快速拣选区
因此我们分两种情况来讨论
一是ui= ∞
全部库存存入快速拣选区是不可行的
二是ui相对较小
全部库存存入快速拣选区是可行的选择
首先看第一种情况的数学模型
设计0-1决策变量xi
xi=1时
SKU i被选中
存入快速拣选区
分配的货位数为最小实用货位数li
目标函数是最小化总的劳动力成本
包括拣货成本和补货成本
约束条件是快速拣选区的空间限制
有N个货位
这是第一种情况的数学模型
目标函数中
第一项为sku i存入快速拣选区时的总成本
包括前端的拣货成本
和从存储区向拣选区的内部补货成本
第二项为sku i不存入快速拣选区时的总成本
只有从存储区拣货的成本
快速拣选区有空间容量限制
将这个成本最小化的目标函数
转换为收益最大化的目标函数
可得到右边的模型
该模型就是经典的背包问题模型
利用背包问题的算法可以进行求解
背包问题中给定物品集合
每个物品都有一定的重量和价值
背包有容量限制
寻求最优的物品放置方案
使得背包中物品总价值最高
针对背包问题
常用基于贪婪策略的启发式算法求解
将物品按照“单位重量物品产生的价值”指标
将物品从大到小排序
然后依次将物品放入背包中
直到达到背包容量限制为止
我们也可以利用贪婪算法的思想
来求解上述模型
在上述模型的语境下
“单位重量物品的价值”可对应为
“单位快速拣选区货位产生的净收益”指标
简称为劳动力效率指标
将sku按照该指标值从大到小排序
依次将SKU存入快速拣选区
直到快速拣选区的容量分配完为止
举例来看
假设某整箱拣选场景
从快速拣选区进行单次拣货的时间c1=1分钟
直接从存储区进行单次拣选的时间c2=2分钟
从快速拣选区拣货
单次可以节省的时间即为s=c2-c1=1分钟
从存储区向快速拣选区
进行单次补货的时间cr=3分钟
考虑ABC三种SKU
给定一定周期内非整托盘拣选的次数pi
和对应消耗的整托盘数di
可以计算出对应的劳动力效率指标
如果增加一个SKU D
大家可以自己尝试计算一下
对比SKU A和SKU D
当单次非整托盘拣选消耗的整托盘货物比例
由1/30提高为1/2时
或者一个整托盘能够支持的非整托盘拣选次数
从30次降为2次时
单位快速拣选区货位产生的净收益值
就从180降为-100
将SKU D存入快速拣选区只会额外增加成本了
图中为某配送中心600种SKU的劳动力效率指标
按照从大到小排序的统计图
600种SKU中
大概100种sku的劳动力效率指标为正值
即放置在快速拣选区中
能够有效节省成本
另外大概100种SKU的劳动力效率指标为负值
不适合放入快速拣选区
剩余的400种SKU
其劳动力效率指标在零附近
这些SKU放不放入快速拣选区没有太大的差别
这一现象在仓库中较为普遍
我们要重点关注占比不高的
劳动力效率指标为正的SKU集合
科学利用有限且宝贵的快速拣选区货位资源
第二种情况
ui相对较小
全部库存存入快速拣选区是可行的
这时当xi=1时
将sku i放入快速拣选区时
数量方面可以有两个选择
一是只分配基本的li个货位
二是将sku i的所有库存全部存入快速拣选区
即分配ui个货位
如何来权衡这两个选择呢
因为快速拣选区的货位是有限的
非常宝贵
基本的思路就是每个货位都要卖出一个好价钱
这里用快速拣选区内
单位货位能够带来的净收益值
即劳动力效率指标来度量
先来看看这两种选择的劳动力效率指标
当分配 li 货位时
为(s*pi-cr*di)/li
当分配ui个货位时
劳动力效率指标为s(pi+Di)/ui
这就相当于两种选择各自所出的价格
先将SKU分为两类
当s(pi+Di)/ui>(s*pi-cr*di)/li 时
即分配ui个货位时
单位货位产生的净收益值
大于分配li货位时
单位货位产生的净收益
自然地要尽量保证该类SKU的库存
能够全部存入快速拣选区
这类SKU称为“全部存入快速拣选区的候选SKU集合”
剩余的SKU分配li个货位时
劳动力效率要大于分配ui个货位时的劳动力效率
所以先考虑分配 li个货位
针对这两类SKU
分配快速拣选区货位数量的选择有所不同
针对第一类全部存入快速拣选区的候选SKU集合
要么保证ui个货位分配
要么就不存入快速拣选区了
因为这类SKU
如果只能部分存入快速拣选区的话
其净收益的效果不是最显著的
第二类的sku
要么分配li个货位
要么就不存入快速拣选区了
当第一轮这样分配完后
如果快速拣选区的货位还有剩余
可以在第二类SKU分配li个货位的基础上
增加货位的分配
使得这一集合中部分SKU全部库存
放入快速拣选区
我们来准备数学模型
模型的目标函数是最大化总的净收益值
分别来计算两类SKU的净收益
第一类SKU
设置0-1决策变量zj
zj=1时 意味着分配uj个货位
其产生的净收益为𝐬(𝒑𝒋+𝑫𝒋 )
zj=0时 不产生净收益
第二类SKU
先设置0-1决策变量xi
xi=1 分配 li个货位
产生的净收益为(𝒔*𝒑𝒊−𝒄𝒓*𝒅𝒊 )
xi=0时 不产生净收益
当第一轮分配完后
快速拣选区的货位还有剩余的话
在xi=1的基础上
增加一个0-1变量yi
yi=1时
再给sku i分配ui-li个货位
使所有库存都进入快速拣选区
这时产生的额外净收益为(𝒔*𝑫𝒊+𝒄𝒓*𝒅𝒊 )
yi=0时 则不产生额外的净收益
有这些准备工作后
我们来建立数学模型
模型的目标函数是两部分的相加
前面一部分是第一类SKU产生的净收益
后面一部分是第二类SKU产生的净收益
约束条件同样有快速拣选区货位容量的限制
此外增加了决策变量间关系的约束
即yi要小于等于xi
意思是只有xi等于1的时候
yi这个决策变量才有效
否则yi是不起作用的
这一模型也类似于背包问题模型
但增加了yi要小于等于xi的约束
同样可以采用贪婪算法进行求解
将SKU按劳动力效率指标从大到小排序
根据不同种类SKU的货位分配数量要求
依次将SKU存入快速拣选区
因为前面的模型相比于背包问题模型
增加了yi要小于等于xi的约束
贪婪算法获得的解
是否能够满足这一个额外约束
需要进行验证
如果验证通过
那该模型按照贪婪算法求解就没有问题
具体来说就是要保证如下的快速拣选区
货位的分配优先顺序
先针对第一类SKU
尝试分类ui个货位
再针对第二类SKU
先尝试分配li个货位
然后对xi=1的SKU再尝试分配ui-li个货位
如果能够证明第二类SKU中
劳动力效率指标的关系为
(𝒔*𝒑𝒊−𝒄𝒓*𝒅𝒊 )/ li>(𝒔*𝑫𝒊+𝒄𝒓*𝒅𝒊 )/(ui -li)
即可以满足这一分配优先顺序的要求
第二类SKU
因为不属于全部存入快速拣选区的候选SKU集合
因此(s*pi-cr*di)/li>s(pi+Di)/ui
我们知道如果 a/b > c/d
这时候 a/b > (c-a) / (d-b)
根据这一定理我们可以证明
(s*pi-cr*di)/li>(s*Di+cr*di)/(ui-li)的关系
因此贪婪算法获得的解
能够满足模型的额外约束
因此可以使用贪婪算法来求解该模型
换个视角
我们可以从拍卖的角度来梳理上述分析过程
之前提到过因为快速拣选区的货位是有限的
非常宝贵
每个货位都要卖出一个好价钱
SKU 为了获得快速拣选区的货位资源
需要进行投标竞拍
第一类SKU只有一次出价机会
出价为s(pi+Di)/ui
如果成功
则获得ui个货位
第二类SKU有两次出价机会
第一次出价为(s*pi-cr*di)/li
如果成功
则获得li个货位
在第一次出价成功的前提下
第二类SKU则有第二次出价的机会
出价为(s*Di+cr*di)/(ui- li)
若成功则获得 (ui-li)个货位
总而言之快速拣选区的每个货位
都要拍卖出一个好价钱
即获得最高的净收益
模型可以进一步扩展
之前假设每个SKU只能从一个货位
进行非整托盘的拣选作业
这个货位要么是在快速拣选区
要么是在存储区
放松这一假设
每个SKU可以从两个货位
进行非整托盘的拣选作业
一个货位在快速拣选区
一个在存储区
针对每一次拣选
要具体分析非整托盘拣选
从不同区域拣出的经济性
若非整托盘拣选消耗的整托盘比例超过s/cr
从快速拣选区拣选的净收益为负值
则从存储区直接拣出会更加经济
举例来说
延续前面例子的时间参数
如果SKU A每托盘为48箱
若某顾客需要72箱
72/48=1.5 pallets
一个整托盘自然从存储区拣出
剩余的1/2托盘
因为超过了s/cr=1/3 托盘的阈值
因此从存储区拣出会比较划算
当然这种情况下会带来一些问题
例如仓库中会产生更多的被拆零了的托盘
零散的托盘失去了外面薄膜缠绕包裹
每个零散托盘都是造成库存损失的潜在风险点
尤其在大规模货位的存储区更加难以管理
需要格外注意
以上就是本讲的内容
下一讲我们将介绍单件拣选场景的建模分析方法
-1.1 仓储系统的相关概述
-1.2 从货物流动的角度来分析仓库运作
-1.3 仓储系统中典型的作业环节
-1.4 仓库管理系统
--仓库管理系统
-第一章作业
-2.1 仓库货物单元转换场景
-2.2 托盘单元存取场景特点
-2.3 高效利用空间方法和途径
-2.4 高效利用工时方法和途径
-第二章作业
-3.1 典型整箱拣选场景
--典型整箱拣选场景
-3.2 整箱拣选快速拣选区存储货物数量
-3.3 整箱拣选快速拣选区存储货物种类
-第三章作业
-4.1 典型单件拣选场景
--典型单件拣选场景
-4.2 单件拣选快速拣选区存储货物数量
-4.3 单件拣选快速拣选区存储货物种类
-4.4 单件拣选快速拣选区规模大小设计
-第四章作业
-5.1 库内订单履行流程
--库内订单履行流程
-5.2 订单拣选方法
--订单拣选方法
-5.3 订单拣选技术
--订单拣选技术
-5.4 订单拣选优化要点
--订单拣选优化要点
-第五章作业
-6.1 仓库货物单元化
--仓库货物单元化
-6.2 仓储/搬运系统和设备分类
-6.3 典型的人到货系统和货到人系统
-第六章作业
-7.1 AS/RS研究对象及相关假设
-7.2 AS/RS行程时间模型
-7.3 不同I/O点布局和堆垛机停靠点策略下的行程时间模型
-7.4 考虑不同货位分配策略下的行程时间模型
-第七章作业
-8.1 RMFS货到人仓储系统
-8.2 半开排队网络方法
--半开排队网络方法
-8.3 RMFS的半开排队网络模型
-8.4 模型近似解析解求解思路
-第八章作业
-9.1 AVS/RS货到人仓储系统
-9.2 多类别顾客的半开排队网络方法
-9.3 多类别SOQN模型近似解析解求解思路
-第九章作业