diff --git a/src/Simplex.java b/src/Simplex.java index cfc6a88d71a0e27f8ef75a5c8255fd59b83dc936..c0c38ea47c86bc3a7f97c062ddbfd8152923f293 100644 --- a/src/Simplex.java +++ b/src/Simplex.java @@ -74,17 +74,23 @@ public class Simplex { this.matEcart.setData(line, j, res); } for (int i = 0; i < this.x; i++) + //tabRes[j] -= Math.abs(this.matEcart.getData(i, j)); tabRes[j] -= this.matEcart.getData(i, j); tabRes[j] -= 1; } + + // -2 car => tabRes[(tabRes.length-1) - (this.nbSousCondition - 1)]; tabRes[tabRes.length - 1] = tabRes[tabRes.length - this.nbSousCondition - 2]; + tabRes[tabRes.length - this.nbSousCondition - 2] = 0; for (int i = 0; i < this.tabAux.getX(); i++) { for (int j = 0; j < this.tabAux.getY(); j++) { if (i < this.matEcart.getX() && j < this.matEcart.getY()) this.tabAux.setData(i, j, this.matEcart.getData(i, j)); + else if (i == this.tabAux.getX() - 1) this.tabAux.setData(i, j, tabRes[j]); - else + + else // membre de droite à la fin du tab this.tabAux.setData(i, j, this.matEcart.getData(i, j - this.matEcart.getX())); } } @@ -146,7 +152,7 @@ public class Simplex { } } } - //mat.matrixPrint("Pivot numéro " + this.nbPivot, 2); + mat.matrixPrint("Pivot numéro " + this.nbPivot, 2); for (int j = 0; j < mat.getY(); j++) if (signe(mat.getData(mat.getX() - 1, j))) { has_neg = true; @@ -160,9 +166,10 @@ public class Simplex { } + // TODO : A REFAIRE POUR SWITCH DE Y AU CAS OU int ligneSortante(Matrix mat, int y) { int id = 0; - while (mat.getData(id, y) <= 0) { + while (!(mat.getData(id, y) > 0)) { id++; } double tmp = mat.getData(id, mat.getY() - 1) / mat.getData(id, y);