1、2023-5-16数学建模 线性规划线性规划数学建模与数学实验数学建模与数学实验后勤工程学院数学教研室2023-5-16数学建模实验目的实验目的实验内容实验内容2、掌握用数学软件包求解线性规划问题。、掌握用数学软件包求解线性规划问题。1、了解线性规划的基本内容。、了解线性规划的基本内容。*2 2、线性规划的基本算法。、线性规划的基本算法。5 5、实验作业。、实验作业。3、用数学软件包求解线性规划问题。、用数学软件包求解线性规划问题。1、两个引例。、两个引例。4、建模案例:投资的收益与风险、建模案例:投资的收益与风险2023-5-16数学建模问题一问题一:任务分配问题:某车间有甲、乙两台机床,可
2、用于加工三种工件。假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为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 两个引例两个引例2023-5-16数学建模解解 设在甲车床上加工工件1、2、3的数量分别为x1、x2、x3,在乙车床上加工工件1、
3、2、3的数量分别为x4、x5、x6。可建立以下线性规划模型:6543218121110913minxxxxxxz 6,2,1,09003.12.15.08001.14.0500600400 x .654321635241ixxxxxxxxxxxxtsi 解答2023-5-16数学建模问题二:问题二:某厂每日8小时的产量不低于1800件。为了进行质量控制,计划聘请两种不同水平的检验员。一级检验员的标准为:速度25件/小时,正确率98%,计时工资4元/小时;二级检验员的标准为:速度15小时/件,正确率95%,计时工资3元/小时。检验员每错检一次,工厂要损失2元。为使总检验费用最省,该工厂应聘一级、
4、二级检验员各几名?解解 设需要一级和二级检验员的人数分别为x1、x2人,则应付检验员的工资为:212124323848xxxx因检验员错检而造成的损失为:21211282)%5158%2258(xxxx2023-5-16数学建模故目标函数为:故目标函数为:2121213640)128()2432(minxxxxxxz约束条件为:0,0180015818002581800158258212121xxxxxx2023-5-16数学建模线性规划模型:线性规划模型:213640minxxz0,01594535 .212121xxxxxxts 解答返 回2023-5-16数学建模1.1.线性规划的标准形
5、式:线性规划的标准形式:xmin z=)(xf.ts)(xgi0(),2,1mi其中目标函数)(xf和约束条件中)(xgi都是线性函数min min f=c xs.t.s.t.Ax=b (1 1)x 0 0这里 A=(ija)m,n,x=T 21nxxx b=T 21nbbb,c=nccc21用单纯法求解时,常将标准形式化为:2.线性规划的基本算法线性规划的基本算法单纯形法单纯形法线性规划的基本算法线性规划的基本算法单纯形法单纯形法2023-5-16数学建模例例 min z=10 x1+9x2st6x1+5x2 60 10 x1+20 x2 150 x1 8 x1,x2 0引入松弛变量x3,x
6、4,x5,将不等式化为等式,即单纯形标准形:min z=10 x1+9x2st6x1+5x2+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.2023-5-16数学建模于是 f=cBxB+cNxN,Ax=BxB+NxN=b,则 xB=B-1b-B-1NxN,f=cBB-1b+
7、(cN 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称为非基非基变量变量.定理定理1 1 如果线性规划(1)有可行解,那么一定有基可行解
8、.定理定理2 2 如果线性规划(1)有最优解,那么一定存在一个基可行解 是最优解.2023-5-16数学建模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)式的典式典式.定理定理 3 3 设(1x,2x,mx)是规划(1)的一个可行基,B是对应的基阵
9、,如果典式中的1,2,m都不大于零,即对应的1m0,2m0,n0,则基(1x,2x,mx)对应的基可行解0X=01bB 是最优解.2023-5-16数学建模令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 02023-5-16数学建模定理定理 4 4 设(1x,2x,mx)是规划(1)的一个可行基,B是对应的基阵,如果存在km0,使1)km,1,km,2,kmm,中至少有一个大于零;2)
10、所有的i0,i=1,2,m则一定存在另一个可行基,它对应的基可行解使目标函数值更小.令0=kmiikmi,0,min=kmll,则把lx从原有的基中取出来,把kmx加进后得到的(1x,2x,lx,kmx,1lx,mx)仍是基,即是所要找的新基.改进方法:改进方法:返 回2023-5-16数学建模用用MATLAB优化工具箱解线性规划优化工具箱解线性规划min z=cX bAXts.1、模型:命令:x=linprog(c,A,b)2、模型:min z=cX bAXts.beqXAeq命令:x=linprog(c,A,b,Aeq,beq)注意:若没有不等式:存在,则令A=,b=.bAX 2023-5
11、-16数学建模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.2023-5-16数学建模解解 编写编写M文件文件xxgh1.m如下:如下:c=-0.4-0.28-0.32-0.72-0.64-0.6;A=0.01 0.01 0.01 0.03 0.03 0.03;0
12、.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.002.041xx 10005.002.052xx 90008.003.063xx 6,2,10jxj To Matlab(xxgh
13、1)2023-5-16数学建模例例 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 xxx50120010111 .321xxxts2023-5-16数学建模S.t.Xz8121110913min 9008003.12.15.00000001
14、1.14.0X500600400100100010010001001X,0654321xxxxxxX改写为:例例3 问题一的解答 问题问题2023-5-16数学建模编写编写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=zeros(6,1);vub=;x,fval=linprog(f,A,b,Aeq,beq,vlb,vub)To Matlab(xxgh3)2023
15、-5-16数学建模结果结果:x=0.0000 600.0000 0.0000 400.0000 0.0000 500.0000fval=1.3800e+004 即在甲机床上加工600个工件2,在乙机床上加工400个工件1、500个工件3,可在满足条件的情况下使总加工费最小为13800。2023-5-16数学建模例例2 问题二的解答 问题问题 213640minxxz s.t.)45(3521xx改写为:2023-5-16数学建模编写编写M文件文件xxgh4.m如下:如下:c=40;36;A=-5-3;b=-45;Aeq=;beq=;vlb=zeros(2,1);vub=9;15;%调用linp
16、rog函数:x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)To Matlab(xxgh4)2023-5-16数学建模结果为:结果为:x=9.0000 0.0000fval=360即只需聘用9个一级检验员。注:注:本问题应还有一个约束条件:x1、x2取整数。故它是一个整数线性规划整数线性规划问题。这里把它当成一个线性规划来解,求得其最优解刚好是整数:x1=9,x2=0,故它就是该整数规划的最优解。若用线性规划解法求得的最优解不是整数,将其取整后不一定是相应整数规划的最优解,这样的整数规划应用专门的方法求解。返 回2023-5-16数学建模 投资的收益和风险投资的收益和
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.52198S3235.54.552S4252.66.540试给该公
18、司设计一种投资组合方案,即用给定达到资金 M,有选择地购买若干种资产或存银行生息,使净收益尽可能大,使总体风险尽可能小。2023-5-16数学建模基本假设:基本假设:1.投资数额 M 相当大,为了便于计算,假设 M=1;2投资越分散,总的风险越小;3总体风险用投资项目is中最大的一个风险来度量;4n 种资产 Si之间是相互独立的;5在投资的这一时期内,ri,pi,qi,r0为定值,不受意外因素影响;6净收益和总体风险只受 ri,pi,qi影响,不受其他因素干扰。二、基本假设和符号规定二、基本假设和符号规定符符号号规规定定:Si 第 i 种投资项目,如股票,债券ri,pi,qi-分别为 Si的平
19、均收益率,风险损失率,交易费率ui -Si的交易定额 0r -同期银行利率xi -投资项目 Si的资金 a-投资风险度Q -总体收益 Q-总体收益的增量2023-5-16数学建模三、模型的建立与分析三、模型的建立与分析1.总体风险用所投资的Si中最大的一个风险来衡量,即max qixi|i=1,2,n2购买 Si所付交易费是一个分段函数,即 pixi xiui 交易费=piui xiui而题目所给定的定值 ui(单位:元)相对总投资 M 很小,piui更小,可以忽略不计,这样购买 Si的净收益为(ri-pi)xi 3要使净收益尽可能大,总体风险尽可能小,这是一个多目标规划模型:目标函数 MAX
20、niiiixpr0)(MINmax qixi 约束条件 niiixp0)1(=M xi0 i=0,1,n4.模型简化:2023-5-16数学建模c投资者在权衡资产风险和预期收益两方面时,希望选择一个令自己满意的投资组合。因此对风险、收益赋予权重 s(0s1),s 称为投资偏好系数.模型模型 3 目标函数:min smaxqixi-(1-s)niiiixpr0)(约束条件 niiixp0)1(=M,xi0 i=0,1,2,nb若投资者希望总盈利至少达到水平 k 以上,在风险最小的情况下寻找相应的投资组合。模型模型 2 固定盈利水平,极小化风险 目标函数:R=minmax qixi 约束条件:ni
21、iiixpr0)(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,n2023-5-16数学建模四、模型四、模型1 1的求解的求解 模型1为:minf=(-0.05,-0.27,-0.19,-0.185,-0.185)(x0 x1 x2 x3 x 4)T x0+1.01x1+1.02x
22、2+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进行循环搜索,编制程序如下:2023-5-16数学建模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 0;0 0 0 0 0.0
23、26;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)2023-5-16数学建模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=0.00
24、00 0.3200 0.5333 0.1271 0.0000 Q=0.2112a=0.0100 x=0 0.4000 0.5843 0 0 Q=0.2190a=0.0200 x=0 0.8000 0.1882 0 0 Q=0.2518 a=0.0400 x=0.0000 0.9901 0.0000 0 0 Q=0.2673计算结果:计算结果:2023-5-16数学建模五、五、结果分析结果分析返 回4 4.在a=0.006附近有一个转折点,在这一点左边,风险增加很少时,利润增长 很快。在这一点右边,风险增加很大时,利润增长很缓慢,所以对于风险和 收益没有特殊偏好的投资者来说,应该选择曲线的拐点作
25、为最优投资组合,大约是a*=0.6%,Q*=20%,所对应投资方案为:风险度 收益 x0 x1 x2 x3 x4 0.0060 0.2019 0 0.2400 0.4000 0.1091 0.2212 3.3.曲线上的任一点都表示该风险水平的最大可能收益和该收益要求的最小风险。对于不同风险的承受能力,选择该风险水平下的最优投资组合。2 2.当投资越分散时,投资者承担的风险越小,这与题意一致。即:冒险的投资者会出现集中投资的情况,保守的投资者则尽量分散投资。1.1.风险大,收益也大。2023-5-16数学建模实验作业实验作业 某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:1)若投资0.8万元可增加原料1千克,问应否作这项投资.2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划.返 回