diff --git a/src/Simplex.java b/src/Simplex.java index 1386893722af36dc5f3a0e685a84814cebebbe04..600371f5331844eb546013d82b38188dfe1b980f 100644 --- a/src/Simplex.java +++ b/src/Simplex.java @@ -69,36 +69,41 @@ public class Simplex { void tabAux(int line) { double[] tabRes = new double[this.y + this.nbSousCondition + 1]; Arrays.fill(tabRes, 1.0); - for (int j = 0; j < this.y; j++) { - if (this.matEcart.getData(line, j) != 0.0) { - double res = this.matEcart.getData(line, j) * -1; - this.matEcart.setData(line, j, res); + for (int i = 0; i < this.x; i++) { + for (int j = 0; j < this.y; j++) { + double data = this.matEcart.getData(this.x, j); + if (data < 0) { + System.out.println(data); + } } + } + for (int j = 0; j < this.y; j++) { double tmpSum = 0; for (int i = 0; i < this.x; i++) { tmpSum += -1 * this.matEcart.getData(i, j); } tabRes[j] = tmpSum; } - System.out.println(); + // -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()) + 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) + } else if (i == this.tabAux.getX() - 1) { this.tabAux.setData(i, j, tabRes[j]); - - else // membre de droite à la fin du tab + } else // membre de droite à la fin du tab + { this.tabAux.setData(i, j, this.matEcart.getData(i, j - this.matEcart.getX())); + } } + System.out.println(); } this.tabAux.printTabAux("Tableau auxiliaire", this.nbContraintes, this.nbSousCondition, this.tabAux.getY() - this.matEcart.getY() - 1); - pivot(this.tabAux); + //pivot(this.tabAux); double solutionOptimale = this.tabAux.getData(this.tabAux.getX() - 1, this.tabAux.getY() - 1); if (solutionOptimale > 0 + EPSILON) { System.out.println("Il n'y a pas de solutions admissibles pour ce problème."); @@ -110,7 +115,7 @@ public class Simplex { res.matrixFill(res.getX(), res.getY(), tabAux.getDatas()); res.matrixPrint("Petit tableau", 2); nbPivot = 0; - pivot(res); + //pivot(res); res.matrixPrint("Résultat ", 3); System.out.println("Nombre de pivot : " + nbPivot); }