相信运筹学运用得最多的地方,是在供应链优化,而在供应链优化里运用最多的地方,是在库存控制里。这篇文章,我们就分门别类,从简单到复杂,从书里有的到书里没有但实际会用的,来聊聊各种各样的库存控制策略。这里头的一部分也是我们面试做计划的候选人的必问问题。懂前面的表明你有好好读过书,懂后面的表明你面对现实问题有好好思考过,而且还能得出不错的方案。
哪些是书里有的呢?就是所谓在数学上漂亮的,能明确列出数学式来计算最优策略的。但之所以能在数学上漂亮,是因为前提苛刻,因而不太实用,但这都是基础。
如果看着看着嫌例子太多,文章太长,请直接跳到最后的策略总结。
好,我们现在开始了!
最简单的情况是:
只用关心单个物料
需求是稳定不变的,例如某物料每天消耗N PCS。
采购成本里面没有固定成本,只有变动成本,也就是每买1 PCS的价格是P。
一下单即送到,也就是Leadtime=0.
最优方案是什么?因为通常而言,都希望最小化总成本,包括库存成本和因为短缺而导致的损失两部分。那只要每天都买N PCS,那库存成本和短缺损失都是0,肯定是最优。简单吧~
这里多说两句,后面要用到。库存成本,其实包括在库成本和在途成本。在库成本,就是货物放在仓库的成本。在途成本,就是已经下了单,但是没有送到仓库那些货物的成本。一般的物料不需要很特殊的存放条件,存放的成本几乎可以忽略不计,要算的是资金的积压。逻辑是,这笔钱,如果不用来买存货,而拿去投资,其实可以拿到投资收益,一般给正常的公司都会用10%的年利率来算(什么,很高吗?看看高利贷)。资金积压越久,对应的资金积压成本就越高。
好,现在把情况稍微变复杂一点:
只用关心单个物料
需求是稳定不变的,例如某物料每天消耗N PCS。
采购成本里面没有固定成本,只有变动成本,也就是每买1 PCS的价格是p。
下单要等一个固定的时间,也就是Leadtime=T.
最优策略是什么?还是每天下N PCS,只不过要多付T天的资金积压成本,也有可能是货到付款,不用积压钱的。由于这部分成本逃不掉,这是最优解。还是很简单吧?
这里总结第一个规律:见到有Leadtime就相应地提前去采购即可。
好,现在把情况再稍微变复杂一点:
只用关心单个物料
需求是稳定不变的,例如某物料每天消耗N PCS。
采购成本里面既有变动成本,也就是每买1 PCS的价格是p;又有固定成本X,例如送货成本,送1PCS也是送,送很多也是送,又例如开机成本,加工1PCS也是要开机,加工很多也是要开机。
下单要等一个固定的时间,也就是Leadtime=T.
最优策略是什么?每隔一段时间送一个固定的批量,这个时间是T的整数倍,而批量也是N的同样整数倍。这样的话,首先不会导致缺料损失,也减少了每次采购的固定成本。至于这个整数是多少,跟固定成本有关系。固定成本越高,这个整数越大,对吧?数学上也是可以通过求最优的方式来求出这个整数值的,大家自己试一下。
还有一种情况跟这个不一样,但是类似,就是没有固定成本,但是有MOQ(minimum order quantity),也就是说买的时候,至少要达到某个量。这可能是要买的东西本身体积很小,价值很小,例如螺丝或者电阻电容,也可能因为有阶梯价,采购数量到达一定数量能享受低价。采购策略类似,每次要么不买,一买买一批慢慢用。
这里总结第二个规律:见到固定成本或者MOQ或者阶梯价就改成隔一段时间才买一次大一点的量来满足这段时间。
好,我们继续把情况再稍微变复杂一点:
只用关心单个物料
需求不是稳定不变的,是随时间变化的,但是都是明确知道的,例如某物料每天消耗N(t) PCS。
采购成本里面只有变动成本,也就是每买1 PCS的价格是p。
下单要等一个固定的时间,也就是Leadtime=T.
最优策略是什么?应该是每次需要N(t)的时候,提前T时间去买N(t),对吧?
好,再复杂一点:
只用关心单个物料
需求不是稳定不变的,是随时间变化的,但是都是明确知道的,例如某物料每天消耗N(t) PCS。
采购成本里面既有变动成本,也就是每买1 PCS的价格是p;又有固定成本X,例如送货成本,送1PCS也是送,送很多也是送,又例如开机成本,加工1PCS也是要开机,加工很多也是要开机。
下单要等一个固定的时间,也就是Leadtime=T.
最优策略是什么?这次就稍微复杂一点了。因为有固定成本,所以不能每次都买,要算好每次买的时候覆盖后面多久的需求才划算。但是我们知道策略的形式就是,每次买一定数量,这个数量跟后面随时间变化的需求量相关。固定成本越高,这个数量会越大。这部分有的教科书有,有的没有,因为在数学上已经开始变得没那么漂亮了。但是现实中不像前面那几个情况,这个情况很可能出现。需求之所以确定,是因为我们预先定好一个计划,而这个计划在一定时间窗口里面是可以先固定住的。
好,再再复杂一点:
我们要关心多个物料,而这多个物料是有组成关系的,例如我们关心A,B,C三个物料,A是B的子项,B是C的子项。
需求不是稳定不变的,是随时间变化的,但是都是明确知道的,例如C物料每天消耗N(t) PCS。
采购成本里面只有变动成本,也就是每买1 PCS的价格是p。
给每个物料下单都要等一个固定的时间,这个时间会因物料而不同。
最优策略是什么?倒推就好,我们算出对C物料随时间变化的需求,又知道B是C的子项,所以可以算出B物料随时间变化的需求,然后再算出A。然后再每个物料提前一个Leadtime来买就好。这就是最简单的MRP(Material Requirement Planning),也是这世界上大多数公司都还在用的做物料计划的方法。就是这么简单。
这里总结第三个规律:多个物料有父项子项关系,按照这个关系展开需求即可。
前面说到的这些,都是假设需求是确定的,Leadtime是确定的,然而,现实世界哪有这么确定。我们下面从最简单的情况开始,往不确定的方向走。
第一个情况是:
只用关心单个物料
需求是会围绕某个均值变化的,而且是未知的,例如我们卖西瓜,事先根本不知道今天会有多少人来买
采购成本里面没有固定成本,只有变动成本,也就是每买1 PCS的价格是P。
一下单即送到,也就是Leadtime=0.
这个物料买回来第二天就会坏
最优策略是什么呢?由于需求是未知的,如果备料备少了是有可能的,那会引起短缺损失;而如果我们备多了,会坏掉。所以我们应该事先估算一下需求的分布,有多大的概率会卖出多少。有了这个,我们就可以定出来一个最合适的数量M,使得在期望上总成本最小。这就是著名的“卖报童问题”,因为报纸第二天就没有时效性了,等于废了,大家可以搜一下,也是有标准最优解的。如果因为短缺而导致的损失很大,那M会大一些,稍微多备一点,两者是正相关关系。
这里总结第四个规律:需求不确定的时候,最优采购量取决于短缺成本和过剩成本的均衡。
我们再看复杂一点的情况:
只用关心单个物料
需求是会围绕某个均值变化的,而且是未知的,例如我们卖西瓜,事先根本不知道今天会有多少人来买
采购成本里面没有固定成本,只有变动成本,也就是每买1 PCS的价格是P。
一下单即送到,也就是Leadtime=0.
这个物料买回来过一段时间会坏。
最优策略是什么?这个跟卖报童问题类似,只不过东西买回来不会马上坏掉。直觉就能告诉我们,会比卖报童问题的M要大一些。能存放的天数越大,这个值就会越大。大多少,数学已经变得难算了,这时候拍拍脑袋定个值就是个不错的近似解了。教科书一般已经不教这个了。
再变化一下:
只用关心单个物料
需求是会围绕某个均值变化的,而且是未知的,例如我们卖西瓜,事先根本不知道今天会有多少人来买
采购成本里面没有固定成本,只有变动成本,也就是每买1 PCS的价格是P。
一下单即送到,也就是Leadtime=0.
这个物料买回来不会坏。
最优策略是什么?因为买回来不会坏,所以可以多买一点,以减少短缺损失,但是也不好买太多,否则,资金积压成本会过高。这时候我们就会定一个所谓的安全库存,来吸收需求的不确定性。具体做法是,每天我们都会把库存量补到一个数,这个数就是卖报童问题的M。例如说,今天卖掉了Y PCS,我们就补会去Y PCS,今天全卖掉M PCS了,我们就补M PCS。这个就叫“Order Up to”策略,只不过因为Leadtime=0,所以可以每天都补。
这里总结第五个规律:如果需求有不确定性,且库存能放,则设置安全库存,安全库存还是取决于短缺成本和过剩成本的均衡。
再复杂一点,如果Leadtime不等于0,也就是
只用关心单个物料
需求是会围绕某个均值变化的,而且是未知的,例如我们卖西瓜,事先根本不知道今天会有多少人来买
采购成本里面没有固定成本,只有变动成本,也就是每买1 PCS的价格是P。
一下单即送到,也就是Leadtime=T.
这个物料买回来不会坏。
那么最优策略依然是“Order Up to”策略,只不过每天消耗完的需求,要到T天之后才补得回来,那这T天内的波动就会大一些,所以安全库存水位会高一点。
再复杂一点,增加固定成本,也就是
只用关心单个物料
需求是会围绕某个均值变化的,而且是未知的,例如我们卖西瓜,事先根本不知道今天会有多少人来买
采购成本里面既有变动成本,也就是每买1 PCS的价格是p;又有固定成本X。
一下单即送到,也就是Leadtime=T.
这个物料买回来不会坏。
这里运用规律二和规律五即可。最优策略还是“Order Up to”,只不过不是每天都补货,而是隔一段时间才补一次,因为补太频繁,固定成本会很高。而补的数量就是这些天的总需求。
再复杂一点,需求不仅仅围绕某个均值变,也就是变成
只用关心单个物料
需求是个时间序列,有趋势,有周期性,也有扰动。这个假设,可以囊括所有情况,只不过不同情况的趋势,周期性和扰动的相对大小不大一样而已。
采购成本里面既有变动成本,也就是每买1 PCS的价格是p;又有固定成本X。
一下单即送到,也就是Leadtime=T.
这个物料买回来不会坏。
这时候我们可以想办法化未知为已知。时间序列里面,趋势和周期性是可以很好地通过移动平均来求出来的,这部分需求是确定的,就可以按照前面聊过的方式来求最优策略。剩下的扰动这部分,就可以按照前一个问题来求。两者相加即可。
这里总结第六个规律:如果需求是时间序列,一定可以分解成趋势+周期性+扰动,其中趋势+周期性是确定的,扰动是不确定的。
刚刚讲的是不确定性来自于需求,还有一种不确定性是来自于Leadtime,最简单的情况是:
只用关心单个物料
需求是稳定不变的,例如某物料每天消耗N PCS。
采购成本里面没有固定成本,只有变动成本,也就是每买1 PCS的价格是P。
Leadtime不是一个固定值
这个物料买回来不会坏。
这时候,就需要评估Leadtime的分布了。但最终策略会跟前面一样,用“Order Up to”策略,靠安全库存来吸收Leadtime的不确定性,Leadtime越不确定,安全库存就需要越多。
特别像最近电子料市场特别紧张,Leadtime很多从几个月变成了超过一年的,还经常跳票,那就需要备更多的安全库存。
这里总结第七个规律:如果Leadtime有不确定性,且库存能放,则设置安全库存,安全库存还是取决于短缺成本和过剩成本的均衡。
现在我们总结一下七个规律:
见到有Leadtime就相应地提前去采购即可。
见到固定成本或者MOQ或者阶梯价就改成隔一段时间才买一次大一点的量来满足这段时间。
多个物料有父项子项关系,按照这个关系展开需求即可。
需求不确定的时候,最优采购量取决于短缺成本和过剩成本的均衡。
如果需求有不确定性,且库存能放,则设置安全库存,安全库存还是取决于短缺成本和过剩成本的均衡。
如果需求是时间序列,一定可以分解成趋势+周期性+扰动,其中趋势+周期性是确定的,扰动是不确定的。
如果Leadtime有不确定性,且库存能放,则设置安全库存,安全库存还是取决于短缺成本和过剩成本的均衡。
懂得以上规律,就能应对99.99%的情况了。当然,我这里因为边幅原因,没把每一个如何求最优的数学表达式写出来,但是有数学基础和数学建模基础的同学都能自己推导出来。而没有的同学,也可以按照里面提到的思路,毛估估地拍个脑袋也大差不差。市面上的各种策略,其实也都是上面几条的整合和具体化,万变不离其宗。
最后,我出一个我们现实中遇到的问题,看看大家能不能运用上面的七个规律来想出对应的方案。它虽然看着不像,但事实上已经被这七个规律覆盖到了。问题是这样的:
我们有一个物料,每次来料都几乎有质量问题,有问题都要去返修。这个物料是找供应商订做的,说复杂也不复杂,我们也给出了工艺要求和指导,但是供应商就是不好好做,我们专门派人去盯着,供应商就做得好,不派人去盯,就做不好。那如果我们一直不派人去盯,来料经常有问题,就要一直返修,修一次不行,多修几次,时间过去了,就导致生产缺料了。那你说,我们应该用怎样的库存管理策略呢?
【社招管理岗】最新宝洁全职管理岗位合集
5918 阅读特斯拉智能制造校招专项:24-25届物流、供应链类岗位
5010 阅读中远海运特运启动2025校园招聘~
4717 阅读亚马逊全球物流团队「物流销售岗位」热招中
4537 阅读SHEIN 100+热招岗位等你投递
4429 阅读申通仕官生招募计划(2022-2024届均可投递)
3977 阅读实习丨顺丰集团速运上海区实习生招聘全面启动!
3912 阅读SHEIN社招资深物流运营专员;战略经营分析专家(供应链);仓储经理(英语);资深供应商管理专员(物流);资深经营分析师(履约)
3760 阅读亚马逊 “高阶职位”来袭,抢先投递!
3667 阅读中通快递25届校园招聘物流运营、物流网络等岗位
3417 阅读