P1 + P2 Cours
P1 + P2 Cours
Polycopié du cours
Recherche Opérationnelle
Filière : SMI - S5
Prof A. EL AMROUSS
1
Table des matières
2 La méthode du simplexe 12
2.1 Base, solution de base, solution de base réalisable . . . . . . . 12
2.2 Méthode du simplexe : Méthode des tableaux . . . . . . . . . 12
2.2.1 Pratique de la méthode du simplexe sur un exemple . . 13
2.2.2 Construction des tableaux du simplexe sur cet exemple 14
2.2.3 Algorithme de la méthode du simplexe . . . . . . . . . 15
2.3 Méthode du simplexe. Complexité : Nombre d'itérations . . . 17
2
4.2 Dénitions et concepts de base . . . . . . . . . . . . . . . . . 25
4.3 Quelques types de graphes : . . . . . . . . . . . . . . . . . . . 27
4.4 Chemins et circuits- Chaînes et cycles : . . . . . . . . . . . . 29
4.5 Représentation matricielle d'un graphe : . . . . . . . . . . . . 31
4.5.1 Utilisation de la matrice d'adjacence . . . . . . . . . . 32
4.6 Coloration de graphe . . . . . . . . . . . . . . . . . . . . . . . 33
4.6.1 Colorations des Sommets . . . . . . . . . . . . . . . . . 33
4.6.2 Algorithme de Welsh et Powell . . . . . . . . . . . . . 33
4.6.3 Colorations des arrêtes . . . . . . . . . . . . . . . . . . 34
3
Avant-propos
La recherche opérationnelle (RO) (aussi appelée aide à la décision) est une
approche quantitative permettant de produire de meilleures décisions. Faire
de la recherche opérationnelle consiste en pratique à modéliser mathémati-
quement un problème donné puis à résoudre le problème modélisé : on cite
par exemple :
4
Bibliographie
-[1] F. Droesbeke, M. Hallin , CL. Lefevre, Programmation linéaire par l'exemple,
ellipses, 1986.
-[2] J. Teghem, Programmation linéaire , ellipses, 1996.
-[3] R. Faure, B. Lrmaire, CH. Piconleau, Précis de recherche opérationnelle,
Dunod, 1993.
-[4] M. Gondran , M. Minoux, Graphes et algorithmes, Eyrolles, Paris, 1979.
-[5] F. Droesbeke, M. Hallin , CL. Lefevre, Les graphes par l'exemple, ellipses,
1987.
5
Chapitre 1
Programmation linéaire :
Généralités
Bureau T able
Bois(plaque) 8 6
Menuiserie+ Finition(heure) 2 3
Prix de vente(Dh) 600 300
6
Il ne faut pas dépasser les quantités disponibles pour l'usine de chaque res-
source, les contraintes suivantes devront être satisfaites :
8x1 + 6x2 ≤ 48
(1.2)
2x1 + 3x2 ≤ 18
x1 ≥ 0, x2 ≥ 0 (1.3).
S
S
S
S
Q
Q S
Q
Q S → 4x1 + 3x2 = 24
Q S
Q S
Q
Q S
Q S
Q
QS
QSQ
A SQ
A
A S QQ
A S Q
A S Q
Q
Q→ domaine réalisable
A S Q
A S Q
A S Q
A S Q -
Q
A S Q
Q → 2x1 + 3x2 = 18 x2
→ 2x1 + x2 = 0 S
A S Q
A Q
A
A
A
A 7
A
A
Il s'agit donc de chercher à l'intérieur de ce domaine le couple (x1 , x2 )
maximisant la fonction économique. le chire d'aaires réalisé par cette usine
est
z = 600x1 + 300x2 .
Remarquons que la droite 600x1 + 300x2 = 0 passe par l'origine et donne une
valeur nulle à la fonction économique.
Pour augmenter le revenu il sut de déplacer la droite d'équation 600x1 +
300x2 = 0 parallélement de gauche à droite. Pour respecter les contraintes,
cette droite sera déplacée jusqu'à l'extrême limite où il n'y aura plus qu'un
point d'intersection avec le domaine admissible.
La droite optimale (qui correspond à un chire d'aaire maximal est celle
qui passe par le point (6, 0) et donc z = 600 × 6 + 300 × 0 = 3600(DHs).
Remarquons que la solution optimale est un sommet de la région achurée et
cette région est un convexe.
8
Les aij sont des coecients techniques issus du processus étudié, les
bi représentent le plus souvent des seuils d'activité ou des quantités
de resources disponibles.
les cj sont des bénéces ou des coûts issus de la comptabilité.
Interprétation géométrique :
L'ensemble des solutions d'une inéquation (linéaire) correspond à un
demi-espace dans Rn (un demi-plan dans R2 ).
L'ensemble des solutions d'une inéquation (linéaire) correspond à un
hyperplan dans Rn (une droite dans R2 ).
L'ensemble des solutions d'un système d'équations et d'inéquations
(linéaires) correspond à l'intersection des demi-espaces et des hyper-
plans associés à chaque élément du système.
Cette intersection, appelée domaine réalisable, est convexe et dénit
un polyédre dans Rn ( une région polygonale dans R2 ).
Terminologie :
La terminologie programme est due à G.B. Dantzig, pére de l'algo-
rithme du simplex (1947).
Une solution est réalisable si elle est satisfaite toutes les contraintes
du problème (y compris les contraintes de positivité).
Une solution d'un programme linéaire est dite optimale si elle est
réalisable et optimise la fonction objectif z .
Résultat d'un PL :
Le domaine réalisable d'un PL peut être :
vide : Dans un tel cas le problème ne possède pas de solution optimale.
borné . Le problème possède toujours au moins une solution optimale,
quelle que soit la fonction économique.
non borné . Dans ce cas, selon la fonction objectif choisie le problème
peut possèder des solutions optimales ou non (la valeur maximale de
la fonction économique sera +∞).
9
Ecriture Matricielle
max z =< c, x >
(Pcan ) s.c. Ax ≤ b,
x ≥ 0,
c1 x1
.
où c = ,x = .
. .
cn x
n
a11 . . a1n b1
. . . . ∈ Mm,n (R) et b = . .
A= . . . . .
am1 . . amn bm
La forme linéaire s'appelle fonction coût ou fonction objectif .
La matrice A s'appelle matrice des contraintes.
Le vecteur b s'appelle second membre des contraintes.
10
de multiplier la valeur optimale de w par −1 pour obtenir celle de z .
Inéquation ” ≥ ” ↔ inéquation ” ≤ ”.
n
X n
X
aij xj ≥ bi ↔ − aij xj ≤ −bi .
j=1 j=1
Equation → inéquation ” ≤ ”,
n
P
X n
aij xj ≤ bi
j=1
aij xj = bi ↔ n
P
− aij xj ≤ −bi
j=1
j=1
n
X n
X
aij xj ≥ bi ↔ aij xj − ti = bi , ti ≥ 0.
j=1 j=1
Exercice : Vérier que tout PL écrit sous la forme générale est converti à
un PL écrit sous la forme canonique.
11
Chapitre 2
La méthode du simplexe
bm
Dénition 2.1 On dit que (xi1 , ....., xim ) est une base si la sous-matrice
construite sur les colonnes (i1 , ....., im ) est inversible.
On dit alors que les m variables sont les variables de base et que les n − m
variables restantes sont les variables hors base.
Dénition 2.2 On appelle solution de base de ce système une solution où
les n − m variables hors base sont xées à 0, on obtient une solution unique
en résolvant les m contraintes du système.
Dénition 2.3 Une Solution de base est réalisable si toutes les variables de
la solution de base sont ≥ 0. Cette solution de base réalisable correspond à
un sommet du polyédre {x ∈ Rn + | Ax = b}.
12
2.2.1 Pratique de la méthode du simplexe sur un exemple
Considérons le programme linéaire suivant :
max z(x) = x1 − x2
s.c. 2x1 − x2 ≥ −2
(P ) x1 − x2 ≤ 2
x1 + x2 ≤ 5
x1 , x2 ≥ 0
PL équivalent
t1 = 2 + 2x1 − x2
t 2 = 2 − x1 + x2
t 3 = 5 − x1 − x2
z = x1 − x2
max z s.c x1 , x2 , t1 , t2 , t3 ≥ 0
13
t2 , x2 variables hors base.
4. Reformuler le système an d'exprimer les variables x1 , t1 , t3 en
fonction de x2 , t2 .
t1 = 6 − 2t2 + x2
x1 = 2 − t2 + x2
t3 = 3 + t2 − 2x2
z = 2 − t2
β x1 x2 t1 t2 t3 (S1 )i
t1 0 -1 1 2 0 6
x1 1 -1 0 1 0 2
t3 0 2 0 -1 1 3
0 0 0 -1 0 2
14
L2
∗L02 = .
1
∗L01 = L1 + 2L02 .
∗L03 = L3 − L02 .
∗ L04 = L4 − L02 .
2
∗ z0 = z + .
1
c̄j ≤ 0, ∀j .
S1 = (2, 0, 6, 0, 3) est un sommet optimal.
où
t1
.
t= . .
tm
Remarque : Nous allons traiter le cas où toutes les variables de b sont po-
sitives. Chaque itération est représentée par un tableau de la forme
15
β x1 ..... xe ... xn t1 ... tm (S)i (S)i /αie
xi 1 α11 .... α1e ... ... α1n+m b̄1
.... ... ... ...
.... ... ... ...
... ... ... ...
xi m αm1 .... αme .... ... ... αmn+m b̄m
c̄1 ..... c̄e ... ... ... c̄n+m z
b̄s b̄i
= min{ |i = 1, ..., m, αie > 0}.
αse αie
16
Remarque :
1)- Pour un programme linéaire à minimum on suit la même procédure ,
mais on renverse les inégalités dans 2) et 3) du principe de l'algorithme du
simplexe.
2)- Dans le cas où les composantes du second membre bi ne sont pas tous
positifs il y a une diculté de trouver une solution de base de départ réali-
sable .Pour remédier ce problème il y a La possibilité d'ajouter les variables
articielles mais cette méthode est couteuse en terme de calcul.
17
Chapitre 3
Dualité en programmation
linéaire
3.1 Dualité
3.1.1 Programme primal et dual :
Soit le programme primal :
max (c, x)
(P ) s.c. Ax ≤ b
x≥0
où c ∈ Rn , A ∈ Mm,n (R) et b ∈ Rm .
Son programme dual est dénit comme :
min (b, y)
(D) s.c. A0 y ≥ c
y≥0
18
Proposition 3.1 Le dual du dual est le primal.
Preuve : Voir [T.D.]
Il ne faut pas dépasser les quantités disponibles pour l'usine de chaque res-
source. D'où le problème de l'entreprise :
max z = 600x1 + 300x2 + 200x3
s.c. 8x1 + 6x2 + x3 ≤ 48
(P ) 2x1 + 32 x2 + 12 x3 ≤ 8
4x1 + 2x2 + 32 x3 ≤ 20
x1 , x2 , x3 ≥ 0
19
Maintenant, supposons qu'un entrepreneur veut acheter toutes les res-
sources de l'usine (bois, heure menuiserie, heure nition). Il veut certaine-
ment que le prix total de ses ressources soit minimal.
On dénit alors :
- y1 = prix d'une plaque du bois.
- y2 = prix d'une heure de menuiserie.
- y3 = prix d'une heure de nition.
20
vantes sont équivalentes :
i)
b et yb sont des solutions optimales de (P ) et (D) respectivement .
x
x (A0 yb − c) = 0, ∀i = 1, ...., n.
ii) y i(b − Abx) i = 0, ∀i = 1, ...., m (conditions de complémentarité ou condi-
i i
tions des écarts complémentaires)
iii) (c, xb) = (b, yb).
β y2̄ y2 y1 y1̄ y3 (S 0 )i
y2̄ 1 0 1 1 -2 0
y2 0 1 -2 -1 1 1
0 0 6 2 3 2
21
x1̄ ←→ y1 ;
x2̄ ←→ y2 ;
x3̄ ←→ y3 ;
x1 ←→ y1̄ ;
x2 ←→ y2̄ .
Le sommet : 0 1 0 0 0 la solution optimale : la valeur
0 1 0
optimale : w(S 0 ) = 2.
3.4 Résumé
Pour un problème de programmation linéaire exactement une des trois
possibilités suivantes peuvent exister :
1. Il y a une solution optimale.
2. Le problème est non borné.
3. Le problème est non réalisable.
Téorème 3.3 Etant donné un probléme primal (P) et son dual(D) , une et
une seule des trois situations suivantes a lieu :
a) Les deux problèmes possèdent chacun des solutions optimales.
b) Un des problèmes possèdent une solution réalisable avec un optimum inni,
l'autre n'a pas de solutions.
c) Aucun des deux problèmes ne possèdent pas de solutions réalisables.
Il y a donc trois situations qui peuvent se résumer dans le tableau suivant :
P/D solution optimale optimum inni pas de solution
solution optimale possible impossible impossible
optimum inni impossible impossible possible
pas de solution impossible possible possible
22
Chapitre 4
Généralités
4.1 Introduction
La théorie des graphes, issue de l'analyse combinatoire, est sans doute ap-
parue au XVIIIe siècle avec le célèbre problème, soumis à Euler, des ponts de
Königsberg. Consistant en l'étude d'objets nommés graphes, elle permet de
modéliser des problèmes de mathématiques discrètes de manière plus simple
et plus intuitive. Aujourd'hui la théorie des graphes trouve ses applications
principalement dans d'autres domaines des mathématiques et en informa-
tique, mais aussi en sciences sociales (réseaux ou transport) ou en gestion
(méthode PERT).
Problème des sept ponts de Königsberg
Ce problème est un des problèmes fondateurs de la théorie des graphes, pro-
posé par le mathématicien suisse Leonhard Euler en 1736. En 1652, la ville
de Königsberg (aujourd'hui Kaliningrad) possède sept ponts enjambant la
Pregel, qui coule de part et d'autre de l'île de Kneiphof.
Au cours d'une promenade, est-il possible de passer sur tous les ponts de la
ville une et une seule fois ?
23
Organisation d'une d'une session d'examens :
Des étudiant A,B,C,D,E et F doivent passer des examens dans diérentes
disciplines, chaque examen occupant une demi-journée :
Chimie étudiants A et B.
Électronique étudiants C et D.
Informatique étudiants C,E,F et G.
Mathématique étudiants A,E,F et H.
Physique étudiants B,F,G et H.
On cherche à organiser la session d'examens la plus courte possible.
On peut représenter chacune des disciplines par un sommet, et relier par des
arrêtes les sommets correspondant aux examens incompatibles (ayant des
étudiants en commun).
24
4.2 Dénitions et concepts de base
Graphe :
Un graphe G est constitué de 2 ensembles X et U . X est un ensemble non
vide de sommets ou n÷uds . U est un ensemble de paires de sommets de X .
Ces paires sont appelés arêtes, et on le note G = [X, U ].
Les graphes G = [X, U ] peuvent être considérés comme des schémas, repré-
sentant simplement la structure d'un problème, ils sont généralement déter-
minés par la donnée de :
ı) Un ensemble ni X = {x1 , · · · , xn } les éléments appelés sommets.
ıı) Un ensemble ni U = {u1 , · · · , un } dont les éléments sont des couples de
sommets appelés arêtes. U est donc une famille d'éléments du produit carté-
sien X × X = {(xi , xj ) | xi ∈ X et xj ∈ Y }.
Graphe non orienté :
Dans un graphe non orienté, la paire de sommets (xi , xj ) n'est pas ordonées.
Autrement dit, les (xi , xj ) et (xj , xi ) représentent la même arête.
Graphe orienté :
Dans un graphe orienté, la paire de sommets (xi , xj ) est ordonée ; xi étant
l'extrimité d'origine et xj l'extrimité nale, on ne parle plus d'arête mais
d'arc. par suite, (xi , xj ) et (xj , xi ) représentent deux arcs diérents. Il nous
arrivera parfois dans la suite par souci de simplication, de noter un arc
(xi , xj ) soit par (i, j).
•Exemples : Graphe non orionté
G1 = {(a, b); (a, c); (b, c); (b, e); (b, d); (c, e)}.
Graphe orionté
G2 = {(b, a); (c, a); (c, b); (b, e); (d, b); (e, c)}.
25
•Adjacence :
Deux arêtes sont adjacentes s'elles ont une extrémité en commune.
Deux sommets sont adjacents (ou voisins) s'il existe un arc, ou une arête, les
reliant.
Un sommet qui n'a pas de voisin est dit isolé.
•Successeur - Prédécesseur :
Dans l'arc (x, y), y est un successeur de x et x est un prédécesseur de y .
•Arcs (arêtes) incidents à un sommet :
Soit u = (x, y) un arc (qui n'est pas une boucle ) de G, il est dit incident à
x vers l'extérieur et incident à y vers l'intérieur.
Dans les deux cas, on dit que l'arc u est un arc incident aux sommets x et y .
Convention On utilise également l'appellation arc entrant pour incident
vers l'intérieur et arc sortant pour incident vers l'extérieur.
•Degré :
Le degré d'un sommet x d'un graphe non-orienté est le nombre d'arêtes in-
cidentes à ce sommet.
Par convention, une boucle touchant deux fois le sommet sera compté comme
deux arêtes incidentes à x.
Dans un graphe orienté, le nombre d'arcs incidents à x vers l'extérieur est
noté d+ G (x) et s'appelle le demi-degré extérieur de x. Par analogie le demi-
degré intérieur de x, noté d− G (x), représente le nombre d'arcs incidents à x
vers l'intérieur, le degré dG (x) d'un sommet x est alors égale à d+
G (x) + dG (x).
−
•Exemple :
Les degrés des sommets du graphe ci dessus sont donnés dans le tableau sui-
vant :
Sommet a b c d e f g h
Degré 1 2 2 5 3 1 3 3
26
4.3 Quelques types de graphes :
Graphe Simple :
Un graphe est dit simple s'il n' a pas d' arêtes doubles ni boucles.
p-Graphe :
Un p-graphe est un graphe tel qu'il n'existe pas plus de p arêtes de la forme
(x, y) entre deux sommets x et y .
Graphe symétrique :
Un graphe est symétrique si deux sommets adjacents sont toujours reliés par
deux arcs
(x, y) ∈ U ⇐⇒ (y, x) ∈ U .
Graphe antisymétrique :
Un graphe est antisymétrique si deux sommets ne sont jamais reliés par deux
arcs.
(x, y) ∈ U ⇒ (y, x) ∈ /U
Attention : Il ne faut pas confondre graphe symétrique / anti-symétrique
avec graphe non orienté / orienté. Un graphe non orienté est fatalement sy-
métrique, puisqu'une arête est dénie par une paire de sommets, dans ordre
particulier. En fait, il n'y a aucune raison de parler de graphe symétrique ou
non lorsqu'on parle de graphe non orienté.
Par contre, un graphe orienté peut être symétrique ou anti-symétrique, ou ni
l'un ni l'autre.
Graphe complet : Un graphe simple est dit complet si deux sommets quel-
conques sont toujours adjacents.
•Exemples :
27
Graphe complet d'ordre 5
Sous graphe :
Étant donné un sous-ensembleA ⊂ X de sommets de G, le sous graphe GA
engendré par A est déni par GA =(A,UA ), où UA est l'ensemble des arcs de
U ayant leurs deux extrémités dans A.
Graphe partiel de G = (X, U )
Étant donné un sous ensemble d'arcs V ⊂ U , le graphe partiel engendré par
V est déni par (X,V).
Sous graphe partiel de G=(X,U) :
Étant donné A ⊂ X et V ⊂ U , le sous graphe partiel engendré par A et V
est le graphe partiel de GA =(A,VA ), engendré par V ∩ VA
. •Exemples :
Si par exemple G est un graphe représentant les lignes des bus de Oujda
celui qui représente les lignes de l'université est un graphe partiel. Celui qui
représente les lignes de l'université des bus Nour est un sous-graphe partiel.
28
4.4 Chemins et circuits- Chaînes et cycles :
Chemin-Circuit :
Un chemin est une suite d'arcs telle que chaque arc ait une extrémité com-
mune avec le suivant.
Si le dernier sommet coincide avec le premier sommet du chemin, un tel che-
min est appelé circuit.
La longueur d'un chemin est le nombre d'arcs dans le chemin.
Chaîne -Cycle :
Une chaîne dans G, est une suite ayant pour éléments alternativement des
sommets et des arêtes, commençant et se terminant par un sommet, et telle
que chaque arête est encadrée par ses extrémités.
Un cycle est une chaîne dont le dernier sommet est identique au premier.
Ces concepts de chaînes et cycles sont non orientés.
Chemin élémentaire : Un chemin élémentaire est un chemin ne passant
pas deux fois par le même sommet c'est à dire que tous les sommets qui le
composent sont tous distincts
Chemin simple :
Un chemin (resp. une chaîne) est " simple " si il (resp. elle) ne comporte pas
plusieurs fois le même arc (resp. la même arête). ne passe pas deux fois par
la même arc (resp. la même arête) c'est à dire que tous les arcs (resp. les
arêtes ) qui le composent sont tous distincts
Chemin hamiltonien :
Un chemin (resp. une chaîne) " hamiltonien " (resp. hamiltonieiie) est un che-
min (resp. une chaîne) élémentaire quipasse une fois et une seule par chaque
sommet du graphe.
Chemin eulérien :
Un chemin (resp. une chaîne) " eulérien " (resp. eulérienne) est un chemin
(resp. une chaîne) simple qui passe une fois et une seule par chaque arc du
graphe
•Exemples :
29
- (U,R,T,V,S) chaine Hamiltonienne non eulérienne.
- (U,R,T,V,S, U) chaine eulérienne non Hamiltonienne.
30
4.5 Représentation matricielle d'un graphe :
Matrice d'adjacence :
On considère G 1-graphe de n sommets numérotés de 1 à n, la matrice d'ad-
jacence est une matrice carée A = (ai,j ) dans chaque ligne et chaque colonne
se réfère à un sommet du graphe. L'existence d'un arc (i, j) se traduit par
la présence d'un 1 à l'intersection de la ligne i et de la colonne j , l'absence
d'arc par la présence d'un 0.
Il peut enn caractérisé par M = (ai,j ), si (i, j) ∈ U, ai,j = 1 sinon ai,j = 0
•Exemple
0 0 0 0 0
1 0 0 0 1
1 1 0 0 0
0 1 0 0 0
0 0 1 0 0
Cette matrice n'est pas symétrique.
31
4.5.1 Utilisation de la matrice d'adjacence
On note M k = M × ...... × M , le produit k fois de la matrice M .
Proposition : Soit G un graphe orienté (respectivement non orienté) d'ordre
n et soit M sa matrice d'adjacence. Alors pour tout entier k > 0 et pour tout
couple de sommets(i, j) ∈ {1, 2, ..., n}, L'élément M k (i, j) est le nombre
de chemins (respectivement chaînes) de longueur k de i vers j . L'élément
M k (i, i) est le nombre de circuits (respectivement cycles) de longueur k à
partir de i.
32
4.6 Coloration de graphe
Les problèmes de coloration de graphes apparaissent dans de nombreux
contextes.
Un premier exemple : Conjoncture Francis Guthrie (1852)
Peut-on colorier toutes les cartes géographiques avec quatre couleurs, de telle
sorte que toute paire de pays voisins aient des couleurs distinctes ?
1879 : preuve de Kempe.
1890 : la preuve de Kempe est fausse (Heawood).
1977 : preuve assistée par ordinateur, par Appel et Haken.
1997 : Robertson, Sanders, Seymour et Thomas simplient la preuve.
2005 : Gonthier valide la preuve avec Coq.
Un deuxième exemple : est celui de la planication d'une session d'exa-
mens d'une université. Si V est l'ensemble des cours et si une arête lie deux
cours ayant au moins un étudiant en commun, le nombre chromatique est le
nombre minimum de périodes permettant de planier des examens, de telle
sorte que chaque étudiant puisse passer tous ses examens.
33
7. Prendre une deuxième couleur pour le premier sommet (D) non encore
coloré de la liste.
8. Répéter les opérations 4 à 7.
9. Continuer jusqu'à avoir coloré tous les sommets.
Exemple :
Les couleurs attribués aux sommets du graphe ci dessus sont données dans
le tableau suivant :
Sommet a b c d e f g h
Degré 1 2 2 5 3 1 3 3
Sommets ordonés d e g h b c a f
Couleur attribuée Rouge Bleu Bleu Jaune Bleu Rouge Bleu Jaune
34
graphe adjoint , noté G0 , et que l'on dénit ainsi :
- à chaque arrête de G correspond un sommet de G0 .
-deux sommets de G0 sont reliés par une arrête si selement si les deux arrêtes
correspondantes de G sonts adjacentes.
Exemple :
35
Chapitre 5
5.1 Introduction :
De nombreux problèmes concrets se traduisent par la recherche d'un che-
min de longueur minimale :
recherche de l'itinéraire le plus court (valuation d'un arc = distance entre
deux villes).
- recherche de l'itinéraire le plus rapide (valuation d'un arc = temps pour
parcourir la route entre deux villes).
routage dans des réseaux
etc.
Dénition 5.1 Un graphe orionté (G, U ) est dit valué si à chaque arc u on
lui associe un nombre `(u) ∈ R appelé "valuation de u". Cette valuation peut
représenter une distance, un temps, un coût,...
La valuation d'un chemin µ quelconque, notée `(µ), est alors dénit comme
la somme des valuations des arcs qui le composent :
X
`(µ) = `(u).
u∈µ
36
2. Recherche du plus court chemin d'un sommet à tous les autres.
3. Recherche du plus court chemin entre tous les couples de sommets.
Par la suite, on considère G = (X, U, `) un graphe orionté valué simple et
connexe, avec X = {x1 , x2 , ....., xn }.
Un graphe est dit connexe S'il existe toujours une chaîne ou un chemin entre
deux sommets quelconques.
EXEMPLE :
Considérons le graphe orionté suivant
37
Notons parλ(.) le plus court chemin de A à un sommet et par p(.) le
prédécesseur d'un sommet.
Itération 0 :
λ(A) = 0, λ(B) = λ(C) = λ(D) = λ(E) = λ(F ) = ∞.
Itération 1 :
λ(A) = 0, λ(B) = min(λ(B), λ(A) + `(A, B)) = min(∞, 0 + 7) = 7, λ(C) =
min(λ(C), λ(A) + `(A, C)) = min(∞, 0 + 3) = 3, λ(D) = λ(E) = λ(F ) = ∞.
Nous présentons l' algorithme de DIJKSTRA sous forme du tableau suivant
38
Les valuations les plus courtes de A à tous les autres sommets et des prédé-
cesseurs sont donc respectivement :
λ(A) = 0, λ(B) = 6, λ(C) = 3, λ(D) = 9, λ(E) = 8, λ(F ) = 10. et p(B) =
C, p(C) = A, p(D) = E, p(E) = C, p(F ) = D.
Le plus court chemin de A à B est ACB.
Le plus court chemin de A à C est AC.
Le plus court chemin de A à D est ACED.
Le plus court chemin de A à E est ACE.
Le plus court chemin de A à F est ACEDF.
Algorithme :
1. Initalisation Posons λ(x1 ) = 0, λ(xi ) = ∞, i ≥ 2.
2. Pour chaque arc (xi , xj ) ∈ U , si λ(xj ) > λ(xi ) + `(xi , xj ) on remplace
λ(xj ) par λ(xi ) + `(xi , xj ).
3. Tant qu'il n'existe pas (xi , xj ) ∈ U tel que λ(xj ) > λ(xi ) + `(xi , xj ) ,
Fin ; sinon retourner en 2).
39
Pour chaque itération considérons les arcs dans l'ordre lexicographique (ce
n'est pas obligatoire, tout ordre convient, mais c'est plus simple à gérer) c'est
à dire AB, AC, AD ; BA, BC, BD, BE ; CB, CE ; DB, DF ; EC, ED, EF ; FE.
Notons par p(.) le prédécesseur d'un sommet.
Itération 0 :
λ(A) = 0, λ(B) = λ(C) = λ(D) = λ(E) = λ(F ) = ∞.
Itération 1 :
AB : λ(B) = ∞ > λ(A) + `(A, B) = 0 + 7 = 7, d'où les modications
λ(B) = 7 et p(B) = A.
AC :λ(C) = ∞ > λ(A) + `(A, C) = 0 + 3 = 3, d'où les modications
λ(C) = 3 et p(C) = A.
AD :λ(D) = ∞ > λ(A) + `(A, D) = 0 + 13 = 13, d'où les modications
λ(D) = 13 et p(D) = A.
BC : λ(C) = 3 ≤ λ(B) + `(B, C) = 7 + 2 = 9, aucune modication.
BD :λ(D) = 13 ≤ λ(B) + `(B, D) = 7 + 6 = 13,aucune modication.
BE :λ(E) = ∞ > λ(B) + `(B, E) = 7 + 4 = 11, d'où les modications
λ(E) = 11 et p(E) = B .
CE : λ(E) = 11 > λ(C) + `(C, E) = 3 + 5 = 8, d'où les modications
λ(E) = 8 et p(E) = C .
DF : λ(F ) = ∞ > λ(D) + `(D, F ) = 13 + 1 = 14, d'où les modications
λ(F ) = 14 et p(F ) = D.
ED :λ(D) = 13 > λ(E) + `(E, D) = 8 + 1 = 9, d'où les modications
λ(D) = 9 et p(D) = E .
EF :λ(F ) = 14 > λ(E) + `(E, F ) = 8 + 3 = 11, d'où les modications
λ(F ) = 11 et p(F ) = E .
Itération 2 :
Dans le deuxième itération (tous les arcs du graphe doivent être testés, tou-
40
jours dans le même ordre : AB, AC, . . . , FE) la seule modication est :
DF : λ(F ) = 11 > λ(D) + `(D, F ) = 9 + 1 = 10, d'où les modications
λ(F ) = 10 et p(F ) = D.
Itération 3 :
Cette itération n'apporte rien, l'algorithme est donc terminé. Les valuations
les plus courtes de A à tous les autres sommets et des prédécesseurs sont
donc respectivement :
λ(A) = 0, λ(B) = 6, λ(C) = 3, λ(D) = 9, λ(E) = 8, λ(F ) = 10. et p(B) =
C, p(C) = A, p(D) = E, p(E) = C, p(F ) = D.
Remarque : Remarquons pour terminer que cet exemple met bien en évi-
dence la diérence d'ecacité en temps de ces deux algorithmes : l'algorithme
de DIJKSTRA est bien plus rapide et clair que celui de BELLMAN FORD.
41
Chapitre 6
Problème d'ordonnancement :
Méthode PERT
6.1 Introduction :
6.1.1 Historique
La méthode PERT est une méthode utilisable en gestion de projet dé-
veloppée aux U.S. A en 1958 à la demande de la marine américainne pour
réaliser dans les meilleurs délais, le système d'armes Polaris. Le terme PERT
est l'acronyme de " Program Evaluation and review Technique". Elle résout
des problèmes appelés problèmes d'ordonnancement.
Le projet POLARIS représentait entre autres : - 250 fournisseurs, - 9000
sous-traitants, -7 ans de réalisation. La méthode permet de ramener la réa-
lisation de ce projet de 7ans à 4 ans.
D'autres méthodes utilisées en gestion de projet, on cite par exemple :
- "Méthode MPM" (Méthode des potentils Métra (1958)) méthode francaise
voisine de celle du PERT.
- " Critical Path method (CPM)".
6.1.2 Projet
Le projet est un ensemble de tâches ou opérations. En général, elles ne
pourront pas toutes être réalisées simultanément, certaines tâches devront
être achevées avant que d'autres ne puissent débuter.
On résumera l'information sur le projet sous la forme d'un tableau, appelé
dictionnaire, où seront indiquées les tâches, leur durée, et les contraintes
d'antériorité à respecter.
42
Exemple :
Tâches Taches antérieurs Durée
A 6
B 5
C A 4
D B 6
E C 5
F A,D 6
G E,F 4
Etape : une étape est le début ou la n d'une tâche. Elle est représentée
par un cercle
43
Tâche antérieure : Tâche qui, par rapport à une autre, doit être réalisée
avant.
Tâche antécédente : Tâche immédiatement antérieure à une autre.
Tâches commençantes : Tâches qui n'ont pas des prédécesseurs (tâches
antérieures).
Tâches nissantes : Tâches qui n'ont pas des successeurs (qui n'apparît
pas dans les tâches antérieures).
Tâches simultanées : Tâches qui commencent en même temps et s'éxé-
cutent en même temps.
Tâches convergentes : Tâches qui s'éxécutent en même temps et s'achè-
ventt en même temps.
Tâches qui sont partout ensemble (i.e jamais l'une sans l'autre) dans la co-
lonne des tâches antérieures.
Exemple :
Tâche ctive : C'est une contrainte entre tâches non dépendantes. Une
tâche ctive a une durée nulle. Elle ne modie pas le délai nal. Elle est
représentée par une èche en pointillés. Par exemple, si la tâche F succède
aux tâches A et D, et que la tâche C succède seulement à la tâche A, on
représentera le problème de la manière suivante :.
44
Exemple :
45
3) Détermination des dates au plus tard :
La date au plus tard se déterminera de proche en proche, mais par ordre de
sommet décroissant, depuis la sortie du graphe :
Tn = tn = Durée du projet et Ti = min(Tj − dij ) sur tous les j suivant i.
4) Construction du graphe PERT :
Remarque 6.1
0 ≤ M L ≤ M T.
Dénition 6.2 Une tâche est dite critique si la marge totale est nulle.
L'ensemble des tâches critiques constitue le chemin critique.
46
Remarque : une tâche critique est une tâche "urgente", une tâche sur la-
quelle il ne faut pas prendre de retard si l'on ne veut pas augmenter la durée
totale du projet.
Dans l'exemple
Taches A B C D E F G
ML 0 0 0 0 2 0 0
MT 2 0 2 0 2 0 0
Ainsi, dans l'exemple, si la durée de la tâche E augment de 7 jours, le projet
durera 26 jours, soit 5 jours de plus (2 jours seront absorbés par la marge de
la tâche E).
47
Exercice :
La construction d'un entrepôt est découpée en dix tâches dont les caracté-
ristiques sont données dans le tableau suivant :
48