数学建模最优化方法建模及实现课件.ppt
数学建模最数学建模最优化方法建模及化方法建模及实现第1页,此课件共63页哦实验目的目的实验内容内容3、基于最、基于最优化方法建模及化方法建模及实现、论文写作。文写作。1、了解最、了解最优化化问题的基本内容。的基本内容。2、用数学、用数学软件包件包matlab求解求解(非非)线性性规划划问题。4、实验题目:目:钢管的管的订购与运与运输。1、基、基础知知识、例子。、例子。3、建模案例:投、建模案例:投资的收益与的收益与风险2、掌握、掌握线性性规划及非划及非线性性规划建模及其划建模及其MATLAB实现。第2页,此课件共63页哦最优化问题最优化问题v优化问题,一般是指用“最好”的方式,使用或分配有限的资源,即劳动力、原材料、机器、资金等,使得费用最小或利润最大.v建立优化问题的数学模型 1)确定问题的决策变量 2)构造模型的目标函数和允许取值的范围,常用一组不等式来表示.第3页,此课件共63页哦(1)(2)由(1)、(2)组成的模型属于约束优化,若只有(1)式就是无约束优化,f(x)称为目标函数,gi(x)称为约束条件若目标函数f(x)和约束条件g(x)都是线性函数,则称该模型是线性规划.第4页,此课件共63页哦 线性规划模型线性规划模型例1、生产炊事用具需要两种资源劳动力和原材料,某公司制定生产计划,生产三种不同的产品,生产管理部门提供的数据如下 A B C劳动力(小时/件)736原材料(千克/件)445利润(元/件)423第5页,此课件共63页哦每天供应原材料200kg,每天可使用的劳动力为150h.建立线性规划模型,使总收益最大,并求各种产品的日产量.解解 第一步,确定决策变量.用 分别表示A,B,C三种产品的日产量 第二步,约束条件 原材料:劳动力:第三步,确定目标函数 第6页,此课件共63页哦例2 一家广告公司想在电视、广播上做广告,其目的是尽可能多的招来顾客,下面是调查结果:电视无线电 广播杂志白天最佳时间一次广告费用(千元)40753015受每次广告影响的顾客数(千人)400900500200受每次广告影响的女顾客数(千人)300400200100第7页,此课件共63页哦这家公司希望广告费用不超过800(千元)还要求:1)至少要有200万妇女收看广告;2)电视广告费用不超过500(千元)3)电视广告白天至少播出3次,最佳时间至少播出2次;4)通过广播、杂志做的广告要重复5到10次.令 分别白天,最佳电视、广播、杂志广告次数 第8页,此课件共63页哦例例3:任务分配问题:某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为400、600和500,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?第9页,此课件共63页哦解解 设在甲车床上加工工件1、2、3的数量分别为x1、x2、x3,在乙车床上加工工件1、2、3的数量分别为x4、x5、x6。可建立以下线性规划模型:解答第10页,此课件共63页哦例例4:某厂每日8小时的产量不低于1800件。为了进行质量控制,计划聘请两种不同水平的检验员。一级检验员的标准为:速度25件/小时,正确率98%,计时工资4元/小时;二级检验员的标准为:速度15小时/件,正确率95%,计时工资3元/小时。检验员每错检一次,工厂要损失2元。为使总检验费用最省,该工厂应聘一级、二级检验员各几名?解解 设需要一级和二级检验员的人数分别为x1、x2人,则应付检验员的工资为:因检验员错检而造成的损失为:第11页,此课件共63页哦故目故目标函数函数为:约束条件为:第12页,此课件共63页哦线性性规划模型:划模型:解答返 回第13页,此课件共63页哦线性规划模型的一般形式线性规划模型的一般形式 目目标函数和所有的函数和所有的约束条件都是决策束条件都是决策变量量的的线性函数。性函数。第14页,此课件共63页哦实际问题中中的的优化模型化模型x决策变量决策变量f(x)目标函数目标函数gi(x)0约束条件约束条件数学规划数学规划线性规划线性规划(LP)二次规划二次规划(QP)非线性规划非线性规划(NLP)纯整数规划纯整数规划(PIP)混合整数规划混合整数规划(MIP)整数规划整数规划(IP)0-1整数规划整数规划一般整数规划一般整数规划连续规划连续规划 优化模型的分类优化模型的分类第15页,此课件共63页哦线性规划问题的求解在理论上有单纯形法,在实际建模中常用以下解法:1.图解法 2.LINGO 软件包;3.Excel中的规划求解;4.MATLAB软件包.第16页,此课件共63页哦min z=cX 1、模型:命令:x=linprog(c,A,b)2、模型:min z=cX 命令:x=linprog(c,A,b,Aeq,beq)或或 x=linprog(c,A,b,Aeq,beq,x0)或或 x,fval=linprog(c,A,b,Aeq,beq)注意注意:若没有不等式:存在,则令A=,b=.用用MATLAB优化工具箱解线性优化工具箱解线性linear规划规划第17页,此课件共63页哦3、模型:min z=cX VLBXVUB 命令: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表示初始点 4、命令:x,fval=linprog()返回最返回最优解解及及处的目的目标函数函数值fval.第18页,此课件共63页哦解解:编写写M文件文件xxgh1.m如下:如下:c=6 3 4;A=1,2,-3;0 1 0;b=80;50;Aeq=1 1 1;beq=120;vlb=30,0,20;vub=;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)To Matlab(xxgh1)例例5第19页,此课件共63页哦解解 编写写M文件文件xxgh2.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.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)To Matlab(xxgh2)例例6第20页,此课件共63页哦S.t.改写为:问题例例3的解答第21页,此课件共63页哦编写写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)第22页,此课件共63页哦x=0.0000 600.0000 0.0000 400.0000 0.0000 500.0000fval=1.3800e+004计算结果:计算结果:即在甲机床上加工600个工件2,在乙机床上加工400个工件1、500个工件3,可在满足条件的情况下使总加工费最小为13800。第23页,此课件共63页哦 问题改写为:例例4的解答第24页,此课件共63页哦编写写M文件文件xxgh4.m如下:如下:c=40;36;A=-5-3;b=-45;Aeq=;beq=;vlb=zeros(2,1);vub=9;15;%调用linprog函数:x,fval=linprog(c,A,b,Aeq,beq,vlb,vub)To Matlab(xxgh4)第25页,此课件共63页哦结果果为:x=9.0000 0.0000 fval=360即只需聘用9个一级检验员。注:注:本问题应还有一个约束条件:x1、x2取整数。故它是一个整数整数线性性规划划问题。这里把它当成一个线性规划来解,求得其最优解刚好是整数:x1=9,x2=0,故它就是该整数规划的最优解。若用线性规划解法求得的最优解不是整数,将其取整后不一定是相应整数规划的最优解,这样的整数规划应用专门的方法求解。返 回第26页,此课件共63页哦第27页,此课件共63页哦 1)首先建立M文件fun.m,定义目标函数F(X):function f=fun(X);f=F(X);其中X为n维变元向量,G(X)与Ceq(X)均为非线性函数组成的向量,其它变量的含义与线性规划、二次规划中相同.用Matlab求解上述问题,基本步骤分三步:二、非线性规划问题及其二、非线性规划问题及其Matlab第28页,此课件共63页哦 3)建立主程序.非线性规划求解的函数是fmincon,命令的基本格式如下:(1)x=fmincon(fun,X0,A,b)(2)x=fmincon(fun,X0,A,b,Aeq,beq)(3)x=fmincon(fun,X0,A,b,Aeq,beq,VLB,VUB)(4)x=fmincon(fun,X0,A,b,Aeq,beq,VLB,VUB,nonlcon)(5)x=fmincon(fun,X0,A,b,Aeq,beq,VLB,VUB,nonlcon,options)(6)x,fval=fmincon(.)(7)x,fval,exitflag=fmincon(.)(8)x,fval,exitflag,output=fmincon(.)输出极值点M文件迭代的初值参数说明变量上下限第29页,此课件共63页哦注意:注意:1 fmincon函数提供了大型优化算法和中型优化算法。默认时,若在fun函数中提供了梯度(options参数的GradObj设置为on),并且只有上下界存在或只有等式约束,fmincon函数将选择大型算法。当既有等式约束又有梯度约束时,使用中型算法。2 fmincon函数的中型算法使用的是序列二次规划法。在每一步迭代中求解二次规划子问题,并用BFGS法更新拉格朗日Hessian矩阵。3 fmincon函数可能会给出局部最优解,这与初值X0的选取有关。第30页,此课件共63页哦1.写成写成标准形式准形式:s.t.2x1+3x2 6 s.t x1+4x2 5 x1,x2 0例例1第31页,此课件共63页哦2.先建立先建立M-文件文件 fun1.m:function f=fun1(x);f=-x(1)-2*x(2)+(1/2)*x(1)2+(1/2)*x(2)2MATLAB(youh1)3.再建立主程序再建立主程序youh1.m:4.运算运算结果果为:x=0.7647 1.0588 fval=-2.0294第32页,此课件共63页哦1先建立先建立M文件文件 fun2.m,定定义目目标函数函数:function f=fun2(x)f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);x1+x2=0 s.t.1.5+x1x2-x1-x2 0 -x1x2 10 02再建立再建立M文件文件mycon2.m定定义非非线性性约束:束:function g,ceq=mycon2(x)g=1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10;ceq=;例例2第33页,此课件共63页哦3主程序主程序youh2.m为:x0=-1;1;A=;b=;Aeq=1 1;beq=0;vlb=;vub=;x,fval=fmincon(fun2,x0,A,b,Aeq,beq,vlb,vub,mycon2)MATLAB(youh2)4.运算运算结果果为:x=-1.2247 1.2247 fval=1.8951第34页,此课件共63页哦1先建立先建立M-文件文件fun3.m定定义目目标函数函数:function f=fun3(x)f=-2*x(1)-x(2);2再建立再建立M文件文件mycon3.m定定义非非线性性约束:束:function g,ceq=mycon3(x)g=x(1)2+x(2)2-25;x(1)2-x(2)2-7;ceq=;例例3第35页,此课件共63页哦3.主程序主程序youh3.m为:x0=3;2.5;VLB=0 0;VUB=5 10;x,fval,exitflag,output =fmincon(fun3,x0,VLB,VUB,mycon3)MATLAB(youh3(fun3)第36页,此课件共63页哦4.运算运算结果果为:x=4.0000 3.0000fval=-11.0000exitflag=1output=iterations:4 funcCount:17 stepsize:1 algorithm:1x44 char firstorderopt:cgiterations:返回返回第37页,此课件共63页哦第38页,此课件共63页哦建模案例:投资的收益和风险建模案例:投资的收益和风险(1998A)第39页,此课件共63页哦二、基本假设和符号规定二、基本假设和符号规定第40页,此课件共63页哦1.总体体风险用所投用所投资的的Si中最大的一个中最大的一个风险来衡量,即:来衡量,即:三、模型的建立与分析三、模型的建立与分析第41页,此课件共63页哦3.建立模型建立模型双目双目标模型模型为:第42页,此课件共63页哦4.模型简化模型简化即模型即模型为:第43页,此课件共63页哦第44页,此课件共63页哦四、模型四、模型1的求解的求解siri(%)qi(%)pi(%)ui(元)(元)S0(银行)5000S1282.51103S2211.52198S3235.54.552S4252.66.540将将n=4,M=1,及平均收益率及平均收益率ri,风险损失率失率qi,费率率 pi代入模型代入模型1得:得:第45页,此课件共63页哦 由于由于a是任意是任意给定的定的风险度,到底怎度,到底怎样给定没有一个准定没有一个准则,不,不同的投同的投资者有不同的者有不同的风险度。我度。我们从从a=0开始,以步开始,以步长a=0.001进行循行循环搜索,搜索,编制程序如下:制程序如下:第46页,此课件共63页哦 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.026;b=a;a;a;a;vlb=0,0,0,0,0;vub=;x,val=linprog(c,A,b,Aeq,beq,vlb,vub);ax=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)模型模型1的的MATLAB程序:程序:第47页,此课件共63页哦a=0.006计算结果:计算结果:第48页,此课件共63页哦4.在a=0.006=0.006附近有一个转折点,在这一点左边,风险增加很少时,利润增长很快。在这一点右边,风险增加很大时,利润增长很缓慢,所以对于风险和收益没有特殊偏好的投资者来说,应该选择曲线的拐点作为最优投资组合,大约是a*=0.6%,Q*=20%,所对应投资方案为:风险度度收益收益 x0 x1 x2 x3 x4 0.0060 0.2019 0 0.2400 0.4000 0.1091 0.2212 3.曲线上的任一点都表示该风险水平的最大可能收益和该收益要求的最小风险。对于不同风险的承受能力,选择该风险水平下的最优投资组合。2.当投资越分散时,投资者承担的风险越小,这与题意一致。即:冒险的投资者会出现集中投资的情况,保守的投资者则尽量分散投资。1.风险大,收益也大。模型模型1的结果分析的结果分析第49页,此课件共63页哦此模型又可改写为模型模型2的求解:的求解:第50页,此课件共63页哦由于k是任意给定的盈利,到底怎样给定没有一个准则,不同的投资者有不同的盈利.我们从k=0.05开始,以步长k=0.01进行循环搜索,编制程序如下:模型模型2的求解:的求解:第51页,此课件共63页哦k=0.05while k0.26/1.01;C=0 0 0 0 0 1;A=0 0.025 0 0 0-1;0 0 0.015 0 0-1;0 0 0 0.055 0-1;0 0 0 0 0.026 -1;B=0;0;0;0;Aeq=0.05 0.27 0.19 0.185 0.185,0;1 1.01 1.02 1.045 1.065,0;Beq=k;1;Vlb=0;0;0;0;0;0;%or Vlb=zeros(6,1);Vub=;x,fval=linprog(C,A,B,Aeq,Beq,Vlb,Vub);模型模型2的的MATLAB求解:求解:第52页,此课件共63页哦kQ=fval x=xplot(k,Q,m.)axis(0 0.5 0 0.05)xlabel(收益k)ylabel(最小风险度Q)title(最小风险度Q随收益R的变化趋势图)hold onk=k+0.01;grid onend模型模型2的的MATLAB求解:求解:第53页,此课件共63页哦模型模型2的结果分析:的结果分析:第54页,此课件共63页哦此模型又可改写此模型又可改写为模型模型3的求解:的求解:第55页,此课件共63页哦模型模型3的求解:的求解:第56页,此课件共63页哦s=0while s1;C=-0.05*(1-s),-0.27*(1-s),-0.19*(1-s),-0.185*(1-s),-0.185*(1-s),s;A=0 0.025 0 0 0-1;0 0 0.015 0 0-1;0 0 0 0.055 0-1;0 0 0 0 0.026-1;B=0;0;0;0;Aeq=1 1.01 1.02 1.045 1.065,0;Beq=1;Vlb=0;0;0;0;0;0;%or Vlb=zeros(6,1);Vub=;x,fval=linprog(C,A,B,Aeq,Beq,Vlb,Vub);模型模型3的的MATLAB程序:程序:第57页,此课件共63页哦sQ=x(6)x=xplot(s,Q,r.)axis(0 1 0 0.025)xlabel(权重s)ylabel(风险度Q)title(风险度Q随权重s的变化趋势图)hold ons=s+0.001;grid onend模型模型3的的MATLAB程序:程序:第58页,此课件共63页哦模型模型3的结果分析:的结果分析:第59页,此课件共63页哦实验作作业:钢管管订购及运及运输优化模型化模型2000年年“网易杯网易杯”全国大学生数学建模全国大学生数学建模竞赛B题第60页,此课件共63页哦 要铺设一条输送天然气的主管道A1A2A15,能生产这种钢管的厂家一共有:S1,S2,S7。厂家与管道间的交通网交通网络已知。假设沿管道或者原来有公路,或者建有施工公路。为方便计算,1km主管道钢管称为1单位钢管。一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂Si在指定期限内能生产该钢管的最大数量为si 个单位,钢厂1单位钢管的出厂销价为pi万元,如下表:第61页,此课件共63页哦I1 2 3 4 5 6 7 SI800 800 1000 2000 2000 2000 3000 Pi160 155 155 160 155 150 160 1单位钢管的铁路运价路运价如下表,1000km以上每增加1至100km运价增加5万元。公路运公路运输费用用为1单位钢管每公里0.1万元(不足整公里部分按整公里计算)。钢管可由铁路、公路运往铺设地点(不只是运到主管道结点A1,A2,A15,而是管道全线)。里程(km)300 301350 351400 401450 451500 运价(万元)20 23 26 29 32 里程(km)501600 601700 701800 801900 9011000 运价(万元)37 44 50 55 60 第62页,此课件共63页哦 (1)请制定一个主管道主管道钢管管的订购和运输计划,使总费用最小(给出总费用)。(2)请就()的模型分析:哪个钢厂钢管的销价的价的变化化对购运运计划划和总费用用影响最大,哪个钢厂钢管的产量的上限的量的上限的变化化对购运计划和总费用的影响最大,并给出相应的数字结果。(3)如果要铺设的管道不是一条线,而是一个树形形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图()的情形给出模型和结果。需解决的问题:需解决的问题:第63页,此课件共63页哦