线性规划实例 例1
任务分配问题:某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为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 乙
解 设在甲车床上加工工件1、2、3的数量分别为x1、x2、x3,在乙车床上加工工件1、2、3的数量分别为x4、x5、x6。可建立以下线性规划模型:
minz?13x1?9x2?10x3?11x4?12x5?8x6
?x1?x4?400
?x?x?600 5?2 ??x3?x6?500 s.t. ? 0.4x?1.1x?x?800123? ?0.5x4?1.2x5?1.3x6?900?
??xi?0,i?1,2,?,6
编写M文件lp1.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); %产生一个6行、1列的零矩阵 vub=[];
[x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)
结果: x =
0.0000 600.0000
1
0.0000 400.0000 0.0000 500.0000
fval =1.3800e+004
即在甲机床上加工600个工件2,在乙机床上加工400个工件1、500个工件3,可在满足条件的情况下使总加工费最小为13800。 例2
某厂每日8小时的产量不低于1800件。为了进行质量控制,计划聘请两种不同水平的检验员。一级检验员的标准为:速度25件/小时,正确率98%,计时工资4元/小时;二级检验员的标准为:速度15小时/件,正确率95%,计时工资3元/小时。检验员每错检一次,工厂要损失2元。为使总检验费用最省,该工厂应聘一级、二级检验员各几名?
解 设需要一级和二级检验员的人数分别为x1、x2人,则应付检验员的工资为:
8?4?x1?8?3?x2?32x1?24x2
因检验员错检而造成的损失为:
(8?25?2%?x1?8?15?5%?x2)?2?8x1?12x2
目标函数为: m inz?(32x?24x)?(8x?12x)?40x?36x121212
约束条件为:
?8?25?x1?8?15?x2?1800
?8?25?x?1800 ?1? 8?15?x2?1800?
? ?x1?0,x2?0作业:
minz?40x1?36x2 ?5x1?3x2?45 ?x?9? s.t. ?1 ?x2?15? ?x1?0,x2?0
2
改写为:
minz??4036???x?? ?2? s.t. ??5?x1??x1??3???x???(?45) ?2?
编写M文件lp2.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)
结果为: x =
9.0000 0.0000 fval =360
即只需聘用9个一级检验员。
作业:
某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:
1)若投资0.8万元可增加原料1千克,问应否作这项投资. 2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划.
3
线性规划实例



