![《现代库存管理:模型、算法与Python实现》 课件 第9章-安全库存优化_第1页](http://file4.renrendoc.com/view12/M02/0E/05/wKhkGWYncweASqUwAAEMDut22SY182.jpg)
![《现代库存管理:模型、算法与Python实现》 课件 第9章-安全库存优化_第2页](http://file4.renrendoc.com/view12/M02/0E/05/wKhkGWYncweASqUwAAEMDut22SY1822.jpg)
![《现代库存管理:模型、算法与Python实现》 课件 第9章-安全库存优化_第3页](http://file4.renrendoc.com/view12/M02/0E/05/wKhkGWYncweASqUwAAEMDut22SY1823.jpg)
![《现代库存管理:模型、算法与Python实现》 课件 第9章-安全库存优化_第4页](http://file4.renrendoc.com/view12/M02/0E/05/wKhkGWYncweASqUwAAEMDut22SY1824.jpg)
![《现代库存管理:模型、算法与Python实现》 课件 第9章-安全库存优化_第5页](http://file4.renrendoc.com/view12/M02/0E/05/wKhkGWYncweASqUwAAEMDut22SY1825.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现代库存管理:模型、算法与Python实现第9章安全库存优化9.1安全库存概述例子:一家电子产品零售门店某款手机的日需求均值为5台。门店每周补货一次,提前期为3天如果忽略需求的波动性,门店可以当其库存水平还剩15台的时候向供应商订货35台实际的运营中,需求往往具有不确定性。为避免缺货发生,可以当其库存为30台时补货
此时只有当该手机3天的实际需求超过30台时,才会发生缺货。每次到货时,该手机平均还有15台的在手库存安全库存量越高,缺货的风险越小,需求满足率越高,但库存成本也越高9.1安全库存概述9.1安全库存概述安全库存指在需求均值之上额外持有的以应对需求不确定性的库存,它能够有效降低由于需求不确定性造成的供应链风险,降低由缺货导致的损失本章讨论在两种库存策略下,周期服务水平和需求满足率与安全库存量之间的关系,并回答以下两个问题:给定库存策略,如何计算系统的安全库存量以及周期服务水平和需求满足率给定期望的周期服务水平或需求满足率,如何计算不同库存策略下所需的安全库存量9.2
(ROP,Q)策略分析
安全库存与周期服务水平9.2
(ROP,Q)策略分析
安全库存与周期服务水平9.2
(ROP,Q)策略分析
需求独立同分布9.2
(ROP,Q)策略分析
需求不服从正态分布更加科学的方式:对提前期需求的分布函数(分位数函数)进行估计,从而对再补货点(安全库存量)与周期服务水平之间的关系进行更准确的刻画9.2
(ROP,Q)策略分析
零售卖场A的一款洗涤剂的周需求服从均值为250瓶,标准差为70瓶的正态分布。采购人员每当其库存水平低于600瓶时补货1000瓶,补货提前期为两周。该产品的周期服务水平是多少?例1
9.2
(ROP,Q)策略分析
#导入stats模块
importnumpyasnp
importscipy.statsasstats#(ROP,Q)策略
ROP=
600
Q=
1000
#提前期
L=
2
#周需求均值,标准差
mu=
250
sigma=
70
#补货提前期均值,标准差
mu_L=mu*L
sigma_L=sigma*np.sqrt(L)
#计算安全库存
ss=ROP-mu_L
#计算平均库存
inv=ss+Q/2
#生成标准正态分布
norm_dist=stats.norm(0,1)
#调用累计分布函数,计算周期服务水平
csl=norm_dist.cdf(ss/sigma_L)
print('例9-2计算结果:')
print('安全库存为:%.2f'
%ss)
print('平均库存为:%.2f'
%inv)
print('周期服务水平为:%.2f'
%csl)9.2
(ROP,Q)策略分析
例29.2
(ROP,Q)策略分析
公式(X)是一个近似公式,本身可能低估周期服务水平由于需求存在不确定性,理论上需要系统的运作时间足够长,实际的周期服务水平才能逼近理论的周期服务水平基于历史数据的计算会受到来自于需求随机性的干扰,并不能完全地代表库存策略的表现周期服务水平的理论计算依赖于需求分布信息的假设。当需求分布的估计存在一定误差时,理论计算的周期服务水平同样可能与实际数据表现出的结果存在差异例29.2
(ROP,Q)策略分析
例39.2
(ROP,Q)策略分析
#给定安全库存量,计算周期服务水平
ss=
150
csl=norm_dist.cdf(ss/sigma_L)
print('例9-4计算结果:')
print('当安全库存量为:%.2f时,周期服务水平值为:%.4f'
%(ss,csl))
ss_list=[ssforssinnp.arange(50,450,50)]
csl_list=[norm_dist.cdf(ss/sigma_L)forssinss_list]
plt.plot(ss_list,csl_list,color='#1c79d9')
plt.xlabel('安全库存量')
plt.ylabel('周期服务水平')
plt.show()9.2
(ROP,Q)策略分析
例39.2
(ROP,Q)策略分析
基于安全库存量与周期服务水平的关系,卖场的销售主管从库存成本,行业竞争等角度进行了分析研判,决定将该款洗涤剂的目标周期服务水平定为0.95由于新冠疫情等因素的影响,卖场客流量的不确定可能会有所增加,卖场主管想要分析需求的不确定性对安全库存量的影响应用计算公式,他计算了需求标准差对所需安全库存量的影响例4csl=
0.95
#不同的需求标准差
sigma_list=[sigmaforsigmainnp.arange(0,350,50)]
sigma_L_dict={sigma:sigma*np.sqrt(L)forsigmainsigma_list}
#计算安全库存量
sigma_ss_dict={sigma:norm_dist.ppf(csl)*sigma_L_dict[sigma]
forsigmainsigma_list}9.2
(ROP,Q)策略分析
若周需求标准差从现在的100瓶增加到200瓶,安全库存持有量将从现在的233瓶增加到465瓶例49.2
(ROP,Q)策略分析
例59.2
(ROP,Q)策略分析
安全库存与需求满足率9.2
(ROP,Q)策略分析
安全库存与需求满足率9.2
(ROP,Q)策略分析
安全库存与需求满足率9.2
(ROP,Q)策略分析
例69.2
(ROP,Q)策略分析
销售主管计算了在不同的再补货点(安全库存)下,该款盲盒会具有怎样的周期服务水平和需求满足率例69.2
(ROP,Q)策略分析
例6#(ROP,Q)策略
ROP=
600
Q=
800
#提前期
L=
10
#日需求均值,标准差
mu=
50
sigma=
30
#补货提前期均值,标准差
mu_L=mu*L
sigma_L=sigma*np.sqrt(L)
#计算安全库存
ss=ROP-mu_L
#计算周期服务水平
csl=norm_dist.cdf(ss/sigma_L)
#计算需求满足率
es=(-1.0)*ss*(1
-norm_dist.cdf(ss/sigma_L))+sigma_L*
\
norm_dist.pdf(ss/sigma_L)
fr=
1
-es/Q
print('例9-7计算结果:')
print('安全库存量为:%.2f'
%ss)
print('周期服务水平为:%.2f'
%csl)
print('需求满足率为:%.2f'
%fr)9.3
(OUL,T)策略分析
9.3(OUL,T)策略分析
安全库存与周期服务水平9.3(OUL,T)策略分析
安全库存与需求满足率9.3(OUL,T)策略分析零售卖场A采用周期盘货策略对一款榨汁机进行补货,卖场每隔3周订一次货,供货提前期为1周,该榨汁机的周需求服从正态分布,均值为30台,标准差为5台例7
9.3(OUL,T)策略分析例7
#(OUL,T)策略
OUL=
135
T=
3
#补货提前期
L=
1
将变量代入公式,则有,9.3(OUL,T)策略分析例7W=L+T
mu=
30
sigma=
10
#补货周期均值
mu_T=mu*T
#覆盖期均值,标准差
mu_W=mu*W
sigma_W=sigma*np.sqrt(W)
#计算安全库存
ss=OUL-mu_W
#计算周期服务水平
csl=norm_dist.cdf(ss/sigma_W)
#计算需求满足率
es=sigma_W*norm_dist.pdf(ss/sigma_W)-
\
ss*(1
-norm_dist.cdf(ss/sigma_W))
fr=
1
-es/mu_T
print('例9-8计算结果:')
print('安全库存量为:%.2f'
%ss)
print('周期服务水平为:%.2f'
%csl)
print('需求满足率为:%.2f'
%fr)9.3需求分布的刻画
9.3需求分布的刻画使用参数方法估计需求分布,需要根据产品的特性选择合适的分布形式,利用数据对其中未知的参数进行估计使用参数方法估计需求分布常见分布:正态分布但并不是所有产品都适合使用正态分布来估计其他分布:伽马分布、泊松分布及对数正态分布等9.3需求分布的刻画利用Python对某食品企业三个产品(SKU1,SKU2,SKU3)的历史销量数据进行参数估计三个产品的销量数据的时间颗粒度均和其覆盖期保持一致使用参数方法估计需求分布
SKU1SKU2SKU3
0404292299
1638271280
211320374
325169178
449733819.3需求分布的刻画使用参数方法估计需求分布plot_data(sales_data[‘SKU1'])9.3需求分布的刻画使用参数方法估计需求分布plot_data(sales_data[‘SKU2'])9.3需求分布的刻画使用参数方法估计需求分布plot_data(sales_data[‘SKU3'])9.3需求分布的刻画平稳性:’SKU1’的销量变化比较平稳,’SKU2’和’SKU3’变化较大偏度性:3个SKU的销量数据的分布并非完全对称,’SKU2’和’SKU3’是正偏度连续性:’SKU1’和’SKU3’的销量数据在取值上呈现连续变化,’SKU2’的数据在特定的区间值上有分布厚尾性:比起’SKU1’和’SKU2’的数据的分布比较集中,’SKU3’的需求分布尾部较厚使用参数方法估计需求分布9.3需求分布的刻画正态分布是最为常用的概率分布,在整个统计学中占据中心地位:正态分布正态分布的图像为钟型,有良好的解析性质,容易分析处理对于较大的样本,在适当的条件下绝大部分分布都能用正态分布进行近似
9.3需求分布的刻画
正态分布
9.3需求分布的刻画
正态分布
9.3需求分布的刻画在Python中,Scipy的stats模块提供了多种分布的统计相关函数。接下来我们将以正态分布为例,介绍使用stats模块定义分布、生成随机样本、相关概率函数的调用以及使用极大似然估计(MaximumLikelihoodEstimation,MLE)估计分布参数的方法Python中Scipy的stats模块相关函数调用调用stats模块的正态分布9.3需求分布的刻画对于stats模块中的各种分布,常用的函数:Python中Scipy的stats模块相关函数调用
9.3需求分布的刻画对于stats模块中的各种分布,常用的函数:Python中Scipy的stats模块相关函数调用#概率密度函数
pdf_value=norm_dist.pdf(0)
#累计分布函数
cdf_value=norm_dist.cdf(0)
#分位数函数(累计分布函数的逆函数)
quantile_value=norm_dist.ppf(0.9)
print("对于标准正态分布,在x=0处的概率密度函数为:%.2f,累积分布函数为:%.2f;"
%(pdf_value,cdf_value))
print('0.9-分位点为:%.2f'
%quantile_value)
对于标准正态分布,在x=0处的概率密度函数为:0.40,累积分布函数为:0.50;
0.9-分位点为:1.289.3需求分布的刻画
Python中Scipy的stats模块相关函数调用#指定参数的正态分布
norm_dist=stats.norm(100,20)
#生成随机样本
norm_sample=norm_dist.rvs(200)
plot_data(norm_sample)9.3需求分布的刻画对于连续型分布,可以用fit函数对样本数据进行拟合,采用相应的估计方法找到最符合样本的分布参数例如,下面采用极大似然估计方法对’SKU1’的销量数据进行拟合Python中Scipy的stats模块相关函数调用#使用极大似然估计进行拟合
normal_fitted_mu,normal_fitted_sigma=stats.norm.fit(sales_data['SKU1'],
method='MLE')
print("使用正态分布对SKU1的需求拟合,得到均值估计值为:%.2f,标准差估计值为:%.2f"
%(normal_fitted_mu,normal_fitted_sigma))使用正态分布对SKU1的需求拟合,得到均值估计值为:522.67,标准差估计值为:150.229.3需求分布的刻画下图展示了随机样本正态分布拟合后的概率密度函数,可以看到正态分布能够刻画出销量数据的一些特征Python中Scipy的stats模块相关函数调用#生成拟合的分布
normal_fitted_dist=stats.norm(normal_fitted_mu,normal_fitted_sigma)
#绘制拟合出的概率密度函数
plot_fitted_pdf(sales_data['SKU1'],normal_fitted_dist)9.3需求分布的刻画给定零售商对于’SKU1’期望的周期服务水平,根据安全库存计算公式,调用分位点函数ppf就能计算出相应的安全库存量Python中Scipy的stats模块相关函数调用#给定服务服务满足水平
given_csl=
0.95
#调用ppf()计算指定以95%的概率覆盖需求的库存水平
inv_level=normal_fitted_dist.ppf(given_csl)
safety_inventory=inv_level-normal_fitted_mu
print('假设需求服从正态分布,在给定服务水平%.2f时,补货周期内现货库存应为:%.2f,'
'安全库存量为:%.2f'
%(given_csl,inv_level,safety_inventory))假设需求服从正态分布,在给定服务水平0.95时,补货周期内现货库存应为:769.76,安全库存量为:247.099.3需求分布的刻画给定零售商对于’SKU1’期望的周期服务水平,根据安全库存计算公式,调用分位点函数ppf就能计算出相应的安全库存量伽马分布
9.3需求分布的刻画用伽马分布对’SKU1’的销量数据进行拟合伽马分布#用伽马分布拟合
gamma_fitted_paras=stats.gamma.fit(sales_data['SKU1'],method='MLE')
gamma_fitted_dist=stats.gamma(*gamma_fitted_paras)
plot_fitted_pdf(sales_data['SKU1'],gamma_fitted_dist)9.3需求分布的刻画
泊松分布与复合泊松分布
9.3需求分布的刻画
泊松分布与复合泊松分布poisson_dist=stats.poisson(10)
#概率质量函数
pmf_value=poisson_dist.pmf(5)
print('对于参数为10的泊松分布,在x=5处的概率质量函数为:%.2f'
%(pmf_value))Print:对于参数为10的泊松分布,在x=5处的概率质量函数为:0.049.3需求分布的刻画
泊松分布与复合泊松分布9.3需求分布的刻画
泊松分布与复合泊松分布9.3需求分布的刻画
泊松分布与复合泊松分布
9.3需求分布的刻画
泊松分布与复合泊松分布Stuttering泊松分布是最早提出的用于建模慢流品需求的分布之一
9.3需求分布的刻画厚尾分布“厚尾”是零售企业销量数据的一种常见现象。在厚尾分布下,尾部极端大的需求出现的概率要大于正态分布这类“薄尾”分布样本均值收敛的速度远远慢于正态分布下图绘制了在正态分布和厚尾分布下对应样本均值随样本量变化的曲线9.3需求分布的刻画厚尾分布
9.3需求分布的刻画对数正态分布
9.3需求分布的刻画对数正态分布
9.3需求分布的刻画稳定分布除了对数正态分布,两种常见的厚尾分布:帕累托分布和柯西分布也是常见的两种厚尾分布帕累托分布柯西分布这两种分布可以使用稳定分布来统一描述稳定分布是一类适用于对分布的厚尾和偏度进行描述的连续性概率分布在稳定分布下,独立同分布的随机变量之和与单个变量的分布形式相同正态分布就是一种特殊的稳态分布9.3需求分布的刻画稳定分布
9.3需求分布的刻画稳定分布
9.3需求分布的刻画使用非参数方法估计需求分布参数方法假设需求服从某一分布,从历史数据中估计相应的参数非参数方法不假设需求服从某一特定分布相对假设正确的参数方法,非参数方法在小样本情况下,表现不如参数方法但是无论数据的生成过程怎么样的,非参数方法都有一致的表现9.3需求分布的刻画经验分布与经验分位数
9.3需求分布的刻画经验分布与经验分位数Python中的应用:调用statsmodels包中的ECDF方法来得到经验分布使用numpy的quantile方法获得经验分位数值fromstatsmodels.distributions.empirical_distributionimportECDF
ecdf=ECDF(sales_data['SKU1'])quantile_value=np.quantile(sales_data['SKU1'],0.95)9.3需求分布的刻画核密度估计常用直方图观察数据的分布情况,直方图中每一区间的“高度”反映了数据在该区间内的频数:9.3需求分布的刻画核密度估计
9.3需求分布的刻画核密度估计
9.3需求分布的刻画核函数
9.3需求分布的刻画带宽
9.3需求分布的刻画带宽
9.3需求分布的刻画带宽
9.3需求分布的刻画核密度估计函数计算SKU1的核密度估计函数:核函数选择:高斯核带宽选择:留一交叉验证从中采样,计算出0.95的分位数9.3需求分布的刻画核密度估计函数kde=grid.best_estimator_
kde_samples=kde.sample(1000)
kde_quantile_value=np.quantile(kde_samples,0.95)
print('对于SKU1,使用kde计算的0.95-分位点为:%.2f'
%(kde_quantile_value))
对于SKU1,使用kde计算的0.95-分位点为:795.799.3需求分布的刻画分位数回归在使用周期服务水平指标管理安全库存时,需要计算覆盖期内总需求对应周期服务水平的分位数值。利用多维度信息预测分位数值:分位数线性回归集成树分位数回归9.3需求分布的刻画线性分位数回归
9.3需求分布的刻画线性分位数回归
9.3需求分布的刻画线性分位数回归9.3需求分布的刻画集成分位数回归将线性回归中原有的均方误差损失函数替换为分位数损失函数,可以得到线性分位数回归模型。相似的思路也可以应用在其它方法中以梯度提升树(GBDT)为例,介绍集成树分位数回归的使用fromsklearn.ensembleimportGradientBoostingRegressorgbdt_qr_dict={}
fortauinquantile_list:
#设置GBDT模型,损失函数设置为分位数损失函数
gbdt_qr=GradientBoostingRegressor(loss='quantile',alpha=tau,
n_estimators=200,max_depth=8,
learning_rate=.01,
min_samples_leaf=20,
min_samples_split=20)
gbdt_qr.fit(X,Y)
gbdt_qr_dict[tau]=gbdt_qr.predict(x_to_predict)
gbdt_qr_df=pd.DataFrame(gbdt_qr_dict)
gbdt_qr_df.columns=['q_'
+str(tau)fortauinquantile_list]
gbdt_qr_df['X']=x_to_predict9.3需求分布的刻画集成分位数回归9.4给定需求满足率下安全库存的计算
9.4给定需求满足率下安全库存的计算
蒙特卡洛模拟
9.4给定需求满足率下安全库存的计算
二分查找搜索
9.4给定需求满足率下安全库存的计算
二分查找搜索level=
0
cur_es=
1000
defbinary_search(left,right,level_ub,tar_es,dist_type,dist,N):
globallevel,cur_es
level=left+(right-left)/
2
cur_es=cal_es_value(level,level_ub,dist_type,dist,N)
ifabs(cur_es-tar_es)<=
1e-2
or(right-left)<=
1e-2:
return
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《糖尿病饮食教育》课件
- 《CAD标注规则》课件
- 《适应、损伤、修复》课件
- 2025年百色货运从业资格证题库
- 绿色水墨风小学语文教学公开课互动课件主题
- 2025年镍镉电池项目合作计划书
- 工地消防工程安全专项施工方案
- 活动部部长申请书
- 学美术申请书
- 2016教师产假申请书
- 产品报价单(5篇)
- GB/T 43153-2023居家养老上门服务基本规范
- 不锈钢栏杆施工工艺
- 陕西演艺集团有限公司招聘笔试题库2023
- 创新思维与方法(第2版)PPT全套完整教学课件
- 部编人教版二年级道德与法治下册同步练习(全册)
- 人教部编道德与法治五年级下册单元计划
- 旅行社运营实务电子课件 1.2 了解旅行社核心业务部门
- vc约起来史上最全180个知名投资人联系方式
- 中国酒文化英文介绍
- 部编版五年级语文下册课文四字词总结
评论
0/150
提交评论