供应链单级多周期库存补货模型

供应链单级多周期库存补货模型

1. 经典EOQ模型及其基本假设

1.1. 什么是EOQ

EOQ,即 经济订购批量模型,是库存模型的理论基础,也是库存理论的基础模型,其核心是:在订货成本与库存成本之间寻找一个平衡,使得订货能够满足市场预估需求,而且成本最小化。可以用下面的一幅图来表示,订货成本逐渐下降,是因为随着订货量的增加,可以拿到数量价格折扣,同时单位运输成本也会下降,这是符合人们的直觉的,但是只要订货就会产生库存费用,而且库存费用是递增的。因此,一定有一个平衡点,使得订货成本和库存持有成本最小化的。
这里写图片描述

基于EOQ模型,学界和工业界根据具体的市场情况发展并丰富了EOQ模型,包括多级库存理论,需求变化和库存成本变化的EOQ,时变运输周期的EOQ,能力受限的EOQ 等,因此,我们要知道,EOQ虽然重要,但是也包含着极大的缺陷,很难直接应用在现实的供应链采购和仓储管理之中,当然现实中还是有很多产品是符合EOQ的基本假设要求的,比如方便面,牙膏,大米等不受季节因素或其他市场因素明显影响且销量稳定的产品,当然,真正头疼的并不是这类型的产品。

1.2. EOQ基本假设

不管学习什么数学模型,总是要先看其基本假设和适用范围,EOQ也不例外。
EOQ的基本假设如下:
- 不允许缺货,即缺货费用Cs无穷大。
- 当库存将至零,可以立即得到补充(生成时间很短,可以近似看做零)。
- 需求是连续的,均匀的,需求速率是R
- 每次订货量Q不变,订购费C0不变(每次生产量不变,装配费不变)。
- 单位存储成本不变。

其补货和库存变化如下图:
这里写图片描述

1.3. EOQ的数学推导

一个周期t内的总存储量为:

1 2 Q t

一个周期t内的总费用 F(t)=订购费+存储费+货物成本费
=订购费率 x 订购次数+总存储量 x 存储费率+货物单价P x 货物总需求量
= C 0 × 1 + 1 2 Q t C h + P R t

单位时间内的总费用(库存系统总费用率)为:

f ( Q ) = F ( t ) t = C 0 × 1 + 1 2 Q t C h + P R t t = C 0 R Q + 1 2 C h Q + P R

其中: f 0 = C 0 R Q , f h = 1 2 C h Q ,前者是单位时间的订购费,后者是单位时间的存储费,PR是常数,在考虑存储系统总费用时,PR可以忽略不计。

最优存储策略:
在求极值的数学问题中,另导数为零,可以得到最优的订购策略。
d f ( Q ) d Q = 0 ,得
- 1 最佳订购批量(或最大库存量)

Q = 2 R C 0 C h

这就是著名的经济订购批量检查EOQ公式.
- 2 最优存储周期(订货周期)
t = Q t = 2 C 0 R C h

- 3 最优总存储费用
f = f 0 + f h = 2 R C 0 C h

2. 需求变化的EOQ模型

需求变化的EOQ描述

从经典的EOQ模型假设出发,我们看到,EOQ假设需求稳定且恒定,每个周期的订货量都是一定的,而且周期长度都一样,在现实中有很多产品不是这样的,特别是有明显季节性的服装产品,有明显生命周期的电子产品,在每个周期内的销量明显不一样,上市前期进行试推广预售,然后销量快速上升,过了销售旺季或者生命周期顶峰后,进入衰退期,销量趋势如下图:
这里写图片描述

动态规划求解需求变化问题

对于多周期订购问题,可以通过动态规划的方法求解。
其实从人脑的简单思维来说,遇到这种组问题,首先想到的不是什么算法,而是暴力搜索,一个个数凑总是能凑出来的。而动态规划,就是暴力搜索的一种改进,可以以你想不到的效率找到最优解,而不是一个个组合参数去尝试。
多说一个,其实很多智能优化算法,其本质也是这种暴力搜索的改进,本质很是暴力搜索。说来也有趣,智能优化算法是没有严格的数学推导的,但是结果还不错,比如粒子群算法,遗传算法,禁忌搜索算法等。

这里讲一下使用动态规划求解的方法,使用运筹学中的一个例子说明问题,把生产换成采购,就是最开始说的EOQ问题了。
问题描述如下:
未来3个月的销量预测已知,为3w,4w,3w,如果启动生成,则启动费用为3万每次,而且每个产品的成本是1元,每件产品的每月的存储费用为0.7元。
第一个月和第四个月的库存为0,求最优生产计划。

–>1月–>2月–>3月–>4月

变量如下:
k: 表示不同的阶段,这里有4个月,则k=1,2,3,4
Sk:表示月初库存,因为第1,4个月的月初库存为0,则S1=0, S4=0
xk:表示决策变量,即当月要生产的量,1月肯定是要生产的,因为此时库存为0,而且1月生产的可以留着以后买,如果1月生产未来全部月份的需求,则1月最大生产为10w,同理,2月生产的只能是2月和3月卖,因此2月最大生产7w,3月最大生产3w。
x1={3,4,5,6,7,8,9,10}, x2={0,1,2,3,4,5,6,7}, x3={0,1,2,3}
状态转移方程:

S K + 1 = S K + x k d k

d k 是每月的需求量, S K 是月初库存
阶段指标函数(成本=生产费用+存储费用) r k ( x k )
r k ( x k ) = { 3 + x k + 0.7 S k , x k > 0 0.7 S k , x k = 0

递推方程:

f k ( S K ) = M i n ( [ r k ( x k ) + f k + 1 ( S k + 1 ) ] , k = 1 , 2 s t . x k 0 S k + x k d k

3. 考虑订购提前期的EOQ模型

在前面的EOQ假设中,有一个假设就是补货能力无穷大,能够做到瞬时补货。什么意思呢,就是我在1号下单,货物马上就能送到仓库。这是不符合现实情况啊,就算是京东物流起码也要半天啊,国内快递一般2-3天,因此这也是EOQ不合理的地方。
但是不影响我们使用啊,因为我们可以通过业务流程优化来到达瞬时补货的功能。
比如,EOQ模型中,4月1号需要补货,实际的订购提前期是5天,那么我们只要在3月25日下达订单,那么4月1日就会有一批货物到达仓库入库,和EOQ模型保持一致了。如下图:

这里写图片描述

4.动态规划求解多周期库存python代码

待补充.

猜你喜欢

转载自blog.csdn.net/suzyu12345/article/details/79520944
今日推荐