Vous êtes sur la page 1sur 11

F.

GALASSO 13/06/2018

Plan du cours
• La programmation linéaire c’est quoi et ça sert à
quoi ?
• Éléments de modélisation
• Méthode graphique
• Résolution algébrique
Éléments de
• Algorithme du simplexe modélisation
• Dualité Résolution algébrique : un moyen de généraliser
• Extensions à différents problèmes

F. Galasso 38 F. Galasso 39

Fondements théoriques Remarques


• Forme canonique (déjà vue) • est la différence entre les deux membres de
• Contraintes et fonction objectifs exprimées en fonction des :
l’inéquation sous la forme canonique
• On peut mettre ce programme sur ordinateur MAIS, on
• (1..n variables), des coefficients , (1..m contraintes) et crée m variables supplémentaires  problème plus
des seconds membres , , des coefficients (objectif) complexe
• Forme standard • Il suffit de résoudre un système d’équations linéaire
(pivot de gauss ?)
• On introduit m variables d’écarts (aussi dites variables
artificielles) • Mais le pivot de Gauss est un peu bête comme
méthode
• Les contraintes sont transformées en égalité
, + , + ⋯+ , ≤ ⇔ • Comment rendre la recherche de solution plus
+ , +⋯+ , + =
intelligente ?
,
≥0
 S’appuyer sur les raisonnements géométriques

F. Galasso 40 F. Galasso 41

Parcours des sommets voisins Notion de convexité


• On part d’une solution réalisable initiale  souvent • Polyèdre convexe si le segment formé par deux
x2 l’origine points A et B du polyèdre est contenu dans le
1000

900
Quand est-ce polyèdre
1. On calcule la qu’on s’arrête ?
valeur de Convexe Pas Convexe Optimum global
700 x2 x2
l’objectif
Optimum local
500
B
2. Optimisation
A B
locale 300 A

100

x1 x1
100 300 500 700 900 1000 x1

F. Galasso 42 F. Galasso 43

3IL - 2017-2018 1
F. GALASSO 13/06/2018

Parcours des sommets voisins Sens de parcours


• On part d’une solution réalisable initiale  souvent • On cherche à augmenter z (objectif) en se donnant
x2 l’origine les bons choix de parcours
1000

900
Quand est-ce • Ce sont les critères de Dantzig (1947)
1. On calcule la qu’on s’arrête ?
valeur de 700
• 1er critère : choisir la variable qui a le coefficient
l’objectif positif le plus fort dans l’expression de z
Dans quel sens
500
parcourir le  variable entrante
2. Optimisation
locale 300 polyèdre ? • 2ème critère : Choisir la variable qui est dans la
contrainte où la variable entrante est le plus faible
100
 variable sortante
100 300 500 700 900 1000 x1

F. Galasso 44 F. Galasso 45

Plan du cours
• La programmation linéaire c’est quoi et ça sert à
quoi ?
• Éléments de modélisation
• Algorithme du simplexe
• Présentation de l’algorithme
• Méthodes des tableaux Algorithme du Simplexe
• Cas général LA méthode à la base de tout (enfin, en PL et PLNE…)
• Dualité
• Extensions à différents problèmes

F. Galasso 46 F. Galasso 47

Algorithme du simplexe Algorithme du simplexe


• Méthode algébrique • Notion de base :
• Initialisation • On appelle base toute sous-matrice carrée régulière
(det(M)≠0) de A
• Itérations : • Il en existe au moins une puisque rang(A) = m
• S’il existe des sommets voisins qui améliorent le critère,
alors en choisir un • Exemple :
• Sinon : arrêt, optimum atteint x1  2 x2  3x3  4 x4  5 x5  x6 2 1 2 3  1 0 0 
• [Bonus : détection des cas non bornés] 2 x1  5 x2  4 x3  3x4  x5  x7 4  2 5 4 ou 0 1 0
x1  3x2  4 x3  2 x4  5 x5  x8  2 1 3 4 0 0 1
MAX Z  5 x1  3 x2  4 x3  2 x4  5 x5
 On peut exprimer A sous la forme A = [B,N] Ou N désigne les colonnes
qui ne sont pas dans la base.
 Dans le 2e cas, une solution est x1 à x5 = 0
F. Galasso 48 F. Galasso 49

3IL - 2017-2018 2
F. GALASSO 13/06/2018

Comment choisir un sommet


Intérêt nouvelle formulation
voisin ?
• L’algorithme teste uniquement une direction de • e = var. d’écart
descente possible • z - tcx = 0 et Ax + e = b : système linéaire
• On réécrit : maximiser tcx • n variables nulles définissent un unique sommet
s.c. Ax ≤ b • Ces var. nulles = var. hors-base
Inégalités • Les autres var. = var. de base
x≥0
• Comme : maximiser z • « Dictionnaire » : toute variable de base peut être
exprimée en fonction de variables hors-base
s.c. z - tcx = 0 • Les variables hors-base « expliquent » les variables de
Ax + e = b Egalités base
x, e ≥ 0 • Solution d’un système linéaire de plein rang

50 51

Choix d’une direction de descente Entrées et sorties de la base


• Sommet défini par une partition base/hors-base
• Variable entrante : en fonction des coeffs de
• Sommet voisin = autre partition, avec n-1 var. hors- l’expression de z (en général : plus grand coeff
base communes positif)
• Un sommet améliore-t-il l’objectif ? • Sortir dans la base : la première variable de base à
• Réécrire z - tcx = 0 en fonction des var hors-base devenir nulle lorsque la valeur de la variable
• On obtient z – tc’x’ = constante = valeur de l’objectif sur le entrante augmente
sommet correspondant (x’ = x « + » e)
• S’il existe des variables telles que le coeff. de c’ est • On injecte x, e ≥ 0 dans le système Ax + e = b
strictement positif, alors ce sont de bonnes candidates à • Donne des bornes sup. sur la valeur de la var. entrante
entrer dans la base… (variables toutes positives !) • Plus petite borne sup. : définit var. sortante

c’ = « coût réduit » 52 53

Un exemple détaillé* Un exemple détaillé


x2
Maximiser 3x1+5x2 Maximiser 3x1+5x2
sous les contraintes: s.c.
x1 ≤4 x1 ≤4
2x2 ≤ 12 2x2 ≤ 12
3x1+2x2 ≤ 18 3x1+2x2 ≤ 18
x1, x2 ≥ 0 x1, x2 ≥ 0

x1

*Source : cours J. Moncel. IMT Albi-Carmaux


54 55

3IL - 2017-2018 3
F. GALASSO 13/06/2018

Un exemple détaillé : réécriture Solution initiale x1=x2=0


x2 x2
Maximiser z
Maximiser z
s.c.
s.c.
z - 3x1 - 5x2 =0
z - 3x1 - 5x2 =0
x1 + e1 = 4
x1 + e1 = 4
2x2 + e2 = 12
2x2 + e2 = 12
3x1+2x2 + e3 = 18
3x1+2x2 + e3 = 18
x1, x2, e1, e2, e3 ≥ 0
x1, x2, e1, e2, e3 ≥ 0
x1 x1
x1=x2=0  e1=4, e2=12, e3=18
 J’introduis les variables d’écart
56 57
Hors base Base

Entrer x2 dans la base Jusqu’où peut aller x2 ?


x2 x2
Maximiser z Maximiser z
s.c. s.c.
z - 3x1 - 5x2 =0 z - 3x1 - 5x2 =0
x1 + e1 = 4 x1 + e1 = 4
2x2 + e2 = 12 2x2 + e2 = 12
3x1+2x2 + e3 = 18 3x1+2x2 + e3 = 18
x1, x2, e1, e2, e3 ≥ 0 x1, x2, e1, e2, e3 ≥ 0
x1 x1

 Je choisis la variable au plus fort coefficient dans la fonction économique


58 59

Jusqu’où peut aller x2 ? Nouvelle base, nouveau sommet


x2
Maximiser z Maximiser z
s.c. s.c.
z - 3x1 - 5x2 =0 z - 3x1 - 5x2 =0
x1 + e1 = 4  pas de contrainte sur x2 x1 + e1 = 4
2x2 + e2 = 12  x2 = 6 - e2/2 ≤6 2x2 + e2 = 12
3x1+2x2 + e3 = 18  x2 = 9 - e3/2 - 3x1/2 ≤ 9 3x1+2x2 + e3 = 18
x1, x2, e1, e2, e3 ≥ 0 x1, x2, e1, e2, e3 ≥ 0

Donc on peut aller jusqu’à x2=6, soit e2=0 : e2 sort de la x1

base x1=e2=0  e1=4, x2=6, e3=6


60 61

3IL - 2017-2018 4
F. GALASSO 13/06/2018

Réécriture fonction-objectif Nouvelle itération


x2 x2
Maximiser z Maximiser z
s.c. s.c.
z - 3x1 + 5e2/2 = 30 z - 3x1 + 5e2/2 = 30
x1 + e1 = 4 x1 + e1 = 4
2x2 + e2 = 12 2x2 + e2 = 12
3x1+2x2 + e3 = 18 3x1+2x2 + e3 = 18
x1, x2, e1, e2, e3 ≥ 0 x1, x2, e1, e2, e3 ≥ 0
x1 x1
x1 va entrer dans la base, et e3 en sortir
62 63

Critère d’arrêt Algorithme du simplexe : exemple


x2
Maximiser z
• Soit le programme linéaire suivant :
s.c.
z +e3 + 3e2/2 = 36 x1  1000 1ère phase
On transforme inéquations en équations grâce
x1 + e1 = 4 x2  500 aux variables d’écart
x3  1500 x1  x4  1000
2x2 + e2 = 12
3x1  6 x2  2 x3  6750 x2  x5  500
3x1+2x2 + e3 = 18
x1 , x2 , x3  0 x3  x6  1500
x1, x2, e1, e2, e3 ≥ 0 MAX Z  4 x1  12 x2  3x3 3 x1  6 x2  2 x3  x7  6750
x1 MAX Z  4 x1  12 x2  3x3
Aucune direction de descente n’améliore l’objectif :
optimum local (càd optimum global)
64 F. Galasso 65

Algorithme du simplexe : exemple Algorithme du simplexe : exemple


• 2ème phase : recherche d’une solution de base • 3ème phase : amélioration de la solution de base
• Une solution de base doit comprendre : • Changement de base 1ère itération
• m variables positives (m : nombre de contraintes) variables de base • Sélection de la variable entrante : quelle variable a le plus
• n variables nulles (n variables hors base) fort coefficient dans la fonction économique ?
• On peut écrire notre problème sous forme simpliciale MAX Z  4 x1  12 x2  3x3 C' est bien x2 avec le coefficient de 12
A=(A, I) I étant la matrice identité • Sélection de la variable sortante parmi x4 ; x5 ; x6 ; x7
1 0 0 1 0 0

0

 1000 
 
 x4   1000  • Exprimons les variables de bases à partir des variables hors
   
0 1 0 0 1 0 0  500   x5   500  base :
A  b  xB  B 1b  b soit xb      x4  0 OK : pas de modif liée à x2
0 0 1 0 0 1 0 1500 x6 1500  x4  1000  x1 Jusqu’à combien peut-
        on faire augmenter x2 ? x5  0  x2  500
3 6 2 0 0 0 1   6750   x   6750  x5  500  x2
    7   x6  0 OK : pas de modif liée à x2
hors base base x6  1500  x3  Une des variables de
6750
D' où la solution de base : x4  1000; x5  500; x6  1500; x7  6750 et x1  0; x2  0; x3  0 x7  6750  3x1  6 x2  2 x3 base s’annule x7  0  x 2   1125
6
F. Galasso 66 F. Galasso 67

3IL - 2017-2018 5
F. GALASSO 13/06/2018

Algorithme du simplexe : exemple Algorithme du simplexe : exemple


• On prend le minimum des valeurs trouvées • Nouvelles valeurs des variables :
• Pourquoi ? si on augmente au-delà du minimum une x4  1000  x1 x4  1000
variable devient négative (ici x5 ) x5  500  x2 x2  500

x4  0 OK : pas de modif liée à x2 x6  1500  x3 x6  1500
x5  0  x2  500 x7  6750  3 x1  6 x2  2 x3 x7  6750  6  500  3750
x6  0 OK : pas de modif liée à x2 • On exprime la fonction économique en fonction
6750
x7  0  x2 
6
 1125 des variables hors base
• x5 devient la variable sortante MAX Z  4 x1  12 x2  3x3  4 x1  12(500  x5 )  3 x3
• La nouvelle base est x4 ; x2 ; x6 ; x7  4 x1  12 x5  3x3  6000
• Maintenant que x2 = 500 quelles sont les nouvelles valeurs • Et on recommence !
des variables de base ? (et qu’on a annulé x5)

F. Galasso 68 F. Galasso 69

Algorithme du simplexe : exemple Algorithme du simplexe : exemple


• 3ème phase : 2ème itération • On prend le minimum des valeurs trouvées
• Sélection de la variable entrante : quelle variable a le plus • Pourquoi ? si on augmente au-delà du minimum une
fort coefficient dans la nouvelle fonction économique ? variable devient négative (ici x4 )
MAX Z  4 x1  12 x5  3x3  6000 x4  0  x1  1000
x2  0 OK : pas de modif liée à x1
• Sélection de la variable sortante parmi x4 ; x2 ; x6 ; x7
x6  0 OK : pas de modif liée à x1
• Exprimons les variables de bases à partir des variables hors 3750
base : x7  0  x1 
3
 1250

x4  1000  x1 x4  0  x1  1000 • x4 devient la variable sortante


Jusqu’à combien peut-
x2  500  x5
on faire augmenter x1 ? x2  0 OK : pas de modif liée à x1
• La nouvelle base est x1 ; x2 ; x6 ; x7
x6  1500  x3 x6  0 OK : pas de modif liée à x1 • Maintenant que x1 = 1000 quelles sont les nouvelles valeurs
 Une des variables de des variables de base ? (et qu’on a annulé x4 et x5)
x7  6750  3 x1  6(500  x5 )  2 x3 base s’annule 3750
x7  0  x1   1250
x7  3750  3 x1  6 x5  2 x3 3
F. Galasso 70 F. Galasso 71

Algorithme du simplexe : exemple Algorithme du simplexe : exemple


• Nouvelles valeurs des variables : • 3ème phase : 3ème itération
x4  1000  x1 x1  1000 • Sélection de la variable entrante : quelle variable a le plus
x5  500  x2

x2  500 fort coefficient dans la nouvelle fonction économique ?
x6  1500  x3 x6  1500 MAX Z  4 x4  12 x5  3x3  10000
x7  3750  3(1000  x4 )  6 x5  2 x3 x7  3750  3 1000  750 • Sélection de la variable sortante parmi x1 ; x2 ; x6 ; x7
• On exprime la fonction économique en fonction • Exprimons les variables de bases à partir des variables hors
des variables hors base base :
MAX Z  4 x1  12 x5  3x3  6000  4(1000  x4 )  12 x5  3 x3  6000 x1  0 OK : pas de modif liée à x3
x1  1000  x4 Jusqu’à combien peut-
 4 x4  12 x5  3x3  10000
x2  500  x5 on faire augmenter x1 ? x2  0 OK : pas de modif liée à x3
• Et on recommence ! x6  1500  x3  Une des variables de
x6  0  x3  1500
750
x7  750  3x4  6 x5  2 x3 base s’annule x7  0  x3   375
2
F. Galasso 72 F. Galasso 73

3IL - 2017-2018 6
F. GALASSO 13/06/2018

Algorithme du simplexe : exemple Algorithme du simplexe : exemple


• On prend le minimum des valeurs trouvées • Nouvelles valeurs des variables :
• Pourquoi ? si on augmente au-delà du minimum une x4  1000  x1 x1  1000
variable devient négative (ici x7 ) x5  500  x2 x2  500
x1  0 OK : pas de modif liée à x3 
x6  1500  x3 x6  1125 x3  375
x2  0 OK : pas de modif liée à x3 x7  750  3x4  6 x5  2 x3 x7  0
x6  0  x3  1500 • On exprime la fonction économique en fonction des
x7  0  x3 
750
 375 variables hors base
2
MAX Z   4 x4  12 x5  3x3  10000
• x7 devient la variable sortante   4 x4  12 x5  3(375  3 / 2 x4  3 x5  1 / 2 x7 )  10000
• La nouvelle base est x1 ; x2 ; x3 ; x6
• Maintenant que x3 = 375 quelles sont les nouvelles valeurs  1/ 2 x4  3 x5  3 / 2 x7  11125
des variables de base ? (et qu’on a annulé x4 et x5 et x7) • Et on recommence !
F. Galasso 74 F. Galasso 75

Algorithme du simplexe : exemple Algorithme du simplexe : exemple


• 3ème phase : 4ème itération • On prend le minimum des valeurs trouvées
• Sélection de la variable entrante : quelle variable a le plus • Pourquoi ? si on augmente au-delà du minimum une
fort coefficient dans la nouvelle fonction économique ? variable devient négative (ici x6 )
MAX Z  1/ 2 x4  3x5  3 / 2 x7  11125 x1  0  x4  1000
x2  0 OK : pas de modif liée à x4
• Sélection de la variable sortante parmi x1 ; x2 ; x3 ; x6
x6  0  x4  750
• Exprimons les variables de bases à partir des variables hors
x3  0  x4 vérifié
base :
Jusqu’à combien peut-
x1  0  x4  1000
• x6 devient la variable sortante
x1  1000  x4 on faire augmenter x4 ?
x2  0 OK : pas de modif liée à x4
• La nouvelle base est x1 ; x2 ; x3 ; x4
x2  500  x5
 Une des variables de
x6  0  x4  750
• Maintenant que x4 = 750 quelles sont les nouvelles valeurs
x6  1125  3 / 2 x4  3x5  1 / 2 x7 base s’annule des variables de base ? (et qu’on a annulé x5 et x6 et x7)
x3  375  3 / 2 x4  3x5  1 / 2 x7 x3  0  x4 vérifié
F. Galasso 76 F. Galasso 77

Algorithme du simplexe : exemple Algorithme du simplexe : exemple


• Nouvelles valeurs des variables : • Il ne reste plus de coefficient positif sur l’objectif
x4  1000  x1 x1  250
x5  500  x2 x2  500 MAX Z   4 x5  1 / 3x5  4 / 3x7  11500

x6  1500  x3 x3  1500
x7  750  3 x4  6 x5  2 x3 x4  750  Faire entrer une nouvelle variable de base ne
• On exprime la fonction économique en fonction des permettrait pas de l’améliorer
variables hors base • La solution est : x1  250
MAX Z  1/ 2 x4  3x5  3 / 2 x7  11125 x2  500
 1/2 * 2/3(1125  3x5  x6  1 / 2 x7 )  3x5  3 / 2 x7  11125 x3  1500
  4 x5  1 / 3x5  4 / 3x7  11500 • Le profit Max est Z = 11500, la solution est optimale
• Et on S’ARRÊTE !!!!!!! • Vérification : Z  4 x1  12 x2  3x3  4  250  12  500  3 1500  11500
F. Galasso 78 F. Galasso 79

3IL - 2017-2018 7
F. GALASSO 13/06/2018

Algorithme du simplexe : exemple Plan du cours


• D’où ma question : • La programmation linéaire c’est quoi et ça sert à
quoi ?
Est-ce que c’est simple ??? • Éléments de modélisation
• Algorithme du simplexe
• Présentation de l’algorithme
• Non : compliqué à faire à la main, long, source • Méthodes des tableaux
d’erreur même sur des petits exemples • Cas général
• Dualité
 D’autres méthodes pour faciliter la résolution • Extensions à différents problèmes

F. Galasso 80 F. Galasso 81

La méthode des tableaux


Quotient du
2nd membre
• Méthode précédente trop complexe par le coeff. de
la même ligne
• Standardisation du format des tableaux :
Modèle Variables réelles Variables d'écart Second
membres
x1 x2 x3 x' 1 x' 2 x' 3 x' 4 Q

Algorithme du Simplexe Variables


de la base
x' 1
x' 2
x' 3
x' 4
Plus sympa avec des tableaux
z

Cellule
contenant -z

F. Galasso 82 F. Galasso 83

La méthode des tableaux : La méthode des tableaux :


explications principes
• Chaque case contient le coefficient de la variable 1. Chercher le coeff le plus fort de la ligne z qui
• écriture simplifiée (plus de x1, x2 etc.) donne la variable entrante (1er critère de Dantzig)
• la ligne z contient les coeff. de la fonction éco 2. Calculer les quotients Q dont la plus petite valeur
positive (ou nulle) sélectionne la variable sortante
• La dernière case contient « -z » (2ème critère obligatoire !)
• la colonne Q contient le quotient du second 3. l’intersection de la ligne et de la colonne
membre de la ligne par le coefficient de la même sélectionnées donne le pivot
ligne, de la colonne de la variable entrante 4. Appliquer la méthode du pivot
• Principe du pivot de gauss Modèle

x1
Variables réelles

x2 x3 x' 1
Variables d'écart

x' 2 x' 3 x' 4


Second
membres
Q
5. On arrête lorsque tous les coefficients de z sont
x' 1

• Forme standard
Variables
de la base
x' 2
x' 3
x' 4
négatifs ou nuls
z

F. Galasso 84 F. Galasso 85

3IL - 2017-2018 8
F. GALASSO 13/06/2018

Méthode du pivot Méthode du pivot


• Diviser toute la ligne du pivot par le pivot • Propriétés des systèmes linéaires :
• juste les contraintes, pas la colonne Q
• Remplacer chacune des autres lignes par : {elle-même ± • Li a Li : on peut multiplier (ou diviser) une ligne
un multiple de la ligne du pivot}
• De manière à annuler les éléments de la colonne du pivot • Diviser par le coefficient du pivot
• Le pivot devient égal à 1 et est seul sur sa colonne
• Dans la case des variables de base, on remplace le nom • Li Li – b Lj : on peut ajouter (ou soustraire) une ligne
de la variable sortante par celui de la variable entrante (celle du pivot) à une autre (toutes les autres)
• On recommence autant que nécessaire (étape 5), la
valeur de –z et dans la case en bas à droite • On peut intervertir deux lignes et/ou deux colonnes

F. Galasso 86 F. Galasso 87

Méthode des tableaux :


Méthode du pivot par l’exemple
vérifications
On choisit la 1ère variable
2 x1  4 x2  12 dans la 1ère colonne  x1  2 x2  6
 L1 L1/2  • Que ce soit à la main ou sous Excel, il vaut mieux
4 x1  x2  8 4 x1  x2  8 vérifier que les contraintes sont toujours bien
x  2x  6 respectées : on ajoute une ligne
On annule les coefficients  1 2
 x1  2 x2  6 dans la colonne du pivot 4 x1  4 x1  x2  8 x2  8  24
 x1 x2 x3 x' 1 x' 2 x' 3 x' 4 z C1 C2 C3 C4

4 x1  x2  8 L2 L2 – 4 × L1 0 x  7 x  16
 1 2

 x1  2 x2  6 De même :  x1  0 x1  2 x2  2 x2  6  32 / 7 • Sous Excel, il suffit d’introduire les formules initiales


 L2L2/(-7) 
0 x1  7 x2  16 L1 L1 – 2 × L2
 x1  0 x2  10 / 7 dans les cases correspondantes
0 x  x  16 / 7
 1 2 • Sous Excel, les copier/coller permettent d’éviter de
• On crée un tableau dans Excel à chaque étape réécrire les formules

F. Galasso 88 F. Galasso 89

Méthodes des tableaux :


Méthode des tableaux : exemple
exemple*
• Création du tableau
1ère phase MAX Z  30 x1  10 x2  0 x3  0 x4  0 x5
On transforme inéquations en équations grâce C1 :  x1  x2  x3  6
aux variables d’écart
C 2 : x1  x2  x4  4
MAX Z  30 x1  10 x2 MAX Z  30 x1  10 x2  0 x3  0 x4  0 x5 C 3 : x1  x2  x5  12 Modèle
Modèle
Variables réelles
Variables réelles
Variables d'écart
Variables d'écart Second
Second
x1 x2 x3 x4 x5 membres
membres Q
C1 :  x1  x2  6 C1 :  x1  x2  x3  6 x1 , x2 , x3 , x4 , x5  0 Variables
x3 x-11 x12 x13 x04 x05 6 Q
x3
Variables x4 1 -1 0 1 0 4
de la base
C 2 : x1  x2  4 C 2 : x1  x2  x4  4 de la base
x4
x5
x5
1 1 0 0 1 12

C 3 : x1  x2  12 C 3 : x1  x2  x5  12 zz 30 10 0 0 0 0

x1 , x2  0 x1 , x2 , x3 , x4 , x5  0 xx 11
0
xx 22
0
xx 33
6
xx 44
4
xx 55
12
zz
0
C
C 111
6
C
C 222
4
C
C 333
12

Forme canonique Forme standard


*Cours C. Trullen, 3IL
F. Galasso 90 F. Galasso 91

3IL - 2017-2018 9
F. GALASSO 13/06/2018

Méthode des tableaux : exemple Méthode des tableaux : exemple x1 x2 x3 x4 x5 membres Q


x3 -1 1 1 0 0 6 -6
Variables
x4 1 -1 0 1 0 4 4
de la base
• 1ère étape : choix du pivot x5 1 1 0 0 1 12 12

Modèle Variables réelles Variables d'écart Second z 30 10 0 0 0 0


x1
-1
x2
1
x3
1
x4
0
x5
0
membres
6
Q
-6
• 1ère étape : utilisation du pivot
x3
Variables
x4 1 -1 0 1 0 4 4
de la base 1. Entrée de x1 à la main 2. pivoter toutes
x5 1 1 0 0 1 12 12
les lignes
Modèle Variables réelles Variables d'écart Second
z 30 10 0 0 0 0
x1 x2 x3 x4 x5 membres Q
x3 0 0 1 1 0 10 #DIV/0!
L1 L1+1*L2
x1 x2 x3 x4 x5 z C1 C2 C3 Variables
x1 1 -1 0 1 0 4 4
0 0 6 4 12 0 6 4 12 de la base
x5 0 2 0 -1 1 8 #DIV/0! L2 L2/1
• Calcul des quotients : 6/-1 ; 4/1 ; 12 / 1  facile Excel : z 0 40 0 -30 0 -120
Cell du 2nd membre / Cell {même ligne;colonne pivot} L3 L3-1*L2
x1 x2 x3 x4 x5 z C1 C2 C3
• Pourquoi a-t-on choisi x1 ? 4 0 10 0 8 120 6 4 12
Lz Lz-30*L2
• Plus fort coefficient de z : 1er critère de Dantzig
3. écrire les nouvelles valeurs 4. contrôler le respect des contraintes etla valeur de z
F. Galasso 92 F. Galasso 93

Méthode des tableaux : exemple Méthode des tableaux : exemple x1 x2 x3 x4 x5 membres Q


x3 0 0 1 1 0 10 #DIV/0!
Variables
x1 1 -1 0 1 0 4 -4
de la base
• 2ème étape : choix du nouveau pivot x5 0 2 0 -1 1 8 4

z 0 40 0 -30 0 -120
Modèle Variables réelles Variables d'écart
x1 x2 x3 x4 x5
Second
membres Q • 1ère étape : utilisation du pivot
x3 0 0 1 1 0 10 #DIV/0!
Variables
1 -1 0 1 0 4 -4
de la base
x1 1. Entrée de x2 à la main 2. pivoter toutes
x5 0 2 0 -1 1 8 4
Modèle Variables réelles Variables d'écart Second les lignes
z 0 40 0 -30 0 -120 x1 x2 x3 x4 x5 membres Q
x3 0 0 1 1 0 10 #DIV/0! déjà nul
x1 x2 x3 x4 x5 z C1 C2 C3 Variables
4 0 10 0 8 120 6 4 12 x1 1 0 0 0,5 0,5 8 #DIV/0!
de la base
x2 0 1 0 -0,5 0,5 4 4 L2 L2 +L3
• Pourquoi a-t-on choisi x2 ? z 0 0 0 -10 -20 -280
• Plus fort coefficient de z : 1er critère de Dantzig L3 L3/2
x1 x2 x3 x4 x5 z C1 C2 C3
• Quels calculs pour les quotients ? 8 4 10 0 0 280 6 4 12 Lz Lz-40*L3
• 10/0 ; 4/-1 ; 8 / 2  C’est x5 qui sort de la base
3. écrire les nouvelles valeurs 4. contrôler le respect des contraintes etla valeur de z
F. Galasso 94 F. Galasso 95

Méthode des tableaux : exemple Méthode des tableaux : synthèse


Modèle Variables réelles
x1 x2 x3
Variables d'écart
x4 x5
Second
membres Q
• Permet de standardiser la démarche
Variables
x3
x1
0
1
0
0
1
0
1
0,5
0
0,5
10
8
#DIV/0!
#DIV/0!
• Fonctionne bien avec Excel en utilisant des
de la base
x2 0 1 0 -0,5 0,5 4 4 copier/coller
• Du format du tableau
z 0 0 0 -10 -20 -280
• Des formules de calcul des contraintes et de z
x1 x2 x3 x4 x5 z C1 C2 C3
8 4 10 0 0 280 6 4 12 • Attention à l’adressage des cellules
• par ex : Lz Lz – 40*L3 : la cellule du 40 est en absolu, celle
• Il n’y a plus de coefficient positif dans z de L3 en relatif
• On a trouvé la solution optimale (toute autre • Il reste des opérations manuelles
introduction de variable diminuerait z) • Réécrire la variable entrante
• x1 = 8 ; x2 = 4 et z = 280 • Adapter la formule de calcul des coefficients
• Recopier les valeurs des variables pour vérification

F. Galasso 96 F. Galasso 97

3IL - 2017-2018 10
F. GALASSO 13/06/2018

Méthode des tableaux : constat et


perspectives
• Sur l’utilisation des critères de Dantzig qui sont ?
1. Variable entrante : celle qui a le plus fort coefficient
dans z
2. Variable sortante : celle qui a le plus petit quotient
• Non respect du 1er critère
• Pas grave, mais souvent entraîne une résolution plus
longue (plus d’itérations)
• Utile dans certains cas (bouclage)  faire entrer la
variable au plus petit coefficient (critère de Bland)
• Non respect du 2nd critère
• Entraine des valeurs négatives pour certaines variables
 interdit, donc 2nd critère Obligatoire
F. Galasso 98

3IL - 2017-2018 11

Vous aimerez peut-être aussi