Este é um repositório que contém uma implementação do Método Simplex, utilizado em programação linear para resolver problemas de maximização ou minimização de uma função objetivo, sujeito a restrições.
Existem duas formas de utilizar esta implementação: a primeira é através do prompt de comando, utilizando o arquivo MainSimplex.java
, e a segunda é utilizando o aplicativo gráfico, com o arquivo MainSimplexGUI.java
.
Para utilizar a classe Simplex, a tabela (matriz/vetor de duas dimensões) deve estar formatada da seguinte forma:
- A primeira coluna deve ser reservada aos valores de Z;
- A última coluna deve ser reservada para os resultados, tanto da função objetivo (normalmente 0) quanto para as inequações;
- A primeira linha deve conter os valores dos coeficientes da função objetivo;
- O restante dos espaços deve ser reservado para os coeficientes de X e para as variáveis de folga.
Por exemplo, considere o seguinte problema:
Max Z: 4 X1 + 3 X2
s.a. 2 X1 + 1 X2 >= 1000
1 X1 + 1 X2 >= 800
1 X1 >= 400
Neste caso, a matriz deve ser construída da seguinte forma:
float[][] simplexMatrix = {
{ 1, -4, -3, 0, 0, 0, 0},
{ 0, 2, 1, 1, 0, 0, 1000},
{ 0, 1, 1, 0, 1, 0, 800},
{ 0, 1, 0, 0, 0, 1, 400}
};
Agora para implementar no codigo, devemos fazer assim:
Simplex simplex = new Simplex(simplexMatrix);
simplex.solveSimplex();
Caso esteja utilizando a implementação com interface gráfica, utilize o método solveSimplexGUI()
, que retorna uma lista de modificações a serem mostradas na tela.
O programa irá realizar os cálculos necessários e imprimir o passo a passo, juntamente com a resolução final.