Solution connue à l`avance

publicité
Solution connue à
l’avance
1.
2.
3.
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
1
0
4
1
0
8
-2
3
1
1
-5
2
0
0
1
0
10
0
Avec la solution correspondante
x1 = 8 , x2 = 26 , x3 = 0 , x4 = 0 , x5 = 0
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
-2*8 + 1*26 – 5*0 + 0*0 + 1*0
=8
= 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
1
-2
0
1
4
-5
1
0
0
1
8
26
*
0
=
0
0
8
10
C’est bien le cas dans cet exemple
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:
1
0
4
1
0
8
-2
1
-5
0
1
10
3
1
2
0
0
0
8
26
0
0
0
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=
1 0
-2 1
3 1
0
0
1
En calculant le déterminant de B, on prouve rapidement que B est une
base (puisque det(B) = 1).
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
0
0
1
0
0
4
3
1
2
0
1
8
26
-13 -5 -1
-50
Projet Matlab – ex–IUT/BTS
2. Présentation de
l’algorithme (1)
I.
II.
Notre algorithme prend en entrée le tableau initial
(sous la forme d’une matrice) ainsi que la solution (un
vecteur colonne).
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.
III. On transforme le tableau initial dans la nouvelle base
IV. 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
1. Comprendre le travail à réaliser
–
–
Sujet non abordé en cours
Recherches personnelles
2. 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
Téléchargement