线性规划问题的求解方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、利用MATLAB软件中的linprog 命令求解
min S 1.求解线性规划问题 格式为:x=linprog(f,A,b)
2.求解线性规划问题
f * X s.t. AX b
[x,fval]=linprog(f,A,b)
min S f * X s.t. AX b AeqX beq
例3.6
max S 3 x1 x2 2 x3 4 2 x1 x2 x3 x x x 6 1 2 3 x4 2 x1 3 x 2 x3 10 1 xi 0, i 1, 2,3, 4
s.t.
P75 T2(5)
min S 3x1 2 x2 x3 2 x1 x2 x3 5 4 x 3x x 3 1 2 3 x1 x2 x3 2 xi 0, i 1, 2,3
s.t.
二、利用LINGO软件求解
1. max或min后面跟着等号=; 2. 不区分大小写字母,变量必须以字母开头; 3. 模型中已经假设所有的变量非负; 4. 变量可以放在约束条件的右边,数字可在左边; 5. 每个语句都以分号“ ;”结尾; 6. 以感叹号“ !”开始的是说明语句。 例1 max=3*x1+2*x2; x1+2*x2<=200; 3*x1+x2<=240; 例2 min=4*x+9*y; 9*x+7*y>=56; 7*x+20*y>=70;
例7 !线性规划运输问题p169例子; model: sets: supply/1..5/:gy; demond/1..6/:xq; link(supply,demond):c,x; endsets data: c=30 28 3 10 25 18 27 4 11 2 17 9 5 12 1 22 8 16 13 21 19 15 23 7 20 14 29 26 6 24; gy=10 15 25 40 10; xq=9 17 22 33 14 5; enddata [obj] min=@sum(link:c*x); @for(supply(i):[supply_con] @sum(demond(j):x(i,j))=gy(i);); @for(demond(j):[demond_con] @sum(supply(i):x(i,j))=xq(j);); end
注:x,b不要求非负
格式为:x=linprog(f,A,b,Aeq,beq) [x,fval]=linprog(f,A,b,Aeq,beq)
3.求解线性规划问题
min S f * X s.t. AX b AeqX beq LB X UB
格式为:x=linprog(f,A,b,Aeq,beq,LB,UB)
Hale Waihona Puke Baidu
s.t.
P75 T2(6)
min S x1 3x2 x3 2 x1 x2 x3 8 2 x x 2 1 2 10 x1 2 x2 xi 0, i 1, 2,3
s.t.
P75 T2(10)
min S 2 x1 x2 x3 x4 2 x1 x2 3x3 x4 6 x x 2x x 2 1 2 3 4 x1 x2 x3 x4 7 xi 0, i 1, 2,3, 4
例3 max=8*x+5*y+4*z; x+y+z<=9; 8*x+5*y+4*z<=45; x<=1; y<=5; z<=5; @gin(x); @gin(y); @gin(z); 例4 model: max=5*x1+7*x2; x1+x2<=20; 3*x1+7*x2<=80; end
例5 model: max=3*x1+2*x2; 2*x1+3*x2<=14; 2*x1+x2<9; @gin(x1); @gin(x2); end 例6 model: max=x1+x2; 3*x1+2*x2+x3<=10; 2*x2+x4<=5; @gin(x1); @gin(x2); end
[x,fval]=linprog(f,A,b,Aeq,beq,LB,UB)
注:这里x、b不要求非负
例3.1
max S 3x1 x2 s.t. x1 2 x2 8 x1 6 x 0, i 1, 2 i
例3.2
max S 80 x1 45 x2 s.t. 20 x1 5 x2 400 15 x1 10 x2 450 x 0, i 1, 2 i
model: !线性规划运输问题p169例子; sets: supply/1..5/:gy; demond/1..6/:xq; link(supply,demond):c,x; endsets data: c=30 28 3 10 25 18 27 4 11 2 17 9 5 12 1 22 8 16 13 21 19 15 23 7 20 14 29 26 6 24; gy=10 15 25 40 10; xq=9 17 22 33 14 5; enddata [obj] min=@sum(link:c*x); @for(supply(i):[supply_con] @sum(demond(j):x(i,j))=gy(i)); @for(demond(j):[demond_con] @sum(supply(i):x(i,j))=xq(j)); end
例3.3
max S 2 x1 3x2 2 x3 x4 s.t. x1 2 x2 3x3 2 x4 5 x1 x2 2 x3 x4 10 x 0, i 1, 2,3, 4 i
例3.5
max S 6 x1 3x2 x3 s.t. x1 x2 2 x3 1 2 x1 x2 2 x3 3 x 0, i 1, 2,3 i
min S 1.求解线性规划问题 格式为:x=linprog(f,A,b)
2.求解线性规划问题
f * X s.t. AX b
[x,fval]=linprog(f,A,b)
min S f * X s.t. AX b AeqX beq
例3.6
max S 3 x1 x2 2 x3 4 2 x1 x2 x3 x x x 6 1 2 3 x4 2 x1 3 x 2 x3 10 1 xi 0, i 1, 2,3, 4
s.t.
P75 T2(5)
min S 3x1 2 x2 x3 2 x1 x2 x3 5 4 x 3x x 3 1 2 3 x1 x2 x3 2 xi 0, i 1, 2,3
s.t.
二、利用LINGO软件求解
1. max或min后面跟着等号=; 2. 不区分大小写字母,变量必须以字母开头; 3. 模型中已经假设所有的变量非负; 4. 变量可以放在约束条件的右边,数字可在左边; 5. 每个语句都以分号“ ;”结尾; 6. 以感叹号“ !”开始的是说明语句。 例1 max=3*x1+2*x2; x1+2*x2<=200; 3*x1+x2<=240; 例2 min=4*x+9*y; 9*x+7*y>=56; 7*x+20*y>=70;
例7 !线性规划运输问题p169例子; model: sets: supply/1..5/:gy; demond/1..6/:xq; link(supply,demond):c,x; endsets data: c=30 28 3 10 25 18 27 4 11 2 17 9 5 12 1 22 8 16 13 21 19 15 23 7 20 14 29 26 6 24; gy=10 15 25 40 10; xq=9 17 22 33 14 5; enddata [obj] min=@sum(link:c*x); @for(supply(i):[supply_con] @sum(demond(j):x(i,j))=gy(i);); @for(demond(j):[demond_con] @sum(supply(i):x(i,j))=xq(j);); end
注:x,b不要求非负
格式为:x=linprog(f,A,b,Aeq,beq) [x,fval]=linprog(f,A,b,Aeq,beq)
3.求解线性规划问题
min S f * X s.t. AX b AeqX beq LB X UB
格式为:x=linprog(f,A,b,Aeq,beq,LB,UB)
Hale Waihona Puke Baidu
s.t.
P75 T2(6)
min S x1 3x2 x3 2 x1 x2 x3 8 2 x x 2 1 2 10 x1 2 x2 xi 0, i 1, 2,3
s.t.
P75 T2(10)
min S 2 x1 x2 x3 x4 2 x1 x2 3x3 x4 6 x x 2x x 2 1 2 3 4 x1 x2 x3 x4 7 xi 0, i 1, 2,3, 4
例3 max=8*x+5*y+4*z; x+y+z<=9; 8*x+5*y+4*z<=45; x<=1; y<=5; z<=5; @gin(x); @gin(y); @gin(z); 例4 model: max=5*x1+7*x2; x1+x2<=20; 3*x1+7*x2<=80; end
例5 model: max=3*x1+2*x2; 2*x1+3*x2<=14; 2*x1+x2<9; @gin(x1); @gin(x2); end 例6 model: max=x1+x2; 3*x1+2*x2+x3<=10; 2*x2+x4<=5; @gin(x1); @gin(x2); end
[x,fval]=linprog(f,A,b,Aeq,beq,LB,UB)
注:这里x、b不要求非负
例3.1
max S 3x1 x2 s.t. x1 2 x2 8 x1 6 x 0, i 1, 2 i
例3.2
max S 80 x1 45 x2 s.t. 20 x1 5 x2 400 15 x1 10 x2 450 x 0, i 1, 2 i
model: !线性规划运输问题p169例子; sets: supply/1..5/:gy; demond/1..6/:xq; link(supply,demond):c,x; endsets data: c=30 28 3 10 25 18 27 4 11 2 17 9 5 12 1 22 8 16 13 21 19 15 23 7 20 14 29 26 6 24; gy=10 15 25 40 10; xq=9 17 22 33 14 5; enddata [obj] min=@sum(link:c*x); @for(supply(i):[supply_con] @sum(demond(j):x(i,j))=gy(i)); @for(demond(j):[demond_con] @sum(supply(i):x(i,j))=xq(j)); end
例3.3
max S 2 x1 3x2 2 x3 x4 s.t. x1 2 x2 3x3 2 x4 5 x1 x2 2 x3 x4 10 x 0, i 1, 2,3, 4 i
例3.5
max S 6 x1 3x2 x3 s.t. x1 x2 2 x3 1 2 x1 x2 2 x3 3 x 0, i 1, 2,3 i