MATLAB精品教程课件 第04讲 线性规划_第1页
MATLAB精品教程课件 第04讲 线性规划_第2页
MATLAB精品教程课件 第04讲 线性规划_第3页
MATLAB精品教程课件 第04讲 线性规划_第4页
MATLAB精品教程课件 第04讲 线性规划_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、 线性规划线性规划数学建模与数学实验数学建模与数学实验后勤工程学院数学教研室实验目的实验目的实验内容实验内容2、掌握用数学软件包求解线性规划问题。、掌握用数学软件包求解线性规划问题。1、了解线性规划的基本内容。、了解线性规划的基本内容。* *2 2、线性规划的基本算法。、线性规划的基本算法。5 5、实验作业。、实验作业。3、用数学软件包求解线性规划问题。、用数学软件包求解线性规划问题。1、两个引例。、两个引例。4、建模案例:投资的收益与风险、建模案例:投资的收益与风险问题一问题一 : 任务分配问题:某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为800和900,三种

2、工件的数量分别为400、600和500,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低? 单位工件所需加工台时数 单位工件的加工费用 车床类 型 工件1 工件2 工件3 工件1 工件2 工件3 可用台时数 甲 0.4 1.1 1.0 13 9 10 800 乙 0.5 1.2 1.3 11 12 8 900 两个引例两个引例解解 设在甲车床上加工工件1、2、3的数量分别为x1、x2、x3,在乙车床上加工工件1、2、3的数量分别为x4、x5、x6。可建立以下线性规划模型:6543218121110913m

3、inxxxxxxz 6 , 2 , 1, 09003 . 12 . 15 . 08001 . 14 . 0500600400 x . .654321635241ixxxxxxxxxxxxtsi 解答问题二:问题二: 某厂每日8小时的产量不低于1800件。为了进行质量控制,计划聘请两种不同水平的检验员。一级检验员的标准为:速度25件/小时,正确率98%,计时工资4元/小时;二级检验员的标准为:速度15小时/件,正确率95%,计时工资3元/小时。检验员每错检一次,工厂要损失2元。为使总检验费用最省,该工厂应聘一级、二级检验员各几名?解解 设需要一级和二级检验员的人数分别为x1、x2人,则应付检验员

4、的工资为:212124323848xxxx因检验员错检而造成的损失为:21211282)%5158%2258(xxxx故目标函数为:故目标函数为:2121213640)128()2432(minxxxxxxz约束条件为:0, 0180015818002581800158258212121xxxxxx线性规划模型:线性规划模型:213640minxxz0, 01594535 . .212121xxxxxxts 解答返 回1.1.线性规划的标准形式:线性规划的标准形式:xminz=)(xf. .ts )(xgi0 (), 2 , 1mi其中目标函数)(xf和约束条件中)(xgi都是线性函数min

5、min f = = cxs.t. s.t. Ax = = b (1 1) x 0 0这里 A = (ija)m,n , x = T 21nxxx b= T 21nbbb, c= nccc21用单纯法求解时,常将标准形式化为:2. 线性规划的基本算法线性规划的基本算法单纯形法单纯形法线性规划的基本算法线性规划的基本算法单纯形法单纯形法例例 min z = 10 x1 + 9x2st6x1 + 5x2 60 10 x1 + 20 x2 150 x1 8 x1, x2 0引入松弛变量x3, x4, x5, 将不等式化为等式, 即单纯形标准形: min z = 10 x1 + 9x2st6x1 + 5

6、x2 + x3 = 60 10 x1 + 20 x2 - x4 = 150 x1 + x5 = 8 xi 0 (i = 1,2,3,4,5)系数矩阵为: 6 5 1 0 0 A = 10 20 0 -1 0 = (P1 P2 P3 P4 P5) 1 0 0 0 1 b = (60, 150, 8 ) T 显然A的秩ran(A)=3, 任取3个线性无关的列向量,如P3 P4 P5称为一组基基, 记为B. 其余列向量称为非基非基, 记为N .于是 f = cBxB + cNxN , Ax = BxB + NxN = b, 则 xB = B-1b-B-1NxN , f = cBB-1b + (cN

7、cBB-1N)xN 令非基变量 xN = 0, 解得基变量 xB = B1b, 称(xB, xN)为基基解解.基解的所有变量的值都非负,则称为基基可可行行解解,此时的基称为可可行行基基. 若可行基进一步满足: cN cBB-1N0, 即: cBB-1N - cN0则对一切可行解x, 必有f(x) cBB-1b, 此时称基可行解x = (B-1b, 0) T为最优解最优解. 3. 最优解的存在性定理最优解的存在性定理将A的列向量重排次序成A = (B, N), 相应x = (xB, xN) T, c = (cB, cN)基对应的变量xB称为基变量基变量, 非基对应的变量xN称为非基变量非基变量.

8、定理定理1 1 如果线性规划(1)有可行解,那么一定有基可行解.定理定理2 2 如果线性规划(1)有最优解,那么一定存在一个基可行解 是最优解.4. 4. 基可行解是最优解的判定准则基可行解是最优解的判定准则因为 f = cBB-1b + (cN cBB-1N)xN,即 f - 0 xB + (cBB-1N- cN )xN = cBB-1b若基B=(1P,2P,mP), 非基N=(1mP,2mP,nP),令j=Bc1BjP-jc,j=m+1,m+2, ,n ,则 (1) 可写成min fs.t. Bx + 1BNNx = 1Bbf + 0Bx + nmjjjx1 = Bc1Bb x 0称为(1

9、)式的典式典式.定定理理 3 3 设(1x,2x,mx)是规划 (1) 的一个可行基,B是对应的基阵,如果典式中的1,2,m都不大于零,即对应的1m0,2m0,n0,则基(1x,2x,mx)对应的基可行解0X = 01bB 是最优解.令1Bb = m21,1BN= nmmmmmnmmnmm,2,1, 22, 21, 2, 12, 11, 15.5.基可行解的改进基可行解的改进 线性规划(1)的典式变为:min fs.t. ix + nmjjijx1= i i=1,2, ,mf + 0Bx + nmjjjx1 =Bc1Bb x 0定定理理 4 4 设(1x,2x,mx)是规划 (1) 的一个可行

10、基,B是对应的基阵,如果存在km0,使1) km, 1,km, 2,kmm,中至少有一个大于零;2) 所有的i0,i=1,2, ,m则一定存在另一个可行基,它对应的基可行解使目标函数值更小.令0=kmiikmi,0,min = kmll,则把lx从原有的基中取出来,把kmx加进后得到的(1x,2x,lx ,kmx,1lx,mx)仍是基,即是所要找的新基.改进方法:改进方法:返 回用用MATLAB优化工具箱解线性规划优化工具箱解线性规划min z=cX bAXts. .1、模型:命令:x=linprog(c,A,b) 2、模型:min z=cX bAXts. .beqXAeq命令:x=linpr

11、og(c,A,b,Aeq,beq)注意:若没有不等式: 存在,则令A= ,b= .bAX 3、模型:min z=cX bAXts. .beqXAeqVLBXVUB命令:1 x=linprog(c,A,b,Aeq,beq, VLB,VUB) 2 x=linprog(c,A,b,Aeq,beq, VLB,VUB, X0) 注意:1 若没有等式约束: , 则令Aeq= , beq= . 2其中X0表示初始点 beqXAeq4、命令:x,fval=linprog()返回最优解及处的目标函数值fval.解解 编写编写M文件文件xxgh1.m如下:如下:c=-0.4 -0.28 -0.32 -0.72 -

12、0.64 -0.6; A=0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08; b=850;700;100;900; Aeq=; beq=; vlb=0;0;0;0;0;0; vub=;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub) 例例1 max 6543216 . 064. 072. 032. 028. 04 . 0 xxxxxxz 85003. 003. 003. 001. 001. 001. 0. .654321xxxxxxt s 70005.

13、 002. 041xx 10005. 002. 052xx 90008. 003. 063xx 6, 2 , 10jxj To Matlab (xxgh1)例例 2 321436minxxxz 120. .321xxxts 301x 5002 x 203x解解: 编写编写M文件文件xxgh2.m如下:如下: c=6 3 4; A=0 1 0; b=50; Aeq=1 1 1; beq=120; vlb=30,0,20; vub=; x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)To Matlab (xxgh2)321)436(minxxxz32120030 xxx5

14、0120010111 .321xxxtsS.t.Xz8121110913min 9008003 . 12 . 15 . 000000011 . 14 . 0X500600400100100010010001001X ,0654321xxxxxxX改写为:例例3 问题一的解答 问题问题编写编写M文件文件xxgh3.m如下如下:f = 13 9 10 11 12 8;A = 0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3;b = 800; 900;Aeq=1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1;beq=400 600 500;vlb = zero

15、s(6,1);vub=;x,fval = linprog(f,A,b,Aeq,beq,vlb,vub)To Matlab (xxgh3)结果结果:x = 0.0000 600.0000 0.0000 400.0000 0.0000 500.0000fval =1.3800e+004 即在甲机床上加工600个工件2,在乙机床上加工400个工件1、500个工件3,可在满足条件的情况下使总加工费最小为13800。例例2 问题二的解答 问题问题 213640minxxz s.t. )45(3521xx改写为:编写编写M文件文件xxgh4.m如下:如下:c = 40;36;A=-5 -3;b=-45;A

16、eq=;beq=;vlb = zeros(2,1);vub=9;15; %调用linprog函数:x,fval = linprog(c,A,b,Aeq,beq,vlb,vub)To Matlab (xxgh4)结果为:结果为:x = 9.0000 0.0000fval =360即只需聘用9个一级检验员。 注:注:本问题应还有一个约束条件:x1、x2取整数。故它是一个整数线性规划整数线性规划问题。这里把它当成一个线性规划来解,求得其最优解刚好是整数:x1=9,x2=0,故它就是该整数规划的最优解。若用线性规划解法求得的最优解不是整数,将其取整后不一定是相应整数规划的最优解,这样的整数规划应用专门

17、的方法求解。返 回 投资的收益和风险投资的收益和风险一、问题提出一、问题提出 市场上有 n 种资产is(i=1,2n)可以选择,现用数额为 M 的相当大的资金作一个时期的投资。这 n 种资产在这一时期内购买is的平均收益率为ir,风险损失率为iq,投资越分散,总的风险越小,总体风险可用投资的is中最大的一个风险来度量。 购买is时要付交易费,(费率ip),当购买额不超过给定值iu时,交易费按购买iu计算。另外,假定同期银行存款利率是0r,既无交易费又无风险。 (0r=5%)已知 n=4 时相关数据如下:isir(%)iq(%)ip(%)iu(元)S1282.51103S2211.52198S3

18、235.54.552S4252.66.540试给该公司设计一种投资组合方案,即用给定达到资金 M,有选择地购买若干种资产或存银行生息,使净收益尽可能大,使总体风险尽可能小。基基本本假假设设:1. 投资数额 M 相当大,为了便于计算,假设 M=1;2投资越分散,总的风险越小;3总体风险用投资项目is中最大的一个风险来度量;4n 种资产 Si之间是相互独立的;5在投资的这一时期内, ri,pi,qi,r0为定值,不受意外因素影响;6净收益和总体风险只受 ri,pi,qi影响,不受其他因素干扰。二、基本假设和符号规定二、基本假设和符号规定符符号号规规定定:Si 第 i 种投资项目,如股票,债券ri,

19、pi,qi -分别为 Si的平均收益率,风险损失率,交易费率ui -Si的交易定额 0r -同期银行利率xi -投资项目 Si的资金 a -投资风险度Q -总体收益 Q -总体收益的增量三、模型的建立与分析三、模型的建立与分析1.总体风险用所投资的Si中最大的一个风险来衡量,即max qixi|i=1,2,n2购买 Si所付交易费是一个分段函数,即 pixi xiui 交易费 = piui xiui而题目所给定的定值 ui(单位:元)相对总投资 M 很小, piui更小,可以忽略不计,这样购买 Si的净收益为(ri-pi)xi 3要使净收益尽可能大,总体风险尽可能小,这是一个多目标规划模型:

20、目标函数 MAXniiiixpr0)( MINmax qixi 约束条件 niiixp0)1 (=M xi0 i=0,1,n4. 模型简化:c投资者在权衡资产风险和预期收益两方面时,希望选择一个令自己满意的投资组合。因此对风险、收益赋予权重 s(0s1),s 称为投资偏好系数.模模型型 3 目标函数:min smaxqixi -(1-s)niiiixpr0)( 约束条件 niiixp0)1 (=M, xi0 i=0,1,2,nb若投资者希望总盈利至少达到水平 k 以上,在风险最小的情况下寻找相应的投资组合。模型模型 2 固定盈利水平,极小化风险 目标函数: R= minmax qixi 约束条

21、件:niiiixpr0)(k, Mxpii)1 ( , xi 0 i=0,1,na 在实际投资中,投资者承受风险的程度不一样,若给定风险一个界限 a,使最大的一个风险 qixi/Ma,可找到相应的投资方案。这样把多目标规划变成一个目标的线性规划。模型模型 1 1 固定风险水平,优化收益 目标函数: Q=MAX11)(niiiixpr 约束条件: Mxqiia Mxpii)1 (, xi 0 i=0,1,n四、模型四、模型1 1的求解的求解 模型1为: minf = (-0.05, -0.27, -0.19, -0.185, -0.185) (x0 x1 x2 x3 x 4 ) T x0 + 1

22、.01x1 + 1.02x2 +1.045x3 +1.065x4 =1s.t. 0.025x1 a 0.015x2 a 0.055x3 a 0.026x4a xi 0 (i = 0,1,.4) 由于a是任意给定的风险度,到底怎样给定没有一个准则,不同的投资者有不同的风险度。我们从a=0开始,以步长a=0.001进行循环搜索,编制程序如下:a=0;while(1.1-a)1 c=-0.05 -0.27 -0.19 -0.185 -0.185; Aeq=1 1.01 1.02 1.045 1.065; beq=1; A=0 0.025 0 0 0;0 0 0.015 0 0;0 0 0 0.055

23、 0;0 0 0 0 0.026; b=a;a;a;a; vlb=0,0,0,0,0;vub=; x,val=linprog(c,A,b,Aeq,beq,vlb,vub); a x=x Q=-val plot(a,Q,.),axis(0 0.1 0 0.5),hold on a=a+0.001;end xlabel(a),ylabel(Q)To Matlab(xxgh5)a = 0.0030 x = 0.4949 0.1200 0.2000 0.0545 0.1154 Q = 0.1266a = 0.0060 x = 0 0.2400 0.4000 0.1091 0.2212 Q = 0.2019a = 0.0080 x =

温馨提示

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

评论

0/150

提交评论