版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现代库存管理:模型、算法与Python实现第15章承诺服务模型15.1承诺服务模型的需求规划问题
15.1承诺服务模型的需求规划问题
15.2需求上界的构造与计算
15.2需求上界的构造与计算
15.2需求上界的构造与计算例:以下图的生产装配网络为对象,计算给定服务水平为0.95的情况下,每个节点的需求上界#定义数据存储路径
data_dir=
'../../data/tree_example/'
#读取网络的节点数据
node_df=pd.read_csv(data_dir+
'assembly_node_df.csv')
#读取网络的边数据
edge_df=pd.read_csv(data_dir+
'assembly_edge_df.csv')
#读取网络的需求数据
demand_df=pd.read_csv(data_dir+
'assembly_demand_df.csv')15.2需求上界的构造与计算例:数据概况节点信息表’node_df’:’lt’:节点的单级提前期’hc’:单位持货成本’sla’:对客户承诺的服务时间node_idlthcsla0C180.4685565NaN1B111.994935NaN2C270.271441NaN3C330.632656NaN4B280.861130NaN5A33.7657402.0边信息表’edge_df’:’predecessor’:上游节点’successor’:下游节点’quantity’:生产配比predecessorsuccessorquantity0C1B111B1A12C2B123C3B214B2A1需求信息表’demand_df’:只有节点A为需求节点,mean为14.558117,std为2.89212915.2需求上界的构造与计算假设库存共享效应系数为2,服务水平系数取标准正态分布的0.95分位数。相当于假设需求服从正态分布,同时模型仅覆盖0.95分位数以下的需求波动
pooling_factor=
2
tau=
0.9515.2需求上界的构造与计算具体代码如下:#调用第10章确定上游节点的函数得到每个节点的上游节点列表
pred_dict=find_predecessors_dict(edges=edge_df[['predecessor',
'successor']].values)
#生产配比
qty_dict={(pred,succ):qtyforpred,succ,qtyinedge_df.values}
#需求节点的需求及标准差
mu_dict=dict(zip(demand_df['node_id'],demand_df['mean']))
sigma_dict=dict(zip(demand_df['node_id'],demand_df['std']))
#各节点自身需求所对应的需求波动系数
ksigma_dict={node:0
fornodeinnode_df['node_id']}
ksigma_dict.update({node:norm.ppf(tau)*sigma
fornode,sigmainsigma_dict.items()})
#初始化涉及到向下传递的字典
network_mu_dict={node:0
fornodeinnode_df['node_id']}
#首先将需求节点的信息加入到字典中
network_mu_dict.update({node:mufornode,muinmu_dict.items()})
constant_dict={node:v**pooling_factorfornode,vinksigma_dict.items()}15.2需求上界的构造与计算具体代码如下:#将网络的边反向
reverse_edges=[(j,i)fori,jin
edge_df[['predecessor','successor']].values]
#计算拓扑排序
ts=TopologicalSort(reverse_edges)
reverse_topo_sort=ts()
fornodeinreverse_topo_sort:
#如果节点有上游节点,则将自身的需求信息传递给上游节点
iflen(pred_dict[node])>
0:
forpredinpred_dict[node]:
constant_dict[pred]+=(qty_dict[pred,node]**pooling_factor)\
*constant_dict[node]
network_mu_dict[pred]+=qty_dict[pred,node]*network_mu_dict[
node]
#在全部节点传递完成后,计算需求波动系数
volatility_constant_dict={node:np.power(v,1
/pooling_factor)
fornode,vinconstant_dict.items()}
volatility_constant_df=pd.DataFrame.from_dict(
volatility_constant_dict,orient='index').reset_index().rename(
columns={'index':'node_id',0:'volatility_constant'})
network_mu_df=pd.DataFrame.from_dict(
network_mu_dict,orient='index').reset_index().rename(
columns={'index':'node_id',0:'mean'})15.2需求上界的构造与计算具体代码如下:lt_dict=dict(zip(node_df['node_id'],node_df['lt']))
cum_lt_dict=cal_cum_lt(edge_df[['predecessor','successor']].values,lt_dict)
cum_lt_df=pd.DataFrame.from_dict(
cum_lt_dict,orient='index').reset_index().rename(
columns={'index':'node_id',0:'cum_lt'})
node_df=node_df.merge(cum_lt_df,on='node_id',how='left')
print(node_df)#定义离散化的时间颗粒度
time_unit=
1
#根据节点和对应的累计提前期,生成index
node_list=node_df['node_id'].tolist()
idx=[(node,ct)fornodeinnode_list
forctinnp.arange(0,cum_lt_dict[node]+time_unit,time_unit)]
idx=pd.MultiIndex.from_tuples(idx,names=['node_id','time'])
demand_bound_df=pd.DataFrame(index=idx).reset_index()
demand_bound_df=demand_bound_df.merge(
volatility_constant_df,on=['node_id'],how='left')
demand_bound_df=demand_bound_df.merge(
network_mu_df,on=['node_id'],how='left')
#根据对应的CT,计算对应的安全库存量,以及需求上界
demand_bound_df['ss_qty']=demand_bound_df['volatility_constant']*np.power(
demand_bound_df['time'],1
/pooling_factor)
demand_bound_df['demand_bound']=demand_bound_df['mean']*demand_bound_df[
'time']+demand_bound_df['ss_qty']
print(demand_bound_df.head())15.2需求上界的构造与计算结果如下:node_idtimevolatility_constantmeanss_qtydemand_bound0C104.75712914.558170.0000000.0000001C114.75712914.558174.75712919.3152472C124.75712914.558176.72759735.8438323C134.75712914.558178.23959051.9139424C144.75712914.558179.51425867.74672815.2需求上界的构造与计算不同服务时间下的策略及成本比较:
根据计算得到的demand_bound_df,查找出每个节点不同覆盖时间的安全库存量,计算出总库存成本,接下来考虑三种比较有代表性的策略:只在最下游设置安全库存。该策略将安全库存全部前置到需求节点,即只持有成品库存。其好处是将所有节点安全库存的覆盖时间全部汇聚在需求节点,这样可以最大化安全库存在“时间维度”的共享效应。其劣势是完全忽视了安全库存在“空间”维度的共享效应按照单级的方法设置安全库存。该策略下,每个节点都根据自身的提前期按照单级的方式计算安全库存。其好处是计算简单,但它完全没有考虑到网络中安全库存的共享效应,也忽略了节点之间持货成本的差异,没有对安全库存进行全网络优化网络最优的安全库存。该策略通过优化所有节点的服务时间,在保证需求节点的承诺服务时间的条件下,充分挖掘网络中安全库存“空间维度”和“时间维度”的共享效应,最小化网络的总安全库存成本15.2需求上界的构造与计算不同服务时间下的策略及成本比较:只在最下游设置安全库存:前面计算过,节点A的累计提前期为14天,它的承诺服务时间为2天,如果只在节点A上设置安全库存,它的覆盖时间CT=14-2=12天,其他节点的覆盖时间都为0,经计算该策略的安全库存成本为62.06使用单级的方法设置安全库存:在该策略下,需求节点A的覆盖时间等于自身提前期减去其sla,其他节点的覆盖时间都是自身提前期,该策略的安全库存总成本为57.34网络最优的安全库存策略:本章的后续内容将介绍如何优化承诺服务模型。这里先直接给出该网络下每个节点的最优覆盖时间:{’B2’:10,’B1’:0,’C1’:8,’C2’:7,’A’:2,’C3’:0}。根据给出的最优覆盖时间,可以得到最优的安全库存策略及其成本51.43可以看出,相比于前两种方法,最优的安全库存策略能够显著降低库存成本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国内隐形眼镜行业市场深度分析及发展前景与投资机会研究报告
- 2024-2029年黑色金属粉末行业市场现状供需分析及市场深度研究发展前景及规划投资研究报告
- 2024-2029年国内外类脑计算技术行业发展分析及发展趋势与投资前景研究报告
- 理想汽车的营销现状
- 李宁营销环境分析宏观环境分析
- 儿童预防接种工作常见问题探讨课件
- 《金与南宋的对峙作业设计方案-2023-2024学年初中历史与社会部编版》
- 关于三月三线上直播课堂观后感范文5篇
- 各个行业培训
- 围手术期医疗质量管理
- 中医养生馆计划书项目招商引资方案
- 《培养孩子文明礼貌的好习惯》家长会-小学生主题班会通用版
- 组织文化与创新关系研究
- 人教版七年级语文下册第二单元整体教学方案教案及反思
- 中国成人急性呼吸窘迫综合征(ARDS)诊断与非机械通气治疗指南(2023版)解读
- 2023年江苏南京林业大学招聘工作人员10人笔试参考题库(共500题)答案详解版
- 桂园支行金融生态图谱有动画版
- 2023年风电场集中和远程监控系统行业分析报告及未来五至十年行业发展报告
- 妇产科护理(长春医学高等专科学校)智慧树知到课后章节答案2023年下长春医学高等专科学校
- 小学校本课程 校本课程《汉诺塔游戏》教学ppt课件设计
- 人身伤害应急救援及自防自救知识培训
评论
0/150
提交评论