diff --git a/src/Main.java b/src/Main.java index 7dc3b8f462c3d64275254263e5d5748d493cd3b9..8ce48d5accf2744f5c6e98e9ef65dc8cc5375b3e 100644 --- a/src/Main.java +++ b/src/Main.java @@ -78,8 +78,11 @@ public class Main { //System.out.println(Arrays.deepToString(spx.getMatEcart())); // true = phase 1 membres de droite pas admissible | false = phase 2 membres de droite admissible - if (spx.which_phase()) - spx.tabAux(); + int phase = spx.which_phase(); + if (phase != -1) { + spx.tabAux(phase); + spx.printSimplex("Tableau aux"); + } else { spx.pivot(); spx.printSimplex("pivot"); diff --git a/src/Simplex.java b/src/Simplex.java index 2d2b7971bbe76d78e72541f957b572a771e61297..b8c0215743e07dc3ddc2e71f7b5bac455503a71b 100644 --- a/src/Simplex.java +++ b/src/Simplex.java @@ -58,16 +58,22 @@ public class Simplex { * Si b[i] < 0 phase 1 sinon phase 2 * @return true = phase 1 | false = phase 2 */ - boolean which_phase(){ - boolean res = false; + int which_phase(){ + int res = -1; for (int i = 0; i < x; i++) { if(!signe(matEcart[i][y - 1])) - res = true; + res = i; } return res; } - void tabAux() { - + void tabAux(int line) { + // TODO mettre en positif membre de droite + for (int j = 0; j < y; j ++) { + if( matEcart[line][j] != 0.0) { + double res = matEcart[line][j] * -1; + setMatEcartById(res, line, j); + } + } } int getFirstNeg() { diff --git a/src/input.txt b/src/input.txt index 0a54580ac62b754da6210f8cb49b8f356e367311..afe5e0bfc678a40ccf1f84ba4ec34edf3dd5ead4 100644 --- a/src/input.txt +++ b/src/input.txt @@ -1,5 +1,5 @@ -max;8;9; +min;-8;-9; 2;5;<=;12; 50;5;<=;150; 5;50;<=;100; -1;2;<=;-1; \ No newline at end of file +-1;-2;<=;-1; \ No newline at end of file