From abf3190339b1e400f289ff8a030a47d05d7e26a2 Mon Sep 17 00:00:00 2001 From: "thibault.capt" <thibault.capt@etu.hesge.ch> Date: Mon, 12 Dec 2022 14:53:58 +0100 Subject: [PATCH] change sign --- src/Main.java | 7 +++++-- src/Simplex.java | 16 +++++++++++----- src/input.txt | 4 ++-- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/Main.java b/src/Main.java index 7dc3b8f..8ce48d5 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 2d2b797..b8c0215 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 0a54580..afe5e0b 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 -- GitLab