Olá…
preciso fazer um programa em java usando o método simplex, mas não faço a mínima idéia de como
fazer.
Alguém poderia me ajudar???
Por favor!!!
Segue o meu probleminha… :lol:
Resolver z(max)= 5x1 + 2 x2
Restrições: x1 < = 3
x2 < = 4
x1 + 2x2 < = 9 x1 e x2 >=0
Método Simplex
Passos:
-
Transformar as inequações em equações, acrescentando as variáveis de folga
Z - 5x1 - 2x2 = 0
x1 + x3 = 3
x2 + x4 = 4
x1 + 2x2 + x5 = 9 -
Montar o quadro
Primeira matriz
max z x1 x2 x3 x4 x5 Resultado
z 1 -5 -2 0 0 0 0
x3 0 1 0 1 0 0 3
x4 0 0 1 0 1 0 4
x5 0 1 2 0 0 1 9
Resposta inicial: z=0 x1 = 0 x2 = 0 x3 = 3 x4 = 4 x5 = 9
- Na função principal (z) determinar a coluna com o menor valor negativo ( Se não tiver o processo está encerrado.
- Guarda a linha que terá o menor valor não negativo, do valor obtido da divisão de todas as linhas (Coluna resultado dividido pelo valor correspondente da linha na coluna determinada pelo passo anterior)
- A linha e a coluna escolhida determinará nessa posição o elemento pivô que de verá ficar valendo = a 1 (se precisar, divida a linha toda por um valor correspondente para que isso ocorra)
- Os demais elementos da coluna do elemento pivo (de todas as linhas inclusive da função principal, se tornarão iguais a zero) isto deverá ser feito através de combinação linear entre as linhas.
- Fazer trocas de variáveis soluções na primeira coluna
- Voltar ao passo 1
Exemplo de uma combinação linear:
Multiplicar a lina 3 da primeira matriz por (-1) e somar o resultado do produto com a linha 2 da mesma matriz.
2ª. matriz
max z x1 x2 x3 x4 x5 Resultado
z 1 0 -2 0 0 0 15
x1 0 1 0 1 0 0 3
x4 0 0 1 0 1 0 4
x5 0 0 2 -1 0 1 6
Resposta neste quadro: z=15 x1 = 3 x2 = 0 x3 = 0 x4 = 4 x5 = 6
matriz final
max z x1 x2 x3 x4 x5 Resultado
z 1 0 0 4 0 1 21
x1 0 1 0 1 0 0 3
x4 0 0 0 0.5 1 -0.5 1
x2 0 0 1 -0.5 0 0.5 3
Resposta final: z=21 x1 = 3 x2 = 3 x3 = 0 x4 = 1 x5 = 0