COURS
COURS
metchebon@[Link]
[Link]@u‐[Link]
1
COURS DE RECHERCHE OPERATIONNELLE (RO)
Introduction
2
COURS DE RECHERCHE OPERATIONNEL (RO)
Introduction
1
INTRODUCTION
La RO est une discipline dont l’objectif est d’aider les gestionnaires et les décideurs à mieux
prendre des décisions dans les situations complexes grâce à l’utilisation des méthodes
scientifiques, en particulier des modèles mathématiques.
Entrée
économique
Sortie
software RO
Modèle
mathématique
Contenu de la RO
La RO peut traiter des problèmes d’application très divers parmi les plus classiques on peut
citer :
2
Chapitre 1 : PROGRAMMATION LINEAIRE
Définition 1.1
.
Une optimisation sous contrainte est un programme mathématique sous la forme :
≤ = ,..,
étant la fonction à optimiser et les étant constantes
= .." $
. %& & + %' ' + ⋯+ % ) * +,) -./0 ,% ., 1 ,é% 3) 4) &, ', … ,
ou %& , %' , … , % ∈ℝ
#
=6 + 67 7 + ⋯+ 6 89 : é6 ;8
est appelée fonction économique.
< , = = 1, . . , , .,* 1) ?%3 %01) 4+ @3.01è/). ., +@@. ) B+C .,% , ?%3 %01).
D< , = = 1, . . , , .,* 1) -.) - ),* % )-*é %+ <
Exemple : %& & %& = -E )* & = E
F) -.,*3% ,*) .,* ,4) é = , . . , G %?)- H -.,*3% ,*) 4′ ,éJ%1 *é
< , = 1, . . , / )* = = 1, . . , , sont des coefficients respectifs des variables < au niveau des
Toutes les variables et paramètres étant définies et nous avons la formulation générale
suivante :
QRST U D D éD G HW8
O
< <
O <V
O
O U < =K W; = , … , H LM
LM <
P
O U < <≤K W; = H + , … , G LM7
O <
O
O < ≥ W; < = , . . ,
N < HW8:D HW8 W; < = + , . . , LMY
3
Remarque 1.1
On peut ramener FG sous la forme canonique suivante
QG U D<
O
<
O <V
En effet
- pour FG1 on a l’écriture équivalente suivante :
QU * ≥ 4Z Q U* ≥ 4Z
O ZE E
O ZE E
U *ZE = 4Z ⟺ ⟺
E E
P P
E
U *ZE = 4Z ⟺ ⟺
E E
P P
E
E = /% ^0, E ` E = /% ^0, − E ` = −
pour FG3 on a l’écriture équivalente suivante :
] a ] a
-
E E E
2 &+ '≥1
b
− &+3 ' ≥2
& ≥0 ' ≤0
-& = 2 -' = 3
avec
*&& = 2 *&' = 1
*'& = −1 *'' = 3
4& = 1 4' = 2
min 2 & + 3 h − 3 i
Q2 + − ≥1
O & h i
− &+3 h−3 i ≥ 2
P &≥0
O h ≥ 0
N i≥0
4
Remarque 1.2
Résoudre
Q/ , U - Qmax − U -
O O
E E E E
O EV& O EV&
est équivalent à resoudre
P U *ZE E ≥ 4Z ∀ = 1, . . , / P − U *ZE E ≤ −4Z , ∀ = 1, . . , /
O
O EV& O
O EV&
N E ≥ 0 ∀= = 1, . . , , N E ≥ 0 ∀= = 1, . . , ,
Partant de FG, le principe est de se ramener à des inégalités au niveau de toutes les contraintes.
La nouvelle forme obtenue est appelé forme canonique (FC)
QG U D<
O
<
O <V
Lw
PU < < ≥ K ∀ = ,..,G
O
O <V
N <≥ ∀< = , . . ,
contraintes quitte à introduire une variable d’écart 8 (variable d’écart associée à la contrainte
Partant de la formulation générale, le principe est de se ramener à des égalités au niveau des
i).
Ainsi
5
U *ZE E ≥ 4Z ., %+3% U *ZE E − {
Z = 4Z {
Z ≥0
EV& EV&
De la formulation générale on obtient la forme standard suivante :
Q RST U D
O
< <
O <V
min ~|
La formulation vectorielle associée à la forme standard est :
x•| = 4
|≥0
4 = €„‚‚†
ƒ‚‚
M2 2 3 - - 3
…‚‚
M3 3 - 1 4 -
M4 - 5 4 2 -
6
1.5.2. Problème de mélange ou de régime alimentaire
Le problème de régime alimentaire est celui de trouver une combinaison de produit
alimentaire qu’il soit le plus moins chère possible mais qui renferme tous les éléments
Les différents aliments sont indexés par <, < la quantité de l’aliment < et D< le coût de
nutritifs nécessaires.
l’aliment <.
Q RST U D
O
< <
O <V
Qmin U -
O
E E
O EV&
Ž. ~
PU *ZE E ≥ 4Z , = 1, … , /
O
OEV&
N E ≥ 0 ∀= = 1, . . , ,
Où
7
Q max U -
O
E E
O EV&
Ž. ~
PU *ZE E 4Z , 1, … , /
O
OEV&
N E X 0 ∀= 1, . . , ,
Où
min • ~|
Soit le problème linéaire suivant : x •| X 4
|X0
..
#
&
'
Posons ’ “y / zy X K, y X •
D est appelé ensemble de solution admissible
Propriété 1.1
’ est un polyèdre convexe fermé borné (poly tope). C’est le plus petit ensemble convexe
Résoudre
U *ZE E 4Z ) * +, — @)3@1%,
EV&
U *ZE E X 4Z
EV&
8
1- – peut-être un polyèdre convexe non borné
Deux cas particuliers peuvent se produire :
D5
D1
D7
D4
D2
D3
9
Graphiquement le couple & ; ' qui permet d’avoir la valeur de M la plus grande
possible est le point I point d’intersection des droites –& )* –' .
1- On cherche le couple & ; ' appartenant au poly tope D qui rende la valeur de M
la plus grande possible dans (*)
; candidats sont suivant la direction ’£ : \‡
¤
2- Tous les couples 7 7 . On
se déplace sur D suivant la direction ’£ l’ordonnée à l’origine de la droite de
direction –„ nous donne la valeur maximale de
œ
•
Propriété 1.2
La solution du problème est la solution admissible qui donne la petite valeur de la fonction
optimale (fonction économique). La fonction économique, géométriquement est une
direction d’un hyperplan. Trois cas peuvent se présenter dans la recherche de la ou des
solution(s) :
a) La solution optimale est unique et c’est un sommet de D ;
b) Si il y a une infinité de solutions optimales, ce sont les points d’une face de D ;
c) Il peut arriver que la solution optimale soit à l’infinie c'est-à-dire le cas non borné
(D1 non borné).
RST ¥ wy
Cette méthode n’est applicable qu’à la forme standard
x zy K
yX
Et sous l’hypothèse supplémentaire que ;6 z G c'est-à-dire pas de contrainte
inutile avec G ¦
2 & 2 ' 1
§ & ' 2
\
&
& ' '
Dans ce exemple n=2 (nombre de variable) et m=3 (nombre de contrainte).
Le nombre de contrainte ne doit pas dépasser celui des variable
Une base est une matrice ¨ G } G issue de T tel que ;6 z G c'est-à-dire que B
Définition
est inversible.
Choix de B
« ®
ª -
z ª -
ª -
© ¬
n=nombre de colonne noires et bleues
m=nombre de colonne bleues
10
colonnes. Le nombre maximal de base de rang m que l’on peut extraire dans T est wG
On choisit m vecteurs colonnes linéairement indépendants parmi ces n vecteurs
,…,
Soient , ∈ ¯ ù |¯| = G
Soit Ti les n vecteurs colonnes
En fait les forment une base de ℝ³ qui est l’espace des contraintes. A chaque base B,
on associe une solution de base de la façon suivante :
RST ¥ = w¨ y¨ + w´ y´
Q
O y¨ = ∈ ¯ = variable de base
y´ = ^ < ` < ∈ ² = variable hors base
P
Ozy = K ⇔ ¨y¨ + ´y´ = K
N y≥
On pose y´ =
La solution de base associée sera :
y´ =
La solution de base X¹ est admissible ssi y¨ ≥
y¨ = ¨a . K
Solution de base
CONCLUSION
Les solutions de bases admissibles représentent le sommet du polyèdre T.
Exemple
Q + ≤8
O & '
−2 & + 3 ' ≤ 6
P &− '≤2
O &≥0
N '≥0
Q |½ = ¾ ¿ = 0
i
O •
&
P|À = € ' † = Á a& . 4
O
1- Posons la solution de base
N h
11
1 1 1
−2 3 1 1 1 1
Á& €−2 3 0† 4)*Á& = 1 × −1 &]h
  + 0 × −1 ']h
  + 0 × −1 h]h
 Â
1 −1 1 −1 −2 3
1 −1 0
K8 ¨ = − ≠
1
Á& a& = . •3%, @. é 4) ~./Á&
4)*Á&
3 0 −2 0 −2 3
  −   Â
−1 0 1 0 1 −1 0 0 −1 0 −1 −3
Æ 1 1 1 1 1 1 É
~./Á& = Å−Â Â Â Â −Â Â È = €−1 −1 2 † •3%, @. é ~./Á& = € 0 −1 −2†
−1 0 1 0 1 −1
1 1 1 1 1 1 −3 −2 5 −1 2 5
Ä Â 3 0Â − Â−2 0Â Â
−2 3
ÂÇ
1 1 0 −1 −3 0 −1 −3
Á& a& = . •3%, @. é 4) ~./Á& ⇒ Á& a& = × € 0 −1 −2† = −1 × € 0 −1 −2†
4)*Á& −1
−1 2 5 −1 2 5
0 1 3
Á& a& = €0 1 2†
1 −2 −5
Q |½ = ¾ ¿ = 0 ⇔ = =0
i
O
i •
•
&
P|À = € ' † = Á a& . 4 ⇔ |À = Á& a& . 4
O
Solution de base
N
!
h
0 1 3 8 0×8+1×6+3×2 0+6+6 12
|À! = Á& a& . 4 = 0 1 2 $ 6$ = 0 × 8 + 1 × 6 + 2 × 2$ = 0+6+4 $= 10 $
1 −2 −5 2 1×8−2×6−5×2 8 − 12 − 10 −14
7
y¨ = $ C
89 69 W 8 9 :W K8 Ë698 6KG 99 Ë:8 D6; y¨ ≥
− ¢
x&
Q XÌ = ¾x ¿ = 0
O '
xh
PX¹ = €xi † = Ba& . d
O
2- Posons la solution de base
N x•
1 0 0
&]& Â1 0 ']& Â0 0 h]& Â00
Á' = €0 1 0† 4)*Á' = 1 × −1 Â + 0 × −1 Â + 0 × −1 Â
0 1 0 1 1 0
0 0 1
K8 ¨7 = ≠
1
Á' a& = . •3%, @. é 4) ~./Á'
4)*Á'
1 0 0 0 0 1
  −   Â
0 1 0 1 0 0 1 0 0 1 0 0
Æ 0 0 1 0 1 0É
~./Á' = Å− Â Â Â Â −Â ÂÈ = €0 1 0† •3%, @. é ~./Á' = €0 1 0†
0 1 0 1 0 0
0 0 1 0 1 0 0 0 1 0 0 1
Â
Ä 1 0 Â − Â Â Â ÂÇ
0 0 0 1
1 1 1 0 0 1 0 0 1 0 0
Á' a& = . •3%, @. é 4) ~./Á' ⇒ Á' a& = × €0 1 0† = 1 × €0 1 0† = €0 1 0†
4)*Á' 1
0 0 1 0 0 1 0 0 1
12
Q |½ ¾ ¿ 0⇔ = =0
&
O
& '
'
h
P|À = € i † = Á a& . 4 ⇔ |À = Á' a& . 4
Solution de base
O "
N •
1 0 0 8 1×8+0×6+0×2 8+0+0 8
|À" = Á' a& . 4 = 0 1 0$ 6$ = 0 × 8 + 1 × 6 + 0 × 2$ = 0 + 6 + 0$ = 6$
0 0 1 2 0×8+0×6+1×2 0+0+2 2
Î
y¨7 = ¤$ 89 W 8 9 :W K8 Ë698 6KG 99 Ë:8 D6; y¨7 ≥
7
13
Chapitre 2 : METHODE DU SIMPLEXE
- L’itération ;
- L’initialisation
- L’arrêt.
L’itération : elle consiste à passer d’une base admissible à une autre base admissible
meilleure (c'est-à-dire qui donne une meilleure valeur de la fonction économique). On
effectue un changement de base si cette condition est respectée.
L’initialisation : elle consiste à trouver une base admissible () ou à conclure que D={}
au cas où il n’y a pas de base admissible.
L’arrêt : la condition d’arrêt est déterminée si la solution optimale est finie auquel cas
on a un sommet du polyèdre pour solution c'est-à-dire la solution optimale est non
bornée.
Tout se fait dans un tableau appelé tableau simplexe. Ledit tableau est obtenu après
une transformation du problème en une forme équivalente.
Ainsi on aura :
En rappel
RST ¥ wy
x zy K
yX
~ ~À ~½ , ~À 1 × / , ~½ ^1 × , − / `
•= ÁÏ , Á /×/ , Ï /× ,−/
|À
|= º », |À = / × 1 |½ = ,−/ ×1
|½
|
•| = 4 ⇔ Á Ï × º À » = 4 ⇔ Á|À + Ï|½ = 4
|½
|
D’où min • = ~| = ~À + ~½ º À » = ~À |À + ~½ |½ = ~À Á a& 4 − Á a& Ï|½ + ~½ |½
|½
14
RST ¥ w¨ ¨a K \ w¨ ¨a ´ \ w´ y´
§ y¨ ¨a ´y´ ¨a K
yX
y´ <
¥ %‚‚ %‚E
y¨ %Z‚ X 0 %ZE
CONDITION d’arrêt
(à compléter)
2.2. Propriétés
15
∃ Ó ∈ Ñ: %‚Ô Õ 0 )* %ZÔ 0 ∀ ∈ • alors on une solution optimale à l’infinie.
Propriété 2.2
Si
Résumé :
%‚‚ %‚Ô Õ 0
%Z‚ %ZÔ
Ö %ÖÔ Õ 0
1
Règle 2- Elle concerne les coefficients sur la ligne du pivot sauf celui-ci
%ÖÔ
∗
aâá
%
%ÖE = ∈ Ñ \ “Ó• “0•
∗ ÖE
%ÖÔ
%ZÔ
∈ • \ “1• “0•
Règle 3- Elle concerne les coefficients sur la colonne du pivot
%ZÔ
∗
\
%ÖÔ
%ZÔ } %ÖE
Règle 4- Elle concerne tous les autres coefficients (règle des rectangles)
%ZE
∗
%ZÔ \
%ÖÔ
Exemple :
Q 8 Q 8
O & '
O & '
\2 & 3 ' 6 \2 & 3 ' 6
⇔
P &\ ' 2 P &\ ' 2
O & X 0 O &X0
N 'X0 N 'X0
16
min −6 & − 5 '
Q + + =8
O & ' h
O −2 & + 3 ' + i=6
O &− '+ •=2
& ≥0
P '≥0
O ≥0
O h
O i≥0
N •≥0
& '
0 6 5
h 8 1 1
i 6 -1 3
• 2 1 -1
• '
-12 -6 11
h 6 -1 2
i 10 2 1
&
Exemple application règles des rectangle 11 = 5 − &
›×a&
2 1 -1
• '
-45 -1/2 -11/2
h 3 -1/2 ½
i 7 -1/2
&
= 5, = 3, =7
5 ½
D’où solution optimale finie avec & ' i
2.4. Initialisation
L’objectif c’est de construire une première base admissible. Pour cela on utilise la
technique des variables artificielles qui est applicable à toute matrice T quelconque.
17
• é *)1 B+) 3J • é / ¦ , et cette condition est une condition d’existence d’une base
admissible initiale.
RST ¥ wy
ê x zy X K 9W 98 K X
yX
é
Dans chacune des contraintes, on introduit une variable artificielle Z
U *ZE E
é
Z 4Z , | é é
Z /}1
EV&
| 0
Á¾ ¿ B+ %4/ 01)
|é 4
• On introduit M qui représente un nombre aussi grand qu’on veut appeler big
G
M tel que
QRST ¥ wy ¡ U 6
O
ê6 V
9W 98 K X
P zy ¯Ky6 K
O yX
N y6 X
18
Exemple
èé sera alors
• › h
0 0 -M 0
& ' h -45 -1/2 -11/2 11/2
'
8M M M -M 3 -1/2 1/2 -1/2
i
0 6 5 0 7 5/2 -1/2 1/2
› 8 1 1 -1 & 5 1/2 1/2 -1/2
i 6 -2 3 0
• 2 1 -1 0
• › i
0 0 -M 0
• ' h -122 -28 0 -11
'
6M -M 2M -M 10 1 0 1
h
-12 -6 11 0 14 5 -1 2
› 6 -1 2 -1 & 12 2 0 1
i 10 2 1 0
& 2 1 -1 0
D’où la solution du problème (P) est : & = 12 )* ' = 10 Donc la valeur optimale de la
fonction économique du problème P est • = −122.
Remarque :
19
Si on a problème de maximisation alors on aura :
1. %‚E X 0 ∀= ∈ Ñ → ï*.@ solution optimale finie < ∞ (on suppose que %Z‚ ≥ 0 ∀ ∈ •)
2. ∃Ó ∈ Ñ *)1 B+) %‚Ô < 0 )* %ZÔ ≤ 0 ∀ ∈ • → on a une solution optimale à l’infinie
3. ∃Ó ∈ Ñ *)1 B+) %‚Ô < 0 )* ∃ ∈ • *)1 B+) %ZÔ > 0 alors on choisit
%‚Ô = min %ÐE / %‚E < 0 a une solution optimale à l’infinie
On pose éôõ = min é ÷Ù / %ZÔ > 0 et on a un pivot. Le tableau simplexe s’obtient avec les
é é
ôö ÷ö
mêmes transformations que précédent.
=
é÷õ éøÙ
on dit qu’une solution de base est dégénérée si il existe une solution de base avec une
é÷ö éøö
variable de base nulle. C’est ce qui arrive quand on a c'est-à-dire que la ligne l
et la ligne p donne le même résultat et on ne sait pas laquelle choisir. En fait c’est
intersection de trois contraintes et si on ne fait pas attention on tourne rond et
l’algorithme n’avance pas : c’est le cyclage.
= )*
é÷! Ù é÷" Ù é÷! ! é÷" !
La solution à ce problème est la suivante :
= )*
é÷! ! é÷" ! é÷! " é÷" "
é÷! ö é÷" ö é÷! ö é÷" ö
Si on compare alors on perd le plus petit rapport
Ô
%‚‚ %‚& %‚' … %‚Ô
%&‚ %&& %&' %&Ô
20
Chapitre 3 : Dualité et algorithme dual
On appelle primal le problème linéaire de base (celui qu’on doit résoudre). Soit le primal
suivant :
Q RST U D
O
< <
O <V
O
OU < < X K ,…,H
<V
P
OU < < = K = H + , … , G
O <V
O
O <≥ < = ,…,
N < HW8:D HW8 < = + , … ,
Convention importante :
Le problème primal précédent donne le dual suivant qui peut être caractérisé de dual
général. On a des variables duals suivants :
W , = ,…,G
21
G
Q Rñò U K W
O
O V
O W X ,…,H
O W HW8:D HW8 = H + , … , G
G
PU <W ≤ D< < = , … ,
OV
OG
O
OU <W = D< < = + ,…,
NV
G
Primal Dual
Exemple
1 −3 1
+& , +' • = ¾ ¿
0 2 1
Dual
22
max +& \ 4+'
Q+ X 0
O
&
+' B+)1-.,B+)
O ' max +& \ 4+'
O Q+ X 0
O U *Z' +Z 7 O &
ZV& +' B+)1-.,B+)
P '
P +& 7
OU *Zh +Z \4 O \3+& 2+' \4
O ZV& N +& +' 5
O '
O U *Zh +Z 5
N ZV&
RST ¥ wy Rñò ù ú. K
Primal Dual
zy X K úX
yX zú w
On a une symétrie
RST ¥ wy Rñò ù ú. K
Primal Dual
zy X K ú HW8:D HW8
yX úz w
Propriétés mathématiques
Soit | une solution admissible du primal et soit û une solution admissible du dual
Propriété 1
Soit | une solution admissible du primal et soit û une solution admissible du dual
Propriété 2
Propriété 3
Si le primal a une solution optimale à l’infinie alors le dual est impossible. Si le dual une
solution optimal à l’infinie alors le primal est impossible.
23
Si le primal a une solution optimale finie |ý, •̂ ~|ý alors le dual a une solution optimal
Propriété 4
A l’optimum (on a solution optimale finie), dans chaque couple de contraintes liées par
la dualité, au moins une des contraintes est serrée.
Definition : on dit qu’une contrainte est serrée si on a une égalité au niveau de ladite
contraintes.
24
[Link] du Primal en Dual
[Link] Dual
① ûÀ Á ~À )* ② ûÀ Ï ~½
ûÀ ∈ ⇔ ûÀ • ≤ ~ ⟺ ûÀ Á + Ï ≤ ~À + ~½
⇔ ûÀ Á+ûÀ Ï ≤ ~À + ~½
ûÀ Á ~À
⟺
ûÀ Ï ~½
Alors dire que ûÀ est admissible pour le problème dual revient à dire que %‚E 0. On applique
le simplexe pour résoudre le problème sauf que l’on part de %‚E ≤ 0 et on fait évoluer jusqu'à
%Z‚ ≥ 0
%‚E ≤ 0
%‚E ≤ 0
%Z‚ ≥ 0
25
on choisit la base de telle sorte qu’elle soit une base admissible i.e.
Une solution de base non admissible n’est pas un sommet de D mais une intersection des
contraintes. L’algorithme dual procède de sommet d base non admissible en sommet de base
non admissible jusqu’à rencontrer un sommet de base admissible et c’est la solution optimale.
%‚E 0
%Z‚ ≥ 0
Le bleu on solution dual
[Link] Initialisation
[Link] Itération
2- ∃1 ∈ • / %Z‚ < 0
% %ÖZ ≥ 0 ∀= ∈ Ñ ⇒
%‚E ≤ 0
%&‚
[Link] Arrêt
Solution optimale finie pour le primal entraine une solution optimale finie pour le dual.
La solution est impossible pour le primal entraîne une solution impossible pour le dual
26
Exemple :
Q
h X6
min • = 6 & + 3 ' + 2
O
h
& '
2 &−2 h ≥ 9
.3/) *%,4%34 ,*3.4+ ., 4)+ ?%3 %01) 4C é-%3* ., %:
P &≥0
O '≥0
N h ≥0
Q\ \ \ \6
min • = 6 & + 3 ' + 2 h
O & ' h i
−2 & + 2 h + • = −9
i, •
P &≥0
Variable de base
O ' ≥0
N h ≥ 0, i ≥ 0 , • ≥ 0
Solution de base i = −6 • = −9
& ' h
0 -6 -3 -2
i -6 -1 -1 -1
• -9 -2 0 2
• ' h
27 -3 -3 -8
i -3/2 -1/2 -1 -2
& 9/2 -1/2 0 -1
• i h
63/2 -3/2 -3 -8
' 3/2 1/2 -1 2
& 9/2 -1/2 0 -1
27
Chapitre IV
4.1. Notion sur la théorie des graphes
4.1.1 Définition
Soit deux ensembles A et B et des éléments x et y tel x ∈ A et y ∈ B. Toute partie G de A×B est un graphe;
ce graphe est défini par une correspondance F entre A et B tel que
= = , , , ,
Xi F(xi)
X1 X1,x2,x5
X2 X3,x4
X3 X5
X4 -
X5 X4,x1
Un graphe peut être représenté par un ensemble de sommet xi relié par des arcs fléchés.
1
2
3
5
4
La disposition des sommets dans le plan peut être quelconque même la longueur des arcs.
Si X désigne l'ensemble des sommets alors = , , , , . Un arc peut être défini par le couple
(xi,xj). Si on appelle U l'ensemble des arcs de notre exemple, alors
= , , , , , ; , , , ; , ; , , ,
Le graphe peut s'exprimer par G=(X,U). L'arc (x1,x1) est une boucle.
X1 X2 X3 X4 X5
X1 1 1 0 0 1
X2 0 0 1 1 0
X3 0 0 0 0 1
X4 0 0 0 0 0
X5 1 0 0 1 0
Considérons l'arc (xi,xj). xi est un sommet immédiatement antérieur à xj est appelé un précédant de xj. Le
sommet xj qui suit immédiatement xi est appelé un suivant de xi.
Pour la construction et l'analyse d'un graphe, il important de connaitre l'ensemble des suivants ou des
précédant d'un graphe.
Soit S(xi) l'ensembles des suivants de xi défini par la relation F. Le dictionnaire des suivants donne pour
chaque sommet xi la liste de ses suivants.
Dans notre exemple, nous avons le dictionnaire des suivants comme suit :
xi S(xi)
x1 x1,x2,x5
x2 x3,x4
x3 x5
x4 -
x5 x4,x1
Soit P(xi) l'ensemble des précédents de xi défini par la relation F. Le dictionnaire de précédents donne pour
chaque sommet l'ensemble de ses précédents.
xi P(xi)
x1 x1,x5
x2 X1
x3 x2
x4 x2, x5
x5 x1,x3
Un chemin dans un graphe orienté est une suite non vide d'arc qui permet d'aller d'un sommet du graphe à
un autre sommet du graphe.
Dans notre exemple supposons que nous voulions nous rendre du sommet x1 au sommet x4.
= , , ,
= , , ,
= , , , , , , ,
Un circuit est un chemin qui revient à son point de départ. Dans notre exemple, on a:
= ,
!
= , , , , , , ,
=
!
= , , ,
Le classement par niveau des sommets d'un graphe orienté sans circuit permet l'ordonnancement de ses
sommets et facilite la construction de ce graphe.
Soit les sommets x d'un graphe dont les antérieurs sont les suivants:
Travail à faire :
Solution :
1 3
4 6
3. Ordonnancer les sommets du graphe consiste à mettre en évidence les sommets de départ puis
progressivement les sommets qui suivent dans l'ordre fixé par la relation x F(x) qui défini le
graphe fixé G=(X,U). Cet ordonnancement s'effectue à partir du dictionnaire des précédents.
Le niveau de départ est N0 = {3,5} parce que ces sommets n'ont pas de précédents. Dans la colonne 1 on
reporte les sommets après élimination des points 3 et 5.
Le niveau suivant N1 correspond aux sommets qui deviennent sans précédents après ces éliminations. N1 =
{6}
Dans la colonne 2 on élimine le sommet 6. Les points 4 et 7 constituent le niveau 2 donc N2 = {4,7}.
Dans la colonne 3 on élimine les sommets 4 et 7. Le point 1 constitue le niveau 3 donc N3 = {1}. Dans la
colonne 3, il ne reste plus que le sommet 2 avec un précédant. Donc N4 = {2}
4. L'ordonnancement par niveau des sommets permet un dessin plus lisible. Les dessins vont de la
gauche vers la droite.
3 4 1
6 7 2
5
4.3 Chemin optimal dans un graphe orienté sans circuit et sans boucle
Un graphe est valué lors qu'a tout a du graphe est associé une valeur. Communément appelé longueur
cette valeur représente une pondération correspondant au problème à traiter. Elle peut représenter une
distance, un point ou des unités monétaires. La liste n'est pas exhaustive.
Soit un graphe orienté sans circuit et sans boucle G=(X,U) et soit u=(xi,xj) un arc. u ∈ U et xi,xj ∈ X. La
longueur de l'arc u est noté aij=a(u).
L'utilité d'un graphe est la recherche d'un chemin optimal pour se rendre d'un point à un autre. Ce chemin
optimal peut être soit le plus court soit le plus long. Pour effectuer ces recherches nous allons développer
un algorithme à partir d'un exemple d'application.
Exemple d'application
Soit les sommets X d'un graphe valué dont les antérieurs sont les suivant.
Arc Valuations
(1,2) 5
(1,4) 2
(2,7) 1
(2,8) 6
(3,2) 3
(3,5) 1
(4,8) 5
(4,9) 4
(5,7) 2
(5,8) 3
(7,10) 5
(8,6) 3
(8,10) 6
(9,6) 3
(9,10) 3
TAF:
1. Dessiner le graphe ordonnancé par niveau
2. Rechercher tous les chemins de longueur minimale partant du sommet 1
3. Recherche tous les chemins de longueur maximale partant du sommet 1
9
4 6
1
8
2 10
3 7
L'algorithme que nous allons développer permet de déterminer la longueur minimale de tout chemin
partant d'un sommet i choisi par marquage. La marque Mj correspond au sommet j et est égale à la
longueur du chemin minimal lij parcouru du sommet de départ i au sommet j. Par convention, le sommet de
depart i a une marque nulle.
Solution :
M1: l1,1=0
M2: l1,2 = Min(l1,I + ai,2) i ∈ P(2) = Min(l1,1 + a1,2,l3,2 + a2,3) = Min(l1,1 + a1,2) = l1,1 + a1,2 = 0 + 5 = 5
M7 : l1,7 = Min(l1,i + ai,7) i ∈ P(7) (Précédent de 7) = Min(l1,5 + a5,7 , l1,2 + a2,7 ) = l1,2 + a2,7 = 5+1 = 6
M10 : l1,10 = Min(l1,i + ai,10) i ∈ P(10) = Min(l1,9 + a9,10 , l1,8 + a8,10 , l1,7 + a7,10) = Min(6 + 3 , 7 + 6 , 6 + 5)
= Min(9 , 13 , 11) 9
L'algorithme qui permet de déterminer la longueur maximale de tous les chemins partant d'un sommet i
est identique au précédant; la seule différence est une recherche de maximum au lieu d'une recherche de
minimum. La marque Mj correspondant au sommet j est égale à la longueur du chemin maximal mij
parcouru du sommet de départ i au sommet j.
4.4 Problème d'ordonnancement
4.4.1 Introduction
La conception est la réalisation de grands travaux ou de grands projets nécessite une suite d'opération
nombreuse dont la coordination est complexe du fait de contraintes diverses. Celles-ci peuvent être
financière, matérielle, humaine ou chronologique. L'ordonnancement de ces opérations ou taches
consistent à établir le programme ou l'ordre dans lequel ces taches seront exécutées. Ce programme
implique l'établissement d'un calendrier et le contrôle du déroulement de la bonne exécution des
prévisions. L'étude d'un ordonnancement commence nécessairement par l'analyse préalable du projet.
Celui-ci doit être décomposé en caches élémentaires. Pour chacune de ces opérations élémentaires, il est
importe de déterminer la durée, les contraintes spécifiques et les taches qui doivent nécessairement la
précéder. Après cette analyse, la théorie des graphes intervient en tant qu'aide à la réalisation de
l'ordonnancement.
Cette méthode a été élaborée aux Etats-Unis à partir de 1958 sous l'impulsion de Robert Mac Namara et de
la NASA pour la construction de fusée. Elle permet d'ordonnancer dans le temps des opérations
élémentaires d'un projet complexe. Le sigle PERT signifie Program Evaluation Reasearch Task.
L'ordonnancement est établi au moyen d'un graphe dans lequel chaque arc représente une opération
élémentaire. Un sommet représente un évènement ou une étape, il indique le début de l'opération pour
l'arc dont il est l'origine et la fin d'une autre opération pour l'arc dont il est l'extrémité.
Exemple : L'opération P dure trois (3) jours et elle suit l'opération A qui dure 2 jours. La représentation du
graphe PERT est la suivante :
A(2) B(3)
1 2 3
Pour commencer le graphe, on introduit un sommet qui correspond à évènement: le programme démarre.
On introduit aussi un sommet pour marquer la fin du graphe. Il correspond à l'évènement : le programme
est fini.
Pour constituer un graphe G(X,U), on associe à chaque nœud un sommet xi ∈ X et à chaque liaison un arc
u=(xi,xj) tel que u ∈ U.
Dans la suite nous ne traiterons que les réseaux de circulation pouvant être représenté par un graphe
orienté. En appliquant cette méthode, il arrive fréquemment que plusieurs arcs joignent dans le même ses
un sommet xi à un sommet xj. Nous sommes alors en présence un multi-graphe qui soulève des difficultés
de traitement. Pour palier cet inconvénient, on peut soit remplacer des liaisons par une seule liaison fictive,
soit si l'opération précédente n'est pas possible, créer un ou plusieurs sommets fictifs sur des liaisons
excédentaires. Exemple : Soit les liaisons
Xi Xj
qu'il n'est pas possible de condenser une seule liaison. On introduit le sommet fictif xk tel qu'un des deux
arcs soit remplacé par deux liaisons. Cette difficulté réglée, il est donc possible d'associer un graphe G à un
réseau de circulation.
Xi Xj
Xk
[Link] Le respect des contraintes de succession
Le graphe doit précisément respecter les contraintes de succession. Exemple : L'opération B dure 3 jours et
elle suit l'opération A qui dure 2 jours; l'opération C dure 4 jours. C est indépendant de A et B. La
représentation est la suivante :
A(2)
1 2
B(3)
C(4)
Au besoin, il est possible de décomposer une opération sous opérations avec introduction de sommets
fictifs. Exemple : l'opération B dure 3 jours et elle suit l'opération A qui dure 2 jours; l'opération C dure 4
jours, C est indépendant de B mais ne peut commencer qu'un (1) jour après le début de A. L'opération A
est décomposé en 2 sous opérations : A1 de durée 1 jour et A2 de duré 1 jour. La représentation est la
suivante.
A1(1) A2(1)
1 2 3
B(3)
C(4)
Le chemin critique est un chemin de longueur maximal reliant le sommet de départ au sommet d'arrivé. Il
peut ne pas être unique. La longuer du chemin critique est la durée minimale de réalisation du projet. Les sommets
de ce chemin sont des évènements critiques. Les arcs qui le composent sont des opérations critiques. Tout
retard de réalisation d'une opération crique retarde d'autant tout le projet.
[Link] Date au plus tôt et date au plus tard d'un évènement
L'évènement i est le début de l'opération I qui est précédé par les opérations J et K. Ces opérations
débutent respectivement par les évènements j et k. La date à laquelle se produira l'évènement i dépendra
de la durée de réalisation la plus longue de l'opération J ou K et de la plus tardive de l'opération j et k.
D'une manière générale, la date au plus tôt d'un sommet i d'un graphe PERT commençant par le sommet 1
est la marque l1,i du sommet i dans la recherche du chemin de longueur maximale pour relier 1 à i.
Appelons ti cette date au plus tôt. l1,i = ti = max(tk + tki) k∈P(i).
ti est la date à laquelle l'opération I pourra être commencée au plus tôt. Sur le graphe PERT cette date au
plus tôt sera représentée de la manière suivante.
j
J
I
i
Tout retard sur une opération critique retarde d'autant tout projet; la date ou l'évènement à laquelle se
termine cette opération est repoussée d'autant. Pour une opération non critique, on peut concevoir qu'il
possible de prendre un certain retard sans retarder tout le projet. La date au plus tard relative à
l'évènement i donne la date à laquelle l'opération I pourra être commencée sans que tout le projet soit
retardé. Appelons t*i la date au plus tard du sommet i. Pour calculer cette date au plus tard, il faut partir du
sommet d'arrivé n du graphe PERT. Pour ce sommet terminal, on obtient obligatoirement l'égalité entre la
date au plus tôt et la date au plus tard : t*n = tn. La date au plus tard d'un sommet i est obtenu de proche en
proche en partant de n de tel sorte que t*i = Min(t*h - tih) h∈S(i). S(i) représente l'ensemble des suivants de i.
Sur le graphe PERT cette date au plus tard sera représenté par le graphe suivant :
j
J
ti t *i I
i
Remarque : Sur le chemin critique, les sommets ont tous une date au plus tôt égale à la date au plus tard :
ti=t*i.
t1 = 0
t*6 = t6 = 18
7 7 I
3
0 0 3 3
15 15 18 18
1 2
5 6
8 12
4
Nous constatons que le chemin critique est (1, 2, 3, 5, 6) et les taches critiques sont (A, B, D, F)
La marge de flottement d'un sommet est égale à la différence t*i – ti. Elle indique le retard que peut
prendre le démarrage d'une opération commençant en i sans que la durée globale du projet soit remise en
cause.
Elle est égale à Mij= tj –ti – tij. Cette marge indique le retard que l'on peut prendre au démarrage ou durant
l'exécution de l'opération (i, j) sans modifier la date au plus tôt de l'évènement j et la durée globale du
projet.
Elle est égale à MTij = t*j – ti –tij. Cette marge représente le retard maximal que l'on peut prendre au
démarrage ou durant l'exécution de la tache (i, j) sans modifier la date au plus tard de l'évènement j et la
durée globale du projet.