《现代库存管理:模型、算法与Python实现》 课件 第14章-网络库存管理基础_第1页
《现代库存管理:模型、算法与Python实现》 课件 第14章-网络库存管理基础_第2页
《现代库存管理:模型、算法与Python实现》 课件 第14章-网络库存管理基础_第3页
《现代库存管理:模型、算法与Python实现》 课件 第14章-网络库存管理基础_第4页
《现代库存管理:模型、算法与Python实现》 课件 第14章-网络库存管理基础_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

现代库存管理:模型、算法与Python实现第14章网络库存管理基础14.1网络分析基础网络的基本概念与表示方法:供应网络通常是一个有向图,一张图𝒢由一组节点𝒩和一组能够将两个节点相连的边𝒜组成,记为𝒢=(𝒩,𝒜)产品从工厂发出后运输到区域仓RDC,RDC向三个前置仓FDC1,FDC2和FDC3供货14.1网络分析基础使用Python表示图的方法:边的数组:定义一个列表,将网络中的边存储起来每个tuple中的第一个元素表示前任节点,第二个元素表示继任节点这种存储方式不便于快速查找节点相关的边。每次查找时都需要遍历所有边,计算开销较大distribute_edges=[('Factory','RDC'),('RDC','FDC1'),('RDC','FDC2'),('RDC','FDC3')]

print(distribute_edges)[('Factory','RDC'),('RDC','FDC1'),('RDC','FDC2'),('RDC','FDC3')]14.1网络分析基础使用Python表示图的方法:邻接矩阵:表示节点之间相邻关系的矩阵,对于有向图,当图中存在由节点i指向节点j的边时,i行j列的元素值为1,否则为0all_nodes=list(set([nodeforedgeindistribute_edgesfornodeinedge]))

adj_matrix=np.zeros((len(all_nodes),len(all_nodes)))

foriinrange(len(all_nodes)):

forjinrange(len(all_nodes)):

if(all_nodes[i],all_nodes[j])indistribute_edges:

adj_matrix[i,j]=

1

adj_matrix_df=pd.DataFrame(adj_matrix,index=all_nodes,columns=all_nodes)

print(adj_matrix_df)FDC2FactoryRDCFDC3FDC1

FDC20.00.00.00.00.0

Factory0.00.01.00.00.0

RDC1.00.00.01.01.0

FDC30.00.00.00.00.0

FDC10.00.00.00.00.014.1网络分析基础使用Python表示图的方法:邻接数组:以节点为索引的列表数组,其中每个元素是和该节点相邻的节点列表,可以使用字典来实现,字典的key为节点,value为与其连通的节点列表deffind_successors_dict(edges):

all_nodes=set([nodefortuinedgesfornodeintu])

#初始化字典,key为全部节点,value初始化为空列表

succ_dict

={node:[]fornodeinall_nodes}

#遍历所有边,向每个上游节点对应的列表中添加下游节点

for

pred,succ

inedges:

succ_dict[pred].append(succ)

return

succ_dict

deffind_predecessors_dict(edges):

all_nodes=set([nodefortuinedgesfornodeintu])

pred_dict={node:[]fornodeinall_nodes}

#遍历所有边,向每个下游节点对应的列表中添加上游节点

forpred,succinedges:

pred_dict[succ].append(pred)

returnpred_dictfind_predecessors_dict和find_successors_dict获得与每个节点连通的上游和下游节点的字典调用上面两个函数,就可以得到分销网络的邻接数组14.1网络分析基础使用Python表示图的方法:NetworkX:可以用于创建、操作和研究复杂网络的结构、动态和功能,也可以进行图的可视化#建立一个空的有向图

distribute_graph=nx.DiGraph()

#向空的图中添加边

distribute_graph.add_edges_from(distribute_edges)

#定义绘图位置和参数

pos={'Factory':(-1,0),'RDC':(0,0),

'FDC1':(1,0),'FDC2':(1,1),'FDC3':(1,-1)}

options={

'font_size':10,

'node_size':1500,

'node_color':'white',

'edgecolors':'black',

}

#绘制图像

nx.draw_networkx(distribute_graph,pos,**options)

ax=plt.gca()

ax.margins(0.20)

plt.axis('off')

plt.show()NetworkX也实现了一些常见的网络分析算法,例如计算最短路径的Dijkstra、Bellman-Ford算法等14.1网络分析基础常见的供应网络:有向树:定义:任意两个节点中只存在一条路径的无向图称为树,若有向图在不考虑边的方向时是树,即为有向树性质:有向树网络转化为无向图时,网络中不存在环路,可以清楚定义层级结构分类:有向树包含链式、分布式和装配式三类网路链式系统:每个节点都至多有一个上游节点和一个下游节点14.1网络分析基础常见的供应网络:分布式系统:每个节点有至多一个上游节点装配式系统:分布式系统的镜像系统14.1网络分析基础网络库存管理常用算法:

14.1网络分析基础网络库存管理常用算法:累计提前期的计算:节点的累计提前期是指,当其全部上游节点都没有库存时,从向外部供应商订购原材料开始到该节点持有可用库存的最短时间例:计算下图各节点的累计提前期,‘0’节点为虚拟节点除了最上游的C1、C2和C3三个节点,其余节点到‘0’节点有多条通路在多条通路中,提前期之和最长的一条,就是该节点的累计提前期利用节点的拓扑排序逐个计算节点的累计提前期计算下游节点的累计提前期时,上游节点的累计提前期就已经确定14.1网络分析基础defcal_cum_lt(edges,lt_dict):

#筛选出最上游的节点

roots=list(set([ifori,_inedges])-set([jfor_,jinedges]))

#计算拓扑排序

cal_ts=TopologicalSort(edges)

topo_sort=cal_ts()

#将'0'节点插入在排序最前

topo_sort.insert(0,'0')

#找到与每个节点连通的下游节点的字典

succ_dict=find_successors_dict(edges)

#将最上游节点列表添加为'0'节点的下游节点

succ_dict.update({'0':roots})

#初始化累计提前期字典

cum_lt_dict={node:-float('inf')fornodeintopo_sort}

#‘0’节点的提前期为0

cum_lt_dict['0']=

0

fornodeintopo_sort:

iflen(succ_dict[node])>

0:

forsuccinsucc_dict[node]:

#计算在该条边上的累计提前期

temp=cum_lt_dict[node]+lt_dict[succ]

#如果当前累计提前期小于该值,则更新累计提前期字典

ifcum_lt_dict[succ]<temp:

cum_lt_dict[succ]=temp

cum_lt_dict.pop('0')

returncum_lt_dict14.1网络分析基础调用函数cal_sum_lt,计算出累计提前期{'C2':6,'C1':5,'B1':11,'C3':2,'B2':7,'A':14}general_edges=[('C1','B1'),('C2','B1'),('C2','B2'),

('C3','B2'),('B1','A'),('B2','A')]

general_lt_dict={'C1':5,'C2':6,'C3':2,

'B1':5,'B2':1,'A':3}

general_cum_lt_dict=cal_cum_lt(general_edges,general_lt_dict)

print(general_cum_lt_dict){'C2':6,'C1':5,'B1':11,'C3':2,'B2':7,'A':14}14.2随机服务模型与承诺服务模型易混淆变量解释:服务时间:一个节点从接到来自下游的需求订单开始到完成订单交货所需的时间服务水平:一个节点的不缺货概率单级提前期:一个节点的所有上游节点库存都充足并对其需求立即响应时,节点补货所需的时间累计提前期:一个节点的全部上游节点都没有持有库存时,从向外部供应商采购原材料开始到该节点持有可用库存的最短时间实际补货时间:一个节点从上游补货的实际时间,包括上游对其需求的响应时间和其自身补货的单级提前期14.2随机服务模型与承诺服务模型

14.2随机服务模型与承诺服务模型随机服务模型:

14.2随机服务模型与承诺服务模型随机服务模型:

14.2随机服务模型与承诺服务模型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论