线性规划
目的:學(xué)會(huì)用matlab、lingo軟件求解線性規(guī)劃問(wèn)題。
二、實(shí)驗(yàn)要求:
1.熟悉線性規(guī)劃問(wèn)題的數(shù)學(xué)建模;
2.會(huì)用matlab、
lingo軟件求解線性規(guī)劃問(wèn)題;
3.掌握線性規(guī)劃的靈敏度分析。
三、實(shí)驗(yàn)內(nèi)容:
1、求解下列線性規(guī)劃問(wèn)題:
(1) 給出lingo原始代碼;
(2) 計(jì)算結(jié)果(包括靈敏度分析,求解結(jié)果粘貼);
(3) 回答下列問(wèn)題:a) 最優(yōu)解及最優(yōu)目標(biāo)函數(shù)值是多少;
b) 資源的對(duì)偶價(jià)格各為多少,并說(shuō)明對(duì)偶價(jià)格的含義;
c) 為了使目標(biāo)函數(shù)值增加最多,讓你選擇一個(gè)約束條件,將它的常數(shù)項(xiàng)增加一個(gè)單位,你將選擇哪一個(gè)約束條件?這時(shí)目標(biāo)函數(shù)值將是多少?
d) 對(duì)x2的目標(biāo)函數(shù)系數(shù)進(jìn)行靈敏度分析;e) 對(duì)第2個(gè)約束的約束右端項(xiàng)進(jìn)行靈敏度分析;f) 結(jié)合本題的結(jié)果解釋“Reduced Cost”的含義
2、 請(qǐng)寫(xiě)出調(diào)用函數(shù)linporg求解下述問(wèn)題的matlab源代碼,求解結(jié)果粘貼,并對(duì)結(jié)果分析。
(1):matlab代碼
f=[3;2;1];
A=[1 1 1;-1 0 1;0 -1 1];
b=[6;-4;-3];
lb=[0;0;0];
[x,z]=linprog(f,A,b,[],[],lb,[])
運(yùn)行結(jié)果如下:
Linprog stopped because
no point satisfies the constraints.
(2):matlab代碼
f=[-2;-2];
A=[-1 1;-0.5 1];
b=[1;2];
lb=[0;0];
[x,z]=linprog(f,A,b,[],[],lb,[])
運(yùn)行結(jié)果如下:
Problem is unbounded.
(3):matlab代碼
f=[1;-2];
A=[-1 -1;1 -1;0 1];
b=[-2;-1;3];
lb=[0;0];
[x,z]=linprog(f,A,b,[],[],lb,[])
運(yùn)行結(jié)果如下:
Optimal solution found.
x =
0
3
z =
-6
(4):matlab代碼
f=[-1;-2;0;0;0];
Aeq=[1 0 1 0 0;0 1 0 1 0;1
2 0 0 1];
beq=[4;3;8];
lb=[0;0;0;0;0];
[x,z]=linprog(f,[],[],Aeq,beq,lb,[])
運(yùn)行結(jié)果如下:
Optimal solution found.
x =
4.0000
2.0000
0
1.0000
0
z =
-8
3、(任務(wù)分配問(wèn)題)某車(chē)間有甲、乙兩臺(tái)機(jī)床,可用于加工三種工件。假定這兩臺(tái)車(chē)床的可用臺(tái)時(shí)數(shù)分別為800和900,三種工件的數(shù)量分別為400、600和500,且已知用三種不同車(chē)床加工單位數(shù)量不同工件所需的臺(tái)時(shí)數(shù)和加工費(fèi)用如下表。
生產(chǎn)的工件3的件數(shù)為 (件),設(shè)乙生產(chǎn)的工件1的件數(shù)為(件),生產(chǎn)的工件2的件數(shù)為 (件),生產(chǎn)的工件3的件數(shù)為(件),設(shè)加工費(fèi)用為W(元)。
(2)試選一數(shù)學(xué)軟件計(jì)算上述模型,并給出程序源代碼和計(jì)算結(jié)果報(bào)告。
解: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];
LB=[0 0 0 0 0 0];
[x,fval,exitflag]=linprog(f,A,b,Aeq,beq,LB)
運(yùn)行結(jié)果:
Optimization
terminated.
x =
0.0000
600.0000
0.0000
400.0000
0.0000
500.0000
val =.3800e+04];
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];
LB=[0 0 0 0 0 0];
[x,fval,exitflag]=linprog(f,A,b,Aeq,beq,LB)
運(yùn)行結(jié)果:
Optimization
terminated.
x = 0.0000
600.0000
0.0000
400.0000
0.0000
500.0000
val =
1.3800e+04
1
由運(yùn)行結(jié)果得,此線性規(guī)劃有最優(yōu)值13800(元),滿足最優(yōu)解的=0,=600,=0,=400,=0,=500,即在甲機(jī)床上加工的工件2為600件,不加工的工件1和工件2,在乙機(jī)床上加工的工件1為400件,加工的工件3為500件,且不加工工件2時(shí),其加工費(fèi)用最低,為13800元。
總結(jié)