diff --git a/src/META-INF/MANIFEST.MF b/src/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..37197ef4e8bbaf38fb3c6627bdd1bd4d9555596c --- /dev/null +++ b/src/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: Main + diff --git a/src/Simplex.java b/src/Simplex.java index ef854a44c549a8419e4fbaba2b8beab7c402748b..45607133a6d5de42197548bd0ba3d76aeb8ada5a 100644 --- a/src/Simplex.java +++ b/src/Simplex.java @@ -8,7 +8,7 @@ public class Simplex { private final int ligne; // Ligne private final int colonne; // Colonne private int nbPivot; - private static final double EPSILON = 1E-20; + private static final double EPSILON = 1E-7; private final int nbContraintes; public Matrix getMatEcart() { @@ -21,11 +21,12 @@ public class Simplex { /** * Constructeur du simplex - * @param ligne le nombre de lignes dans le tableau initial - * @param colonne le nombre de colonnes dans le tableau initial + * + * @param ligne le nombre de lignes dans le tableau initial + * @param colonne le nombre de colonnes dans le tableau initial * @param nbSousCondition le nombre de sous condition - * @param nbContraintes le nombre de contraintes - * @param debugging mode de debug + * @param nbContraintes le nombre de contraintes + * @param debugging mode de debug */ public Simplex(int ligne, int colonne, int nbSousCondition, int nbContraintes, boolean debugging) { this.ligne = ligne; @@ -40,7 +41,8 @@ public class Simplex { /** * Crée la matrice d'écart pour le début de la résolution du simplex (transformation du tableau initial en matrice) - * @param eq Equation retournée par le parser + * + * @param eq Equation retournée par le parser * @param nbContraintes nombre de contraintes */ void createSimplex(Equation eq, int nbContraintes) { @@ -56,16 +58,14 @@ public class Simplex { } // Ajout des membres de droites - for (int i = 0; i <= this.ligne - 1; i++) - { + for (int i = 0; i <= this.ligne - 1; i++) { this.matEcart.setData(i, this.colonne - 1, eq.getRightVec().get(i)); } // Ajout de la fonction objective this.matEcart.matrixRealloc(this.matEcart.getLine() + 1, this.matEcart.getCol()); - for (int i = 0; i < nbContraintes; i++) - { + for (int i = 0; i < nbContraintes; i++) { this.matEcart.setData(this.ligne, i, eq.getFuncObj().get(i)); } } @@ -85,6 +85,7 @@ public class Simplex { /** * Phase 1 + * * @return le résultat du pivot */ Matrix tabAux() { @@ -158,6 +159,7 @@ public class Simplex { /** * Sélectionne le premier négatif rencontré sur la ligne de la fonction objective + * * @param mat la matrice * @return la colonne du premier négatif rencontré */ @@ -170,10 +172,11 @@ public class Simplex { /** * Fonction de pivot - * @param mat phase 1 ⇒ tableau auxiliaire | phase 2 => Matrice d'écart + * + * @param mat phase 1 ⇒ tableau auxiliaire | phase 2 => Matrice d'écart * @param phase true => phase 1 | false => phase 2 */ - void pivot(Matrix mat, boolean phase) { + void pivot(Matrix mat, boolean phase) { this.nbPivot += 1; // Ligne du négatif int firstNeg = getFirstNeg(mat); @@ -216,8 +219,9 @@ public class Simplex { /** * Récupérer l'id de la ligne du pivot - * @param mat le tableau auxiliaire - * @param y la colonne où l'on va chercher le pivot + * + * @param mat le tableau auxiliaire + * @param y la colonne où l'on va chercher le pivot * @param phase la phase dans laquelle on se situe * @return l'id de la ligne du pivot */ @@ -256,8 +260,9 @@ public class Simplex { /** * Print les informations des matrices pour le mode débogage + * * @param mat la matrice souhaitée - * @param s le titre + * @param s le titre */ public void printSimplex(Matrix mat, String s) { mat.matrixPrint(s); @@ -265,11 +270,12 @@ public class Simplex { /** * Print du résultat comme dans l'énnoncé - * @param m la matrice + * + * @param m la matrice * @param time le temps de l'exécution */ public void resultPrint(Matrix m, long time) { - if(m == null) { + if (m == null) { System.out.println("Impossible d'écrire une matrice nulle..."); return; } @@ -285,11 +291,13 @@ public class Simplex { System.out.println("-------------------Variables------------------"); System.out.println("Variables:"); for (int i = 0; i < line; i++) { - System.out.format("X[%d]: = %.4f \n", i, m.getData(i, col)); + if (m.getData(i, col) != 0.0) + System.out.format("X[%d]: = %.4f \n", i, m.getData(i, col)); } for (int i = 0; i < col; i++) { - System.out.format("Z_Cstr_%d: = %.4f \n", i, m.getData(line, i)); + if (m.getData(line, i) != 0.0) + System.out.format("Z_Cstr_%d: = %.4f \n", i, m.getData(line, i)); } } diff --git a/tp-math.jar b/tp-math.jar deleted file mode 100644 index df5bebc7c54c1af5f284f0999ea3420dd3883bcf..0000000000000000000000000000000000000000 Binary files a/tp-math.jar and /dev/null differ