Vous êtes sur la page 1sur 38

Introduction à la

Recherche Opérationnelle
• ALGORITHME DE SIMPLEXE

• CAS SPÉCIAUX DE PL

A.U: 2018/2019
PL: RÉSOLUTION GRAPHIQUE :: RAPPEL

• Remarque importante: l’espace engendré par les contraintes


d’un PL est un espace convexe.

• Conséquence: Une caractéristique de la solution optimale


d’un PL est qu’elle est associé à un coin de l’espace de
solutions.

 La solution optimale peut être trouvée par énumération de


tous les coins,

 Ce résultat est essentiel pour le développement de


l’algorithme de simplexe.

Cours : Introduction à la Recherche Opérationnelle 2


ALGORITHME DE SIMPLEXE: EXEMPLE 2

• Une entreprise fabrique, sur une machine travaillant 45 h / semaine,


trois produits P1, P2 et P3. Les données relatives à l’activité de cette
entreprise est résumé par le tableau suivant :

Nb Unités produites Production maximale Profit net / unité


/ heure / semaine (exprimé en UM)

P1 50 1000 4

P2 25 500 12

P3 75 1500 3

• Soient x1, x2 et x3 respectivement les quantités produites par


semaine de P1, P2 et P3.

Cours : Introduction à la Recherche Opérationnelle 3


ALGORITHME DE SIMPLEXE: EXEMPLE 2

• Nous avons alors les contraintes suivantes :


x1 ≤ 1000 (1)
x2 ≤ 500 (2)
x3 ≤ 1500 (3)
• Le temps employé pour produire x1 objets P1 est en heures : x1 / 50
• Le temps employé pour produire x2 objets P2 est en heures : x2 / 25
• Le temps employé pour produire x3 objets P3 est en heures : x3 / 75
• Vu que le temps de disponibilité total par semaine de la machine est
de 45h alors nous devons avoir : x1/ 50 + x2/ 25 + x3 / 75 ≤ 45
ou encore 3x1 + 6x2 + 2x3 ≤ 6750 (4)

Cours : Introduction à la Recherche Opérationnelle 4


ALGORITHME DE SIMPLEXE: EXEMPLE 2

• Contraintes de non négativité (CNN):


x1 ≥ 0 (5)
x2 ≥ 0 (6)
x3 ≥ 0 (7)

• Fonction objectif (fonction économique) :


[MAX] z = 4x1 + 12x2 + 3x3

Cours : Introduction à la Recherche Opérationnelle 5


ALGORITHME DE SIMPLEXE: EXEMPLE 2

• Espace Solution:
– CNN (5,6 et 7) impliquent que l'ES est dans
le premier octant.
– Contraintes 1,2 et 3: Parallélépipède
OABCDEFG délimité par les plans:
• X1 = 1000
• X2 = 500
• X3 = 1500
– Contrainte 4: Dessiner le plan
3x1 + 6x2 + 2x3 = 6750; points spéciaux
A'(?, 0, 0), B'(0, ?, 0) et C' (0,0, ?)
– Intersection avec FG, DG et BG resp sur
P(?,?,?) , Q(?,?,?) et R(?,?,?).
• ES délimité par le
polyèdre OABCDEFPRQ
Cours : Introduction à la Recherche Opérationnelle 6
ALGORITHME DE SIMPLEXE: EXEMPLE 2

• Pour trouver la solution optimale


– on détermine d’abord un plan (de valeur précise Z*) qui satisfait
Z* = 4x1 + 12x2 + 3x3 ,
en particulier un plan qui contient
un point particulier, par Ex : C(0,500,0)
– Et donc:
Z* = 4*0 + 12*500 + 3*0
= 6000
– On cherche 2 autres points faciles à repérer:
• I(1500, 0 , 0);
• J(0, 0 , 2000);

Cours : Introduction à la Recherche Opérationnelle 7


ALGORITHME DE SIMPLEXE: EXEMPLE 2

• Puis, on obtient la solution optimale en déplaçant le plan (CIJ) vers


la direction du gradient (direction où la valeur de Z augmente),
jusqu’au dernier plan qui contient au moins un point commun avec
le polyèdre OABCDEFPRQ.

• Ce plan Z11500 contient le point Q(250, 500, 1500) et coupe:


– Ox1 en  (11500/4, 0 , 0)
– Ox2 en  ( 0 , 11500/12 , 0)
– Ox3 en  (0 , 0 , 11500/3)

Cours : Introduction à la Recherche Opérationnelle 8


ALGORITHME DE SIMPLEXE: EXEMPLE 2:: POSITION DE L'OPTIMUM

• Le point représentant la solution optimale ne peut pas se trouver à


l’intérieure du polyèdre formé par les contraintes :
 l’optimum ne peut se trouver qu’à la surface du polyèdre.

• De même, on peut montrer que l’optimum ne peut pas se trouver à


l’intérieure d’une surface du polyèdre
 il se situe sur les arêtes.

• d’une manière analogue, l’optimum ne peut pas se situer sur les


arêtes, par conséquent, sauf dégénérescence (citée ci-après),
l’optimum est nécessairement sur l’un des sommets du polyèdre.

Cours : Introduction à la Recherche Opérationnelle 9


ALGORITHME DE SIMPLEXE: EXEMPLE 2:: POSITION DE L'OPTIMUM

• Donc pour trouver l’optimum du PL, il suffit de parcourir toutes les


intersections.

• Mais, pour des dimensions supérieures, il est trop lourd (même


avec des calculateurs évolués) d’énumérer toutes les intersections.

• Ex : si le nombre de variables est n et le nombre de contraintes est


m, alors il y a n+m plans dont les intersections n à n sont au nombre
de : Cnn+m
pour n=15 et m=10 on a 3 268 760 intersections.

Cours : Introduction à la Recherche Opérationnelle 10


ALGORITHME DE SIMPLEXE: EXEMPLE 2:: POSITION DE L'OPTIMUM

• Solution : au lieu de faire le calcul de la fonction objectif pour


toutes les intersections, il suffit de le faire pour une suite de
sommets Sp telle que la valeur de z pour le nème sommet ne soit pas
inférieure à celle pour le (n-1) ème .

Par cette méthode, on aboutit à l’optimum en un nombre fini de


pas, à condition que la valeur de la fonction objectif augmente
strictement pour un certain nombre de pas.

• Les sommets qui constituent la suite Sp sont adjacents:


Ceci est essentiellement dû au fait qu’un polyèdre engendré par
des contraintes linéaires est convexe.

Cours : Introduction à la Recherche Opérationnelle 11


ALGORITHME DE SIMPLEXE: CONTEXTE

• Soit le PL nommé PLS1:


Maximiser Z = 3x1 + 5x2
SC
x1 ≤4
2x2 ≤ 12
3x1 + 2x2 ≤ 18
x1 ≥ 0
x2 ≥ 0

Cours : Introduction à la Recherche Opérationnelle 12


ALGORITHME DE SIMPLEXE: CONTEXTE

• Valeur qui maximise le PLS1

Cours : Introduction à la Recherche Opérationnelle 13


ALGORITHME DE SIMPLEXE: CONTEXTE

• Rappel: si un PL admet une solution optimale, alors celle si se


trouve nécessairement sur un sommet de l "Espace solution"

• Test d'Optimalité pour un PL possèdant au moins une solution


optimale:
"Si un sommet n'a pas des sommets adjacents meilleures en terme
de Z, alors il représente solution optimale"

• Pour trouver la solution optimale: PARCOURIR TOUS LES SOMMETS


POSSIBLES.

• Commencer éventuellement par l'origine (souvent cas trivial)

Cours : Introduction à la Recherche Opérationnelle 14


ALGORITHME DE SIMPLEXE: CONTEXTE

• Si (0,0) n'est pas optimale, passer au meilleur adjacent :


Se déplacer vers l'un des deux sommets adjacents qui
représente l'augmentation la plus rapide de Z:
Dans l'exemple PLS1, Z = 3x1 + 5x2 l'augmentation (dérivée
partielle ) selon x1 est 3, par contre l'augmentatoin selon x2 est
de 5.
 Z(0,6) = 30, (cf schéma PLS1)

• Comparer Z(0,6) avec les adjacents: Z(0,0) = 0 et Z(2,6) = 36


 (0,6) n'est pas optimal

• Comparer Z(2,6) avec les adjacents: Z(0,6) = 30 et Z(4,3) = 27


 (2,6) est optimal

Cours : Introduction à la Recherche Opérationnelle 15


ALGORITHME DE SIMPLEXE: COMMENT ?

• Solution optiamale se trouve sur un sommet;


Pour tout Pb avec au moins une solution optimale, en trouver une
ne nécessite que la recherche d'une meilleure solution sur sommet.
condition: Espace borné de solutions réalisables.
 Gain en temps de recherche

• La méthode du simplex est un algorithme itératif : répétition d'une


série d'étapes fixe, dite itérations, jusqu'à ce que l'une des
conditions d'arrêt soit réalisée.

Cours : Introduction à la Recherche Opérationnelle 16


ALGORITHME DE SIMPLEXE: COMMENT ?

• Lancement ?
Chaque fois que c'est possible, l'initialisation de la méthode du
simplexe choisit l'origine (tous les variables de décision sont égales
à zéro).
– Souvent possible lors de l'existence de contraintes de non négativité.
– Cette solution est acceptable à moins qu'il soit impossible parce qu'elle
viole une ou plusieurs contraintes fonctionnelles.
– Sinon, il faut trouver la solution initiale (cf plus loin).

• Choix d'une meilleure solution à chaque itération:


– Chercher parmi les adjacents uniquement
– Par conséquent, l'ensemble du trajet suivi pour finalement atteindre
une solution optimale est le long des bords de la région réalisable.

Cours : Introduction à la Recherche Opérationnelle 17


ALGORITHME DE SIMPLEXE: COMMENT ?

• Lequel des voisins choisir ?


– On choisit de se déplacer le long du bord qui a le plus grand taux
d'amélioration de Z. (cf plus loin)

• Comparaison / Z

• Une évolution positive / Z implique que la solution adjacente est


meilleure que la solution actuelle, tandis qu'un taux négatif de
l'amélioration de Z implique que la solution adjacente est pire.
le test d'optimalité consiste simplement à vérifier si l'un des
bords donnent un taux positif de l'amélioration de Z.

• Sinon alors la solution actuelle CPF est optimal.

Cours : Introduction à la Recherche Opérationnelle 18


ALGORITHME DE SIMPLEXE:APPLICATION À UN PB DE MAXIMISATION

• Soit l'Exemple 2 modélisé sous forme standard

• Soit sous forme matricielle:

• Remarque: matrice unité formée par (4)(5)(6)(7)


• x4, x5, x6 et x7 forment une base orthonormée d'un espace vectoriel
à 4 dimensions (autant de contraintes).
Cours : Introduction à la Recherche Opérationnelle 19
ALGORITHME DE SIMPLEXE:APPLICATION À UN PB DE MAXIMISATION

• f

• Pour ce, on considère la représentation matricielle du Pb,


• réaliser des transformations (représentation matricielle),
• Transformer la fonction objectif,
• Jusqu'à atteinte d'une condition d'arrêt.

Cours : Introduction à la Recherche Opérationnelle 20


ALGORITHME DE SIMPLEXE:APPLICATION À UN PB DE MAXIMISATION

• Soit

Cours : Introduction à la Recherche Opérationnelle 21


ALGORITHME DE SIMPLEXE:APPLICATION À UN PB DE MAXIMISATION

Cours : Introduction à la Recherche Opérationnelle 22


ALGORITHME DE SIMPLEXE: PRINCIPE

Les Δj relatifs aux variables de base sont toujours nuls.

Cours : Introduction à la Recherche Opérationnelle 23


ALGORITHME DE SIMPLEXE: PRINCIPE
• L'algorithme de simplexe, proposé par Dantzig, est basé sur l'idée de :
– faire entrer une variable "hors base" à la base,
– et de faire sortir une "variable de base" hors base
Tant qu'il existe un Δj non négatif relatif aux variables "hors base" (Sauf
cas de Dégérescecnce).

• L'entrée et la sortie à la base se font selon les 2 critères:


 1er critère de Dantzig:
"Pour déterminer la colonne Aj qui doit entrer dans la base, on choisit celle qui
comporte le Δj positif le plus grand"
Interprétation: Plus le Δj est grand, plus le gain sera important au niveau de
la fonction objectif.
 2ème critère de Dantzig:
Pour déterminer la colonne Ai qui doit sortir de la base on choisit celle d'indice
i tq: xi/xij soit le plus petit positif (j est régi par 1er critère)

Cours : Introduction à la Recherche Opérationnelle 24


ALGORITHME DE SIMPLEXE: PRINCIPE

Cours : Introduction à la Recherche Opérationnelle 25


ALGORITHME DE SIMPLEXE: PRINCIPE

Cours : Introduction à la Recherche Opérationnelle 26


ALGORITHME DE SIMPLEXE: APPLICATION / EXEMPLE 2

Max F = 4x + 12y + 3z
SC
x ≤ 1000
y ≤ 500
z ≤ 1500
3x + 6y + 2z ≤ 6750
x,y,z >= 0

Cours : Introduction à la Recherche Opérationnelle 27


ALGORITHME DE SIMPLEXE: APPLICATION / EXEMPLE 2

I0 x y z e1 e2 e3 e4
e1 1 0 0 1 0 0 0 1000
e2 0 1 0 0 1 0 0 500
e3 0 0 1 0 0 1 0 1500
e4 3 6 2 0 0 0 1 6750
Δj 4 12 3 0 0 0 0 0
(0,0,0)

• Itération 0:

Cours : Introduction à la Recherche Opérationnelle 28


ALGORITHME DE SIMPLEXE: APPLICATION / EXEMPLE 2

I0 x y z e1 e2 e3 e4
e1 1 0 0 1 0 0 0 1000
e2 0 1 0 0 1 0 0 500
e3 0 0 1 0 0 1 0 1500
e4 3 6 2 0 0 0 1 6750
Δj 4 12 3 0 0 0 0 0
(0,0,0)

• Itération 0:
 Vecteur Entrant à la base: y (Δj = 12)
 Vecteur sortant de la base e2 (plus petit xi / xij = 500)
 D'après Le2 : y + e2 = 500
 Donc la fonction objectif (de l'Itération I1) devient:
Max F1 = 4x + 3z – 12e2 + 6000

Cours : Introduction à la Recherche Opérationnelle 29


ALGORITHME DE SIMPLEXE: APPLICATION / EXEMPLE 2

I1 x y z e1 e2 e3 e4
e1 1 0 0 1 0 0 0 1000
y 0 1 0 0 1 0 0 500
e3 0 0 1 0 0 1 0 1500
e4 3 0 2 0 -6 0 1 3750
Δj 4 0 3 0 -12 0 0 6000
(0,500,0)

• Itération 1:

Cours : Introduction à la Recherche Opérationnelle 30


ALGORITHME DE SIMPLEXE: APPLICATION / EXEMPLE 2

I1 x y z e1 e2 e3 e4
e1 1 0 0 1 0 0 0 1000
y 0 1 0 0 1 0 0 500
e3 0 0 1 0 0 1 0 1500
e4 3 0 2 0 -6 0 1 3750
Δj 4 0 3 0 -12 0 0 6000
(0,500,0)

• Itération 1:
 Vecteur Entrant à la base: x (Δj = 4)
 Vecteur sortant de la base e1 (plus petit xi / xij = 1000)
 D'après Le1 : x + e1 = 1000
 Donc la fonction objectif (de l'Itération I2) devient:
Max F2 = 3z – 4e1 – 12e2 + 10000

Cours : Introduction à la Recherche Opérationnelle 31


ALGORITHME DE SIMPLEXE: APPLICATION / EXEMPLE 2
I2 x y z e1 e2 e3 e4
x 1 0 0 1 0 0 0 1000
y 0 1 0 0 1 0 0 500
e3 0 0 1 0 0 1 0 1500
e4 0 0 2 -3 -6 0 1 750
Δj 0 0 3 -4 -12 0 0 10000
(1000,500,0)

• Itération 2:
 Vecteur Entrant à la base: z (Δj = 3)
 Vecteur sortant de la base e4 (plus petit xi / xij = 375)
 Le4  2z -3e1 -6e2 + e4= 750
 Donc la fonction objectif (de l'Itération I3) devient:
Max F3 = 1/2 e1 – 3e2 - 3/2 e4 + 11125

Cours : Introduction à la Recherche Opérationnelle 32


ALGORITHME DE SIMPLEXE: APPLICATION / EXEMPLE 2

I3 x y z e1 e2 e3 e4
x 1 0 0 1 0 0 0 1000
y 0 1 0 0 1 0 0 500
e3 0 0 0 3/2 3 1 -1/2 1125
z 0 0 1 -3/2 -3 0 1/2 375
Δj 0 0 0 1/2 -3 0 -3/2 11125
(1000,500,750)

• Itération 3:
 Vecteur Entrant à la base: e1 (Δj = 1/2)
 Vecteur sortant de la base e3 (plus petit xi / xij = 750)
 Le3  3/2 e1 + 3e2 + e3 -1/2 e4 = 1125
 Donc la fonction objectif (de l'Itération I4) devient:
Max F4 = – 4e2 – 1/3 e3 - 4/3 e4 + 11500

Cours : Introduction à la Recherche Opérationnelle 33


ALGORITHME DE SIMPLEXE: APPLICATION / EXEMPLE 2

I4 x y z e1 e2 e3 e4
x 1 0 0 0 -2 -2/3 1/3 250
y 0 1 0 0 1 0 0 500
e1 0 0 0 1 2 2/3 -1/3 750
z 0 0 1 0 0 1 0 1500
Δj 0 0 0 0 -4 -1/3 -4/3 11500
(250,500,1500)

• Itération 4:
 Vecteur Entrant à la base: inexistant, car tous les Δj des
variables hors base sont < 0.
 Arrêt,
 valeur optimale: 11500 / (x, y, z) = (250,500,1500)

Cours : Introduction à la Recherche Opérationnelle 34


PROGRAMMES LINÉAIRES

CAS SPÉCIAUX
CAS SPÉCIAUX (1)

• Remarque ?
La 2ème contrainte est parallèle à la fonction objectif.
• càd ?
 Infinité de solutions
 2 sommets (coins) qui représentent un optimum.
 Simplexe ? Interprétation graphique
 Dégénérescence de 1ère espèce: une contrainte est parallèle à la
fonction objectif.
Cours : Introduction à la Recherche Opérationnelle 36
CAS SPÉCIAUX (2)

• Remarque ?
Plus de 2 contraintes (droites) passent par un point appartenant à
l'espace de solutions, en l'occurrence (2,5).
• Simplexe ? Interprétation graphique
 Dégénérescence de 2ème espèce en 2D: Plus de 2 contraintes
(droites) passent par un point appartenant à l'espace de solutions.
Cours : Introduction à la Recherche Opérationnelle 37
CAS SPÉCIAUX (3)
• Dégénérescence de 2ème espèce: Cas général
 un sommet appartient à plus de n hyperplans.
 Conséquence: passage d'un sommet à lui même.
• Espace de solution non borné pour un problème de maximisation sous une
forme canonique.
Max z = 2X1 + X2
SC
X1 - X2 ≤ 10
2X1 ≤ 40
X1, X2 ≥ 0
• Solution infaisable
Max z = 3X1 + 2X2
SC
2X1 + X2 ≤ 2
3X1 + 4X2 ≥ 12
X1, X2 ≥ 0
Cours : Introduction à la Recherche Opérationnelle 38

Vous aimerez peut-être aussi