《用Matlab软件求线性规划.ppt》由会员分享,可在线阅读,更多相关《用Matlab软件求线性规划.ppt(18页珍藏版)》请在三一办公上搜索。
1、1、用Matlab软件求线性规划;,教学内容,引例生产计划问题,生产炊事用具需要两种资源-劳动力和原材料,某公司制定生产计划,生产三种不同产品,生产管理部门提供的数据如下:,每天供应原材料200kg,每天可供使用的劳动力为150h,求各种产品的日产量为多少时,总收益最大?,问题的求解:,1、确定决策变量.设生产A产品xA,B产品xB,C产品xC2、确定目标函数.max Z=4xA+2xB+3xC3、确定约束条件.劳动力:7xA+3xB+6xC150 原材料:4xA+4xB+5xC200 非负性约束:xA0,xB0,xC0,线性规划的一般形式:,目标函数:max(min)z=c1x1+c2x2+
2、c3x3+cnxn约束条件:a11x1+a12x2+a13x3+a1nxn(=)b1 a21x1+a22x2+a23x3+a2nxn(=)b2 am1x1+am2x2+am3x3+amnxn(=)bn非负性约束:x1 0,x2 0,xn 0,注意:1 若没有等式约束:AeqX=beq,则令Aeq=,beq=2其中x0表示初始点 命令:x,f=linprog()返回最优解及处的目标函数值,二、线性规划模型的Matlab命令如下:,c=4 2 3;A=7 3 6;4 4 5;b=150;200;VUB=;Aeq=;beq=;VLB=0;0;0;x,f=linprog(c,A,b,Aeq,beq,V
3、LB,VUB),解引例:,max Z=4xA+2xB+3xCs.t.7xA+3xB+6xC150 4xA+4xB+5xC200 xA0,xB0,xC0,Matlab命令如下:,结果输出如下:,Optimization terminated successfully.x=0.0000 50.0000 0.0000f=-100.0000,当A、B、C产品的日产量分别为0件,50件,0件时,总收益为100元/件,例1 max,解 用Matlab求解过程如下:clear 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.0
4、2 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),Optimization terminated successfully.x=1.0e+004*3.5000 0.5000 3.0000 0.0000 0.0000 0.0000fval=-2.5000e+004,即:最优解为x=104(3.5,0.5,3,0,0,0),最优值为z=2.5104,例2,解 用Matlab求
5、解过程如下:clear 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),Optimization terminated successfully.x=30.0000 50.0000 40.0000fval=490.0000即最优解为x=(30,50,40),最优值为z=490.,某机加小组有甲、乙两台机床,可用于加工三种工件.假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为400、600和500,且已知用三种不同车床加工单位数量不同工件
6、所需的台时数和加工费用如下表.问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?,例3【任务分配问题】,解 设在甲车床上加工工件1、2、3的数量分别为,在乙车床上加工工件1、2、3的数量分别为,可建立以下线性规划模型:,用Matlab求解如下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,
7、vlb,vub),结果为:x=0.0000 600.0000 0.0000 400.0000 0.0000 500.0000fval=1.3800e+004即在甲机床上加工600个工件2,在乙机床上加工400个工件1、500个工件3,可在满足条件的情况下使总加工费最小为13800.,某皮鞋公司每日8小时的皮鞋产量不低于1800双.为了进行质量控制,计划聘请两种不同水平的检验员.一级检验员的标准为速度25双/小时,正确率98%,计时工资4元/小时;二级检验员的标准为速度15双/小时,正确率95%,计时工资3元/小时.检验员每错检一次,企业要损失2元.为使总检验费用最省,该公司应聘一级、二级检验员各几名?,例4【人员聘任问题】,解 设需要一级和二级检验员的人数分别为,人,则应付检验员的工资为,因检验员错检而造成的损失为,故目标函数为,约束条件为,线性规划模型,用Matlab求解如下:c=40;36;A=-5-3;b=-45;Aeq=;beq=;vlb=zeros(2,1);vub=9;15;x,fval=linprog(c,A,b,Aeq,beq,vlb,vub),结果为x=9.0000 0.0000fval=360即只需聘用9个一级检验员.,