Vous êtes sur la page 1sur 42

PROGRAMMATION LINEAIRE

Aram YESAYAN,

PhD, Maitre de conférences en Mathématiques

La programmation linéaire (une partie de la recherche opérationnelle (R.O.)) est un sujet


très vaste qui nécessiterait un cours exclusivement sur ce thème.

• Avant 1930,
nombreuses méthodes, mais peu d’applications.
• 1930-1950, Application militaires :
RADAR, défense aérienne et côtière, organisation de convois.
• 1950 à nos jours, R.O. « civile » :
réseaux de transport (trains, avions, électricité, etc.), aide à la décision.

1
On appelle Programmation Linéaire, le problème mathématique qui consiste à optimiser
(maximiser ou minimiser) une fonction linéaire de plusieurs variables qui sont reliées par
des relations linéaires appelées contraintes.

La forme la plus générale d’un problème de programmation linéaire est la suivante:

n
[Optimiser ] Z = f ( x1 , x2 ,..., xn )= c1 x1 + c2 x2 + ... + cn xn = ∑c x i i
i =1

compte tenu du système de contraintes:

 n
∑ aij xi ≤ b j , 1 ≤ j ≤ α
 i =1
 n
∑ aik xi ≥ bk , α ≤ k ≤ β
 i =1
 n
∑ a= il xi bl , β ≤ l ≤ m
 i =1
xi ≥ 0 , ∀ i =1,..., n
α ≥ 1, β > α , β < m

Dans un problème de programmation linéaire nous avons n variables xj, qui s’appellent
variables de décision.

Z ou f représente la fonction objectif (ou fonction économique) à optimiser. Nous aurons:

[MIN] Z, signifie minimiser Z;

[MAX] Z, signifie maximiser Z.

cj sont des nombres réels, les coefficients des variables de décision dans la fonction
objectif.

Nous avons aussi m contraintes, équations et/ou inéquations, contraintes que doivent
vérifier les variables de décision. Ces contraintes forment un système dans lequel:

2
aij (nombre réel) représente le coefficient de la variable xj dans la
contrainte i;

bi (nombre réel) est le terme indépendant de cette contrainte.


Donc, un programme linéaire est un système d’équations ou inéquations appelées
contraintes qui sont linéaires (c’est-à-dire que les variables ne sont pas élevées au carrée,
ne servent pas d’exposant, ne sont pas multipliées entre elles).

À partir de ces contraintes on doit optimiser une fonction également linéaire appelée
fonction objectif.

LES FORMES DU PROBLEME DE PROGRAMMATION LINEAIRE

Forme canonique: On dit qu’un problème de programmation linéaire est mis sous forme
canonique si toutes les contraintes se présentent sous forme d’inégalités.
1) Recherche d’un maximum:
n
[MAX ] Z = ∑ c j x j
j =1

sous les contraintes suivantes:


n

∑a x ij j ≤ bi , ∀i ∈ [1, m ]
j =1

x j ≥ 0 , ∀j ∈ [1, n ]
2) Recherche d’un minimum:
n
[MIN ] Z = ∑ c j x j
j =1
sous les contraintes suivantes:
n

∑a x ij j ≥ bi , ∀i ∈ [1, m ]
j =1

x j ≥ 0 , ∀j ∈ [1, n ]

3
Forme standard: Pour obtenir cette forme équivalente, toutes les contraintes (en dehors
des contraintes de non-négativité) sont mises sous forme d’égalités.
1) Recherche d’un maximum:
n
[MAX ] Z = ∑ c j x j
j =1

sous les contraintes suivantes:


n

∑a ij x=
j bi , ∀i ∈ [1, m ]
j =1

x j ≥ 0 , ∀j ∈ [1, n ]
2) Recherche d’un minimum:
n
[MIN ] Z = ∑ c j x j
j =1

sous les contraintes suivantes:


n

∑ a x= ij j bi , ∀i ∈ [1, m ]
j =1

x j ≥ 0 , ∀j ∈ [1, n ]

REPRESENTATION MATRICIELLE DU PROBLEME DE


PROGRAMMATION LINEAIRE

Définitions

A = matrice réelle de dimension [m, n], la matrice des coefficients des variables de
décision dans le système de contraintes.

La forme générale de matrice A est :

 a11 a12 ... a1n 


 
 a21 a22 ... a2 n 
A=
.................. 
 
 am1 am 2 ... amn 
 
4
aij est le coefficient de la variable de décision xj dans la contrainte i ;
X = vecteur des variables de décision, ayant la dimension [n]
 x1 
 
x2
X = 
 ... 
 
 xn 
 

b = vecteur des termes libres, ayant la dimension [m]


 b1 
 
b2
b =  

...
 
 bm 
 

c = vecteur des coefficients, ayant la dimension [n]

 c1 
 
c2
c= 
 ... 
 
 cn 
Donc, la fonction objectif peut être écrite sous différentes formes :

Z = f ( X )= c1 x1 + c2 x2 + ... + cn xn = cT X

Le modèle mathématique d’un problème de programmation linéaire mis sous forme


matricielle standard est :
[MAX] Z = cTX
AX = b
X≥0
La forme matricielle canonique est :
[MAX] Z = cTX
AX ≤ b
X≥0

5
METHODES DE RESOLUTION DU PROBLEME DE
PROGRAMMATION LINEAIRE

RESOLUTION GRAPHIQUE

Nous utiliserons l’exemple suivant : Une entreprise peut fabriquer deux types de produits,
P1 et P2. Cette fabrication utilise trois machines, M1, M2 et M3, comme indiqué dans le
tableau suivant :

Machine
Produit
M1 M2 M3

P1 2h 2h 1h
P2 3h 1h 3h
• Pendant un mois, les trois machines sont disponibles ainsi :

M1 : 180 h ;

M2 : 120 h ;

M3 : 150 h.

• Sachant que le bénéfice unitaire pour le produit P1 est de 4 € et que celui de P2 est
de 3 €, combien de produits P1 et P2 faut-il fabriquer pour maximiser le bénéfice ?

• On modélise ce problème par un programme linéaire. Soit x et y les quantités de


produits P1 et P2 fabriqués pendant un mois.

• La machine M1 est utilisée en total 2x + 3y h/mois et est disponible 180 h/mois,


d’où la première contrainte :

6
2x + 3y ≤ 180

• De même, pour les machines M2 et M3 on obtient :

2x + y ≤ 120

x + 3y ≤ 150

• Bien entendu, les quantités x et y doivent être positives :

x, y ≥ 0

• Enfin, on tente de maximiser le profit qui est le total des bénéfices sur la vente des
produits P1 et P2 :

[MAX] Z = 4x + 3y

• Le programme linéaire est donc :

[MAX] Z = 4x + 3y

• compte tenu des contraintes :

2 x + 3 y ≤ 180 ; (C1)

2 x + y ≤ 120 ; (C2 )
 x + 3 y ≤ 150 ; (C3)

x, y ≥ 0

• On peut représenter le problème dans un espace à deux dimensions (voir la figure


suivante)

• La première contrainte, 2x + 3y ≤ 180, peut être représentée géométriquement


comme la condition que toute solution satisfaisante (c’est-à-dire tout point de
coordonnées x et y) se trouve au-dessous et à la gauche de la droite C1

7
• La droite 2x + 3y = 180 coupe les axes x et y aux points

 x = 90  x =0 
  et  
 y = 0   y = 60 

respectivement.

• De même, la seconde contrainte demande que les points se trouvent au-dessous et


à la gauche de la droite C2,

2x + y = 120. Cette droite coupe les axes x et y aux points

 x = 60  x =0 
  et  
 y = 0   y = 120 

respectivement.

• La troisième contrainte demande que les points se trouvent au-dessous et à la


gauche de la droite C3,

x + 3y =150. Cette droite coupe les axes x et y aux points

 x = 150  x =0 
  et  
y=0   y = 50 

respectivement.

8
Par conséquent, les solutions satisfaisantes correspondent à tout point situé à l’intérieur
du polygone convexe délimité par les segments de ces trois droites et les axes x et y (parce
que les contraintes de non-négativité imposent que x ≥ 0 et y ≥ 0).

9
Considérons maintenant la fonction objectif

[MAX] Z = 4x + 3y.

On trace la droite représentative de la fonction linéaire Z passant par l’origine, ∆1

Donc la solution du problème est de produire 45 produits P1 et 30 produits P2 pour


obtenir le profit maximum :

[MAX] Z = 4x+3y = 4 ⋅ 45 + 3 ⋅ 30 = 270 €.

Nous avons obtenu une solution optimale unique, mais on peut avoir et d’autres types de
solutions. Nous avons ici une caractérisation géométrique des solutions :
10
• solution optimale unique ;

• solution optimale infinie (région admissible non-bornée);

• solution optimale multiple (la fonction objectif est parallèle à une


contrainte);

• aucune solution (région admissible vide)

Exemple 1 - une solution optimale unique

[ MAX ] =
f 4x + 3y
2 x + 3 y ≤ 180
2 x + y ≤ 120
x + 3 y ≤ 150
x, y ≥ 0

y y
A (0;50)
B (30;40) [MAX ] f = 4x + 3y
C (42;36)
D (45;30) B
A • B C

A •
f
• E (60;0) • D augmente
• D
∆4
• x x
E ∆3
E O
O
∆2
(1) (2) (3) ∆1

11
Solution optimale unique

Exemple 2 - aucune solution

[ MAX ]=
f 2 x1 + 3 x2
x1 ≤ 3
x1 + x2 ≥ 5
x1 − 4 x2 ≥ 4
x1 , x2 ≥ 0

12
Aucune solution

Exemple 3 - solution optimale infinie

[ MAX ]=
f 2 x1 + 3 x2
x1 ≤ 3
x1 + x2 ≥ 5
x1 − 4 x2 ≤ 4
x1 , x2 ≥ 0

13
Solution optimale infinie

Exemple 4 - une infinité de solutions

[ MAX ]=
f 5 x1 + 5 x2
x1 + x2 ≤ 8
−2 x1 + 3 x2 ≤ 6
x1 − x2 ≤ 2
x1 , x2 ≥ 0

Une infinité de solutions optimales

14
Synthèse

• On appelle solution admissible toute solution qui satisfait toutes les contraintes du
problème (à ne pas oublier les contraintes de non-négativité du type xi ≥ 0) ;

• L’ensemble des solutions admissibles s’appelle région admissible ;

• Le problème est dit sans solution si la région admissible est vide ;

• La solution optimale est celle qui optimise la fonction objectif parmi toutes les
solutions admissibles ;

• La valeur optimale du problème est la valeur de la fonction objectif pour la


solution optimale.

LA METHODE A SUIVRE POUR RESOUDRE GRAPHIQUEMENT


UN PROBLEME DE PROGRAMMATION LINEAIRE

• Représenter chaque contrainte par une droite délimitant la frontière entre


l’ensemble des solutions vérifiant la contrainte et l’ensemble des solutions
inacceptables ;

• Mettre en évidence le polygone convexe renfermant toutes les solutions possibles ;

• Tracer la droite représentant la fonction objectif de valeur nulle (Z = 0), puis


repousser la parallèle à cette droite jusqu’au sommet le plus éloigné de l’origine
(pour les problèmes de maximum). Les coordonnées de ce sommet fournissent la
solution optimale ;

• Vérifier ce résultat en évaluant la fonction économique en fonction des


coordonnées respectives de chaque sommet du polygone convexe.

15
THEOREMES FONDAMANTAUX

Théorème 1. L'ensemble des solutions réalisables d'un PPL est un polyèdre convexe.

Théorème 2. Toute solution réalisable est combinaison


linéaire des sommets.

p
=X ∑λ Xi =1
i
i
ou X i est le sommet i , i ∈ [1, p ]
p

∑=
λ
i =1
i 1, λi ≥ 0

Théorème 3.

Si une solution optimale existe, elle est au moins sur un des sommets. Si
deux sommets sont solutions optimales, alors toute l'arête joignant ces deux
sommets est constituée de solutions optimales (une infinité de solutions
optimales).

16
METHODE DU SIMPLEXE

La méthode graphique n'est applicable que dans le cas où il n'y a que deux
variables. Son avantage est de pouvoir comprendre ce que fait la méthode générale
du Simplexe.

Soit à résoudre le problème suivant:


Maximiser la fonction objectif z = 1200 x1 + 1000 x2
sous les contraintes économiques 3 x1 + 4 x2 ≤ 160
6 x1 + 3 x2 ≤ 180
et les contraintes de signe x1 ≥ 0 ; x2 ≥ 0
les inconnues x1 et x2 sont appelées variables d'activité

x1=16, x2=28, z=47200.

17
Soit à résoudre le programme linéaire suivant sous sa forme canonique

Max z = 1200 x1 + 1000 x2

3 x1 + 4 x2 ≤ 160
6 x1 + 3 x2 ≤ 180
x1 ≥ 0 ; x2 ≥ 0

* Forme standard

Max z = 1200 x1 + 1000 x2 + 0 t1 + 0 t2

3 x1 + 4 x2 + 1 t1 + 0 t2 = 160
6 x1 + 3 x2 + 0 t1 + 1 t2 = 180

x1 ≥ 0 ; x2 ≥ 0 ; t1 ≥ 0 ; t2 ≥ 0

* Tableau 0

En ne conservant que les coefficients des équations ci-dessus, on obtient le tableau de départ

18
Ce tableau nous donne la première solution admissible:
- Les variables Hors Base (HB) sont nulles: x1 = 0 ; x2 = 0 (t1 et t2 en rouge ne sont pas hors
base; elles ne sont présentes que pour rappeler qu'il s'agit des colonnes des coefficients de ces
deux variables) ;
- Les valeurs des variables dans la Base (B) se lisent dans la colonne C: t1 = 160 et t2 =180 ;
- La dernière cellule (intersection de C et ∆) donne la valeur de -z : -z = 0 donc z = 0 ;
- La ligne ∆ donne les valeurs marginales ou taux marginal de substitution; elles s'interprètent
de la manière suivante: à ce stade de la solution, une augmentation de 1 unité de x1 ferait
accroître la fonction objectif de 1200, et une augmentation de 1 unité de x2 ferait accroître la
fonction objectif de 1000.

* Tableau 1
On augmente la fonction objectif en faisant entrer une variable dans la base, prenant la place
d'une variable qui va sortir de la base.

Critère de sélection de la variable entrante dans la base:


On sélectionne la variable HB ayant le plus grand coefficient positif dans la ligne ∆ .

x1 entre donc dans la base.

Pour sélectionner la variable sortante de la base, il est nécessaire de rajouter une colonne R au
tableau, obtenue en faisant le rapport membre à membre de la colonne C et de la colonne de
la variable entrant dans la base (x1).

19
Remarques sur la colonne R:
- Un 0 dans la colonne C est remplacé par un infiniment petit positif ε pour effectuer le calcul
de R
- Dans la colonne R on ne tient pas compte des valeurs négatives ou indéterminées.

HB x1 x2 t1 t2 C R
B
t1 3 4 1 0 160 160/3
t2 6 3 0 1 180 30
∆ 1200 1000 0 0 0

Critère de sélection de la variable sortante de la base:


On sélectionne la variable dans la Base ayant le plus petit coefficient positif dans la colonne R.

t2 sort donc de la base

HB x1 x2 t1 t2 C R
B
t1 3 4 1 0 160 160/3
t2 6 3 0 1 180 30 variable sortante

∆ 1200 1000 0 0 0
variable entrante

On appelle pivot (égal à 6) l'intersection de la variable entrante et de la variable sortante


Pour obtenir le tableau 1, on applique les règles suivantes:

- Le pivot est égal à 1


- Les coefficients de la ligne du pivot sont divisés par le pivot
- Les coefficients de la colonne du pivot sont nuls
- Les autres coefficients sont obtenus par la règle du rectangle

20
La règle du rectangle est la suivante:

Remarque importante: d = d' ⇔ c b = 0 ⇔ b = 0 ou c = 0


En conséquence, si dans la colonne (resp. ligne) du pivot il y a un 0, toute la ligne (resp.
colonne) correspondante reste inchangée.

En appliquant ces règles on obtient le tableau 1:

HB x1 x2 t1 t2 C
B
t1 0 5/2 1 -1/2 70
x1 1 1/2 0 1/6 30
∆ 0 400 0 -200 -36000

Ce tableau nous donne la deuxième solution admissible:


- Les variables Hors Base (HB) sont nulles: x2 = 0 ; t2 = 0 (x1 et t1 en rouge ne sont pas
hors base; elles ne sont présentes que pour rappeler qu'il s'agit des colonnes des coefficients
de ces deux variables) ;
- Les valeurs des variables dans la Base (B) se lisent dans la colonne C: t1 = 70 et x1 =30 ;
- La dernière cellule (intersection de C et ∆) donne la valeur de -z : -z = -36000 donc
z = 36000 ;

21
- La ligne ∆ donne les valeurs marginales ou taux marginal de substitution; elles s'interprètent
de la manière suivante: à ce stade de la solution, une augmentation de 1 unité de x2 ferait
accroître la fonction objectif de 400, et une augmentation de 1 unité de t2 ferait diminuer la
fonction objectif de 200 (il est à noter qu'une augmentation de 1 unité de la variable d'écart t2
revient à diminuer le second membre de l'équation correspondante de 1 unité).

* Tableau 2:

HB x1 x2 t1 t2 C R
B
t1 0 5/2 1 -1/2 70 28 variable sortante
x1 1 1/2 0 1/6 30 60
∆ 0 400 0 -200 - 36000
variable entrante

d'où le tableau 2

HB x1 x2 t1 t2 C
B
x2 0 1 2/5 -1/5 28
x1 1 0 -1/5 4/15 16
∆ 0 0 -160 -120 - 47200

Ce tableau nous donne la troisième solution admissible:


- Les variables Hors Base (HB) sont nulles: t1 = 0 ; t2 = 0 (x1 et x2 en rouge ne sont pas hors
base; elles ne sont présentes que pour rappeler qu'il s'agit des colonnes des coefficients de ces
deux variables) ;
- Les valeurs des variables dans la Base (B) se lisent dans la colonne C: x2 = 28 et x1 =16 ;
- La dernière cellule (intersection de C et ∆) donne la valeur de -z : -z = - 47200 donc
z = 47200;

22
- La ligne ∆ donne les valeurs marginales ou taux marginal de substitution; elles s'interprètent
de la manière suivante: à ce stade de la solution, une augmentation de 1 unité de t1 ferait
diminuer la fonction objectif de 160, et une augmentation de 1 unité de t2 ferait diminuer la
fonction objectif de 120 (il est à noter qu'une augmentation de 1 unité d'une variable d'écart
revient à diminuer le second membre de l'équation correspondante de 1 unité).

Critère d'arrêt des itérations:


Si tous les coefficients de la ligne ∆, relatifs aux variables HB, sont négatifs ou nuls, la
solution trouvée est optimale.

Nous avons donc ici atteint la solution optimale.

Remarques importantes:

- S'il existe une variable HB ayant un coefficient positif dans la ligne ∆ et telle que tous les
coefficients correspondants dans le tableau soient nuls ou négatifs, alors la solution est
infinie.
- Si, à la fin des itérations, une variable est HB avec un coefficient nul dans la ligne ∆, alors
on a une arête (plan, ...) optimale. Les autres sommets solutions sont obtenus en faisant
rentrer cette variable dans la base.

23
24
25
26
27
28
29
30
LE PROBLEME DU BOULANGER

Un boulanger fabrique de la brioche (désignée par x) et du pain viennois (y) à


partir de 3 facteurs :

• de la farine A, en quantité a (a=80) ;

• du beurre B, en quantité b (b=24) ;

• du sucre C, en quantité c (c=36).

Nous nous limitons à ces 3 ressources pour simplifier. On pourrait en faire


intervenir bien d’autres (énergie, travail). La matrice suivante indique les quantités de
ressources permettant de produire une unité de x ou de y.

Produits

x y Limites des ressources

Ressources A 5 4 a = 80
B 1 2 b = 24
C 3 2 c = 36

Supposons que x et y sont vendus à des prix unitaires

p = 40 et q = 50.

L’objectif est de réaliser le chiffre d’affaires maximum

Donc la limitation des ressources se traduit par les contraintes suivantes (une par
ressource): 5 x + 4 y ≤ a

 x + 2y ≤ b

3 x + 2 y ≤ c
x, y ≥ 0

31
Si l’objectif est de réaliser le chiffre d’affaires maximum, le problème équivaut à la
détermination du :
[ MAX =
]f 40 x + 50 y
5 x + 4 y ≤ 80

 x + 2 y ≤ 24
3 x + 2 y ≤ 36

x, y ≥ 0

32
DUALITE

Le boulanger producteur est également acheteur de ressources.

Supposons qu’il les achète à des prix unitaires

u, v, w

Pour dissuader le vendeur de produire lui-même, il faut que soient vérifiées les relations:

5u + v + 3w ≥ 40

4u + 2v + 2w ≥ 50

et aussi,

u, v, w ≥ 0

Parmi les solutions ainsi dissuasives, l’acheteur cherche celles qui lui font dépenser le
moins, donc:

[ MIN ] g = 80u + 24v + 36w


5u + v + 3w ≥ 40

4u + 2v + 2 w ≥ 50
u , v, w ≥ 0

Les solutions du Primal conduisent aisément aux solutions du Dual:

px* + qy* = au* + bv* + cw*.

Pour les solutions optimales les valeurs des fonctions objectifs sont égales.

Car

- l’inégalité < veut dire que le boulanger perd de l’argent et donc ne travaille pas ;

- l’inégalité > entraîne qu’un concurrent se substitue à lui.

33
Si dans une contrainte i du problème primal pour la solution optimale on a une inégalité
stricte, alors dans la solution optimale du problème dual la valeur de la variable
correspondante est égale à 0.

Donc

[MAX] du Primal = [MIN] du Dual

• Si x* > 0, de la brioche est fabriquée à l’optimum, donc son prix de revient


ne saurait dépasser strictement son prix de vente:

l’inégalité 5u* + v* + 3w* ≥ 40

devient en fait une égalité

• De même si y* > 0

l’inégalité 4u* + 2v* + 2w* ≥ 50

devient aussi une égalité

On voit que les solutions du primal permettent de déterminer facilement celles du dual,
car les inéquations deviennent des équations.

Pour notre exemple, comme x* > 0 et y* > 0, les contraintes du dual deviennent

5u + v + 3w = 40

4u + 2v + 2w = 50

De plus, pour les valeurs de x* et y*, la première contrainte du primal est stricte donc

u* = 0 et donc

v + 3w = 40

2v + 2w = 50

34
d’où

u* = 0 ; v* = 17,5 ; w* = 7,5 ;

g *(0 ; 17,5 ; 7,5) =690.

Inversement, les solutions du dual permettent de déterminer celles du primal, et l’on


choisira de résoudre d’abord le plus simple des deux, même si c’est l’autre qui présente
plus d’intérêt.

35
PROBLEME DE TRANSPORT

– Un produit doit être transporté de sources (usines) vers des destinations (dépôts,
clients).
– Objectif : déterminer la quantité envoyée de chaque source à chaque destination en
minimisant les coûts de transport. Les coûts sont proportionnels aux quantités
transportées.
– Contraintes d’offre limitée aux sources et de demande à satisfaire aux destinations.

– Une firme automobile a trois usines à Los Angeles, Detroit et New Orleans, et deux
centres de distribution à Denver et Miami.
– Les capacités des trois usines sont de 1000, 1500 et 1200 respectivement, et les
demandes aux centres de distribution sont de 2300 et 1400 voitures.
– Coûts :

xij=
(i 1, 2,3,=j 1, 2) − la quantité transportée de source (usine) i vers la destination j.

36
Représentation tableau

Problèmes non balancés


– Si l’offre n’est pas égale à la demande : modèle non balancé.
– Introduction d’une source ou destination artificielle.

Correspondances avec le modèle de transport

Transport Production - stocks


Source i Période de production i
Destination j Période de demande j
Offre à la source i Capacité de production à la période i
Demande à la Demande pour la période j
destination j
Coût de transport de i Coût unitaire (production + stock +
àj pénalité)
pour une production en période i pour la
période j

37
ALGORITHME POUR LE PROBLEME DE TRANSPORT

Basé sur l’algorithme du simplexe en tenant compte de la structure du problème.


1. Détermination d’une solution de base admissible.
2. Détermination de la variable entrant en base.
3. Détermination de la variable sortant de base.
Exemple

Détermination d’une solution de base admissible


– Heuristiques "gloutonnes", pas besoin de méthode des deux phases.
– Variantes :
1. Coin Nord-Ouest
2. Méthode des moindres coûts

Coin Nord-Ouest
Partir du coin supérieur gauche du tableau.
1. Allouer le plus possible à la cellule courante et ajuster l’offre et la demande ;
2. se déplacer d’une cellule vers la droite (demande nulle) ou le bas (offre nulle) ;
3. répéter jusqu’au moment où toute l’offre est allouée.

38
Moindres coûts
Sélectionner la cellule de coût minimum.
1. Allouer le plus possible à la cellule courante et ajuster l’offre et la demande ;
2. sélectionner la cellule de coût minimum ayant une demande et une offre non nulles ;
3. répéter jusqu’au moment où toute l’offre est allouée.

39
Interprétation du dual
On suppose qu’il y a une organisation de transport qui propose pour chaque unité de

produit de l’usine i (i = 1; m) de nous « payer » α i et après avoir transporté la quantité

nécessaire à la destination j ( j = 1, n) on doit pour chaque unité de produit lui « payer »

β j . Quels sont les prix unitaires de α i et de β j à définir pour que cette organisation ait

un profit maximum, et pour que ça soit raisonnable qu’on profite de ses services.
C’est-à-dire on aura

m n
−∑ α i ai + ∑ β j b j
max w =
=i 1 =j 1

s.c. − α i + β j ≤ cij= =
i 1, 2,..., m, j 1, 2,..., n.

Si l’on note −α
= i ui , β=j v j , on aura le problème dual formulé au-dessus.

Trois étapes :
1. détermination des variables duales (multiplicateurs) ;
2. vérification du critère d’optimalité et détermination de la variable entrante ;
3. détermination de la variable sortante pour préserver l’admissibilité et pivotage.

Détermination des variables duales


1. m + n − 1 équations à m + n inconnues : fixer u1 = 0.
2. Résoudre récursivement le système

Pij =ui + vj − cij = 0 pour tout xij > 0.

40
Vérification du critère d’optimalité et détermination de la variable entrante
Si pour les variables hors-bases les valeurs de tous les Pij sont inférieures ou égales
à 0, alors la solution optimale est atteinte.

Parmi les Pij on cherche les valeurs positives. S’il y a plusieurs on prend la cellule de coût
minimum et la variable correspondante entre dans la base.

Détermination de la variable sortante pour préserver l’admissibilité et


pivotage.

Objectifs :

1. l’offre et la demande doivent continuer à être satisfaites ;

2. les quantités transportées doivent rester positives.

Méthode :
1. construction d’un cycle parcourant des variables en base en partant de et revenant
à la variable entrante ;
2. parmi les moins (-) on cherche le minimum θ = min{5; 5; 10}. Ici il y a deux
cellules qui correspondent à 5. Pour arriver à notre but le plus vite possible, on fait
sortir la variable (c.-à-d. on l’annule en supprimant) dont la cellule correspondante
comporte le coût maximum;

41
3. déplacement le long de lignes et colonnes en alternant ajout et retrait d’une même
quantité ( θ =5).

On remarque que pour les variables hors-bases les valeurs de tous les Pij sont
inférieures ou égales à 0, alors la solution optimale est atteinte.

Coût =2*5+11*10+7*10+9*15+4*5+18*5=435.

BIBLIOGRAPHIE

1. Virgil DUMBRAVA, Cours de Recherche Opérationnelle, 2009.


2. Yves De Smet et Bernard Fortz, Algorithmique 3 et Recherche Opérationnelle,
2013-2014.
3. Jean-Pierre Dussault, Optimisation linéaire, Université de Sherbrooke, 2019.

42

Vous aimerez peut-être aussi