Skip to content
Snippets Groups Projects
Commit 2a9c90eb authored by juliano.souzaluz's avatar juliano.souzaluz
Browse files

upd

parent 709e45a3
Branches
No related tags found
No related merge requests found
Manifest-Version: 1.0
Main-Class: Main
...@@ -8,7 +8,7 @@ public class Simplex { ...@@ -8,7 +8,7 @@ public class Simplex {
private final int ligne; // Ligne private final int ligne; // Ligne
private final int colonne; // Colonne private final int colonne; // Colonne
private int nbPivot; private int nbPivot;
private static final double EPSILON = 1E-20; private static final double EPSILON = 1E-7;
private final int nbContraintes; private final int nbContraintes;
public Matrix getMatEcart() { public Matrix getMatEcart() {
...@@ -21,11 +21,12 @@ public class Simplex { ...@@ -21,11 +21,12 @@ public class Simplex {
/** /**
* Constructeur du 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 nbSousCondition le nombre de sous condition
* @param nbContraintes le nombre de contraintes * @param nbContraintes le nombre de contraintes
* @param debugging mode de debug * @param debugging mode de debug
*/ */
public Simplex(int ligne, int colonne, int nbSousCondition, int nbContraintes, boolean debugging) { public Simplex(int ligne, int colonne, int nbSousCondition, int nbContraintes, boolean debugging) {
this.ligne = ligne; this.ligne = ligne;
...@@ -40,7 +41,8 @@ public class Simplex { ...@@ -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) * 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 * @param nbContraintes nombre de contraintes
*/ */
void createSimplex(Equation eq, int nbContraintes) { void createSimplex(Equation eq, int nbContraintes) {
...@@ -56,16 +58,14 @@ public class Simplex { ...@@ -56,16 +58,14 @@ public class Simplex {
} }
// Ajout des membres de droites // 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)); this.matEcart.setData(i, this.colonne - 1, eq.getRightVec().get(i));
} }
// Ajout de la fonction objective // Ajout de la fonction objective
this.matEcart.matrixRealloc(this.matEcart.getLine() + 1, this.matEcart.getCol()); 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)); this.matEcart.setData(this.ligne, i, eq.getFuncObj().get(i));
} }
} }
...@@ -85,6 +85,7 @@ public class Simplex { ...@@ -85,6 +85,7 @@ public class Simplex {
/** /**
* Phase 1 * Phase 1
*
* @return le résultat du pivot * @return le résultat du pivot
*/ */
Matrix tabAux() { Matrix tabAux() {
...@@ -158,6 +159,7 @@ public class Simplex { ...@@ -158,6 +159,7 @@ public class Simplex {
/** /**
* Sélectionne le premier négatif rencontré sur la ligne de la fonction objective * Sélectionne le premier négatif rencontré sur la ligne de la fonction objective
*
* @param mat la matrice * @param mat la matrice
* @return la colonne du premier négatif rencontré * @return la colonne du premier négatif rencontré
*/ */
...@@ -170,10 +172,11 @@ public class Simplex { ...@@ -170,10 +172,11 @@ public class Simplex {
/** /**
* Fonction de pivot * 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 * @param phase true => phase 1 | false => phase 2
*/ */
void pivot(Matrix mat, boolean phase) { void pivot(Matrix mat, boolean phase) {
this.nbPivot += 1; this.nbPivot += 1;
// Ligne du négatif // Ligne du négatif
int firstNeg = getFirstNeg(mat); int firstNeg = getFirstNeg(mat);
...@@ -216,8 +219,9 @@ public class Simplex { ...@@ -216,8 +219,9 @@ public class Simplex {
/** /**
* Récupérer l'id de la ligne du pivot * 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 * @param phase la phase dans laquelle on se situe
* @return l'id de la ligne du pivot * @return l'id de la ligne du pivot
*/ */
...@@ -256,8 +260,9 @@ public class Simplex { ...@@ -256,8 +260,9 @@ public class Simplex {
/** /**
* Print les informations des matrices pour le mode débogage * Print les informations des matrices pour le mode débogage
*
* @param mat la matrice souhaitée * @param mat la matrice souhaitée
* @param s le titre * @param s le titre
*/ */
public void printSimplex(Matrix mat, String s) { public void printSimplex(Matrix mat, String s) {
mat.matrixPrint(s); mat.matrixPrint(s);
...@@ -265,11 +270,12 @@ public class Simplex { ...@@ -265,11 +270,12 @@ public class Simplex {
/** /**
* Print du résultat comme dans l'énnoncé * Print du résultat comme dans l'énnoncé
* @param m la matrice *
* @param m la matrice
* @param time le temps de l'exécution * @param time le temps de l'exécution
*/ */
public void resultPrint(Matrix m, long time) { public void resultPrint(Matrix m, long time) {
if(m == null) { if (m == null) {
System.out.println("Impossible d'écrire une matrice nulle..."); System.out.println("Impossible d'écrire une matrice nulle...");
return; return;
} }
...@@ -285,11 +291,13 @@ public class Simplex { ...@@ -285,11 +291,13 @@ public class Simplex {
System.out.println("-------------------Variables------------------"); System.out.println("-------------------Variables------------------");
System.out.println("Variables:"); System.out.println("Variables:");
for (int i = 0; i < line; i++) { 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++) { 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));
} }
} }
......
File deleted
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment