基于 Mat lab运输问题求解方法探究_第1页
基于 Mat lab运输问题求解方法探究_第2页
基于 Mat lab运输问题求解方法探究_第3页
基于 Mat lab运输问题求解方法探究_第4页
基于 Mat lab运输问题求解方法探究_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

运筹学论文

——基于Matlab运输问题求解方法探究摘要:运输行业的重要性随着中国经济的不断发展而快速提高,为了降低物流成本,我们有必要研究物流运输中如何组织物资调运才能使总运输成本最少这一重要问题。而传统的手工解决方式存在着效率低、计算繁琐、数据易丢失等缺点,因此利用MATLAB软件来计算出最佳结果是很有必要的。本论文以运输问题中一个典型的案例为例阐述了基于MATLAB的定量分析方法,解决了运输最优方案编制中求解这一大难题,可以广泛应用于物流配送领域,对实践工作具有较强的指导意义。关键字:Matlab运输问题

产销不平衡问题一、线性规划与运输问题:

线性规划是运筹学的一个分支,它是最优化问题领域中最简单、最基本和使用最广泛的方法。在交通运输领域中,运输是一个最基本的功能,也是物流的核心问题。将同一种物资从几个不同的发货点运到另外几个不同的收货点,因为运费是单位运价和运输量的乘积,所以如何选择一个合理的运输方案,使总运费最省,这是一个很有应用价值的问题,这类问题就称为运输问题。研究物资运输过程中最优的运输方案,需要在满足各种资源限制的条件下,找到使运输总成本最少的调运方案。实践中如果建立数学模型,用线性规划的方法来解决这一问题,则可以节省大量的工作,但由于此类问题所涉及的条件变量较多,一般的数学方法运算难度较大,结果不容易求出,而如果能有效的借助MATLAB软件中强大的运算功能则可以得到事半功倍的效果。二、Matlab求解运输问题的原理:在Matlab中构建函数l(x)用来解决线性规划问题。众所周知,运输问题的最优解本质属于极值问题,极值有最大和最小两种,而极大值问题的求解可以转化为极小值问题,因此在Matlab中以求极小值为标准形式,构建的函数l(x)的具体格式如下:[X,v,e,o,l]=l(F,A,b,m,n,M,N,P,Z)式中:X为问题的解向量;F为由目标函数的系数构成的向量;A为一个矩阵;b为一个向量,表示线性规划中不等式约束条件,A,b是系数矩阵和右端向量;m和n为线性规划中等式约束条件中的系数矩阵和右端向量;M和N为约束变量的下界和上界向量;P为给定的变量的初始值;Z为控制规划过程的参数系列;v为优化结束后得到的目标函数值。e=0表示优化结果已经超过了函数的估计值或者已声明的最大迭代次数,e>0表示优化过程中变量收敛于解X,e<0表示计算不收敛。三、具体问题分析:我选择的是产销不平衡问题的求解,这里做的是产量大于销量的问题求解。案例:某食品公司下属的A1,A2,A3,3个厂生产方便食品,要运输到B1,B2,B3,3个销售点;公司的初始运输方案如表1所示;3个厂到各销售点每吨方便食品的运价如表2所示。问该食品公司在满足各销售点销售量的情况下如何安排运输使得总运费最小。

表1:初始运输方案(单位:t)

B1

B2

B3产量

A1

8

3

3

15

A2

5

6

5

18

A3

5

3

8

17销量

18

12

16

总产量为:15+18+17=50总销量为:18+12+16=46属于产>销问题。

表2:单位运价(单位:元/t)

A1

50

90

20

A2

30

10

70

A3

60

20

80由表1和表2的数据可知,在初始运送方案下,总的运费为:S=8*50+3*90+3*20+5*30+6*10+5*10+5*60+3*20+8*80=1990元针对产销不平衡问题,核心方法是:将产销不平衡转换为产销平衡的情形,然后由表上作业法进行求解。(1)对于“产>销”情形:可虚拟一个销售地(库存),让多余的产量均运抵此销售地,则其销售量=“产-销”,同时令该虚拟的销售地的单位运价为0;(虚拟的销地)(2)对于“销>产”,可虚拟一个产地,让其产量=“销-产”,同时令该虚拟的产地的单位运价为0.对于这个实际问题,虚设一销地,令其销量为产销量之差。B4=∑ai-∑bj=(15+18+17)–(18+12+16)=4该列单位运价为0,即可化为产销平衡问题。如下表所示:

B1B2B3B4产量aiA150

A230

A360

销量bj18

方案优化:针对上述案例,首先构建数学模型,建立线性方程组。假设产地A1,A2,A3向销地B1,B2,B3,B4配送的运输量分别是X1,X2,X12,各变量如下表所示:根据假设的运输条件及案例给出的限定条件,设最小运费为Smin,构建如下线性方程组:Smin=50*X1+90*X2+20*X3+0*X4+30*X5+10*X6+70*X7+0*X8+60*X9+20*X10+80*X11+0*X12约束条件如下:X1+X2+X3+X4=15;

X5+X6+X7+X8=18;X9+X10+X11+X12=17;

X1+X5+X9=18;X2+X6+X10=12;

X3+X7+X11=16;X4+X8+X12=4;

Xi≥0(i=1,2,?,12)上述方程和约束条件对应的Matlab代码如下:F=[509020030107006020800];

m=[111100000000

000011110000

000000001111

100010001000

010001000100

001000100010

000100010001];n=[1518171812164];M=[000000000000];[v,e]=linprog(F,[],[],m,n,M)x=reshape(v,4,3);x=x'运行后的结果为:Optimizationterminated.v=0.00000.000015.00000.000018.00000.00000.00000.00000.000012.00001.00004.0000e=1.1600e+03x=0.0000

0.0000

15.0000

0.000018.0000

0.0000

0.0000

0.00000.0000

12.0000

1.0000

4.0000由上图matlab的运行结果可知,优化后的运输方案如下表所示:优化后的总运费为:1160元。优化后为该工厂节省运费:1990-1160=830(元)Linprog函数介绍:该函数用于求解线性规划问题:其中,f,x,b,beq,lb,ub为向量,A,Aeq为矩阵。x=linprog(f,A,b)功能:求解最小化问题minf*x条件A*x≤b。x=linprog(f,A,b,Aeq,beq)功能:求解最小化问题minf*x条件A*x≤bAeq*x=beq,如果没有等式就设置A=[]和b=[]x=linprog(f,A,b,Aeq,beq,lb,ub)功能:求解最小化问题minf*x条件A*x≤bAeq*x=beqlb≤x≤ub,如果没有等式就设置A=[]和b=[]x=linprog(f,A,b,Aeq,beq,lb,ub,x0)功能:求解最小化问题minf*x条件A*x≤bAeq*x=beqlb≤x≤ub,如果没有等式就设置A=[]和b=[]。设置初始点x0,这个选择项只是对medium-scale算法有效。默认的large-scale算法和简单的算法忽略任何初始点。x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)功能:最小化带有参数项的线性规划问题。其中options可以使用optimset来设置。x=linprog(problem)功能:

温馨提示

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

评论

0/150

提交评论