Vous êtes sur la page 1sur 54

Mise Niveau en Recherche

Oprationnelle
Premire partie
Thorie des graphes

Mohamed Ali Aloulou
aloulou@lamsade.dauphine.fr

Ce transparents ont t labors en se basant sur le document de
Pierre Lopez, LAAS, Toulouse
http://www.laas.fr/~lopez/cours/GRAPHES/graphes.html
Plan du cours
1. Quest ce quon peut faire avec la thorie
des graphes ?
2. Concepts gnraux en thorie des
graphes
3. Le problme du plus court chemin
4. Problme central de lordonnancement
5. Flots et rseaux de transports
http://www.laas.fr/~lopez/cours/GRAPHES/graphes.html
Pourquoi la thorie des graphes ?
Modlisation
Plusieurs problmes dans diffrentes
disciplines (chimie, biologie, sciences
sociales, applications industrielles, )
Un graphe peut reprsenter simplement la
structure, les connexions, les cheminements
possibles dun ensemble complexe
comprenant un grand nombre de situations

Un graphe est une structure de donnes
puissante pour linformatique
Exemples
1. Concepts gnraux en thorie
des graphes
Dfinitions
Reprsentations dun graphe
Coloration des sommets dun graphe
Connexit dans les graphes
Graphes particuliers
1. Concepts gnraux en thorie des graphes
Dfinitions
Concepts orients
Un graphe G(X,U) est
dtermin par
Un ensemble X={x
1
,,x
n
} de
sommets
Un ensemble U={u
1
, , u
m
} du
produit cartsien XX darcs.
Un p-graphe : pas plus que
p arcs (x
i
,x
j
)
3-graphe
1-graphe = graphe
boucle Arc u=(xi,xj)
1. Concepts gnraux en thorie des graphes
Dfinitions
Graphes et applications multivoques
x
j
est successeur de x
i
si (x
i
,x
j
)eU
Lensemble des successeurs de x
i
est not
I(x
i
)
Lensemble des prdcesseurs de x
i
est not
I
-1
(x
i
)
I est appele une application multivoque
Pour un 1-graphe, G peut tre
parfaitement dtermin (ou caractris)
par (X,I)
1. Concepts gnraux en thorie des graphes
Dfinitions
Concepts non orients
On sintresse lexistence darcs entre deux
sommets sans en prciser lordre
Arc = arte
U est constitu de paires non pas de couples
Multigraphe : plusieurs artes entre deux
sommets
Graphe simple = non multigraphe + pas de
boucles
1. Concepts gnraux en thorie des graphes
Dfinitions
Dautres dfinitions : Voir
http://www.laas.fr/~lopez/cours/GRAPHES
/graphes.html
Adjacence, degrs, Graphe complmentaire,
partiel, sous graphe, sous graphe partiel
Graphe rflexif, irrflexif, symtrique,
antisymtrique, transitif, complet
dfinitions
1. Concepts gnraux en thorie des graphes
Reprsentations dun graphe
1. Matrice dadjacence
Pour un graphe numris : remplacer 1 par la valeur de larc
Place mmoire : n
1. Concepts gnraux en thorie des graphes
Reprsentations dun graphe
2. Matrice dincidence sommets-arcs
Place mmoire : n x m
1. Concepts gnraux en thorie des graphes
Reprsentations dun graphe
3. Listes dadjacence
Place mmoire : n+1+m
1. Concepts gnraux en thorie des graphes
Coloration dun graphe
1. Concepts gnraux en thorie des graphes
Coloration dun graphe
1. Concepts gnraux en thorie des graphes
Connexit dans les graphes
Chane Cycle
Chemin Circuit
1. Concepts gnraux en thorie des graphes
Connexit dans les graphes
Le terme parcours regroupe les chemins, les
chanes, les circuits et les cycles
Un parcours peut tre
lmentaire : tous les sommets sont distincts
simple : tous les arcs sont distincts
hamiltonien : passe une fois et une seule par chaque
sommet
eulrien : passe une fois et une seule par chaque arc
prhamiltonien : ou moins une fois par chaque
sommet
preulrien : au moins une fois par chaque arc
1. Concepts gnraux en thorie des graphes
Connexit dans les graphes
Exemple
Le problme du voyageur de
commerce : un voyageur de
commerce doit visiter n villes
donnes en passant par chaque
ville exactement une fois et doit
revenir la ville de dpart.

Trouver un circuit hamiltonien de
cot minimal dans un graphe valu
1. Concepts gnraux en thorie des graphes
Connexit dans les graphes
Connexit
1. Concepts gnraux en thorie des graphes
Connexit dans les graphes
Forte connexit
1. Concepts gnraux en thorie des graphes
Graphes particuliers
Graphes sans circuit
Dcomposition en
niveaux
Graphe biparti
Graphe planaire
Hypergraphe
Arbre
Fort
Arborescence
2. Le problme du plus court
chemin
Dfinition
Exemples de formulation avec pcch
Principe doptimalit et conditions dexistence
Graphes sans circuit
Graphes valuations positives
Algorithme de Moore-Dijkstra (1959)
Graphes valuations quelconques
Contre-exemple
Algorithme de Bellman-Ford
2. Le problme du plus court chemin
Dfinition
2. Le problme du plus court chemin
Exemples
Exemple 1 : Construire une autoroute entre
deux villes A et K
Arcs = tronons possibles de lautoroute
Valuation des arcs peut tre
cot de ralisation correspondant
longueur du trajet

A
B
C
D
E
F
H
I
J
K
G
2. Le problme du plus court chemin
Exemples
Exemple 2 : Chemin le plus fiable dans un
rseau de tlcommunication
Artes = liens physiques
Valuation des artes (i,j) est p
ij
: fiabilit du lien (la
probabilit pour que le lien fonctionne)

La fiabilit dun chemin est le produit des
probabilits des liens qui le constituent

Le problme devient un problme de pcch en
remplaant chaque probabilit par a
ij
= - log p
ij
2. Le problme du plus court chemin
Exemples
Exemple 3 : Problme de sac dos
Un sac dos de capacit b
n objets j=1n
aj : poids de lobjet j
pj : profit de lobjet j
Objectif : dterminer un sous ensemble dobjets de
profit maximal respectant la capacit du sac.
Maximiser E
j
p
j
x
j
s.c.
E
j
a
j
x
j
s b

avec x
ij
= 1 si lobjet est choisi et 0 sinon
2. Le problme du plus court chemin
Exemples
Exemple 3 : Problme de sac dos
n(b+1) sommets nots j
(k)
, j=1,2,,n et k=0,1,,b
Un sommet origine s et un sommet destination t
Un sommet j
(k)
a deux arcs entrants (sils existent):
Un arc de (j-1)
(k)
valu par 0
Un arc de (j-1)
(k-aj)
valu par pj
Deux arcs de s vers 1
(0)
et 1
(a1)
valus par 0 et p1

Un arc de valuation 0 entre chaque sommet n
(k)
et t

Un chemin de s j
(k)
correspond a un sous
ensemble des j premiers objets dont le poids total
est gal k. La longueur du chemin est la valeur du
sous ensemble
2. Le problme du plus court chemin
Principe doptimalit
a
ij
= longueur de larc (i,j) si larc existe sinon +
u
j
: longueur du pcch de lorigine 1 vers le sommet j
Equations de Bellman
u
1
=0
u
j
= min {k=j, u
k
+ a
kj
}
2. Le problme du plus court chemin
Condition dexistence
Condition dexistence
Le graphe nadmet pas
de circuit de longueur
ngative
i
j
k
w
l(w)<0
2. Le problme du plus court chemin
Graphes acycliques
Un graphe est acyclique ssi il existe une
numrotation des sommets telle quun arc existe
entre i et j seulement si i < j
Les quations de Bellman deviennent
u
1
=0
u
j
= min {k < j, u
k
+ a
kj
}

1
4 2
3 5
6
3
1
-6
3
-4
2
9
6
1
2
5
2. Le problme du plus court chemin
Graphes valuations positives
Algorithme de Dijkstra : plus court chemin
de lorigine tous les autres sommets
Utilise des labels pour les sommets
Les labels permanents reprsentent la valeur du
pcch de lorigine jusquau sommet correspondant
Les labels temporaires reprsentent une borne
suprieure de ce pcch
A chaque itration un label temporaire est
transform en label permanent
2. Le problme du plus court chemin
Graphes valuations positives
Algorithme de Dijkstra
Etape 0
u
1
=0;
uj =a
1j
, pour j=2,, n
P={1}, T={2, , n}

Etape 2 (Dsignation du label permanent)
Dterminer keT, tq u
k
=min{j eT, u
j
}
T=T\{k} et P=P{k}
Si T=vide, stop

Etape 3 (Rvision des labels temporaires)
u
j
=min{u
j
, u
k
+a
kj
} pour tout j eT
Aller ltape 1
2. Le problme du plus court chemin
Graphes valuations positives
Exemple
A
B
D
C
E
F H
G
2
4
4
3
2
2
1
2
3
2
5
3
2. Le problme du plus court chemin
Algorithme de Dijkstra et graphes
valuations quelconques
S
A
B
C
E
D
6
1
2
3
3
2
2
-4
2. Le problme du plus court chemin
Graphes valuations quelconques
Algorithme de Bellman-Ford
u
j
(m)
= longueur du pcch de 1 vers j tel que le
chemin ne contient pas plus que m arcs
u
1
(1)
= 0
u
j
(1)
= a
1j

u
j
(m+1)
= min{u
j
(m)
, min{k=j, u
k
(m)
+ a
kj
}}

Si le graphe ne contient pas de circuit de
valeur ngative alors u
j
= u
j
(n-1)

2. Le problme du plus court chemin
Graphes valuations quelconques
Plus court chemin entre tous les couples
de sommets
Algorithme matriciel de Floyd-Warshall

3. Le problme central de
lordonnancement
C,F,I,N,O 0 Fin du projet Fin
E,J 1 Pose lments hauts O
E,M 1 Etanchit plan de travail N
L 4 Pose plan de travail M
B,J,H,K 6 Pose lments bas L
Dbut 8 Assemblage caissons et tiroirs K
G 4 Dpose ancien lments J
Mobilier
M 2 Pose et raccordement Evier I
G 6 dplacement arrives et vacuation H
Dbut 1 Dpose ancien vier G
Plomberie
E 4 Pose nouveau papier F
D 6 Pose faence E
J 8 Dcollage ancien papier D
Murs
B 2 Joints carrelage C
A 4 Pose carrelage B
J 6 Dpose ancien carrelage A
Sols
- 0 Lancement du projet Dbut
Tches
prcdentes
Dure (h) Description Tche
Rubrique
C,F,I,N,O 0 Fin du projet Fin
E,J 1 Pose lments hauts O
E,M 1 Etanchit plan de travail N
L 4 Pose plan de travail M
B,J,H,K 6 Pose lments bas L
Dbut 8 Assemblage caissons et tiroirs K
G 4 Dpose ancien lments J
Mobilier
M 2 Pose et raccordement Evier I
G 6 dplacement arrives et vacuation H
Dbut 1 Dpose ancien vier G
Plomberie
E 4 Pose nouveau papier F
D 6 Pose faence E
J 8 Dcollage ancien papier D
Murs
B 2 Joints carrelage C
A 4 Pose carrelage B
J 6 Dpose ancien carrelage A
Sols
- 0 Lancement du projet Dbut
Tches
prcdentes
Dure (h) Description Tche
Rubrique
3. Le problme central de lordonnancement
Modlisation
Le niveau dune tche X est le plus grand nombre darc sur un chemin
entre Dbut et X
Dbut
G
K
J
H
D
A
E F
B C
O
L M
N
I
Fin
O 1 2 3 4 5 6 7
8 NIVEAU :
0
0
8
6
4
4
1
2
1
2
4 6
4
4
1
1
8
6
4
6
3. Le problme central de lordonnancement
Dates de dbut au plus tt
La date dbut au plus tt dptt(i) dune tche
i = longueur du plus long chemin de la tche
Dbut (ou 0) i

Formule de rcurrence
dptt(i)=max
jePred(i)
(dptt(j)+dure(j))
dptt(0)

=0
3. Le problme central de lordonnancement
Dates de fin au plus tard
On souhaite terminer le projet au plus tard la
date D=dptt(n+1)

Date de dbut au plus tard de i = Date maximum
laquelle on peut excuter i sans retarder le
chantier
Longueur du plus long chemin de i Fin (ou n+1)

Formule de rcurrence
dptard(n+1)=D
dptard(i)=min
jeSucc(i)
dptard(j)-dure(i)
3. Le problme central de lordonnancement
Marges, chemin critique
La marge totale dune tche i est le retard total
quon peut se permettre sur i sans remettre en
cause la date de fin du projet
MT(i)=dptard(i)-dptt(i).
Les tches critiques ont une marge nulle. Tout
retard sur leur excution entrane un retard
global sur le projet
Un chemin est critique sil relie Dbut Fin et
sil ne contient que des tches critiques
4. Flots dans les rseaux
Dfinition : Un flot dans un graphe G=(X,U) est
un vecteur =[
1
,
2
,,
m
]e9
m
tel que

La quantit de flot ou flux sur larc j
j
> 0, pour tout j
=1,, m
Pour tout sommet xeX, la 1re loi de Kirchhoff est
vrifie


+
e e
=
) ( ) ( x w j
j
x w j
j

4. Flots dans les rseaux
Flot dans un rseau de transport
On dit que le vecteur =[
1
,
2
,,
m
] est flot
de E S dans G ssi la loi de Kirshhoff est
vrifie en tout sommet de G sauf pour E et S
o on a

Donc, si =[
1
,
2
,,
m
] est un flot dans G alors
=[
0
,
1
,
2
,,
m
] est un flot dans G
0

=[
0
,
1
,
2
,,
m
] est un flot admissible dans G
0
ssi pour tout j=0,,m, b(j)s
j
sk(j)
flot du valeur :
) (
0
) (

+
e e
= =
S w j
j
E w j
j

4. Flots dans les rseaux
Flot dans un rseau de transport
On veut acheminer un produit partir de 3
entrepts (1,2,3) vers 4 clients (a,b,c,d)
Quantits en stock : 45, 25, 25
Demande des clients : 30,10, 20, 30
Limitations en matire de transport dun entrept un
client
a b c d
1 10 15 - 20
2 20 5 5 -
3 - - 10 10
E
1
2
3
a
b
d
c
S
[0,25]
4. Flots dans les rseaux
Exemple de flot
E
1
2
3
a
b
d
c
S
[0,25], 25
Valeur du flot = 80
Ce flot est un flot complet, c--d, tout chemin de
E S comporte au moins un arc satur
4. Flots dans les rseaux
Quelques problmes qui se posent
1. Dtermination dun flot ralisable ou
compatible : cest le cas o il existe des arcs u
tels que b(u)>0

2. Dtermination dun flot maximum
Un flot complet nest pas forcment maximum
Un flot maximum est forcment complet

3. Dtermination dun flot maximum de cot
minimum
4. Flots dans les rseaux
Dtermination dun flot maximum
Principe de lalgorithme de Ford-Fulkerson
1. Construire un flot complet
2. Amliorer itrativement ce flot

1. Construire un flot complet
Examiner tous les chemins de E S de faon
systmatique
Pour chaque chemin faire passer un flot gal la
capacit rsiduelle minimale de ce chemin
4. Flots dans les rseaux
Dtermination dun flot maximum
2. Amliorer itrativement ce flot
Graphe dcart : Soit un flot admissible sur
G. Le graphe dcart G
e
()=(X,
e
()) est tel
que
Pour tout arc jeU on associe deux arcs dans

e
()
j
+
de mme sens que j et de capacit rsiduelle
k
+
(j)=k(j)-
j
j
-
de sens oppos que j et de capacit k
-
(j)=
j
-b(j)
10
5
10
5 5
5
E
1
2
3
a
b
d
c
S
[0,25], 25
E
1
2
3
a
b
d
c
S
35
25
20
10
10
20
5
5
10
15
5
25
10
30
15
Graphe dcart
Un flot complet
4. Flots dans les rseaux
Dtermination dun flot maximum
2. Amliorer itrativement ce flot
Thorme : Un flot compatible est
maximal ssi il nexiste pas de chemin de E
S dans G
e
().
Principe de lamlioration
Chercher un chemin de E S dans G
e
()
Soit o la plus petite capacit de
Pour j
+
de , augmenter
j
de o
Pour j
-
de , diminuer
j
de o
4. Flots dans les rseaux
Dtermination dun flot maximum
10
5
10
5 5
5
E
1
2
3
a
b
d
c
S
35
25
20
10
10
20
5
5
10
15
5
25
10
30
15
Capacit minimale o = 5
5
40
5
10
0
5
0
20
0
30
Valeur du flot = 85
Exemples
En 1736, Euler a montr que cest impossible !!
retour
retour
retour
Rfrences bibliographiques
P. Lopez, Cours de graphes, LAAS-CNRS
http://www.laas.fr/~lopez/cours/GRAPHES/graphes.html

Ph. Vallin and D. Vanderpooten. Aide la dcision : une approche par les
cas. Ellipses, Paris, 2000.

M. Gondron, M. Minoux, Graphes et algorithmes, Eyrolles, Paris, 1984

C. Prins, Algorithmes de graphes, Eyrolles, Paris, 1994

Ph. Lacomme, C. Prins, M. Sevaux, Algorithmes de graphes, Eyrolles, 2003

B. Baynat, Ph. Chrtienne, , Exercices et problmes dalgorithmique,
Dunod, 2003

E. Lawler, Combinatorial Optimization Networks and matroids, Dover
Publications, INC, 1976.