Vous êtes sur la page 1sur 18

Graphes et Applications

Partie N : 1
Ralis par Si Sami
29 avril 2013
1.iii i :.1ini
1 Introduction la thorie des graphes 2
1.1 Introduction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Dnition : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Reprsentations dun graphe . . . . . . . . . . . . . . . . . . . . . 4
1.3.1 Matrice dadjacence . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 Matrice dincidence sommets-arcs . . . . . . . . . . . . . . 4
1.3.3 Listes dadjacence . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Coloration des sommets dun graphe : . . . . . . . . . . . . . . . . 5
1.4.1 Un algorithme de coloration . . . . . . . . . . . . . . . . . 6
1.4.2 Histoire . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Problme de plus court chemin : . . . . . . . . . . . . . . . . . . . 8
1.5.1 Dnitions et proprits : . . . . . . . . . . . . . . . . . . 8
1.5.2 Le Cas des graphes sans circuits : Algorithme de Roy (Rang). 8
1.5.3 Le cas o tous les poids sont positifs : Algorithme de Dijkstra 11
1.5.4 Le cas o les poids sont de signe quelconque : Algorithme
de Ford-Bellman . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.5 Le plus court chemin entre les dirents couples sommets
dun graphe : Algorithme de Floyd . . . . . . . . . . . . . 14
1.6 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.6.1 Aectation du personnel dune compagnie de transport . . 15
1.6.2 Construction dun rseau routier . . . . . . . . . . . . . . . 16
1.6.3 Application 3 . . . . . . . . . . . . . . . . . . . . . . . . . 16
1
1. I:1noc1io: \ i. 1iionii i
on.iii
1.1. Introduction :
Dune manire gnrale, les graphes permettent de reprsenter les structures
et les connexions dun ensemble complexe en exprimant les relations entre ses
lments. Les graphes constituent donc, une mthode de penser qui permet de
modliser une grande varits de problmes en se basant sur ltude des sommets
et des arcs. Exemples :
La recherche dun plus court chemin. (Rseau routier, Internet...)
La distribution optimale dun ot sur un rseau. (Communication, eau po-
table...)
Optimisation de la compilation : Un processeur a un nombre limit de re-
gistres o il peut stocker ses donnes. tant donn un certain nombre de
variables utilises dans un programme, il faut trouver un moyen daecter
les variables dans les registres de faon maximiser lutilisation des registres
et de minimiser les accs la mmoire. Ce problme est rsolu grce la co-
loration de graphes, attribuant chaque noeud / variable une "couleur", de
sorte que deux sommets adjacents (variables utilises dans le mme temps
un programme) nont pas la mme couleur. Il sagit dun problme NP-
complet.
La planication dune confrence ou examens...(coloration de graphes).
Le parcours optimal de distribution :
- Le problme du postier chinois consiste trouver un plus court chemin dans
un graphe connexe non orient qui passe exactement une fois par chaque arte du
graphe et revient son point de dpart (Cycle eulrien, Thorme dEuler : Un
graphe (resp : orient fortement) connexe est Eulrien si et seulement si chacun de
ses sommets est de degr pair (resp : est lextrmit initiale et terminale du mme
nombre dartes).(http ://fr.wikipedia.org/wiki/Problme_du_postier_chinois)
2
- Le problme du voyageur de commerce consiste trouver un plus court
chemin dans un graphe connexe non orient qui passe exactement une fois par
chaque sommet du graphe et revient son point de dpart (Cycle Hamiltonien).
Gestion de projets : Pert.
1.2. Dnition :
1. Un graphe simple G est un couple form de deux ensembles :
- Un ensemble X dont les lments sont appels sommets.
- Un ensemble A dont les lments sont appels artes.
On notera G = (X, A). Les lments de A sont de type a = (i, j) avec i et
j IN

. (a) est larte dextrmits i et j.


2. Graphe orient : lordre de i et j est important. Dans ce cas les lments de
A sont appels : arcs
3. Deux sommets sont adjacents sils ont un arc en commun. Deux arcs (artes)
sont adjacents sils ont un sommet en commun.
4. Si un arc est orient de i vers j on dit que :
- i est un prdcesseur de j
- j est un successeur de i
5. Un chemin est une succession de sommets adjacents. Une chaine est un che-
min dans un graphe non orient. Un circuit est un chemin dont les extrmits
concident.
6. Graphe non orient connexe : (i, j) G; une chane reliant i et j.(Pareil
pour composante connexe).
7. Graphe orient fortement connexe : il existe un chemin de i vers j et un autre
je vers i.(Pareil pour composante fortement connexe).
8. Un stable de G est un sous-ensemble de sommets deux--deux non-adjacents.
9. Degrs :
-Le demi-degr extrieur de (i), d
+
(i), est le nombre darcs ayant (i) comme
extrmit initiale.
-Le demi-degr intrieur de (i), d

(i), est le nombre darcs ayant (i) comme


extrmit nale.
-Le degr de (i) est d(i) = d
+
(xi) + d

(xi). Le degr dun sommet dun


graphe non orient est le nombre dartes qui lui sont incidentes.
Proprits
Graphe non orient :

xG
d(x) = f(#ar etes)?
Graphe orient :

xG
d
+
(x)
?
=

xG
d

(x) = f(#arcs)?
1.3. Reprsentations dun graphe
Dans laspect algorithmique de la thorie des graphes, on cherche conce-
voir un processus ecace pour traiter un problme faisant intervenir un graphe.
Les principaux critres decacits dun processus sont le temps ncessaire pour
obtenir la rponse et lespace que le processus consomme dans son travail. Un
certain nombre de reprsentations existent pour dcrire un graphe. On distingue
principalement la reprsentation par matrice dadjacence, par matrice dincidence
sommets-arcs (ou sommets-artes dans le cas non orient) et par listes dadjacence.
1.3.1. Matrice dadjacence
Cest une matrice boolenne qui traduit lexistence ou non dun arc (i, j ) entre
les sommets (i) et (j). Place mmoire utilise : n
2
(pour un graphe compose de n
sommets)
Remarque : pour des graphes valus on remplace 1 par la valeur numrique
de larc.
1.3.2. Matrice dincidence sommets-arcs
Ligne sommet ; colonne arc.
Si u = (i, j) U, on notera : a
iu
= 1 : a
ju
= -1 ; tous les autres termes sont
nuls.
1.3.3. Listes dadjacence
lavantage de la reprsentation par listes dadjacence, par rapport celle par
matrice dadjacence, est le gain obtenu en place mmoire ; ce type de reprsenta-
tion est donc mieux adap pour une implmentation. Le but est de reprsenter
chaque arc par son extrmit nale, son extrmit initiale tant dnie implicite-
ment. Tous les arcs manant dun mme sommet sont lis entre eux dans une liste.
A chaque arc sont donc associs le nud destination et le pointeur au prochain
sommet dans la liste.
Sommet Pointeur Extrmit nale Arc
1 1 2 u
1
2 3 3 u
3
3 5 1 u
2
3 u
4
- -
Place mmoire utilise : n + m.
Remarque
Si lon veut connatre lexistence dune arte entre deux sommets, la matrice
dadjacence permet dobtenir un rsultat immdiatement, ce que lon appelle en
(1). En revanche, une opration de base telle que trouver le voisin dun sommet
est en O(n) sur une matrice dadjacence : dans le pire des cas, il faudra scanner
la totalit de la colonne pour sapercevoir quil ny a pas de voisin. Pour la liste
dadjacences, trouver un voisin se fait en (1) tandis que lexistence dune arte est
en O(n). Ainsi, au niveau du temps, le choix de la structure dpend des oprations
de base que lon souhaite optimiser
1.4. Coloration des sommets dun graphe :
Problme :
Une chane de cinq magasins dcide douvrir ses magasins en nocturne avec
les contraintes suivantes : les deux premiers magasins ne peuvent pas tre ouverts
ensemble ; il en est de mme pour les deux derniers ; au plus un seul magasin peut
tre ouvert parmi les magasins 1, 3, 4.
Trouver un tat qui maximise le nombre de magasins ouverts en nocturne, tout
en respectant les contraintes.
Dnition : La coloration des sommets dun graphe consiste en une aecta-
tion de couleurs tous les sommets du graphe de telle sorte que deux sommets
adjacents ne soient pas porteurs de la mme couleur.
Dnition : Le nombre chromatique dun graphe est le nombre minimumde
couleurs ncessaires sa coloration. On note gnralement (G) le nombre chro-
matique dun graphe G.
Proprit : Considrons un graphe G et soit r le plus grand des degrs des
sommets. Alors : (G) r + 1.
1.4.1. Un algorithme de coloration
Nous allons dcrire ci-aprs lalgorithme de coloration de WELCH et PO-
WELL.
1- Classer les sommets du graphe dans lordre dcroissant de leur degr. On
obtient ainsi une liste x
1
; x
2
; ...; x
n
de sommets telle que deg(x
1
) deg(x
2
) ...
deg(x
n
).
2- Choisir une couleur c
1
pour le sommet x
1
et attribuer la couleur c
1
aux
autres sommets non coloris et non adjacents aux sommets dj coloris avec c
1
et, ce jusqu la n de la liste.
3- Sil reste des sommets non coloris, attribuer une nouvelle couleur au premier
sommet non colori et rpter la procdure.
4- Condition darrt : tous les sommets sont coloris.
Remarque : Le nombre de couleurs utiliss par cet algorithme nest pas forc-
ment le nombre chromatique du graphe. Lexemple qui suit lillustre.
Exemple :
Application 1 : (Organisation dun examen).
On veut organiser une session dexamens comportant, outre les matires com-
munes, six matires doptions : Franais (F), Anglais (A), Mcanique (M), Dessin
industriel (D), Internet(I), Sport (S) ; les prols des candidats options multiples
sont : F-A-M; D-S; I-S; I-M.
1- Quel est le nombremaximum dpreuves que lon peut mettre en parallle ?
2- Une preuve occupe une demi-journe ; quel est le temps minimal ncessaire
pour ces options ?
Application 2 :
Dans un atelier de menuiserie, six travaux sont raliser. On utiliser quatre
machines : une scie dgrossir ; une raboteuse ; une mortaiseuse ; une ponceuse.
Chaque travail ncessite lutilisation de deux machines, comme indiqu dans le
tableau ci-dessous.
Plan des utilisations
Travail Machines utilises
1 Scie et raboteuse
2 Scie et mortaiseuse
3 Mortaiseuse et ponceuse
4 Raboteuse et ponceuse
5 Mortaiseuse et ponceuse
6 Scie et mortaiseuse
Deux travaux ne peuvent tre excuts en mme temps que sils utilisent des
machines direntes.
1- Certains travaux ne peuvent tre raliss en mme temps. Reprsenter ces
contraintes par un graphe.
2- On suppose que le temps ncessaire pour chaque travail est le mme. Dter-
miner le nombre minimal de squences ncessaires pour raliser ces six travaux.
3- Proposer une organisation
Dnition : Graphe planaire
Cest un graphe qui peut tre reprsent sur un plan (ou une sphre) tel que
tout arc (ou arte) ne se croise pas avec un autre.
Thorme de coloration (Appel & Haken, 1977) :
Tout graphe planaire est 4-chromatique.
1.4.2. Histoire
Les premiers rsultats de coloration de graphe concernent presque exclusive-
ment les graphes planaires : il sagissait alors de colorier des cartes. En cherchant
mettre en couleurs une carte des comts dAngleterre, Francis Guthrie postula
la conjecture des quatre couleurs. Il remarqua en eet quil ny avait besoin que
de quatre couleurs pour que deux comts ayant une frontire commune soient de
couleurs direntes. Le frre de Guthrie transmis la question son professeur de
mathmatiques, Auguste de Morgan de lUniversity College de Londres. De Mor-
gan mentionna ce problme dans une lettre adresse William Hamilton en 1852.
Arthur Cayley voqua cette question lors dun colloque de la London Mathema-
tical Society en 1879. La mme anne, Alfred Kempe publia ce quil prtendit
en tre une dmonstration et pendant une dcennie, on crut que le problme des
quatre couleurs tait rsolu. Kempe fut lu membre de la Royal Society et devint
ensuite prsident de la London Mathematical Society[1].
En 1890, Percy John Heawood t remarquer que la dmonstration de Kempe
tait fausse. Il montra quant lui le thorme des cinq couleurs en reprenant
des ides de Kempe. De nombreux travaux ont t publis lors du sicle suivant
pour rduire le nombre de couleurs quatre, jusqu la dmonstration nale de
Kenneth Appel et Wolfgang Haken. La preuve rutilisait les ides dHeawood et
Kempe et pratiquement pas les dveloppements ultrieurs[2]. Il sagit aussi de la
premire preuve majeure utilisant massivement lordinateur.
1.5. Problme de plus court chemin :
1.5.1. Dnitions et proprits :
Soit G un graphe orient (n) sommets et (m) arcs. A chaque arc (i, j) est
associ un rel C
ij
appel poids ou longueur de larc. Le problme consiste
dterminer le plus court chemin joignant deux sommets particuliers.
Remarques :
La longueur dun arc peut tre de signe quelconque.
Il est clair que si un chemin contient un circuit de longueur totale ngative,
alors sa longueur sera non borne. Ainsi, une condition ncessaire dexistence
dun chemin de longueur minimale est labsence de circuits de longueur totale
ngative (circuit absorbant).
Proprit
Tout chemin optimal est constitu de sous-chemins optimaux.
1.5.2. Le Cas des graphes sans circuits : Algorithme de Roy (Rang).
Remarque
Dans un graphe sans circuit, il y a ncessairement un sommet not (1) nayant
aucun prdcesseur (Sinon on aura forcement un circuit)
Dnition :
Soit C(j) un chemin reliant (1) (j) et n(C(j)) le nombre darcs de ce chemin.
le rang dun sommet j est dnie comme suit :
r(j) = max
C(j)
n(C(j))
Dtermination des rangs
On pose R
k
= {Sommets de rang k} et T ={Sommets de rang inconnu} .
Algorithme de recherche des rangs
Etape (0) : initialisation
R
0
= {1}, T = {2, ...n}
k = 1
Etape (1) : R
k
?
R
k
={sommets de T nayant aucun prdcesseurs dans T}
Si R
k
=, alors Fin (existence dun circuit).
Sinon, faire T = T/R
k
.
Si T=, alors Fin.
Etape (2) : Mise jour
Eliminer les arcs sortants des sommets de R
k
Faire k = k + 1 et aller lEtape (1).
Application :

1
3
2
6
4
5
7
5
2
4
4
5
-3 5
7
3
10
2
7
Calcul des rangs
R
0
= {1} , T = {2, 3, 4, 5, 6, 7}
R
1
= {3} , T = {2, 4, 5, 6, 7}
R
2
= {2} , T = {4, 5, 6, 7}
R
6
= {6} , T = {4, 5, 6}
R
4
= {4, 5} , T = {7}
R
5
= {7} , T =
Ordonnancement des sommets suivant des rangs croissants
Recherche du plus court chemin :
Algorithme de Roy :
d(j) est la longueur de plus court chemin reliant le sommet de dpart (de rang
zro) et le sommet j.
Etape (0) : Recherche des rangs
Ordonner les sommets suivant des rangs croissants.
Etape (1) : Recherche du plus court chemin
d(1) = 0
Faire : Pour J suivant des rangs croissants
d(j) = min(d(l) + C
lj
); l predecesseur de j
Fin

1 3
2 6
5
4
7
5 5 -3
7
4
4
10
2
7 2
3
5
Application :
d(1) = 0
d(3) = d(1) + C
13
= 5
d(2) = min(d(1) + C
12
, d(3) + C
32
)
= min(7, 10) = 7; Pcc(1, 2) = (1, 2)
d(6) = min(d(2) + C
26
, d(3) + C
36
)
= min(4, 12) = 4; Pcc(1, 6) = (1, 2, 6)
d(4) = min(d(6) + C
64
, d(2) + C
24
)
= min(9, 11) = 9; Pcc(1, 4) = (1, 2, 6, 4, )
d(5) = min(d(6) + C
69
, d(2) + C
25
, d(3) + C
35
)
= min(7, 9, 7) = 7; Pcc(1, 5) = (1, 2, 6, 5)
d(7) = min(d(4) + C
47
, d(5) + C
57
)
= 13; Pcc(1, 7) = (1, 2, 6, 4, 7)
1.5.3. Le cas o tous les poids sont positifs : Algorithme de Dijkstra
Lobjectif est de dterminer les plus court chemins entre un sommet not (1)
et le reste des sommets (arborescence optimale).
Algorithme de Dijkstra :
d(j) est la longueur du plus court chemin reliant 1 j. Les d(j) sont initia-
lises certaines valeurs puis seront mises jour au fur et mesure tout le
long de lalgorithme
Les sommets du graphe sont partitionns en deux sous ensembles : P et T.
Avec :
P = Les sommets (j) dont les d(j) sont xes dune faon Permanente.
T= Les sommets (j) dont les d(j) sont xes dune faon Temporaire.
Etape (0) : Initialisation
d(1) = 0
Faire : j {2, ...n}
d(j) =

C
1j
si larc(1.j) graphe
+ sinon
Pcc(j) = (1, j) ; le plus court chemin qui lie les sommets 1et j.
Fin.
P = {1} et T = {2, ...n}
Etape (1) : Choix dun d(k) optimal
Dterminer le nud k / d(k) = min
jT
d(j).
Faire :
P = P {k} et T = T/ {k}
Fin
Si T = , alors Fin.
Etape (2) : Mise jour des d( j)
Faire : (j) T et successeur de (k)
Si d(k) + C
kj
< d(j) alors d(j) = d(k) + C
kj
Pcc(j) = Pcc(k) (k, j)
Fin.
Aller ltape (1).
Exemple :

1
5
2
3
4
3
2
4
7
15
10
5
3
It(0) It(1) It(2) It(3) It(4)
d(j) Pcc(j) d(j) Pcc(j) d(j) Pcc(j) d(j) Pcc(j) d(j) Pcc(j)
2 15 (1, 2) 15 (1, 2) 12 (1, 5, 4, 2) 12 (1, 5, 4, 2) - -
3 (1, 3) 11 (1, 5, 3) 11 (1, 5, 3) - - - -
4 (1, 4) 9 (1, 5, 4) - - - - - -
5 4 (1, 5) - - - - - - - -
P {1} {1, 5} {1, 5, 4} {1, 5, 4, 3} {1, 5, 4, 2}
Le plus court chemin entre le sommet (1) et le reste des sommets :

1
5
2
3
4
1.5.4. Le cas o les poids sont de signe quelconque : Algorithme de
Ford-Bellman
Remarque :
Soit G un graphe n sommets. Sil nexiste aucun circuit de longueur total
ngative alors le plus court chemin entre les sommets (1) et (n) contient au plus
n sommets.
Algorithme de Ford-Bellman :
On pose d
k
(j) la longueur du plus court chemin entre les sommets (1) et (j)
contenant au plus k sommets, autre que lorigine (1).
Etape (0) : Initialisation
d
1
(1) = 0
Faire : j {2, ...n}
d
1
(j) =

C
1j
si l

arc(1.j) graphe
+ sinon
Fin.
k = 1
Etape (1) : Mise jour des d
k
(j)
Faire : (j)
d
k+1
(j) = min(d
k
(j), min(d
k
(l) + C
lj
), avec (l) prdcesseur de (j).
Fin.
Etape (2) : Test de convergence
Si d
k+1
(j) = d
k
(j); j, alors Fin (Condition doptimalit).
Sinon et si k = n 1, alors il existe un circuit de longueur ngative.
Sinon faire k = k + 1 et aller ltape (1).
Exemple :

1
2
3
4
6
5
8
7
2
4
1
2
2
-3
3
2
k = 1 k = 2 k = 3 k = 4 k = 5
d
1
(j) Pcc(j) d
2
(j) Pcc(j) d
3
(j) Pcc(j) d
4
(j) Pcc(j) d
5
(j) Pcc(j)
1 0 (1, 1) 0 (1, 1) 0 (1, 1) 0 (1, 1) 0 (1, 1)
2 7 (1, 2) 7 (1, 2) 7 (1, 2) 7 (1, 2) 7 (1, 2)
3 8 (1, 3) 8 (1, 3) 5 (1, 2, 5, 3) 5 (1, 2, 5, 3) 5 (1, 2, 5, 3)
4 + (1, 4) 11 (1, 2, 4) 10 (1, 2, 5, 4) 10 (1, 2, 5, 4) 10 (1, 2, 5, 4)
5 + (1, 5) 8 (1, 2, 5) 8 (1, 2, 5) 8 (1, 2, 5) 8 (1, 2, 5)
6 + (1, 6) 9 (1, 2, 6) 9 (1, 2, 6) 7 (1, 2, 5, 3, 6) 7 (1, 2, 5, 3, 6)
1.5.5. Le plus court chemin entre les dirents couples sommets dun
graphe : Algorithme de Floyd
Algorithme :
Etape (0) : Initialisation
Faire :
i = 1...n, d (i, i) = 0 .
(i, j)/i = j, d (i, j) =

C
ij
si (i, j) au graphe
+ sinon
(i, j)/i = j, Pcc (i, j) = (i, j)
k = 1
Etape1 : mise jour
Faire :
i et j = k, Si d (i, k) + d (k, j) < d (i, j)
Alors d (i, k) + d (k, j) = d (i, j) et Pcc (i, j) = Pcc (i, k) Pcc (k, j) .
Fin
Etape 2 : Test de convergence
Sil existe i tel que d (i, i) < 0, alors Fin (absence dun plus court chemin).
Sinon si k = n alors Fin (optimalit).
Sinon k = k + 1 et aller ltape 1.
1.6. Applications
1.6.1. Aectation du personnel dune compagnie de transport
Une compagnie de transport urbain dcide de faire appel des conducteurs de
bus supplmentaires. Pour cela, elle doit prciser les horaires de travail de chaque
conducteur. Le tableau suivant prsente les dirents crneaux horaires possibles
ainsi que leurs cots. Lobjectif est davoir, pour chaque heure de la priode de
service (de 9h 17h), au moins un conducteur en service et ce avec un cot
minimal.
Horaires 9-13 9-11 12-15 12-17 14-17 13-16 16-17
Cot 30 18 21 38 20 22 9
Rsoudre ce problme en le formulant comme un problme de plus court chemin
dans un graphe quon prcisera
Solution :
On dnit le graphe G =(V,E) de la manire suivante :
- un sommet est associ chaque dbut dheure,
- un arc reliant les sommets i et j (i < j) dcrit une periode de travail qui
commence lheure (i) et qui sachve lheure (j).
- la longueur de chaque arc est le cot associ au crneau horaire correspon-
dant.
C
9,10
=C
9,11
=18 ; C
9,12
=C
9,13
=30 ; C
12,13
=C
12,14
=C
12,15
=21 ;
C
12,13
=C
12,14
=C
12,15
=C
12,16
=C
12,17
=20 ; C
14,15
=C
14,16
=C
14,17
=20 ;
C
13,14
=C
13,15
=C
12,16
=22 ; C
16,17
=9.
Pour chercher le PCC(9 17), on applique lalgorithme de ROY car le graphe
ne contient pas de circuit. La solution optimale est (9, 13, 16, 17) avec un cot
minimal de 61. Les crneaux horaires retenus sont : [9-13], [13-16] et [16-17].
1.6.2. Construction dun rseau routier
On considre le projet de construction dun rseau routier entre les villes A et
G. Le tableau ci-dessous reprsente les dirents tronons possibles ainsi que les
cots de construction correspondants :
Tronon AB AC CB BD BF CE
Cot 8 5 4 9 7 10
CF EB ED DG EG FG FE
2 1 6 7 11 8 3
Le problme consiste dterminer lautoroute dont le cot total de construc-
tion est minimal.
1.6.3. Application 3
On considre le graphe reprsent ci-dessous :
Donner un chemin entre les noeuds (1) et (10) contenant le minimum darcs
poids ngatifs.