1 / 18

1 、用 Matlab 软件求线性规划;

教学内容. 1 、用 Matlab 软件求线性规划;. 引例 — 生产计划问题. 生产炊事用具需要两种资源 --- 劳动力和原材料 , 某 公司制定生产计划 , 生产三种不同产品 , 生产管理部 门提供的数据如下 :. 每天供应原材料 200kg, 每天可供使用的劳动力为 150h, 求各种产品的日产量为多少时 , 总收益最大 ?. 问题的求解 :. 1 、确定决策变量 . 设生产 A 产品 x A ,B 产品 x B , C 产品 x C 2 、确定目标函数 . max Z= 4x A +2x B +3x C

jolene
Download Presentation

1 、用 Matlab 软件求线性规划;

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 教学内容 1、用Matlab软件求线性规划;

  2. 引例—生产计划问题 • 生产炊事用具需要两种资源---劳动力和原材料,某 • 公司制定生产计划,生产三种不同产品,生产管理部 • 门提供的数据如下: 每天供应原材料200kg,每天可供使用的劳动力为150h, 求各种产品的日产量为多少时,总收益最大?

  3. 问题的求解: • 1、确定决策变量.设生产A产品xA,B产品xB, C产品xC • 2、确定目标函数. max Z= 4xA+2xB +3xC • 3、确定约束条件.劳动力: 7xA+3xB +6xC≤150 • 原材料: 4xA+4xB +5xC≤200 • 非负性约束: xA≥0,xB≥0,xC≥0

  4. 线性规划的一般形式: 目标函数:max(min)z=c1x1+c2x2+c3x3+…+cnxn 约束条件:a11x1+a12x2+a13x3+…+a1nxn ≤(= ≥)b1 a21x1+a22x2+a23x3+…+a2nxn≤(=≥)b2 … … … … am1x1+am2x2+am3x3+…+amnxn≤(= ≥)bn 非负性约束:x1≥0,x2 ≥0,…,xn ≥0

  5. 二、线性规划模型的Matlab命令如下: 注意:[1] 若没有等式约束: Aeq·X=beq, 则令Aeq=[ ], beq=[ ] [2]其中x0表示初始点 命令:[x,f]=linprog(…)返回最优解x及x处的目标函数值

  6. max Z= 4xA+2xB +3xC s.t. 7xA+3xB +6xC≤150 4xA+4xB +5xC≤200 xA≥0,xB≥0,xC≥0 解引例: 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, VLB,VUB)

  7. 结果输出如下: Optimization terminated successfully. x = 0.0000 50.0000 0.0000 f = -100.0000 当A、B、C产品的日产量分别为0件,50件,0件时, 总收益为100元/件

  8. 例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.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)

  9. Optimization terminated successfully. x = 1.0e+004 * 3.5000 0.5000 3.0000 0.0000 0.0000 0.0000 fval = -2.5000e+004 即:最优解为x=104(3.5,0.5,3,0,0,0),最优值为z=2.5×104

  10. 例2 解 用Matlab求解过程如下: >> 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)

  11. Optimization terminated successfully. x = 30.0000 50.0000 40.0000 fval = 490.0000 即最优解为x=(30,50,40),最优值为z=490.

  12. 例3【任务分配问题】 某机加小组有甲、乙两台机床,可用于加工三种工件. 假定这两台车床的可用台时数分别为800和900,三种 工件的数量分别为400、600和500,且已知用三种不 同车床加工单位数量不同工件所需的台时数和加工费 用如下表.问怎样分配车床的加工任务,才能既满足 加工工件的要求,又使加工费用最低?

  13. 设在甲车床上加工工件1、2、3的数量分别为 在乙车床上加工工件1、2、3的数量分别为 可建立以下线性规划模型:

  14. 用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,vlb,vub)

  15. 结果为: x = 0.0000 600.0000 0.0000 400.0000 0.0000 500.0000 fval =1.3800e+004 即在甲机床上加工600个工件2,在乙机床上加工400个 工件1、500个工件3,可在满足条件的情况下使总加 工费最小为13800.

  16. 例4【人员聘任问题】 某皮鞋公司每日8小时的皮鞋产量不低于1800双.为了进 行质量控制,计划聘请两种不同水平的检验员.一级 检验员的标准为速度25双/小时,正确率98%,计时工 资4元/小时;二级检验员的标准为速度15双/小时,正确 率95%,计时工资3元/小时.检验员每错检一次,企业要 损失2元.为使总检验费用最省,该公司应聘一级、二级 检验员各几名?

  17. 解 设需要一级和二级检验员的人数分别为 人,则应付检验员的工资为 因检验员错检而造成的损失为 故目标函数为 约束条件为

  18. 线性规划模型 用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.0000 fval =360 即只需聘用9个一级检验员.

More Related