2012-09-27 117 views
2

我要解決使用MATLAB 7這個線性規劃(單面)的問題,但它返回MATLAB,線性規劃

退出:這個問題是無界的。

此功能

f = 2(15 s0 + 8s1 + 2576s2 + 744s3 + 427s4 + 8s5) 

應當以這樣的方式,對於每個觀測兩個約束是 滿意

0.1s0 + 0.1s1 + 14.5s2 + 4s3 + 2.4s4 – a0 − a1 − 145a2 − 40a3 − 24a4 ≥ −2.2 

0.1s0 + 0.1s1 + 14.5s2 + 4s3 + 2.4s4 + a0 + a1 + 145a2 + 40a3 + 24a4 ≥ 2.2 

S5a5被最小化是0. I使用

f = [15 8 2576 744 427 8 15 8 2576 744 427 8]; 

b = [-2.2; 2.2]; 

a = [0.1 0.1 14.5 0.4 2.4 0 -1 -1 -145 -40 -24 0 ; 0.1 0.1 14.5 4 2.4 0 1 1 145 40 24 0]; 

[x, fval, exitflag, output, lambda] = linprog(f, a, b) 

解決此問題的正確方法是什麼?

回答

3

由於您將a矩陣中的相應係數設置爲零,因此您沒有將s5a5限制爲實際爲零。因此,他們可以承擔任何價值,而LP是無限的。

要修復,添加等式約束

beq = [0; 0]; 
aeq = [0 0 0 0 0 1 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 1]; 
[x,fval,exitflag,output,lambda] = linprog(f,a,b,aeq,beq) 

或者,只是下降s5a5從LP,因爲他們根本就不貢獻。

+0

謝謝你nneonneo,它的工作原理。但是係數很高! (直覺) – Adam