基于生产商的供应链协调机制的研究.doc_第1页
基于生产商的供应链协调机制的研究.doc_第2页
基于生产商的供应链协调机制的研究.doc_第3页
基于生产商的供应链协调机制的研究.doc_第4页
基于生产商的供应链协调机制的研究.doc_第5页
免费预览已结束,剩余9页可下载查看

下载本文档

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

文档简介

基于生产商的供应链协调机制的研究摘要:本文首先引出了供应链和供应链的层级关系,接着建立了基于生产商的供应链协调机制的模型,最后应用模拟退火算法对模型进行分析求解。关键词:供应链的层级关系,供应链协调,模拟退火算法Abstract: This paper refers to the supply chain and supply-chain hierarchy, and then,established based on the manufacturers supply chain coordination mechanism of the model, Finally, application of simulated annealing algorithm to solve the model for analysis.Keywords: relationship between the level of the supply chain, supply chain coordination, simulated annealing1引言近年来,供应链管理在理论和实践上都快速发展进步。经济全球化的背景下,企业更加注重加强公司的核心竞争力,将公司的物流过程划分为多个可独立操作的决策单元,这些所谓的决策单元在物料流和信息流的网络中通过契约所发挥作用,供应链管理可以被认为是通过有序的控制各种独立的决策单元已达到整个物流过程的协调。因此供应链管理在整个供应网络就变得更具有操作性。首先分析供应链网络中的生产商和供应商。如图1所示。为了满足外部消费市场上客户的需求,生产商向供应商订购用于生产产品所需用的零部件,供应商根据自己的供货能力状况,不断交付零部件。虽然供应商很有可能在某一时期内未按订单量及时交付零部件,但长期来看,供应商的交付量和生产商的订单量是相符合的。图1 供应链因此,我们认为生产商和供应商之间是有层级关系的,生产商处于上层级,而供应商处于下层级。从生产商的角度看,他并不完全知道供应商的按时交付零部件的供货能力,为了协调供应链,我们设置了一种因供应商不能按期按量及时交货的惩罚成本的措施。如图2所示。为了满足外部市场需求,我们可以考虑把整个过程划分成t=1,.,T个时期,q =(,.,)代表生产商的订单量,和相应的交付量是相互协调的。图2 生产商和供应商的层级更确切的说,订单q是自上而下影响的,是属于面向任务性的层次结构,而惩罚成本K是属于面向控制性的层次结构,面向控制性的层次结构是领导协调性质的,它能保证整个供应链的正确有效执行。再看一下信息对称的问题。一般来说,供应链中存在信息不对称的情况,即生产商和供应商并不全部透露其数据信息,各自会保留一些私人信息。也就是说,他们不透露其所有信息,这就导致了信息的不对称性。信息不对称性会导致机会主义行为的产生,机会主义行为使得人们就很难掌握供应链的特性,这就往往难以形成一种长期的信任协调机制。由于存在私有信息,我们可以关注并量化私有信息对整个供应链整体性能的影响。通常供应链协调的问题应处于供应链网络之中去考虑。比如说,一个供应商可以对应多个生产商。考虑到这种在网络中影响的存在,我们可以把供应商的供应能力看成是动态随机的。2模型首先,我们建立基于生产商的供应链模型,接着讨论它是如何协调的。生产商生产来自外部消费市场中客户订购的各种产品。因此,生产商模型将被视为有限产能的线性规划模型。为了简单定量分析,让我们假定整个规划客户所订购的时期T是已知的,这些订单l(l=1,l)代表生产制造一系列的产品j(j=1,j),每种订单l都有相同的到期时间E。为了完成客户订单,生产商需向他的供应商订购对零部件i的订单量。目标函数:能力适应约束: 能力约束: 网络约束: 物料平衡约束: 订单交付约束: 完整性和非负约束: 决策变量: t时期劳动生产能力 t时期劳动生产追加能力 t时期劳动生产减少能力 生产指数 t时期零部件i的订货量 t时期劳动生产加班能力 t时期零部件i的库存量 产品j因未生产而超过的时期数 t时期零部件i的交付量常数:C 单位生产力成本 追加单位生产力成本 减少单位生产力成本 零部件i的购买价格K 推迟交货的惩罚成本 加班成本 生产商单位库存成本F 产品超过期限生产产生的惩罚成本 初始生产能力最大生产能力增加量最小生产能力增加量 t时期产品j的市场消费能力 产品j的生产持续时间 到期客户订单 产品j所需的零部件i的数量3 供应链分析规范生产商模型中将有三种类型的订单,每种类型订单数量为10、20、10,共计100个订单,每种订单生产一种产品。整个生产阶段分为T=4个时期。以下是外部订单结构、外部订单数据、t时期产品j的市场消费能力、生产商数据。图3 外部订单结构图4 外部订单结构图5 t时期产品j的市场消费能力图6 生产商数据4 模型算法设计本模型中应用模拟退火算法进行分析设计。模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随升温变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。模拟退火算法(Simulated Annealing,SA)最早由Kirkpatrick等应用于组合优化领域,它是基于Mente-Carlo迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。模拟退火算法从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解,即在局部最优解能概率性地跳出并最终趋于全局最优。模拟退火算法是一种通用的优化算法,理论上算法具有概率的全局优化性能,目前已在工程中得到了广泛应用,诸如VLSI、生产调度、控制工程、机器学习、神经网络、信号处理等领域。 模拟退火算法是通过赋予搜索过程一种时变且最终趋于零的概率突跳性,从而可有效避免陷入局部极小并最终趋于全局最优的串行结构的优化算法。4.1 解的编码 4.2 初始解的形式 XMN=0,0,0,0,1,0,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,04.3 市场消费能力的的编码 4.4 市场消费能力的的形式ccMN=0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0;4.5 产品j的数量 vN=0,10,10,20,20,20,10,104.6 产品j的零部件数量 nN=0,10,10,20,20,20,10,104.7 马氏链长度 Lk=16384此数值表示在一次降温过程中解在搜索领域中所遍历一次的次数。4.8 温度 初始温度:T=100终止温度:Tmin=0.14.9 退火温度变化系数 e=0.954.10 模拟退火算法程序流程图详见附页1图104.10 算法程序详见附页25 算法结果分析:5.1首次降温中与解随机搜索相对应的目标值的分布,见图7.图7首次降温中与解随机搜索相对应的目标值的分布横坐标表示解在随机搜索过程中(马氏链自增过程)被接受的次数,纵坐标表示目标函数值的大小。从图7中可以清晰地看到,模拟退火算法在T=100的首次降温中目标函数值随着每次解的随机搜索的变化而变化的随机分布过程。5.2最优解随降温次数的变化分布,见图8.图8最优解随降温次数的变化分布横坐标表示降温的次数,纵坐标表示目标值的大小。从图8中可以看到,模拟退火算法在随机搜索该模型中目标函数最优解的过程中取得了很好的效果,最后的得到一个稳定的最优解。5.3程序最终输出结果,见图9.图9程序最终输出结果从图9的模拟退火算法程序的输出结果中我们看到,降温共经历了134次,最终温度是0.103505,解在领域随机搜索中满足消费能力的次数是13587次,而解在这13587次随机搜索中目标函数值被优化的次数为5482次,最后得到的目标函数最优解是1080元,并相应得到解在领域随机搜索中的最优解。参考文献:1 谢金星,邢文训.最优化理论与智能算法.清华大学出版社.2000.2 Christoph Schneeweiss *, Kirstin Zimmer. Hierarchical coordination mechanisms within the supply chain. European Journal of Operational Research 153 (2004) 687703附页1:模拟退火算法程序流程图:图10模拟退火算法程序流程图附页2:模拟退火算法程序(用C语言编写,在Visual C+ 6.0软件上实现):#include#include#include#include#define M 5#define N 8float random0_1(); /产生0到1的随机函数 int random1_4(); /产生1到4的随机函数 void decision_variables_change(int xMN); /解的领域随机搜索函数int consumption_constaints(int xMN); /消费能力约束函数float inventory_cost(int xMN); /库存成本函数float production_capacity_cost(int xMN); /生产能力成本函数float total_cost(int xMN); /总成本函数void main() /主程序 int ccMN=0,0,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0;/ int xNN=0,0,0,0,1,0,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0;int xNN=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1; int nN=0,10,10,20,20,20,10,10; int vN=0,10,10,20,20,20,10,10;int i,j,k=0,m=0,c=0; int XMN; int L; /马氏链长度值int Lk=16384; /马氏链长度int XbestMN; /最优解float F0; /目标函数初值float F,E,w,s; float Fbest; /目标函数最优值 float T=100; /初始温度float Tmin=0.1; /最终温度float e=0.95; /温度变化系数/T=e*T; printf(T=%fn,T); /降温while(T=Tmin) /判断温度 模拟退火算法外循环/k=0;/m=0; L=0; /马氏链长度初值 if(T=100) /为目标函数最优值赋初值 Fbest=total_cost(x); printf(Fbest=%fn,Fbest); srand(unsigned) time(NULL); while(LLk) /马氏链长度判断 模拟退火算法内循环printf(T=%.2fn,T);decision_variables_change(X); /一次降温过程中解的一次领域随机搜索L+; printf(L=%dn,L); /一次降温过程中马氏链长度自增 c=consumption_constaints(X); printf(c=%dn,c);if(c=1) /解是否消费能力约束m+; printf(m=%dn,m); /一次降温过程中解满足消费能力约束的次数 /for(i=1;iM;i+)/ for(j=1;j0|ws) /判断目标值的优越性/ if(Fbest-F)0|exp(Fbest-F)/T)random0_1()/ if(Fbest-F)0) printf(w=%fn,w); printf(s=%fn,s); printf(the new random of array is:n); for(i=1;iM;i+) for(j=1;jN;j+) printf(%d,Xij); if(j=N-1) printf(n); k+; printf(k=%dn,k); /一次降温过程中测试可行解的产生次数 for(i=1;iM;i+) for(j=1;jN;j+) Xbestij=Xij; /产生最优解 Fbest=F; printf(Fbest=%fn,Fbest); /产生最优目标值/ continue;/ break;printf(n);printf(T=%fn,T); /输出温度T=e*T; /降温 printf(m=%dn,m); /输出随机解满足消费能力的次数printf(k=%dn,k); /输出随机解满足被优化的次数 printf(n); printf(the best of array is:n); /输出最优解 for(i=1;iM;i+)for(j=1;jN;j+) printf(%d,Xij); if(j=N-1) printf(n); printf(the best total cost of the best array is:);/输出最优目标值printf(%fn,Fbest);printf(n);float total_cost(int aMN) /总成本函数 int p=10;float tc=0;tc=100*p+production_capacity_cost(a)+inventory_cost(a);return(tc);float production_capacity_cost(int aMN) /生产能力成本函数int vN=0,10,10,20,20,20,10,10; /产品j的零部件数量int i,j,n=0,Ynormal=0,Yincrease=0,Ydecrease=0,Yovertime=0; /float Cnormal=O.5,Cincrease=1.0,Cdecrease=0.2,Covertime=2.0; /生产能力成本系数float k=0,cc=0; for(i=1;iM;i+)for(j=1;j=0&n=40&n=70) Ynormal=40; Yincrease=30; Ydecrease=0; Yovertime=n-70;k=0.5*Ynormal+1*Yincrease+0.2*Ydecrease+2*Yovertime;/k=Cnormal*Ynormal+Cincrease*Yincrease+Cdecrease*Ydecrease+Covertime*Yovertime;cc=cc+k;n=0; return(cc);float

温馨提示

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

评论

0/150

提交评论