BENMLIH Cours Recherche Opérationnelle 2023-2024
BENMLIH Cours Recherche Opérationnelle 2023-2024
Introduction générale
Chapitre 1. Programmation linéaire
Chapitre 2. Eléments de la théorie des graphes et applications
Recherche opérationnelle
Semestre 5 – Parcours Gestion
Pr. Benmlih K.
2023–2024
Chapitre 0
Introduction générale
Définition
La recherche opérationnelle (RO) est l’étude quantitative des
opérations d’une organisation complexe, à l’aide d’outils
scientifiques (mathématiques, probabilité & statistique,
informatique), de façon à permettre au gestionnaire de réaliser un
rendement optimal des ressources disponibles.
PLAN DU COURS
Bibliographie
[1] La recherche opérationnelle, Y. Nobert, R. Ouelley & R.
Parent, Ed. gaëtan morion, 3ème édition, 2001.
[2] Mathématiques pour les sciences sociales, tome 5, F. Roure,
G. Fritz & A.-M. Charles, Presses Universitaires de France, 1973.
[3] Programmation linéaire par l’exemple, F. Droesbeke, M.
Hallin & CL. Lefevre, Ed. Ellipses, 1986.
[4] Les graphes par l’exemple, F. Droesbeke, M. Hallin & CL.
Lefevre, Ed. Ellipses, 2001.
Chapitre 1
Programmation linéaire
1 Modélisation linéaire
2 Résolution graphique d’un programme linéaire
3 Résolution d’un PL par les simplexes
4 Dualité en programmation
Définition 2
Un programme linéaire (PL) est un problème d’optimisation qui
consiste à maximiser ou à minimiser une fonction linéaire dont les
variables sont soumises à un ensemble de contraintes exprimées
sous forme d’équations ou d’inéquations linéaires.
10
Max / Min Z = c1 x1 + c2 x2 + · · · + cn xn
s.c. a11 x1 + a12 x2 + · · · + a1n xn ≤ (=; ≥) b1
a21 x1 + a22 x2 + · · · + a2n xn ≤ (=; ≥) b2
···
am1 x1 + am2 x2 + · · · + amn xn ≤ (=; ≥) bm
xi ≥ 0 i = 1, 2, · · · , n
avec n, m ∈ N∗ et bi ≥ 0 ∀i.
⋆ Les variables x1 , x2 , · · · , xn sont appelées les variables de déci-
sion du problème.
⋆ La fonction linéaire à optimiser est appelée la fonction-objectif
(ou fonction économique)
11
Max Z = CX
s.c. AX ≤ B
X≥ 0
x1
.
où X = ..
; C = c1 · · · cn
xn
a11 a12 · · · a1n
b1
a
21 a22 · · · a2n
.
A=
.. .. et
.. B = ..
.
. . .
bp
ap1 ap2 · · · apn
12
13
Exemple (modélisation)
Démarche de la modélisation.
⋆ Nature du problème : Détermination des nombres d’armoires A
et B à fabriquer quotidiennement pour réaliser un profit journalier
global maximal.
⋆ Sens d’optimisation : Maximisation du profit total.
⋆ Les variables d’action :
x1 : nombre d’armoires A à fabriquer par jour.
x2 : nombre d’armoires B à fabriquer par jour.
⋆ Fonction économique :
Profit global journalier Z = 500x1 + 600x2 (à maximiser)
15
⋆ Les contraintes :
- Implicites : xi ≥ 0 pour tout i = 1; 2 (En fait : xi ∈ N)
- Explicites :
Atelier de fabrication de morçeaux : 3x1 + 2x2 ≤ 120 ;
Atelier d’assemblage : 2x1 + x2 ≤ 72 ;
Contrainte technique : x2 − x1 ≤ 30.
⋆ Forme canonique du modèle :
16
Exercice
2. Résolution graphique
18
19
Proposition
S’il y’a une solution unique qui optimise la fonction objectif
linéaire alors cette solution n’est autre qu’un sommet du
polygone admissible.
S’il y’a plus d’une solution alors au moins deux de ces
solutions correspondent à deux sommets adjacents du
polygone des solutions admissibles.
20
F1 F2 F3 Profit unitaire
P1 1 1 2 400
P2 1 2 1 500
Ressources/jour 50 80 80
23
O A3 I J B2
x1 0 40 30 20 0
x2 0 0 20 30 40
Z = 400x1 + 500x2 0 16000 22000 23000 20000
Conclusion :
Le profit journalier maximal est de 23000 DH.
Ce profit est uniquement réalisé par la fabrication journalière
(et la vente) de 20 unités du produit P1 et de 30 u de P2 .
24
Conclusion :
26
27
x1 = x2 = · · · = xn = 0
29
30
31
Etape 5 : Pivotage.
Dans le nouveau tableau, la variable entrante xe prendra la place
de la variable sortante xs .
On appellera pivot du tableau le nombre se trouvant à l’intersec-
tion de la ligne de la variable xs et la colonne de xe .
On notera par Lp la ligne du pivot.
Les transformations que subira le tableau en cours sont celles de la
méthode de Pivot consistant à rendre
le pivot égal à 1
les autres nombres de la colonne du pivot égaux tous à 0.
33
34
Remarque
On peut également utiliser la méthode du Pivot sous une forme
simplifiée, appelée la règle du rectangle, qui consiste à :
rendre le pivot = 1, en multipliant la ligne du pivot par 1/p,
remplacer les autres termes de la colonne du pivot par 0,
appliquer ailleurs, et partout, la règle du rectangle suivante :
a c
bc
a −→ a′ = a −
p
b p
35
36
(T1 )
Cj
PP
PP 400 500 0 0 0 Valeurs Rapport
Base PPP P
coef. var. x1 x2 e1 e2 e3
0 e1 1 1 1 0 0 50 50
0 e2 1 2 0 1 0 80 40
0 e3 2 1 0 0 1 80 80
Zj 0 0 0 0 0 0
Cj − Zj 400 500 0 0 0 ——
Variables de base : e1 = 50 ; e2 = 80 et e3 = 80
Variables hors base : x1 = x2 = 0
37
✓ Changement de base :
Variable entrante : x2 car correspond au
max{400; 500} = 500
Variable sortante : e2 car correspond au min{ 50 80 80
1 ; 2 ; 1 } = 40,
Pivot et transformations : p = 2 ;
−1 p
Lp → 21 Lp ; L1 → 2 L + L1
Ce qui nous ramène à un sommet adjacent, correspondant au ta-
bleau suivant :
38
(T2 )
Cj
PP
PP 400 500 0 0 0 Valeurs Rapport
Base PPP P
coef. var. x x2 e1 e2 e3
1
0 e1 1/2 0 1 −1/2 0 10 20
500 x2 1/2 1 0 1/2 0 40 80
0 e3 3/2 0 0 −1/2 1 40 80/3
Zj 250 500 0 250 0 20000
Cj − Zj 150 0 0 -250 0 ——
Variables de base : e1 = 10 ; x2 = 40 et e3 = 40
Variables hors base : x1 = e2 = 0
39
✓ Changement de base :
Variable entrante : x1 (un seul choix)
10 40 40
Variable sortante : e1 car min{ 1/2 ; 1/2 ; 3/2 } = 20,
Pivot et transformations : p = 1/2 ;
Lp → 2Lp ; L2 → −Lp + L2 ; L3 → −3Lp + L3
Ce qui nous ramène à un sommet adjacent, correspondant au ta-
bleau suivant :
40
(T3 )
Cj
PP
PP 400 500 0 0 0 Valeurs Rapport
Base PPP P
coef. var. x1 x2 e1 e2 e3
400 x1 1 0 2 -1 0 20
500 x2 0 1 -1 1 0 30
0 e3 0 0 -3 1 1 10
Zj 400 500 300 100 0 23000
Cj − Zj 0 0 -300 -100 0 ——
Variables de base : x1 = 20 ; x2 = 30 et e3 = 10
Variables hors base : e1 = e2 = 0
41
✓ (T3 ) est optimal puisque les coûts marginaux des VHB sont
tous négatifs (problème de maximisation). La fonction objectif ne
peut être améliorée davantage.
✓ Conclusion :
L’optimum est atteint au point (20,30), avec Zmax = 23000.
(Même résultat obtenu par la méthode graphique)
✓ Récapitulons :
42
XXX j C
400 500 0 0 0 Valeurs Rapport
Base XXX
coef. var. x1 x2 e1 e2 e3
0 e1 1
1 1 0 0 50 50
0 e2 1
2 0 1 0 80 40
0 e3 2 1 0 0 1 80 80
Zj 0 0 0 0 0 0
Cj − Zj 400 500 0 0 0 ——
XX Cj
XXX 400 500 0 0 0 Valeurs Rapport
Base X
coef. var.
x1 x2 e1 e2 e3
0 e1
1/2 0 1 −1/2 0 10 20
500 x2 1/2 1 0 1/2 0 40 80
0 e3 3/2 0 0 −1/2 1 40 80/3
Zj 250 500 0 250 0 20000
Cj − Zj 150 0 0 -250 0 ——
XXX j C
400 500 0 0 0 Valeurs Rapport
Base XXX
coef. var. x1 x2 e1 e2 e3
400 x1 1 0 2 -1 0 20
500 x2 0 1 -1 1 0 30
0 e3 0 0 -3 1 1 10
Zj 400 500 300 100 0 23000
Cj − Zj 0 0 -300 -100 0 ——
43
Exercice supplémentaire
Résoudre le PL suivant par les tableaux de simplexe puis retrouver
le résultat obtenu par la méthode graphique :
44
Exemple :
Démarche :
Lorqu’un PL contient une contrainte technologique de type :
X
αi xi ≥ (ou =) b (b > 0) (⋆)
i
1 Dans (PL=), on introduit dans toute contrainte
technologique de type (⋆), en plus de l’éventuelle variable
d’écart, une nouvelle variable artificielle positive aj
46
Démarche :
Lorqu’un PL contient une contrainte technologique de type :
X
αi xi ≥ (ou =) b (b > 0) (⋆)
i
1 Dans (PL=), on introduit dans toute contrainte
technologique de type (⋆), en plus de l’éventuelle variable
d’écart, une nouvelle variable artificielle positive aj
2 Pour chaque variable artificielle aj , on ajoute à la fonction
objectif un terme de pénalité égal à :
−Maj pour un problème de maximisation
+Maj pour une minimisation
47
Démarche :
Lorqu’un PL contient une contrainte technologique de type :
X
αi xi ≥ (ou =) b (b > 0) (⋆)
i
1 Dans (PL=), on introduit dans toute contrainte
technologique de type (⋆), en plus de l’éventuelle variable
d’écart, une nouvelle variable artificielle positive aj
2 Pour chaque variable artificielle aj , on ajoute à la fonction
objectif un terme de pénalité égal à :
−Maj pour un problème de maximisation
+Maj pour une minimisation
3 A l’optimum, toute variable artificielle aj = 0 (des V.H.B).
(T1 )
Cj
PP
PP 1 4 0 -M 0 0 Valeurs
Base PPP P
coef. var. x x2 e1 a e2 e3
1
-M a 2 1 -1 1 0 0 6
0 e2 1 -1 0 0 1 0 3
0 e3 1 1 0 0 0 1 5
Zj -2M -M M -M 0 0 -6M
Cj − Zj 1+2M 4+M -M 0 0 0 —–
Variables de base : a = 6 ; e2 = 3 et e3 = 5
Variables hors base : x1 = x2 = e1 = 0
49
✓ Changement de base :
50
(T2 )
Cj
PP
PP 1 4 0 0 0 Valeurs
Base PPP P
coef. var. x1 x2 e1 e2 e3
1 x1 1 1/2 -1/2 0 0 3
0 e2 0 -3/2 1/2 1 0 0
0 e3 0 1/2 1/2 0 1 2
Zj 1 1/2 -1/2 0 0 3
Cj − Zj 0 7/2 1/2 0 0 —–
Variables de base : x1 = 3 ; e2 = 0 et e3 = 2
Variables hors base : x2 = e1 = 0
51
✓ Changement de base :
52
(T3 )
Cj
PP
PP 1 4 0 0 0 Valeurs
Base PPP P
coef. var. x1 x2 e1 e2 e3
1 x1 1 0 -1 0 -1 1
0 e2 0 -0 2 1 3 6
4 x2 0 1 1 0 2 4
Zj 1 4 3 0 7 17
Cj − Zj 0 0 -3 0 -7 —–
Variables de base : x1 = 1 ; e2 = 6 et x2 = 4
Variables hors base : e1 = e3 = 0
53
✓ (T3 ) est optimal puisque les coûts marginaux des VHB sont
tous négatifs (problème de maximisation).
✓ Conclusion :
L’optimum est atteint au point (1,4), avec Zmax = 17.
Remarque :
A l’optimum, les 1ère et 3e contraintes sont saturées (e1 = e3 =
0), contrairement à la 2e (e2 = 6 ̸= 0).
Récapitulons :
54
XXX j C
1 4 0 -M 0 0 Valeurs
Base XXX
coef. var.
x1 x2 e1 a e2 e3
-M a
2 1 -1 1 0 0 6
0 e2 1 -1 0 0 1 0 3
0 e3 1 1 0 0 0 1 5
Zj -2M -M M -M 0 0 -6M
Cj − Zj 1+2M 4+M -M 0 0 0 —–
XXX Cj
1 4 0 0 0 Valeurs
XBase XX
coef. var. x1 x2 e1 e2 e3
1 x1 1 1/2 -1/2 0 0 3
0 e2 0
-3/2 1/2 1 0 0
0 e3 0
1/2 1/2 0 1 2
Zj 1 1/2 -1/2 0 0 3
Cj − Z j 0 7/2 1/2 0 0 —–
XXX Cj
1 4 0 0 0 Valeurs
Base XXX
coef. var. x1 x2 e1 e2 e3
1 x1 1 0 -1 0 -1 1
0 e2 0 -0 2 1 3 6
4 x2 0 1 1 0 2 4
Zj 1 4 3 0 7 17
Cj − Zj 0 0 -3 0 -7 —–
55
Exercice supplémentaire
Résoudre le PL suivant par les tableaux de simplexe puis retrouver
le résultat obtenu par la méthode graphique :
Min Z = 4x1 + x2
s.c. x1 ; x2 ≥ 0
−x1 + 2x2 ≤ 4
2x1 − x2 ≤ 16
x1 + 2x2 ≥ 8
56
Max Z = x1 + 3x2
s.c. x1 ; x2 ≥ 0
x1 − x2 ≤ 60
−x1 + x2 ≤ 80
57
Max Z = x1 + x2
s.c. x1 ; x2 ≥ 0
x1 + x2 ≤ 80
x1 − x2 ≤ 30
−x1 + 4x2 ≤160
58
Max Z = x1 + 3x2 + x3
s.c. x1 ; x2 ; x3 ≥ 0
x1 + x2 + 2x3 ≤ 12
2x1 − x2 + 6x3 ≥ 8
59
60
Règle générale :
Primal Dual
n r
X
Min W = bi pi
X
Max Z = cj xj
j=1 i=1
x1 b1 p1
. . .
où C = c1 · · · cn , X = .. , B = .. , et P = .. .
xn br pr
A : la matrice des coefficients techniques du primal (d’ordre (r , n)),
(t A) : sa matrice transposée.
61
F1 F2 F3 Profit unitaire
A 1 1 2 400
B 1 2 1 500
Ressources/jour 50 80 80
admet une solution unique atteinte au point (20; 30) avec Zmax =
23 000.
63
p1 + p2 + 2p3 ≥ 400,
p1 + 2p2 + p3 ≥ 500.
64
65
Primal Dual
n r
X
Min W = bi pi
X
Max Z = cj xj
j=1 i=1
s.c. X ≥ 0 s.c. P≥ 0
AX ≤ B ( A)P ≥ t C
t
66
Par conséquent :
Lorsque le primal possède une solution finie X ∗ , le théorème de
dualité garantit l’existence d’une solution finie P ∗ pour le dual
avec
W (P ∗ ) = Z (X ∗ ) 67
Question :
Comment calculer les coordonnées de P ∗ = (p1 , p2 , · · · , pr ) ?
Réponse :
Selon la démarche adoptée pour la résolution du primal, on peut
utiliser l’une des 2 méthodes suivantes :
1 Cas où la solution du primal X = (x1 , x2 , · · · , xn ) a été
oblenue par les tableaux de simplexe : formules simples ;
2 Cas général : par le théorème des relations d’exclusion.
68
Min Z = 4x1 + x2
s.c. x1 ; x2 ≥ 0
−x1 + 2x2 ≤ 4
2x1 − x2 ≤ 16
x1 + 2x2 ≥ 8
69
Réponse
1. Après écriture de la forme standard, qui donne naissance d’une
seule variable artificielle dans la 3e contrainte, on passe aux ta-
bleaux de simplexe
(T1 )
Cj
PP
PP 4 1 0 0 0 M Valeurs
Base PPP P
coef. var. x1 x e1 e2 e3 a
2
0 e1 -1 2 1 0 0 0 4
0 e2 2 -1 0 1 0 0 16
M a 1 2 0 0 -1 1 8
Zj M 2M 0 0 -M M 8M
Cj − Zj 4-M 1-2M 0 0 M 0 —–
(T2 )
Cj
PP
PP 4 1 0 0 0 M Valeurs
Base PPP P
coef. var. x1 x2 e1 e2 e3 a
1 x2 -1/2 1 1/2 0 0 0 2
0 e2 3/2
0 1/2 1 0 0 18
M a 2 0 -1 0 -1 1 4
Zj (-1/2)+2M 1 (1/2)-M 0 -M M 2+4M
Cj − Zj (9/2)-2M 0 (-1/2)+M 0 M 0 —–
71
(T3 )
Cj
PP
PP 4 1 0 0 0 Valeurs
Base PPP P
coef. var. x1 x2 e1 e2 e3
1 x2 0 1 1/4 0 -1/4 3
0 e2 0 0 5/4 1 3/4 15
4 x1 1 0 -1/2 0 -1/2 2
Zj 4 1 -7/4 0 -9/4 11
Cj − Zj 0 0 7/4 0 9/4 —–
Puisque les coûts marginaux des VHB sont strictement positifs (pro-
blème de min), (T3 ) est optimal en une solution unique atteinte au point
(2; 3), avec Zmin = 11 .
72
73
W (p1 , p2 , p3 ) = 11
74
Méthode 1 :
Selon le tableau de simplexe optimal (T3 ) :
p1 = |coût marginal(e1 )| = |7/4| = 7/4 ;
p2 = |coût marginal(e2 )| = |0| = 0 ;
p3 = |coût marginal(e3 )| = |9/4| = 9/4.
75
Méthode 2 :
En appliquant les relations d’exclusion, on obtient :
• x1 = 2 ̸= 0
⇒ la 1ere contrainte dans le dual est saturée : p1 −2p2 +p3 = 4 ;
• x2 = 3 ̸= 0
⇒ la 2e contrainte est saturée : −2p1 + p2 + 2p3 = 1 ;
• e2 = 15 ̸= 0 (la 2e contrainte dans le primal n’est pas saturée en
(2, 3)) ⇒ la 2e variable de décision dans le dual est nulle : p2 = 0.
p1 − 2p2 + p3 = 4
2 p =0
−2p + p + 2p = 1
1 2 3
En conclusion :
Pour déterminer les coordonnées d’une solution optimale
P ∗ = (p1 , p2 , · · · , pr )
77
78
aij xj∗ = bi .
X
79
Dans la pratique :
Supposons que les coordonnées xj d’une solution optimale X =
(x1 , · · · , xn ) du primal sont connues ainsi que les valeurs des va-
riables décarts ei .
D’abord, le théorème de dualité garantit l’existence d’une
solution optimale du dual P = (p1 , · · · , pr ).
Ensuite, le théorème des relations d’exclusion peut s’énoncer
comme suit :
Chaque xj ̸= 0 implique que la contrainte j correspondante
dans le dual est saturée en P (c-à-d hj = 0) ;
Toute contrainte du primal, de numéro i, non saturée en X
(c-à-d que ei ̸= 0) implique que pi = 0.
80
Chapitre 2
Eléments de la théorie des graphes et applications
81
Deux sommets sont dits adjacents s’ils sont joints par un arc
(ou une arête).
Deux arcs sont dits adjacents s’ils ont au moins une extrémité
commune.
Un sous-graphe est obtenu par suppression d’un certain
nombre de sommets (et par conséquent de tous les arcs qui
leur sont liés).
Un graphe partiel est obtenu par suppression d’un certain
nombre d’arcs.
83
84
Réponse :
85
Remarques :
Dans la matrice d’adjacence,
La ligne i représente les successeures du sommet xi .
La colonne j représente les prédecesseures du sommet xj .
La présence du chiffre 1 sur la diagonale principale désigne la
présence d’une boucle.
Si la matrice est symétrique, le graphe peut être considéré
comme non orienté.
86
87
88
89
90
Procédure
L’ensemble de niveau 0 est celui des sommets sans
prédecessurs : N0 = {x ∈ X ; P(x ) = ∅} ;
D’un niveau à un autre immédiatement supérieur, on a
Nk = {x ∈ X \ Nk−1 ; P(x ) = ∅} ;
S
S’arrêter lorsque k Nk = X (c-à-d. les niveaux de tous les
sommets du graphe sont déterminés).
Le graphe ordonné en niveaux est représenté dans l’ordre croissant
des niveaux des différents sommets.
Remarques :
✓ Si à une quelconque étape k ≥ 0 on trouve Nk = ∅, cela
signifie que le graphe contient au moins un circuit.
✓ Lorsque l’origine n’est pas l’unique sommet de niveau 0, la
suite de l’étude portera sur le sous-graphe obtenu en
éliminant tous les autres sommets de niveaux inférieurs ou
égaux à celui de l’origine. 91
Travail à faire :
1 Donner la matrice d’adjacence de ce graphe.
2 Représenter le graphe G sous sa forme ordonnée par niveaux.
3 Par la procédure de marquage, déterminer :
3.1 le coût net minimal et le(s) chemin(s) correspondant(s) pour
expédier une centaine de boites, au départ de la ville (8) vers
la ville (2).
3.2 le coût net maximal et le(s) chemin(s) correspondant(s) pour
expédier une centaine de boites, au départ de la ville (9) vers
la ville (5).
Réponse :
94
95
96
3. Problèmes d’ordonnancement
3.1. Introduction
Objectif : Ordonner dans le temps un ensemble d’opérations contri-
buant à la réalisation d’un même projet (construction d’un bâti-
ment, lancement d’un nouveau produit, ... )
Le déroulement de ces diverses tâches doit respecter certaines
contraintes de type :
- contrainte de succession,
- contrainte de date.
97
Le problème ainsi posé peut être schématisé sous forme d’un graphe
sans circuit, selon deux modes :
✓ la méthode M.P.M.
(Méthode des potentiels Metra), appelée également méthode
graphe-tâches ;
✓ la méthode PERT
(Programm Evaluation Research Task), appelée également méthode
graphe-étapes.
OPERATIONS
OPERATION DESIGNATION DUREE (mois) PREREQUISES
Construction des voies
d’accès a 4 –
Travaux des terrassemets b 6 a
Construction des bâtiments
administratifs c 4 –
Commande du matériel
électrique d 12 –
Construction de la centrale e 10 b; c; d
Construction du barrage f 24 b; c
Installation des galeries et
conduites forcées g 7 a
Montage des machines h 10 e; g
Essais de fonctionnement i 3 f; h
99
Déterminer successivement :
1 La durée minimale d’exécution du projet
2 Le calendrier de début d’exécution au plus tôt des différentes
tâches,
3 Le calendrier de début d’exécution au plus tard des différentes
tâches,
4 Le(s) chemin(s) critique(s) (succession de tâches ne tolérant
aucun retard d’exécution),
5 Pour chaque tâche, le retard maximal qu’elle pourrait prendre
sans retarder la date de la fin de projet.
100
101
103
Tout retard observé sur l’exécution de l’une des tâches situées sur
le chemin critique retardera la date à laquelle peut s’achever au
plus tôt l’ensemble des travaux du projet.
104
105
106
107
Exemple 2 :
108
2 On introduit
un sommet initial d’où partent toutes les tâches sans
contrainte d’antériorité
un sommet final z auquel arrivent toutes les tâches sans
suivantes. Ce sommet permettra de dater la fin des travaux.
109
TK = t i
110
Tout retard observé sur l’exécution de l’une des tâches situées sur
le chemin critique retardera la date à laquelle peut s’achever au
plus tôt l’ensemble des travaux du projet.
111
TK∗ = tj∗ − dK
112
113
114