MATLAB求解线性规划问题
问题
1.(生产问题)某工厂计划生产甲、乙两种产品,主要材料有钢材3500kg,铁材1800kg,专用设备能力2800台时,材料与设备能力的消耗定额及单位产品所获利润如表所示,问如何安排生产,才能使该厂所获利润最大?
问题分析
x1甲种产品的件数,x2乙种产品的件数
max y=80x1+125x2 (该厂所获得的的利润)
8x1+5x2<=3500 (所耗费的钢材不超过3500kg)
6x1+4x2<=1800 (所耗费的铁材不超过1800kg)
4x1+5x2<=2800 (所耗费的设备能力不超过2800台)
-x1<=0 (生产甲的件数为自然数)
-x2<=0 (生产乙的件数为自然数)
MATLAB代码如下
>> intcon=[1 2]
intcon =
1 2
>> a=[8 5;6 4;4 5;-1 0;0 -1]
a =
8 5
6 4
4 5
-1 0
0 -1
>> b=[3500;1800;2800;0;0]
b =
3500
1800
2800
0
0
>> f=-[80 125]
f =
-80 -125
>> [x fval exitflag]=intlinprog(f,intcon,a,b)
x =
0
450.0000(生产甲0件,乙450件)
fval =
-56250
%(最大利润为56250元)
exitflag =
1
当生产甲0件,乙450件时,该厂利润最大,为56250元
2.(运输问题)设两个建材厂C1和C2,每年沙石的产量分别为35万吨和55万吨,这些沙石需要供应到W1、W2和W3三个建筑工地,每年建筑工地对沙石的需求量分别为26万吨、35万吨和26万吨,各建材厂到建筑工地之间的运费(万元/万吨)如表所示,问应当如何调运才能使得总运费最小。
问题分析
c1x1,c1x2,c1x3,分别为c1建材厂调到w1,w2,w3三个建筑工地的砂石量(万吨)
c2x1,c2x2,c2x3, 分别为c2建材厂调到w1,w2,w3三个建筑工地的砂石量(万吨)
min y=10c1x1+12c1x2+9c1x3+8c2x1+11c2x2+13c2x3(总运费最小)
c1x1+c1x2+c1x3<=35(c1建材厂产量为35万吨)
c2x1+c2x2+c2x3<=55(c2建材厂产量为55万吨)
c1x1+c2x1>=26(w1建筑工地对沙石的需求量为26万吨)
c1x2+c2x2>=35(w2建筑工地对沙石的需求量为35万吨)
c1x3+c2x3>=26(w3建筑工地对沙石的需求量为26万吨)
cixj>=0(i=1,2 j=1,2,3)(运送量大于等于0万吨)
MATLAB代码如下
f=[10 12 9 8 11 13];
b=-[1 0 0 0 0 0;0 1 0 0 0 0;0 0 1 0 0 0;0 0 0 1 0 0;0 0 0 0 1 0;0 0 0 0 0 1];
a=[1 1 1 0 0 0;0 0 0 1 1 1;-1 0 0 -1 0 0;0 -1 0 0 -1 0;0 0 -1 0 0 -1;b];
c=[35;55;-26;-35;-26;0;0;0;0;0;0];
[cx fmin]=linprog(f,a,c);
cx=
0(c1x1,c1->w1)
6(c1x2,c1->w2)
26(c1x3,c1->w3)
26(c2x1,c2->w1)
29(c2x2,c2->w2)
0(c2x3,c2->w3)
fmin=
833
%(总运费最小为833万元)
当c1向w1,w2,w3分别运送0,6,26万吨,c2向w1,w2,w3分别运送26,29,0万吨时,总运费最小,为833万元。
3.(资金分配问题)某企业在今后三年有5项工程考虑施工,每项工程的期望收入和年度费用如表所示。假定每一项已经批准的工程要在整个三年内完成。问企业应怎样选择工程,使企业总收入最大。
问题分析
x1,x2,x3,x4,x5分别表示工程1,2,3,4,5
max y=20x1+40x2+20x3+15x4+30*x5 (企业总收入最大)
5x1+4x2+3x3+7x4+8*x5<=25(第1年最大可用基金数为25千元)
1x1+7x2+9x3+4x4+6*x5<=25(第2年最大可用基金数为25千元)
8x1+10x2+2x3+1x4+10*x5<=25(第3年最大可用基金数为25千元)
xi=[0 1];(i=1,2 ,3,4,5)
MATLAB代码如下
f=-[20 40 20 15 30];
a=[5 4 3 7 8;1 7 9 4 6;8 10 2 1 10];
b=[25;25;25];
intcon=[1 2 3 4 5];
lb=zeros(5,1);
ub=ones(5,1);
[x ,fm ,exitflag]=intlinprog(f,intcon,a,b,[],[],lb,ub);
x=
1
1
1
1
0
%(实施1,2,3,4号项目)
fm=
-95
%(企业总收入最大为95千元)
exitflag=
1
当企业选择1,2,3,4工程时,企业利润最大,为95千元。