Introduction à la Recherche Opérationnelle
Introduction à la Recherche Opérationnelle
Introduction à la Recherche
Opérationnelle
0
AVANT- PROPOS
Dans cet ouvrage, chaque chapitre comprend un rappel de cours, suivi d’un
certain nombre d’exercices, souvent corrigés. Les exercices sont souvent
empruntés au domaine de l’économie et de la gestion.
Samir BELLAL
Maître de Conférences
Université de Tizi-Ouzou
1
Sommaire
Chapitre 3. La dualité
Chapitre 4. La paramétrisation
2
Chapitre 1
Introduction- Généralités- Rappels
Présentation et exemple :
Maximiser Z = 2 X1 + 4 X2 + 0,5 X3
Sous les contraintes :
3
4 X1 + 2 X2 + 0 X3 ≤ 100
2 X1 + X2 + X3 ≤ 100
X1 + 3 X2 + X3 ≤ 100
X1, X2, X3 ≥ 0
Notation :
Max CX
AX ≤ b
X≥0
avec :
C= ; X= ;
A= ; b=
Forme standard :
A X = b ; X ≥ 0, b ≥ 0
On obtient la forme standard en introduisant des variables supplémentaires
appelées variables d’écart
Max CX Max CX
AX ≤ b → AX – X’ = b
X≥0 X, X’ ≥ 0
4
II. Caractérisation algébrique des points extrêmes
1) Interprétation géométrique de la solution de base
La solution se trouve ou bien sur un des points extrêmes ou sur une arrête dans
certains cas.
2. Théorème
L’ensemble des points extrêmes d’un polytope E correspond à l’ensemble des
solutions de base réalisables.
Corollaire : L’ensemble convexe E = {x / xϵ Rn+ / AX = b} a un nombre fini k
de points extrêmes où k ≤ Cmn
5
III. Solution optimale d’un problème de programmation linéaire
1) Théorème
L’optimum de la fonction objective Z fonction linéaire sur E qui est inclus dans
Rn est atteint en au moins un point extrême. S’il est atteint en plusieurs points
extrêmes, il est atteint en tout point et combinaison convexe des points extrêmes.
2) Résumé
Les programmes linéaires sont résolubles grâce à certaines propriétés. Ces
propriétés sont les suivantes :
a) L’objectif est représenté par un hyperplan se déplaçant parallèlement à lui-
même.
b) Si la fonction objective Z est bornée dans E, la solution optimale se trouve en
un point extrême du polytope et on peut l’atteindre en un nombre fini d’étapes
par inspection d’un nombre fini de points extrêmes en passant d’un sommet à un
autre adjacent.
IV. Exercices
6
Solution :
2) Max Z = 3X + Y
6X + 2Y ≤ 4
X, Y ≥ 0
3) Min Z = X + 2Y
2X + 3Y ≥ 1
4X + 9Y ≥ 2
X, Y ≥ 0
7
4) Min Z = X + 2Y
2X + 3Y ≥ 1
2X + 9/2 Y ≥ 2
3X + 6Y ≥ ½
X, Y ≥ 0
T1 T2 T3
L1 0.375 0.125 0.1
L2 0.5 0.05 0.2
L3 0.5 0.2 0.15
M1 M2 M3 M4
Montage 8 10 12 15
Tests 2 2 4 5
8
La force de travail de l’atelier de montage est de 6000 heures/mois, celle de
l’atelier de tests est de 1500 heures/mois et les profits des postes M1, M2, M3 et
M4 sont respectivement de 4000 DA, 6000 DA, 8000 DA et 10000 DA.
L’entreprise dispose chaque mois de 450 transformateurs et de 300 tubes
cathodiques couleur. On a besoin d’un transformateur dans chaque poste
(Noir&Blanc ou couleur). La quantité disponible de tubes cathodiques
Noir&Blanc n’est pas limitée.
Ecrire le problème de maximisation du profit de cette entreprise sous la forme
d’un programme linéaire.
9
Solution :
Min C = 500 X + 700 Y
80 X + 40 Y ≥ 3000
80 X ≥ 1000
40 Y ≥ 800
X, Y ≥ 0
7. La fabrication d’une pièce P1 coûte 150 DA, celle d’une pièce P2 100 DA.
Chaque pièce est traitée successivement dans 3 ateliers. Le nombre d’heures-
machines par pièce est indiqué dans le tableau suivant:
10
8. Trois machines M1, M2, M3 peuvent produire chacune deux types de pièces
P1 et P2. Le temps de fabrication d’une pièce P i sur la machine M j est reporté
dans le tableau suivant (temps en heures)
11
Chapitre 2
La méthode du simplexe
12
Illustration :
Soit le tableau du simplexe dans lequel l’élément pivot est « a »
a1 a2 a3 a a4 a5 a6
b1 b2 b2 b b4 b5 b6
- - - - -
: Coefficient pivot.
2) Exemple pratique
13
Max Z = 4 X1 + 3 X2 Max Z – 4 X1 – 3 X2
X1 ≤ 8 X1 + X’1 = 8
X2 ≤ 6 → X2 + X’2 = 6
X1 + 2 X2 ≤ 15 X1 + 2 X2 + X’3 = 15
2 X1 + X2 ≤ 18 2 X1 + X2 + X’4 = 18
X1, X2 ≥ 0 X1, X2 ≥ 0
X’1, X’2, X’3, X’4 ≥ 0
(X’1, X’2, X’3, X’4, X1, X2) = (8, 6, 15, 18, 0, 0) est une solution de base de
départ réalisable.
Tableau 1 :
X1 X2 X’1 X’2 X’3 X’4 b
X’1 1 0 1 0 0 0 8
X’2 0 1 0 1 0 0 6
X’3 1 2 0 0 1 0 15
X’4 2 1 0 0 0 1 18
Z -4 -3 0 0 0 0 0
14
Tableau 2 :
X1 X2 X’1 X’2 X’3 X’4 b
X1 1 0 1 0 0 0 8
X’2 0 1 0 1 0 0 6
X’3 0 2 -1 0 1 0 7
X’4 0 1 -2 0 0 1 2
Z 0 -3 +4 0 0 0 32
Tableau 3 :
X1 X2 X’1 X’2 X’3 X’4 b
X1 1 0 1 0 0 0 8
X’2 0 0 2 1 0 -1 4
X’3 0 0 3 0 1 -2 3
X2 0 1 -2 0 0 1 2
Z 0 0 -2 0 0 3 38
Tableau 4 :
X1 X2 X’1 X’2 X’3 X’4 b
X1 1 0 0 0 - 1/3 2/3 7
X’2 0 0 0 1 - 2/3 1/3 2
X’1 0 0 1 0 1/3 - 2/3 1
X2 0 1 0 0 2/3 - 1/3 4
Z 0 0 0 0 2/3 5/4 40
15
La solution (X1 = 7, X2 = 4) est réalisable et optimale.
La valeur maximale de Z est égale à 40.
Exemple :
Max Z = 3 X1 + 3 X2 + X3 Max Z – 3 X1 – 3 X2 – X3
X1 + 4 X2 ≤ 10 X1 + 4 X2 + X’1 = 10
X1 + X2 + X3 ≤ 12 → X1 + X2 + X3 + X’2 = 12
2X1 + X3 ≥ 8 2 X1 + X3 – X’3 = 8
X1, X2, X3 ≥ 0 X1, X2, X3 ≥ 0
X’1, X’2, X’3 ≥ 0
On obtient une solution de base qui n’est pas réalisable (car X’3 = - 8)
On introduit une variable artificielle t de la manière suivante :
16
Max Z = 3 X1 + 3 X2 + X3 – M t (+ M t pour Min)
X1 + 4 X2 + X’1 = 10
X1 + X2 + X3 + X’2 = 12
2 X1 + X3 – X’3 + t = 8 (3)
X1, X2, X3 ≥ 0
X’1, X’2, X’3, t ≥ 0
17
On supprime la colonne de t une fois que le coefficient M disparait de la valeur
de Z.
On obtient la solution optimale suivante :
(X1 = 10 ; X3 = 2 ; X2 = 0) ; Z = 32.
Exemple :
Min Z = 4 X1 + X2
3 X1 + X2 = 3 3 X1 + X2 + t1 = 3
4 X1 + 3 X2 – X3 = 6 → 4 X1 + 3 X2 – X3 + t2 = 6 ( I’)
X1 + 2 X2 + X4 = 4 X1 + 2 X2 + X4 = 4
X1, X2, X3, X4 ≥ 0 X1, X2, X3, X4, t1, t2 ≥ 0
Première phase :
Résoudre le problème intermédiaire Min T = t1 + t2 sous les contraintes I’
En écrivant T en fonction des variables hors base, cela revient à résoudre :
Min T = – 7 X1 – 4 X2 + X3 + 9
par la méthode du simplexe.
La solution optimale de ce problème est la suivante :
X1 = 3/5 ; X2 = 6/5 ; X3 = 0 ; X4 = 1.
Cette solution peut être prise comme solution de départ pour le problème initial.
Deuxième phase :
Le dernier tableau du simplexe (tableau optimal) étant :
18
X1 X2 X3 X4 t1 t2 b
X1 1 0 1/5 0 3/5 - 1/5 3/5
X2 0 1 - 3/5 0 - 4/5 3/5 6/5
X4 0 0 1 1 1 -1 1
T 0 0 0 0 -1 -1 0
Min Z = 4 X1 + X2
X1 + 1/5 X3 = 3/5
X2 – 3/5 X3 = 6/5 (II)
X3 + X4 = 1
III. Exercices
1. Soit deux machines M1 et M2 traitant chacune deux produits X et Y. Les
deux machines ne peuvent fonctionner que 3000 heures/ an. Nous savons d’autre
part qu’une unité de X requiert une heure de M1 et deux heures de M2 tandis
qu’une unité de Y requiert deux heures de M1 et une heure de M2. La marge sur
19
coût variable d’un X est de dix dinars, la marge sur coût variable d’un Y est de
douze dinars.
Déterminer graphiquement le programme optimal de production.
Solution :
Max (10 x + 12 y)
x + 2 y ≤ 3000
2x + y ≤ 3000
x, y ≥ 0
Graphiquement, la solution sera donnée par les coordonnées du point E,
intersection des deux droites dont les équations sont respectivement x + 2 y =
3000 et 2 x + y = 3000.
E (1000 ; 1000)
La fonction objective aura, à l’optimum, la valeur de 22000 dinars.
Ce qui signifie : pour produire une (01) unité de A et une (01) unité de B, on
utilise deux (02) unités de I pour A et une (01) unité de I pour B, etc.
Déterminer le programme optimal de production.
20
Solution :
Max Z = 4 X1 + 5 X2
2 X1 + X2 ≤ 8
X1 + 2 X2 ≤ 7
X2 ≤ 3
X1, X2 ≥ 0
21
Solution :
Min Z = 3 X1 + 7 X2 + 7 X3 + 5 X4 + 5 X5
10 X1 + 30 X2 + 35 X3 + 20 X4 + 25 X5 ≥ 70
300 X1 + 1800 X2 + 800 X3 + 1500 X4 + 300 X5 ≥ 3000
0,05 X1 + 0,4 X2 + 0,45 X3 + 0,75 X4 + 0,12 X5 ≥ 0,8
0,004 X1 + 0,004 X4 + 0,015 X5 ≥ 0,012
X1, X2, X3, X4, X5 ≥ 0
Solution :
Max Z = 4 X1 + 12 X2 + 3 X3
X1 ≤ 1000
X2 ≤ 500
X3 ≤ 1500
1/50 X1 + 1/25 X2 + 1/75 X3 ≤ 45
X1, X2, X3 ≥ 0
La solution optimale de ce programme est :
( X1 = 250 ; X2 = 500 ; X3 = 1500 )
La valeur optimale de Z (Profit total) est de 11500 DA.
22
5. Une entreprise fabrique deux produits qu’elle désire vendre dans un pays
lointain. Le produit A rapporte 4 DA par kg et le produit B rapporte 6 DA par
kg. Ayant des moyens financiers limités, la société ne peut affréter qu’un seul
avion. Celui-ci ne peut transporter que 50 tonnes et un volume de 2100 m3. Le
produit A a un volume de 30 m3 par tonne, le produit B a un volume de 70 m3
par tonne.
Combien de kg de chaque produit l’entreprise doit-elle mettre dans l’avion afin
de maximiser ses gains ?
Solution :
En utilisant la méthode en M, on obtient le premier tableau du simplexe
suivant :
23
X Y Z X’1 X’2 X’3 t b
X’1 2 8 0 1 0 0 0 20
X’2 1/2 1/2 1/2 0 1 0 0 6
t 1 0 1/2 0 0 -1 1 4
W - (1+M) - 1 - (1/3 +1/2 M) 0 0 + M 0 - 4M
Solution :
On applique la méthode en M en introduisant deux variables artificielles t1 et
t2.
Après transformation, on obtient :
Min Z = (1-3M) X1 + (1- 4M) X2 + M X’1 + M X’2 + 7M
2X1 + X2 – X’1 + t1 = 4
X1 + 3 X2 – X’2 + t2 =3
X1, X2, X’1, X’2, t1, t2 ≥ 0
Le dernier tableau du simplexe (tableau optimal) se présente comme suit :
24
X1 X2 X’1 X’2 t1 t2 b
X1 1 0 - 3/5 1/5 3/5 - 1/5 9/5
X2 0 1 1/5 - 2/5 - 1/5 2/5 2/5
Z 0 0 - 2/5 - 1/5 11/5
Max ( 2 X1 + 3 X2 – X3 + X4 – 3 X5 )
sous les contraintes :
X1 – X2 + X4 – X5 = 100
X2 – X3 + 2 X4 = 20
X3 – X4 ≤ 50
X1, X2, X3, X4, X5 ≥ 0
Solution :
( X1 = 170 ; X2 = 70 ; X3 = 50 ) ; Z = 500.
25
On veut fabriquer au moindre coût six (06) pièces P1 et huit (08) pièces P2. La
machine M1 est disponible 14h, les deux autres machines sont disponibles 24h.
Le coût horaire de M1 est 7 DA, celui de M2 est de 5 DA et celui de M3 est de 6
DA.
- Ecrire le programme linéaire associé ;
- Résoudre le problème.
11. Une baguette de pain vaut 10 DA. Elle contient 900 calories et 20 gr de
protéines. Un camembert vaut 50 DA. Il contient 1800 calories et 80 gr de
protéines. Une personne en convalescence doit absorber au minimum 3600
calories et 120 gr de protéines par jour en ne consommant que du camembert et
du pain en baguette. Déterminer la ration alimentaire la moins chère satisfaisant
au régime indiqué.
12. Résoudre par la méthode des deux phases le programme linéaire suivant :
Max Z = – 3 x1 + 2 x2 – 2 x3 – x4
4 x1 – 2 x2 + x 3 – x4 ≤ – 2
– x1 – x3 ≤ – 10
x1 x 2 x3 x4 ≥ 0
26
(haut risque), et à 30000 $ au plus la somme des placements 2 et 3 (croissance et
haut risque)
Solution :
Max Z = 5 X1 + 8 X2 + 16 X3 (X1, X2, X3 : sommes en milliers de $)
X1 + X2 + X3 ≤ 50
X2 + X3 ≤ 30
X3 ≤ 25
X1 X2 X3 ≥ 0
La solution consiste à investir respectivement 20000 $, 5000 $ et 25000 $ dans
les placements proposés, pour un rapport annuel global de 540 x 1000/100 =
5400 $.
27
Chapitre 3
La dualité
Les programmes primal et dual sont étroitement liés l’un à l’autre, comme le
montre cet exemple :
Règles de passage de I à II :
- Si les contraintes du primal sont des égalités, alors les variables duales (λ)
associées à ces égalités sont de signes quelconques ;
28
- Si les contraintes du primal sont incompatibles, alors :
ou bien les contraintes du dual sont incompatibles ;
ou bien les contraintes du dual n’admettent pas de solutions bornées.
- Si (I) n’admet pas de solution bornée bien que les contraintes soient
compatibles, alors les contraintes de (II) sont incompatibles.
Maximisation Minimisation
= Variable quelconque
Contraintes ≤ Variable ≥ 0
≥ Variable ≤ 0
Quelconque Contrainte =
Variables ≥0 Contrainte ≥
≤0 Contrainte ≤
Les solutions optimales d’un problème et de son dual sont liées par les
propriétés suivantes :
- Si une variable Xi est strictement positive dans la solution optimale (Xi 0),
la contrainte duale correspondante doit être, à l’optimum, satisfaite en tant
qu’égalité ;
- Si une contrainte du problème direct (primal) est, pour la solution optimale,
satisfaite en tant qu’inégalité stricte, la variable duale associée est nulle à
l’optimum ;
- Si une variable λs est strictement positive dans la solution optimale (λs 0), la
contrainte du problème direct (primal) à laquelle elle est associée, est satisfaite,
à l’optimum, en tant qu’égalité ;
- Si une contrainte du problème dual est, pour la solution optimale, satisfaite en
tant qu’inégalité stricte, la variable du problème direct qui lui correspond est
nulle à l’optimum.
29
II. La méthode duale du simplexe
Exemple :
Min t = 6 X1 + 4 X2
3 X1 – X2 ≥ 3 → 3 X1 – X2 – X’1 = 3
2 X1 – 2 X2 ≥ 4 2 X1 – 2 X2 – X’2 = 4
1) Présentation
L’algorithme dual du simplexe est une méthode très proche de la méthode du
simplexe et tout aussi fondamentale.
Dans cette méthode, contrairement à la méthode du simplexe, on part d’une
solution non réalisable et d’une fonction trop avantageuse.
- La solution est non réalisable car il existe des bi négatifs ;
- La fonction est trop avantageuse en ce sens que l’on ne va pouvoir que la
détériorer. Dans ce cas, on parle de solution pseudo-optimale.
La méthode duale consiste à partir d’une solution non réalisable que l’on
cherche à rendre réalisable en éliminant une à une les variables basiques tout en
conservant l’optimalité de la solution.
30
Etape 1 :
On commence avec un tableau dans lequel tous les coefficients de la fonction
objective sont négatifs ou nuls, i.e
Cj ≤ 0 j
Etape 2 :
Si bi ≥ 0 i, le problème est résolu.
Sinon on choisit max .
On essaye d’échanger la variable de base Xi avec une variable hors base pour
obtenir un programme pseudo-optimal. Si tous les a i, j+m de la ligne i sont ≥ 0, le
problème n’a pas de solution.
S’il existe a i, j+m ˂ 0, on prend :
C j / a i, j = min j
max j
Etape 3 :
Effectuer le pivotage de Xi Xj autour du pivot. Cet échange conduit à un
programme pseudo-optimal donnant à la fonction une valeur moins avantageuse.
Ensuite retourner à l’étape 2.
Exemple :
Soit le programme linéaire suivant :
31
Min Z = 468 X1 +540 X2 + 648 X3
9 X1 + 6 X2 ≥ 54
9 X2 + 12 X3 ≥ 45
3 X1 + 3 X2 ≥ 18
3 X1 + 3 X2 + 3 X3 ≥ 36
6 X1 + 3 X2 + 9 X3 ≥ 90
Tableau 1 :
X1 X2 X3 X’1 X’2 X’3 X’4 X’5 b
X’1 -9 -6 0 1 0 0 0 0 - 54
X’2 0 -9 - 12 0 1 0 0 0 - 45
X’3 -3 -3 0 0 0 1 0 0 - 18
X’4 -3 -3 -3 0 0 0 1 0 - 36
X’5 -6 -6 -9 0 0 0 0 1 - 90
Z - 468 - 540 - 648 0 0 0 0 0 0
32
Tableau 2:
X1 X2 X3 X’1 X’2 X’3 X’4 X’5 b
X’1 -9 -6 0 1 0 0 0 0 - 54
X’2 8 -1 0 0 1 0 0 - 4/3 75
X’3 -3 -3 0 0 0 1 0 0 - 18
X’4 -1 -1 0 0 0 1 1 - 1/3 -6
X3 2/3 2/3 1 0 0 0 0 - 1/9 10
Z - 36 - 108 0 0 0 0 0 - 72 +6480
Tableau 3 :
X1 X2 X3 X’1 X’2 X’3 X’4 X’5 b
X1 1 2/3 0 - 1/9 0 0 0 0 6
X’2 0 - 19/3 0 8/9 1 0 0 - 4/3 27
X’3 0 -1 0 - 1/3 0 1 0 0 0
X’4 0 - 1/3 0 - 1/9 0 0 1 - 1/3 0
X3 0 2/9 1 2/27 0 0 0 - 1/9 6
Z 0 - 84 0 -4 0 0 0 - 72 +6696
III. Exercices
33
a) Min Z = x1 – 2 x2 + x3 – x4 + x5
x1 – 2 x2 + x3 – 3 x4 – 2 x5 = 6
2 x1 + 3 x2 – 2 x3 – x4 + x5 ≤ 4
x1 + 3 x3 – 4 x5 ≥ 8
x1 ≥ 0, x2 ≥ 0, x3 et x4 sont quelconques.
b) Max z = 2 x1 – x3
x1 + x2 + x3 ≤ 4
3 x2 + 5 x3 = 5
– x1 + x2 ≥ 0
x2 – x3 = 2
x1 – x2 – x3 ≤ – 2
x1 ≥ 0, x3 ≥ 0, x2 est quelconque.
c) Min Z = c x + d y
A1 x + A2 y ≥ a
B1 x + B2 y = b
x ≥ 0, y quelconque.
34
Les machines A et B ne peuvent fonctionner plus de 24 heures par semaine.
1) Déterminer le programme hebdomadaire optimal.
2) L’entreprise peut louer les machines. Quel est le prix horaire le plus élevé
auquel elle peut louer les machines A et B ?
Solution :
1) Max W = 5x + 7y + 9z
2x + 4y + 6z ≤ 24
5x + 2y + 3z ≤ 24
x, y, z ≥ 0
En appliquant l’algorithme du simplexe, on obtient la solution :
( x = 3, y = 9/2 ) ; W = 93/2
Tableau optimal du programme primal
x y z a1 a2 b
y 0 1 3/2 5/16 - 1/8 9/2
x 1 0 0 - 1/8 1/4 3
W 0 0 3/2 25/16 3/8 93/2
2) Min (24 u + 24 v)
2u + 5v ≥ 5
4u + 2v ≥ 7
6u + 3v ≥ 9
u, v ≥ 0
Ce programme est le dual du précédent.
Par la méthode graphique, on obtient la solution : u = 25/16 ; v = 3/8.
35
En utilisant l’algorithme dual du simplexe, nous obtenons le tableau optimal
suivant :
u v a’1 a’2 a’3 b
u 1 0 1/8 - 5/16 0 25/16
v 0 1 - 1/4 1/8 0 3/8
a’3 0 0 0 3/2 -1 - 3/2
W 0 0 -3 - 9/2 0 93/2
Solution :
1) X1 = 0 ; X2 = 5/2 ; X3 = 0 ; X4 = 0 ; X5 = 19/2 ; X6 = 0 ; X7 = 9/2
36
2) On utilise les propriétés liant les solutions du primal avec celles du dual.
3) La première contrainte est redondante.
Solution :
- La solution optimale du primal est :
(X1 = 2 ; X2 = 0) ; Z = 2.
- Programme dual :
Min W = 4 Y1 + 15 Y2
2 Y1 + 3 Y2 ≥ 1
4 Y1 + 5 Y2 ≥ -1
Y1, Y2 ≥ 0
En utilisant les propriétés liant les solutions du primal et celles du dual, on
obtient : (Y1 = ½ ; Y2 = 0) ; W = 2.
37
Chapitre 4
La paramétrisation
1) Exemple
Résoudre par la méthode du simplexe
Max Z = 3 X1 + 2 X2 + X3
X1 + 4 X2 ≤ 5
2 X1 + X2 + X3 ≤ 6
2 X1 + X3 ≥ 4
X1, X2, X3 ≥ 0
38
Max Z = (3+2M) X1 + 2 X2 + (1+M) X3 – M X’3 – 4M
X1 + 4 X2 + X’1 = 5
2 X1 + X2 + X3 + X’2 = 6
2 X1 + X3 – X’3 + t = 4
X1, X2, X3, X’1, X’2, X’3, t ≥ 0
39
La ligne des j devient :
0 7+12 0 2+3 1 0 16+15
40
Min 5 (1+) λ1 + 6 λ2 – 4 λ3
λ1 + 2 λ2 – 2 λ3 ≥ 3
4 λ1 + λ2 ≥ 2
λ2 – λ3 ≥ 1
λ1, λ2, λ3 ≥ 0
41
Le tableau optimal du programme dual :
λ1 λ2 λ3 λ’1 λ’2 λ’3 b
λ2 0 1 -1 0 0 -1 1
λ1 1 0 -1 -1 0 1 2
λ’2 0 0 -5 -4 1 3 7
Z 0 0 -(7+5) -5(1+) 0 -(1-5) 10+16
III. Exercices
42
a) Résoudre ce problème selon les valeurs de « m » ;
b) Pour m = 0, déterminer une solution optimale du problème dual si elle existe.
43
Chapitre 5
Le problème de transport
M1 M2 M3 M4 M5 b
U1 4 1 2 6 9 100
U2 6 4 3 5 7 120
U3 5 2 5 4 8 120
C 40 50 70 90 90
où :
U i : Usine i (source i);
M j : Magasin j (destination j) ;
C : Demandes des magasins en produit A ;
b : Quantités de ce produit disponibles pour chacune de ces usines ;
a i j : Coûts de transport unitaires de chacune des usines à chacun des magasins.
Enoncé du problème :
Quel est le programme de transport (c'est-à-dire l’ensemble des quantités
transportées de Ui à Mj ) qui minimise le coût total de l’opération en respectant
toutefois les contraintes liées à l’offre des usines et à la demande des magasins ?
44
2) L’offre totale excède la demande totale ;
3) La demande totale excède l’offre totale.
Compte tenu de ce que le premier cas se prête à un calcul simple, on peut
montrer :
- que l’expression générale du problème de transport se modifie quand il y a
égalité de l’offre et de la demande totales ;
- que les cas (2) et (3) peuvent se ramener au cas (1) par un procédé assez
simple.
3) Exemple pratique
On va formaliser sous forme de programme linéaire le problème de transport
précédent en appelant yi j le nombre d’unités transportées de la source i à la
destination j. On voit que le problème comporte 15 inconnues positives ou
45
nulles, de façon à minimiser le coût global de transport en satisfaisant la
demande minimale de chaque magasin sans dépasser les offres des usines.
La traduction du problème de transport considéré est :
46
La procédure commence par la recherche d’une solution de base. Il existe de
nombreuses méthodes pour trouver cette solution.
- Règle du Coin Nord Ouest (utilisée ici) ;
- Règle du meilleur CNO ;
- Règle du minimum de ligne.
Règle du CNO :
On prend le tableau initial des coûts, on le vide de ses coûts.
40 50 10 100
60 60 120
30 90 120
40 50 70 90 90
40 50 10 100
60 120
90 30 120
40 50 70 90 90
Z = 1430
14 = 4 ; 15 = 3 ; 21 = 1 ; 22 = 2 ;
24 = 2 ; 31 = -1 ; 32 = -1 ; 33 = 2
10 50 40 100
30 90 120
90 120
40 50 70 90 90
14 = 3 ; 24 = 1 ;
48
15 = 3 ; 32 = 0 ;
21 = 1 ; 33 = 3 ;
22 = 2 ; 35 = 1.
IV. Exercices
b1 b2 b3 b4 ai
a1 1 2 3 4 12
a2 4 5 2 3 10
a3 1 3 2 1 10
bj 10 8 8 6
b1 b2 b3 b4 ai
a1 4 2 3 5 14
a2 4 5 2 3 11
a3 1 3 2 1 10
bj 10 8 8 6
49
Où a i et b j représentent respectivement les quantités d’un produit disponible au
site i et les quantités demandées par le lieu de vente j. Les éléments du tableau
sont les coûts de transport du site i au lieu de vente j.
Ville 1 Ville 2
Centrale 1 20 25
Centrale 2 15 10
Centrale 3 10 15
Le problème est de subvenir aux besoins des villes à moindre coût. Modéliser le
problème sous forme d’un programme linéaire.
50
Donner une modélisation de ce problème de transport de manière à satisfaire la
demande à partir des quantités disponibles et en minimisant les coûts de
transport.
51
Chapitre 6
La programmation linéaire en nombres
entiers
I. Introduction
Soit le problème de programmation linéaire suivant :
I. Max C X
AX≤b
X≥0
Exemple :
Max
≤ bi
X1, X2 ≥ 0 ; X3, X4 ϵ N
52
solution (non entière) est une borne supérieure pour la valeur de la fonction à
l’optimum du problème posé.
Pour déterminer cette solution, on peut utiliser l’une des deux méthodes
suivantes :
- Méthode des troncatures ;
- Méthode Branch and Bound.
Remarque :
Il faudrait rendre entiers avant l’utilisation de l’algorithme et surtout
avant l’introduction des variables d’écart (pour les rendre entiers).
Pour cela, il suffirait quand c’est nécessaire de multiplier les deux membres des
contraintes par des nombres suffisamment grands.
Exemple :
Le principe et l’appellation seront développés sur le problème suivant :
Max C1 X1 + C2 X2
a11 X1 + a12 X2 + X’1 = b1
a21 X1 + a22 X2 + X’2 = b2 (aij, bi )
X1, X2, X’1, X’2 ϵ N
Supposons que la résolution sans tenir compte des conditions d’intégrité est
résumée dans le tableau – optimal – suivant :
53
X1 X2 X’1 X’2 b
X1 1 0 a’11 a’12 B1 (1)
X2 0 1 a’21 a’22 B2 (2)
0 0 y1 y2 Z
54
Puis on l’introduit dans le tableau optimal précédent et on utilise la méthode
duale du simplexe pour résoudre le problème.
Exemple pratique :
Max (5X1 + X2)
4 X1 + X2 ≤ 14
X1, X2 ϵ N
Les coefficients aij et bi sont entiers, on résout le problème sans tenir compte
des conditions d’intégrité.
Tableau 1 :
X1 X2 X’1 b
X’1 4 1 1 14
-5 -1 0 0
Tableau 2 :
X1 X2 X’1 b
X1 1 1/4 1/4 7/2
0 1/4 5/4 17,5
La solution obtenue n’est pas optimale (X1 = 7/2) car elle n’est pas entière.
X1 + ¼ X2 + ¼ X’1 = 7/2 = 3 + ½ .
¼ X2 + ¼ X’1 = (3 – X1) + ½ .
¼ X2 + ¼ X’1 ≥ ½ ⇒ X2 + X’1 ≥ 2 (1)
55
(1) ⇒ – X2 – X’1 + X’2 = – 2
X1 X2 X’1 X’2 b
X1 1 1/4 1/4 0 7/2
X’2 0 -1 -1 1 -2
Z 0 1/4 5/4 0 35/2
Max j [ ; ˂ 0] = – ¼
X1 X2 X’1 X’2 b
X1 1 0 0 1/4 3
X2 0 1 1 -1 2
Z 0 0 1 1/4 17
Exemple :
Max Z = 8 X1 + 5 X2 + 7X3
1,5 X1 + 3 X2 ≤5
X1 + 7 X2 + 2 X3 ≤ 24
X1 ϵ N, X2, X3 ≥ 0
56
La résolution de ce problème sans tenir compte de la condition d’intégrité nous
donne la solution suivante :
X1 = 10/3 ; X2 = 0 ; X3 = 31/3 ; Zs = 99.
Compte tenu de la condition d’intégrité de X1, on va chercher une autre solution
(Z I) telle que X1 ϵ N.
X1 est la variable qui pose problème car elle n’est pas entière.
On commence à effectuer les branchements.
X1 ≤ 10/3 ⇒ X1 ϵ {1, 2, 3}
X1 ≤ 3
X1 ≥ 4 i.e. X1 ∉ ] 3, 4 [
On aura donc deux nouvelles contraintes dans le problème initial et comme
celles-ci sont incompatibles, elles vont générer chacune un problème.
Problème initial
I. Problème nouveau (X1 ≥ 4) II. Problème nouveau (X1 ≤ 3)
Max (8 X1 + 5 X2 + 7 X3) Max (8 X1 + 5 X2 + 7 X3)
1,5 X1 + 3 X2 ≤ 5 1,5 X1 + 3 X2 ≤ 5
X1 + 7 X2 + 2 X3 ≤ 24 X1 + 7 X2 + 2 X3 ≤ 24
X1 ≥ 4 X1 ≤ 3
X1 ϵ N, X2, X3 ≥ 0 X1 ϵ N, X2, X3 ≥ 0
Règle d’arrêt : Z S ≤ Z I Règle d’arrêt : Z S ≤ Z I
Dans cet exemple, le problème (I) n’a pas de solution car les contraintes (1) et
(3) sont incompatibles. On passe alors à la résolution du problème (2).
57
On part du tableau optimal du problème initial auquel on ajoute la contrainte
X1 ≤ 3.
X1 X2 X3 X’1 X’2 b
X1 1 2 0 2/3 0 10/3
X3 0 5/2 0 - 1/3 1/2 31/3
Z 0 57/2 0 3 7/2 99
X1 X2 X3 X’1 X’2 Y b
X1 1 0 0 0 0 1 3
X3 0 7/2 1 0 1/2 - 1/2 21/2
X’1 0 3 0 1 0 - 3/2 1/2
Z 0 39/2 0 0 7/2 9/2 195/2
58
X1 = 3 ; X2 = 0, X3 = 21/2
Z = 195/2.
C’est donc la solution optimale de sorte qu’il n’est pas nécessaire d’effectuer
d’autres branchements.
Remarque : Le choix entre la méthode des troncatures et la méthode de Branch
and Bound dépend des cas étudiés.
IV. Exercices
1. En appliquant la méthode appropriée, résoudre le programme linéaire en
nombre entiers suivant :
Max Z = 3 x1 + 2 x2
- x1 + x2 ≤ 1
x1 + 2 x2 ≤ 10
7 x1 + 2 x2 ≤ 28.
x1 ∈ N, x2 ∈ N
Solution :
x1* = x2* = 3 et Z* = 15.
59
Chapitre 7
Théorie des graphes
La théorie des graphes est une branche de la théorie des ensembles. Elle
constitue une méthode de la recherche opérationnelle qui permet de résoudre
certains problèmes de nature combinatoire apparaissant dans les domaines
économiques, sociologiques…
60
M = (a i j) i = 1, n
J = 1, n
avec a i j =
Exemple :
1 2 3
1 0 1 1
2 1 0 0
3 0 1 1
2) Concepts orientés
Soit U = (x i, x j) un arc du graphe alors :
x i : extrémité initiale ;
y j : extrémité terminale.
a) Chemin :
On appelle chemin dans un graphe, une succession d’arcs = (u1, u2, …up) où
l’origine d’un arc est l’extrémité du précédent.
Désignation : = (x1, x2… xp)
La longueur du chemin est la quantité l () telle que l() est égale au nombre
d’arcs formant le chemin .
Un chemin peut être fini ou infini.
Chemin simple : un chemin est dit simple s’il n’emprunte jamais deux fois le
même arc.
61
Chemin élémentaire : un chemin est dit élémentaire s’il ne passe jamais deux
fois par le même sommet.
b) Circuit :
Le circuit est un chemin fini = (x1… x k) dont le sommet initial x1 se confond
avec le sommet terminal x k.
Un circuit est dit élémentaire s’il ne passe jamais deux fois par le même point (à
l’exception de l’origine et de l’extrémité qui coïncident) ;
Un circuit de longueur unité formé par un arc (xi xi) est une boucle.
c) Un chemin ou circuit qui passe une fois et une seule par chaque sommet du
graphe est appelé Hamiltonien.
e) Graphe partiel :
Un graphe partiel G0 par rapport au graphe G est un graphe ne contenant qu’une
partie des arcs du graphe G.
Exemple :
Le réseau routier constitué par les routes nationales est un graphe partiel du
graphe G ; G représentant le réseau routier du territoire algérien.
f) Graphe complet :
Un graphe est complet si tout couple de sommets est relié dans au moins une des
deux directions.
xi xj i≠j (xi xj) ∉ U ⇒ (xj xi) ∈ U.
62
g) Graphe symétrique et graphe antisymétrique :
Un graphe G est symétrique si : xi, xj,
(xi, xj) ∈ U ⇒ (xj, xi) ∈ U.
Un graphe G est antisymétrique si : xi, xj,
(xi, xj) ∈ U ⇒ (xj, xi) ∉ U.
Un graphe antisymétrique ne peut contenir une boucle.
a) Arrête :
On appelle arrête d’un graphe un ensemble de deux éléments (xi, xj) tels que :
(xi, xj) ∈ U et/ou (xj, xi) ∈ U. xi xj
b) Chaîne :
Une chaîne est une succession d’arrêtes u1, u2… un. Chaque arrête uk est
rattachée à uk-1 par une de ses extrémités et à uk+1 par l’autre.
63
Une chaîne simple est une chaîne où les arrêtes utilisées sont toutes différentes.
Dans le cas contraire, la chaîne est dite composée.
Une chaîne est élémentaire si elle ne rencontre pas deux fois le même sommet.
c) Cycle :
Un cycle est une chaîne finie qui part d’un sommet et finit dans ce sommet.
Un cycle est élémentaire si tout sommet se trouvant sur ce cycle n’est rencontré
qu’une seule fois (sauf l’origine et l’extrémité).
d) Graphe connexe :
Un graphe est connexe si deux quelconques de ses sommets sont reliés par une
même chaîne. i.e. :
xi xj (xi ≠ xj), il existe une chaîne allant de xi vers xj.
2) Algorithme de Ford.
Pour résoudre ce problème, il existe plusieurs algorithmes (FORD, DANZIG,
BELLMAN, KELLABA…).
64
L’algorithme de Ford consiste en ces étapes :
1ère étape :
On associe à chaque sommet xi un indice λi.
Pour le chemin de valeur minimale, on pose :
λ0 = 0 (le point de départ)
et λi = + (pour les autres sommets).
Pour le chemin de valeur maximale, on pose :
λ0 = 0
et λi = 0
2e étape :
On modifie successivement les nombres de départ λi. Cette modification
s’effectuant en choisissant un arc (xi, xj) tel que :
λj - λi pour le chemin de valeur minimale (C. V. Min).
λj - λi pour le chemin de valeur maximale (C.V. max).
On remplace ensuite λj par la nouvelle valeur λ’j= λi + l (xi xj)
3e étape :
Quand, après un certain nombre d’ajustements, il n’est plus possible de modifier
les λi,, les valeurs inscrites sur chaque sommet xi donnent la longueur extrême
entre l’origine x0 et xh.
λh : longueur du chemin x0 xh
4e étape :
Pour retrouver le chemin allant de x0 à xh, on relève le sommet xi1 tel que :
λh – λi1 = l(xi1, xh).
65
xi1 est le dernier sommet utilisé pour déterminer λh … puis xi2 tel que :
λi1 – λi2 = l(xi2, xi1) ;
De proche en proche, on obtient x0 = xi k+1 et le chemin cherché est :
= (x0, xik, … xi1, xh).
Exemple :
Rechercher sur le graphique suivant le chemin de valeur optimale.
3) Algorithme de DANTZIG
On numérote d’abord les sommets de x0 à xn-1 (x0 étant l’origine et xn-1
l’extrémité du chemin cherché) et l’on appelle λj la valeur minimale du chemin
entre x0 et xj.
1) Poser : λ0 = 0 et E1 = {x0};
66
2) A toute étape k 2 du problème, associer à chacun des sommets x i des k
sommets marqués (i.e. les sommets dont les λi sont déterminés), le sommet
xi*∉ Ek, tel que l(xi, xi*) soit minimale.
3) Déterminer le sommet xp ∈ Ek, tel que :
λp + l(xp, xp* ) = mini [λi + l(xi, xi )]
Exemple :
1) λ0 = 0 et E1 = }x0{
2) min x0 ϵ {x-E1} l(x0 x0) = l(x0 x1) = 3,
d’où λ1 = 0 + 3 = 3 et E2 = {x0, x1} ;
3) min x0 ϵ {x-E2} l(x0 x0) = l(x0 x3) = 6,
min x1 ϵ {x-E2} l(x1 x1) = l(x1 x3) = 2,
67
puis : min { λ0 + l(xo x3) ; λ1 + l(x1 x3) } = min {6, 5} = 5
d’où :
λ3 = 5 et E3 = {x0 x1 x3}.
4) min x0 ϵ {x-E3} l(x0 x0) = l(x0 x2) = 8,
min x1 ϵ {x-E3} l(x1 x1) = l(x1 x4) = 6,
min x3 ϵ {x-E3} l(x3 x3) = l(x3 x2) = 2,
puis : min { λ0 + l(x0 x2) ; λ1 + l(x1 x4) ; λ3 + l(x3 x2) } = min {8, 9, 7} = 7
d’où : λ2 = 7 et E4 = { x0 x1 x3 x2}.
5) min x1 ϵ {x-E4} l(x1 x1) = l(x1 x4) = 6,
min x2 ϵ {x-E4} l(x2 x2) = l(x2 x4) = 1,
min x3 ϵ {x-E4} l(x3 x3) = l(x3 x5) = 7,
puis : min { λ1 + l(x1 x4) ; λ2 + l(x2 x4) ; λ3 + l(x3 x5) } = min {9, 8, 12} = 8
d’où : λ4 = 8 et E5 = { x0 x1 x3 x2 x4}.
6) Enfin :
min x3 ϵ {x-E5} l(x3 x3) = l(x3 x5) = 7,
min x4 ϵ {x-E5} l(x4 x4) = l(x4 x5) = 1,
68
Question : Comment appliquer l’algorithme de DANTZIG au problème du
chemin de valeur maximale ?
69
o La méthode Américaine CPM (Critical Path Method), avec sa
variante, incluant d’éventuelles données aléatoires, PERT (Program
Evaluation and Review Technique ou Program Evaluation Research
Task);
o La méthode française des potentiels
2) Méthode Américaine
Pour utiliser la méthode américaine, on construit un graphe orienté, sans boucle,
dont les sommets constituent les évènements (étapes de la réalisation où
objectifs intermédiaires) et les arcs représentent les opérations (tâches
élémentaires en lesquelles on a décomposé le processus de réalisation de
l’objectif final).
Les arcs étant valués par les délais d’exécution, il sera aisé, au moyen d’un
algorithme approprié, de rechercher le chemin de valeur maximale dans le
graphe et d’obtenir ainsi le chemin critique.
Exemple :
Un éditeur veut passer commande d’un ouvrage technique à un écrivain
scientifique. Les opérations à accomplir sont indiquées dans le tableau ci-après,
avec leurs durées et la mention des opérations qui doivent précéder chacune
d’entre elles.
70
Opérations Durée en Opérations
15 jours antérieurs
a Approbation du plan de l’ouvrage 1 Néant
b Signature du contrat 1 a
c Remise du manuscrit 12 b
d Approbation du comité de lecture 2 c
e Composition du texte 3 d
f Correction par les correcteurs de l’imprimerie 1 e
g Clichage et tirage des hors textes 3 d
h Exécution des dessins des figures 4 d
i Révision des dessins par l’auteur 1 h
j Correction des dessins clichage des figures 2 i
k Première correction des épreuves par l’auteur 2 f
l Exécution des premières corrections à l’imprimerie 1 k
m Seconde correction des épreuves par l’auteur, indication de
l’emplacement des clichés, approbation des hors textes 2 g, j, l
n Exécution des secondes corrections à l’imprimerie, mise en
pages 1 m
o Tirage du livre 2 n
p Etablissement de la prière d’insérer, des listes d’exemplaires
de presse et d’hommage 1 m
q Pliage 1 o
r Brochage 1 q
s Reliure de certains exemplaires 2 q
t Impression de la prière d’insérer 1/2 p
u Envoi des exemplaires de presse 1/4 r et t
v Envoi des hommages 1/8 s et t
w Envoi des contingents aux libraires. 1/2 r et s
71
Pour établir le diagramme de la méthode, il convient de définir les évènements
qui en formeront les sommets :
0 : début des opérations ;
1 : plan approuvé ;
2 : contrat signé ;
3 : manuscrit remis ;
4 : manuscrit approuvé ;
5 : texte composé ;
6 : texte corrigé par l’imprimerie ;
7 : premières épreuves corrigées par l’auteur ;
8 : dessins exécutés ;
9 : dessins revus par l’auteur ;
10 : premières corrections exécutées par l’imprimerie, secondes épreuves tirées,
clichage terminé pour les figures, impression pour les hors textes…
…
22 : achèvement des opérations.
72
73
Le diagramme obtenu, sans boucle, est aussi sans circuit ; il réalise donc un
ordonnancement dans lequel les contraintes de succession ne sont pas
contradictoires.
Pour déterminer les dates attendues des divers évènements, il suffit d’examiner
pour tout sommet (évènement) la date la plus proche de réalisation (date
attendue). Lorsqu’il existe plusieurs chemins entre deux points, la date attendue
est évidemment celle qui est obtenue en suivant le chemin de valeur la plus
grande.
Exemple :
L’impression des hors textes (g) peut être achevée à 16+3=19, mais l’évènement
n° 10 n’aura lieu que lorsque les opérations (h, i et j) ainsi que (e, f, k, l) seront
accomplies.
L’exemple étant particulièrement simple, il est facile d’obtenir la date attendue
de l’achèvement des opérations, soit 31 ½.
Le chemin critique est le chemin jalonné par les évènements (dits critiques) dont
la date attendue est égale à la différence entre la date attendue de l’évènement
suivant, sur le chemin critique, et la valeur de l’arc qui les relie (voir exemple).
Tout arc dont la suppression rendrait le graphe de la méthode américaine non
connexe fait partie du chemin critique (exemple : l’une quelconque des
opérations « a » à « d », l’opération « m »).
74
Dans chacune des colonnes, on écrit les opérations qui doivent précéder celle
qui est indiquée en tête de colonne ; on indique aussi la durée de ces opérations
préalables. Quand une opération n’est précédée par aucune autre, et si elle peut
commencer dès le démarrage de l’ensemble, on écrit D et l’on indique alors 0, à
côté de D.
Une fois cette opération effectuée, on écrit 0, en face de D, dans la sous colonne
correspondant aux opérations qui comportent un D. Comme il y a surement au
moins une opération qui comporte un D et seulement un D dans sa colonne, on a
immédiatement une colonne « complète », i.e. dont la colonne et la sous-colonne
sont remplies : on fait la somme des chiffres inscrits dans la colonne et la sous
colonne et l’on obtient : 0 + 0 = 0 ; on en déduit que la date de début de
l’opération « a » est 0 et l’on écrit cette valeur en tête de colonne. Ensuite,
partout où apparait un « a », on marquera 0 dans la sous-colonne
correspondante. Ici, dans la colonne b. On a une nouvelle colonne « complète »
et l’on inscrit 0 + 1 = 1 en tête de colonne, et ainsi de suite (voir tableau ci-
après)
75
Tableau
Op 0 a 1 b 2 c 14 d 16 e 19 f 16 g 16 h 20 i 21 j 20 k 22 l
pré 0 D :0 0 a :1 1 b :1 2 c :12 14 d :2 16 e :3 14 d :2 14 d :2 16 h :4 20 i :1 19 f :1 20 k :2
23 m 25 n 26 o 25 p 28 q 29 r 29 s 26 t 30 u 31 v 31 w 31 1/2f
16 g :3 23 m :2 25 n :1 23 m :2 26 o :2 28 q :1 28 q :1 25 p:1 29 r :1 26 t :1/2 29 r :1 30 u :1/4
21 j :2 26 t :1/2 29 s :2 29 s :2 31 v :1/8
22 l :1 31 w :1/2
76
On arrive, fatalement, à une colonne où figurent plusieurs opérations préalables.
Lorsque la colonne est « complète », au sens ci-dessus, on fait les additions des
nombres inscrits sur la même ligne dans la colonne et la sous colonne et l’on
inscrit, on tête de colonne, le maximum des résultats obtenus. Ainsi, pour la
colonne m, on a, sur la ligne g : 16 + 3 = 19, sur la ligne j : 21 + 2 = 23 et sur la
ligne l : 22 + 1 = 23. On inscrit donc 23 en tête de colonne. 23 est la date la plus
proche à laquelle peut commencer l’opération « m ».
En continuant ainsi, on arrive à marquer la colonne f ; le nombre qui est indiqué
en tête de cette colonne indique la date la plus proche d’achèvement de
l’ensemble des opérations. Pour trouver le chemin critique, il suffit de reprendre
dans le tableau, et en partant de la fin, les opérations enchaînées dont la ligne a
fourni le nombre indiqué en tête de colonne. Ainsi, dans la colonne f, c’est w ;
dans la colonne w, c’est s ; dans la colonne s, c’est q … etc.
77
Exemple :
Soient A, B, C, trois châteaux d’eau alimentant 4 villages D, E, F et G. Les
capacités respectives des châteaux sont 45 l/s, 25 l/s, 20 l/s. Les débits (ou
capacités) respectifs de chaque canalisation, en l/s, est mentionné sur la figure.
Les besoins respectifs de chaque village sont en l/s : 30 l/s, 10 l/s 20 l/s, 30 l/s.
Le problème consiste à établir la meilleure alimentation possible et déterminer,
s’il y a lieu, entre quels points il importe de construire des canalisations
supplémentaires.
2) Problèmes d’affectation
Une administration désire procéder aux mutations des fonctionnaires A, B, C, D
et E et leur offre les postes a, b, c, d, e. Ces fonctionnaires désirant maximiser
leurs satisfaction générale, décident d’effectuer chacun un classement des postes
offerts et obtiennent le tableau suivant regroupant leurs avis.
78
a b c d e
A 1 2 3 4 5
B 1 4 2 5 3
C 3 2 1 5 4
D 1 2 3 5 4
E 2 1 4 3 5
Exemple :
Un voyageur de commerce demeurant dans la ville A désire se rendre une fois et
une seule fois dans les villes B, C, D, E et F, avant de revenir chez lui. La
matrice des coûts (parfois de longueur) est donnée ci-après (les tirets remplacent
des valeurs infinies), il s’agit évidemment de déterminer, parmi les 120 circuits
Hamiltoniens, celui de valeur minimale.
79
A B C D E F
A - 6 7 3 1 3
B 7 - 8 2 9 7
C 5 10 - 10 1 7
D 8 6 5 - 5 1
E 7 7 6 7 - 4
F 9 8 8 5 3 -
V. Exercices
A B
80
Solution :
Organigramme
81
λ0 = 0
λi = (i > 0)
i=0
j=1
Non
L’arc xi xj existe-t-il ?
Oui
Oui
λi + l(xi xj) → λj
Oui
i>j?
i
i=j j+1→ j
Raz j
Non
j > n?
i Oui
Raz j
i + 1→ i
i
Non Oui
i > n? Arrêt
i
82
Tableau des opérations logiques et numériques :
i j (xi,xj) ? λj – λi > l(xi, xj) ? λi + l(xi xj) λj i>j? i=j j+1 j j>n? Raz j i+1 i i > n? Arrêt
j=0
0 1 Oui Oui λ1 = 3 Non 2 Non
0 2 Oui Oui λ2 = 8 Non 3 Non
0 3 Oui Oui λ3 = 6 Non 4 Non
0 4 Non 5 Non
0 5 Non 6 Oui 0 1 Non
1 0 Non 1 Non
1 1 Non 2 Non
1 2 Non 3 Non
1 3 Oui Oui λ3 = 5 Non 4 Non
1 4 Oui Oui λ4 = 9 Non 5 Non
1 5 Non 6 Oui 0 2 Non
. . . .
. . . .
. . . .
4 5 Oui Oui λ5 = 10 Non 6 Oui 0 5 Non
5 0 Non 1 Non
5 1 Non 2 Non
5 2 Non 3 Non
5 3 Non 4 Non
5 4 Non 5 Non
5 5 Non 6 Oui 0 6 Oui Arrêt
83
Le chemin de valeur minimal est :
= (X0 X1 X3 X2 X4 X5)
l ()=10.
84
Tableau des opérations logiques et numériques associées à l’algorithme de
FORD :
i j (xi xj) ? λj – λi > ? λj i>j ? i=j j j+1 j>n ? i i+1
j=0
1 2 Oui Oui λ2 = 5 N 3 N
1 3 Oui Oui λ3 = 1 N 4 N
1 4 N 5 Oui
2 1 N 2 N
2 2 N 3 N 2
2 3 N 4 N
2 4 Oui Oui λ4 = 7 N 5 Oui 3
3 1 N 2
3 2 Oui Oui λ2 = 4 Oui 2
2 1 N
2 2 N
2 3 N
2 4 Oui Oui λ4 = 6 N 5 Oui 3
3 1 N
3 2 Oui N 3
3 3
3 4 Oui N 5 Oui
4 1 N
4 2 N
4 3 N
4 4 N Oui 5
85
Solution :
Le chemin de valeur minimale entre A et P, de valeur 18, est : (A B F G L P).
Durée
1/ Obtention d’un permis d’exploitation 6 mois
2/ Construction d’une piste entre route et site 4 mois
3/ Installation de deux sondeuses 1 semaine
4/ Erection de baraques provisoires 3 semaines
5/ Asphaltage de la piste 1 mois
6/ Adduction d’eau 2 mois
7/ Campagne de sondage 7 mois
8/ Fonçage 7 mois
9/ Installation au fond du matériel d’exploitation 6 semaines
86
10/ Construction de logements pour le personnel 5 mois
11/ Traçage et aménagement du fond 11 mois
12/ Construction d’une laverie 7 mois
Solution :
87
Diagramme de Gantt :
89
Solution :
28F
28F
90
Bibliographie indicative
Acher, J et Gardelle, J. Programmation linéaire. Dunod décision, 1978.
Billionnet A. Optimisation discrète. Dunod, Paris, France, 2007.
Cogis O., Robert Cl., Théorie des graphes, Vuibert, 2003.
Dantzig G. B. Applications et prolongements de la programmation linéaire.
Dunod, Dunod, Paris, 1966.
Droesbeke, F ; Hallin, M et Lefevre, Cl. Programmation linéaire par l’exemple.
Ellipses, 1986.
Ecoto, F., Initiation à la Recherche Opérationnelle, Ellipses, Paris, 1986.
Faure, R., Kaufmann, A., Invitation à la recherche opérationnelle, Dunod, 1979.
Faure, R., Précis de recherche opérationnelle, Dunod, Liège, 1999.
Faure, R., Lemaire, B. et Picouleau, C., Précis de Recherche Opérationnelle,
5ème Edition, Dunod, Paris, 2000.
Gondran M., et Minoux M., Graphes et algorithmes, 2e édition, Eyrolles, 1986.
Helary, J.M. et Pedrono, R., Recherche opérationnelle. Exercices corrigés,
Hermann, Paris, 1983.
Henry-Labordère, A et Grojnowski, M. Recherche opérationnelle.
Programmation linéaire et combinatoire. Exercices et problèmes avancés.
Masson 1976.
Maurras J. F. Programmation linéaire, complexité. Springer, Heiderlberg,
Germany, 2002.
Maurin, H. Programmation linéaire. Editions Technip 1967.
Minoux M. Programmation mathématique. Dunod, Paris, France, 1983.
Opris, Ch. Programmation linéaire. Bases algébriques, Algorithmiques,
Programmes, OPU 1983.
Roseaux, Exercices et Problèmes résolus de Recherche Opérationnelle, Tome 1,
Masson, Paris, 1996.
Sakarovitch, M. Techniques mathématiques de la recherche opérationnelle. 1.
Programmation linéaire. ENSIMAG Grenoble 1979.
91