2012-09-27 2 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이다 나는

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 행렬의 해당 계수를 0으로 설정 했으므로 s5a5을 실제로 0으로 제한하지 않았습니다. 따라서, 그들은 어떤 가치도 가질 수 있으며, LP는 무제한 적이다. 그들은 전혀 기여하지 않기 때문에 그냥 LP에서 s5a5 드롭,

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) 

또는 :

평등 제약를 추가, 수정합니다.

+0

감사합니다. 작동합니다. 그러나 계수는 높은 방법입니다! (직감) – Adam

관련 문제