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

upd

parent 709e45a3
No related branches found
No related tags found
No related merge requests found
Manifest-Version: 1.0
Main-Class: Main
......@@ -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));
}
}
......
File deleted
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment