Eu tenho o seguinte LP:
/* Função objetiva */ min: 1 w + 2 x + 0,5 y + z; / * Limites variáveis * / w + x <= T1; w + y = U1; x + z = U2; T1 = 50; U1 = 70; U2 = 25;
Nesse caso, U1 + U2> T1 e a solução ideal é y = 70 e z = 25. Quero impor a condição de que variáveis w e x recebam valores antes de atribuir valores a y e z. Se U1 + U2 <T1, desejo que apenas we ex tenham valores ey = z = 0. Existe uma maneira de impor essa restrição em um LP ou MILP?
linear-programming
Bala
fonte
fonte
Respostas:
Aqui estão as respostas para suas duas perguntas. Os detalhes dependerão de qual solucionador você estiver usando:
O GNU Linear Programming Kit, na verdade, tem uma
if-then-else
construção para expressar condicionais. Procure por "condicional" no manual . Você poderia envolver as cláusulas você estiver interessado em em tal declaração a:if U1 + U2 < T2 then y = 0 and z = 0 else true
. (Observe que eu realmente não tentei isso, então a sintaxe pode estar errada.)fonte