Solution connue à l’avance Explications à l’aide d’un exemple Présentation de l’algorithme Difficultés rencontrées Projet Matlab – ex–IUT/BTS
1. Explications à l’aide d’un exemple (1) L’utilisateur entre le PL suivant: Max z = 3x1 + x2 + 2x3 x1 + 4x3 ≤ 8 -2x1+ x2 -5x3 ≤ 10 x1 , x2 , x3 ≥ 0 Avec la solution suivante: x1 = 8 , x2 = 26 , x3 = 0 Projet Matlab – ex–IUT/BTS
1. Explications à l’aide d’un exemple (2) On nous envoie le PL sous forme standard Avec la solution correspondante x1 = 8 , x2 = 26 , x3 = 0 , x4 = 0 , x5 = 0 1 4 8 -2 -5 10 3 2 Projet Matlab – ex–IUT/BTS
1. Explications à l’aide d’un exemple (3) On vérifie si c’est une solution admissible 1*8 + 0*26 + 4*0 + 1*0 + 0*0 = 8 -2*8 + 1*26 – 5*0 + 0*0 + 1*0 = 10 C’est bien le cas dans cet exemple Projet Matlab – ex–IUT/BTS
1. Explications à l’aide d’un exemple (3) On vérifie si c’est une solution admissible * = C’est bien le cas dans cet exemple 8 26 1 4 -2 -5 8 10 Projet Matlab – ex–IUT/BTS
1. Explications à l’aide d’un exemple (4) On vérifie ensuite si c’est une solution de base On remarque que la nombre de variables positives (dans la solution) est égale au nombre de contraintes. On peut donc rapidement trouver une matrice B: 8 26 1 4 8 -2 -5 10 3 2 Projet Matlab – ex–IUT/BTS
1. Explications à l’aide d’un exemple (4) On vérifie ensuite si c’est une solution de base On remarque que la nombre de variables positives (dans la solution) est égale au nombre de contraintes. On peut donc rapidement trouver une matrice B: B = En calculant le déterminant de B, on prouve rapidement que B est une base (puisque det(B) = 1). 1 -2 3 Projet Matlab – ex–IUT/BTS
1. Explications à l’aide d’un exemple (5) Ensuite il ne reste plus qu’à transformer le tableau dans la nouvelle base en multipliant le PL initial standard par la matrice inverse de B. Dans notre exemple, on peut remarquer que l’on est déjà à l’optimum. 1 4 8 3 2 26 -13 -5 -1 -50 Projet Matlab – ex–IUT/BTS
2. Présentation de l’algorithme (1) Notre algorithme prend en entrée le tableau initial (sous la forme d’une matrice) ainsi que la solution (un vecteur colonne). I. On vérifie que la solution vérifie bien les contraintes. (Si c’est le cas on continue, sinon on revoie un Etat à o) On regarde si le nombre de variables positives dans la solution est égale au nombre de contraintes. A. Si c’est le cas, on peut rapidement trouver si la solution est bien une solution de base. Projet Matlab – ex–IUT/BTS
2. Présentation de l’algorithme (2) B. Si le nombre de variables positives est inférieur au nombre de contraintes, alors il faut que l’on recherche si il existe une base. Si ce n’est pas le cas, on arrête l’algorithme, et on renvoie un Etat à 0. On transforme le tableau initial dans la nouvelle base On renvoie un Etat à 1, le nouveau tableau dans la nouvelle base, ainsi que les indices des colonnes correspondants à la nouvelle base. Projet Matlab – ex–IUT/BTS
3. Difficultés rencontrées Comprendre le travail à réaliser Sujet non abordé en cours Recherches personnelles Rechercher une base dans une matrice (codage) Chercher toutes les possibilités possibles Optimiser le temps d’exécution de la recherche Plus de détails dans la partie de Damien… Projet Matlab – ex–IUT/BTS