Simplex em java
public class simplex {
public static double [] z = {-4,-5,-9,-11,0,0,0,0};
public static double [][] f = {{1,1,1,1,1,0,0,15},{7,5,3,2,0,1,0,120},{3,5,10,15,0,0,1,100}};
public static void main(String[] args) {
// for(int i = 1; i < 5 ; i++){
executaSimplex(z,f); //}
}
public static void executaSimplex(double[]z,double[][]f){
//CALCULA MAIOR COEFIECIENTE NEGATIVO
int coluna = 0; int i; double maior = z[0]; maior = Math.abs(maior);
for(i = 1; i < z.length -1; i++){
if (z[i] < 0){ if(maior < Math.abs(z[i])){ maior = Math.abs(z[i]); coluna = i; } } }
System.out.println("##############################################"); System.out.println(String.valueOf("Maior Z:"+maior+" Coluna:"+coluna));
// OBTEM VALORES DA COLUNA PIVO
double x0 = 0; double x1 = 0; double x2 = 0; double menor = 10000; int linhaMenor = 0; int colunaMenor = 0;
for (int n=0; n < f.length; n++){
x0 = f[n][7]; x1 = f[n][coluna];
if (x1 > 0 ){ x2 = x0 / x1; }
System.out.println("Constante:"+String.valueOf(x0)); System.out.println("Elemento coluna pivo:"+String.valueOf(x1)); System.out.println("Resultado:"+String.valueOf(x2));
if (x2 != 0){
if(x2 < menor){ menor = x2; linhaMenor = n; colunaMenor = coluna; } } }
System.out.println("MENOR DIVISAO:"+String.valueOf(menor)); System.out.println("LINHA MENOR ELEM. DIVISAO (LINHA PIVO):"+String.valueOf(linhaMenor));
// ELEMENTO PIVO
double pivo = f[linhaMenor][colunaMenor];
System.out.println("ELEMENTO PIVO:"+String.valueOf(pivo));
//NOVA LINHA PIVO
for (int n=0; n < 7 + 1; n++){
f[linhaMenor][n] = f[linhaMenor][n] / pivo;
double