Vous êtes sur la page 1sur 47

THEORIE DES GRAPHES

Dr COULIBALY Adama
UFRMI, Universit Flix Houphouet Boigny
08/11/2012
Chapitre 1 : Gnralits sur les Graphes
1.1 Graphes Orients
1.1.1 Dfinitions et concepts de base

Dfinition

Un graphe orient est dtermin par la donne dun ensemble fini X


dont les lments sont appels sommets ou nuds, et dun ensemble
U dont les lments sont des couples ordonns de sommets appels
arcs. On le note G = (X, U).

Si u = (x, y) U, x est appel extrmit initiale et y est appel


extrmit terminale de larc u.

x est aussi appel origine et y, extrmit.

Reprsentation graphique

Graphiquement les sommets peuvent tre reprsents par des points


ou des cercles et les arcs par des flches.

Un arc u = (x, y) est reprsent par une flche joignant x et y, la


flche tant dirige vers y.

x y

Ce type de reprsentation sappelle reprsentation sagittale.

2
Dfinition Un arc dont les deux extrmits concident est appel une
boucle. Si x est lextrmit, on le note (x,x) et est reprsent comme
suit :

Dfinition

Soit G = (X, U), un graphe orient. G est dit dordre n, si |X|= n et de


taille m, si |U| = m.

Dfinition Un p-graphe est un graphe orient dans lequel, il nexiste pas


plus p arcs de la forme (x, y) entre deux sommets quelconques x, y pris
dans cet ordre.
Exemple : 3-graphes

X2
X5

X1

X4

X3

3
Dans tout ce qui suit, on travaillera seulement avec les 1-graphes.

Dfinition Soit G = (X, U), un graphe orient et x, y deux sommets de G

y est un successeur de x, on dit aussi un suivant, sil existe un arc


u U de la forme u = (x, y).

x u y

On note S(x) lensemble des successeurs ou des suivants de x.

x est un prdcesseur ou un prcdent de y, sil existe un arc


u U de la forme u = (x, y).

x u y

On note P(y), lensemble des prdcesseurs de y.

Remarque : Un graphe G est parfaitement dtermin par les donnes


de X, lensemble des sommets et de lapplication multivoque
: X P(X)
x X

O P(X) est lensemble des parties de X et qui tout x associe X qui


est lensemble des suivants de x.
Dans ce cas on le note G = (X, ) et x est lensemble des prcdents
de x.

4
Dfinition
Deux sommets dun graphe orient G =(X, U) relis par un arc sont dits
adjacents.
Deux arcs ayant une extrmit commune sont dits adjacents.
Un sommet qui nest adjacent aucun autre sommet est dit isol.

Dfinition Un graphe orient discret est un graphe dont tous les


sommets sont isols.

Dfinition Soit G =(X, U) un graphe orient et x, y X deux sommets.

Un arc de la forme u = (x, y) U est dit sortant de x, ou


incident extrieurement x. On note xU lensemble des tels
arcs.
Un arc de la forme u =(x, y) est entrant en y ou incident
intrieurement y. On note Uy lensemble des tels arcs.

Dfinition Soit G =(X, U) un graphe orient et x X un sommet.

On appelle demi-degr sortant de x ou demi-degr


extrieur de x, le cardinal de xU. On le note dG+(x).
De mme, on appelle demi-degr entrant de x ou demi-
degr intrieur de x, le cardinal de Ux. On le note dG- (x).
On appelle degr de x, le nombre darcs ayant une extrmit
en x. On le note dG (x) ; on a dG (x)= dG+(x) + dG-(x).

5
Dfinition Un graphe orient G = (X, U) est dit rgulier si
Tous les sommets ont mme degr.
Proposition : Soit G = (X, U) un graphe orient. On a

xX dG+(x) = xX dG- (x) = |U|.

Corollaire : Si G = (X, U) est un graphe orient on a xX dG+(x) = 2|U|.

Corollaire : Dans un graphe orient, le nombre de sommets de degr


impair est pair.
Preuve : Soit G = (X, U) un graphe orient. Soit X1 lensemble des
sommets de degr pair et X2 lensemble des sommets de degr impair.
On a

xX1 dG(x) + xX2 dG(x) = 2|U|.

Comme X1 est lensemble des sommets de degr pair alors

xX1 dG(x) = 2m

do

xX2 dG(x) = 2(|U| - m).

Soit (|U| - m) = k donc xX2 dG(x) = 2k, alors xX2 dG(x) est pair. Or

xX2 dG(x) = (2p1+1)+ + (2pm + 1) = 2k

Donc 2(p1 + + pm) + m = 2P + m = 2k donc m =2(k-P), par suite m


est pair.

6
Dfinition Soit G =(X, U) un graphe orient.

G est dit symtrique si (x y) U (y, x) U; x, y X


G est anti-symtrique si (x, y) U (y, x) U x, y X,
avec x y. Cest--dire : si (x, y) U et (y, x) U implique que
x=y.
G est reflexif si x X, (x, x) U.
G est anti-reflexif si x X, (x, x) U.
G est transitif si (x, y) U et (y, z) U (x, z) U, x, y, z
X.
G est dit complet si (x, y) U (y, x) U, x, y X
distincts.

Dfinition Deux graphes orients G =(X, U) et G= (X, U) sont dits


homomorphes sil existe une fonction f : X X telle que

Si (x, y) U alors (f(x), f(y)) U.

Exemple : Les graphes G =(X, U) et G= (X, U) ci-dessous sont


homomorphes avec :
X = {x1, x2, x3, x4} et X = {a, b, c}.
U = {(x1, x3), (x2, x1), (x4, x2)} et U = {(a, a), (b, a), (c, b)}.
x1
x2 b
G a G

x4 x3 c
7
Dfinition Deux graphes orients G =(X, U) et G =(X, U) sont
isomorphes sil existe deux bijections Bs : X X et Ba : U U telles que
deux arcs qui se correspondent dans la bijection Ba aient pour
extrmits initiales et terminales respectivement des sommets qui se
correspondent dans la bijection Bs. C'est--dire : si Ba(u) = u avec
u = (x, y) et u =(x, y) alors Bs(x) = x et Bs(y) = y.

Proposition : Si G = (X, U) et G = (X, U) sont homomorphes par f et si f


est bijectif avec f-1 qui est un homomorphisme, alors G et G sont
isomorphes.

Dfinition (graphe partiel): Soit G = (X, U) un graphe orient et V une


partie de U. On appelle graphe partiel de G engendr par V, le graphe
GV = (X, V).

Dfinition (sous-graphe) : Soit G =(X, U) un graphe orient et Y une


partie de X (Y X). On appelle sous-graphe de G engendr par Y, le
graphe GY = (Y, W) o W est lensemble des arcs de U dont les deux
extrmits sont dans Y.

8
Exemples
X6
X2

X7

X1

X3 X5

X4

Y = {x1, x2, x6, x7}. Le sous graphe engendr par Y est :

X2
X6
X1

X7

Soit V = {(x1, x2), (x2, x3), (x3, x5), (x6, x5)}. Le graphe partiel engendr
par V est le suivant.

9
X6
X2

X7

X1

X3 X5

X4

Dfinition (sous-graphe partiel) : Soit G =(X, U) un graphe orient et Y


une partie de X (Y X) et V une partie de U. On appelle sous-graphe
partiel de G engendr par Y et V, le sous-graphe engendr par Y du
graphe partiel de G engendr par V.

Dfinition (graphe complmentaire) : Deux graphes G = (X, U) et


= (X, ) tels que (x, y) U (x, y) et (x, y) U (x, y) , sont
dits complmentaires.

Dfinition (Cocycle, cocircuit)

Un cocycle est un ensemble darcs reliant deux ensembles

complmentaires du graphe. Si on note le cocycle associ

Y.

10
Un cocircuit est un cocycle dont tous les arcs sont dans le mme sens.

1.1.2 Cheminement dans un graphe

Dfinition (chemin) : Soit G = (X, U) un graphe orient et x, y deux


sommets de G. Un chemin de x y de G est une suite ordonne darcs
x,y=(u1, , uq) telle que :

Lorigine de u1 est x,
i {1, , q-1}, lorigine de ui+1 est lextrmit de ui,
Lextrmit de uq est y.

Exemple
U4
X2 X4

U1

U9
U5
U8
U3 X6
X1

U6
U2
U10
X3 X5 0

U7

est un chemin de X1 X6

11
Remarque
Un chemin peut tre dfini par la suite des sommets quil contient.

Dfinition On appelle longueur dun chemin au sens des arcs, le


nombre darcs qui le composent.

Dfinition Un chemin est dit simple si la squence darcs qui le


constitue ne contient pas plusieurs fois un mme lment. Cest--
dire, en le parcourant, on ne rencontre pas plusieurs fois un mme arc.

Dfinition Un chemin est dit lmentaire si en le dcrivant, on ne


rencontre pas plusieurs fois le mme sommet. Cest--dire que les
sommets du graphe sont adjacents au plus deux arcs du chemin.

Proposition Un chemin lmentaire est simple.

Thorme Tout chemin de x y dans G=(X, U) contient un chemin


lmentaire de x y.

Dmonstration

Soit z un sommet rencontr deux fois quand on parcourt le chemin C de


x y. (si un tel sommet z nexiste pas, C est lmentaire).

La sous squence obtenue partir de C en retirant les arcs parcourus


entre ces deux occurrences de z est encore un chemin C de x y. En
rptant, si ncessaire, cette opration on obtient un chemin
lmentaire joignant x y.

12
Dfinition (circuit) : Un circuit est un chemin dont lextrmit terminale
du dernier arc est confondue avec lextrmit initiale du premier arc.

Dfinition Un circuit lmentaire est un chemin lmentaire dont les


extrmits sont confondus.

On montre que :

Proposition Tout circuit est union disjointe de circuits lmentaires.

Dfinition Un chemin ou circuit qui passe une fois et une seule par
chaque sommet du graphe est hamiltonien.

X2 X4

X1 X6

X3 X5

= (x1, x2, x4, x6, x5, x3) est un chemin hamiltonien.


On parle de chemin pr-hamiltonien sil passe au moins une fois par
chaque sommet du graphe.

Dfinition (chemin eulrien, circuit eulrien) : Un chemin est dit


Eulrien sil passe une fois et une seule par chaque arc du graphe. Il est
dit pr-eulrien sil passe au moins une fois par chaque arc.

13
Un circuit eulrien est un chemin eulrien dont les deux extrmits
concident.

Dfinition (Ascendant, descendant)

Un sommet y est un descendant dun sommet x sil existe un chemin de


x y. On dit alors que x est un ascendant de y.

Dfinition ( source, puits)

Une source s est un sommet ascendant de tous les autres sommets.

Un puits est un sommet descendant de tous les autres sommets.

Dfinition : Soit G = (X, U) un graphe orient. Une chane de G est


une suite darcs (u1, , uq) telle que chaque ui avec i {2, , q-1}, ait
une extrmit commune avec larc ui-1 et lautre avec larc ui+1.
Lextrmit x de u1 non adjacente u2 et lextrmit y de uq non
adjacente uq-1 sont appeles les extrmits de la chane.

U5
X2 X4
U9
U1
U8
U6
X1 U2 U4 X6
U10

U3
X5
X3 U11
U7

14
= (u2, u7, u6, u5) est une chane dextrmit x1 et x4.

Remarque Un chane est une suite finie de sommets relis entre eux
par un arc.

Dfinition Une chane est simple si la squence darcs qui la compose


ne comporte pas plusieurs fois un mme lment.

La chane est dite lmentaire si en la parcourant, on ne rencontre pas


deux fois un mme sommet.

Proposition Une chane joignant x y contient une chane lmentaire


joignant x y.

Dfinition Une chane hamiltonienne est une chane simple passant par
tous les sommets du graphe une et une seule fois.

Dfinition Une chane eulrienne est une chane simple passant par
tous les arcs du graphe.

Dfinition Un cycle est une chane dont les extrmits concident.

Dfinition Un cycle est lmentaire si en le parcourant, on ne


rencontre pas deux fois le mme sommet sauf le sommet choisit
comme origine du parcours.

Dfinition Un cycle simple est une chane simple dont les extrmits
concident.

Thorme Tout cycle est union disjointe de cycles lmentaires.

Dfinition Un cycle hamiltonien est un cycle simple passant par tous les
sommets du graphe une et une seule fois.
15
Dfinition Un cycle eulrien est un cycle simple passant par tous les
arcs du graphe.

1.1 .3 Connexit, Forte connexit


a) Connexit

Soit G = (X, U) un graphe orient. On considre la relation C dite


relation de connexit dfinie sur X par :

x, y X, xC y x = y ou il existe une chane entre x et y.

Proposition : La relation C est une relation dquivalence.

Dfinition : On appelle classe connexe de G une classe dquivalence


de la relation C.

Dfinition : On appelle nombre de connexit, le nombre de classes


connexes de G

Les sous-graphes induits par les classes connexes de G sont appels les
composantes connexes de G.

Dfinition : Un sommet darticulation, respectivement (un ensemble


darticulation) de G est un sommet (ensemble de sommets) dont la
suppression augmente le nombre de classes connexes.

Dfinition

Un Isthme est un arc dont la suppression augmente le nombre de


classe connexe.

16
Dfinition

Un graphe G est connexe sil nadmet quune seule composante


connexe. C'est--dire x, y X, il existe une chane de x y (x y).

b) Forte connexit

Soit G = (X, U) un graphe orient. On considre la relation F dite


relation de forte connexit dfinie sur X par :

x, y X, x F y x = y ou il existe un chemin de x y et un chemin


de y x.

Proposition : La relation F est une relation dquivalence sur X.

Dfinition : On appelle classe fortement connexe de G toute classe


dquivalence de F .
Dfinition : On appelle composante fortement connexe de G, tout
sous-graphe de G induit par une classe fortement connexe de G.

Dfinition : On appelle nombre de connexit forte, le nombre de


classes fortement connexes de G

Dfinition : G est fortement connexe sil nadmet quune seule


composante fortement connexe. Cest--dire que pour tout x, y
distincts dans X, il existe un chemin de x y et un chemin de y x.

17
Les classes fortement connexes sont

: { } { } { }.

Dfinition (Graphe rduit)

Soit G=(X, U) un graphe orient. On appelle graphe rduit de G, le


quotient de G par la relation de forte connexit. On le note Gr. Les
sommets de Gr sont donc les composantes fortement connexes de G et
il existe un arc entre deux sommets Ci et Cj si et seulement si il existe au
moins un arc entre un sommet de Ci et un sommet de Cj dans le graphe
G.

Proposition Le graphe rduit est sans circuit.

Dfinition

Un graphe G est dit quasi-fortement connexe si x, y X, il existe un


sommet z(x, y) do partent la fois un chemin allant x et un chemin
allant y.
18
Proposition

Un graphe fortement connexe est quasi fortement connexe.

Un graphe quasi fortement connexe est connexe.

1.2 Graphes non orients


Dans ltude de certaines proprits des graphes, il arrive que
lorientation des arcs cest--dire la distinction entre extrmit initiale
et extrmit terminale ne joue aucun rle. On sintresse simplement
lexistence ou la non existence dun arc entre deux sommets sans en
prciser lordre. On parle alors de graphe non orient.

Dfinition

Un graphe non orient G est constitu dun ensemble

X = {x1, , xn} lensemble des de points et U = {u1, , um} P2(X) P1(X)


o P2(X) (respectivement P1(X)) est lensemble des paires
(respectivement des singletons) de X.

Les lments de X sont appels sommets du graphe et ceux de U les


artes.

Si u U est un lment de P1(X) par exemple u={x} , on dit que u est


une boucle.

Si u U est un lment de P2(X) avec u={ }, les sommets x et y sont


appels extrmits de larte u. On note aussi u=xy=yx.

19
On peut reprsenter le graphe de la faon suivante :

Les lments de X par des points ou des nuds.


Les lments de U par un trait reliant les extrmits.

Dans certains cas, il est naturel de considrer des graphes avec des
artes parallles, c'est--dire quils ont mme extrmits.

X2
X1

X4

X3

Dans tout ce qui suit, on va considrer que des graphes sans artes
parallles.

Dfinition

Soit G = (X, U) un graphe non orient. Si |X| = n, G est dit dordre


n et si |U| = m, G est de taille m.
Un graphe non orient est simple sil est sans boucle et deux
sommets distincts sont joints par au plus une arte.
Soit G = (X, U), un graphe non orient.
Deux sommets x et y sont adjacents sils sont relis par une arte.
Deux artes sont dites adjacentes si elles ont en commun une
extrmit.

20
x X, on appelle voisinage de x, lensemble des sommets
adjacents x. On le note V(x).
x X, on appelle degr de x, dG(x) = |V(x)|.
Un sommet qui nest adjacent aucun autre sommet est dit isol.

Remarque

Les notions de demi-degr, chemin, circuit, forte connexit


concernent essentiellement le cas orient.
La notion de connexit se dfinit de la mme manire que dans le
cas orient.
On dfinit aussi de faon analogue que dans le cas orient, la
notion de sous-graphe, graphe partiel et isomorphisme
Dfinition
Soit G = (X, U) un graphe non orient.
Une chane C de G est une suite dartes C = (u1, , uq) telle que
pour tout ui avec i {2, , q-1}, larte ui est adjacente ui+1.
Lextrmit de uq non adjacente uq-1 est lextrmit de la
chane.
Un cycle est une chane dont les deux extrmits sont confondues.
On dfini de mme une chane lmentaire et une chane simple
comme dans les graphes orients.
Dfinition

Un graphe discret est un graphe dont la taille est nulle.


Un graphe non orient G est complet si deux sommets
quelconques de G sont relis entre eux.

21
On montre que :

Proposition : Soit G = (X, U) un graphe non orient simple dordre n et


de taille m. On a :

xX dG(x) = 2m, m n(n-1)/2.

Proposition : Soit G un graphe non orient simple :


Le nombre de sommet de degr impair est pair.
Il existe au moins deux sommets ayant mme degr.

Proposition : Soit G un graphe non orient simple dordre n et de taille


m..

G est complet m = n(n-1)/2.

Notation : On note Kn tout graphe simple complet dordre n (en


hommage de Kuratowski).

X1
X2

X5

X3
X4

On a ci-dessus le graphe K5

22
1.3 Autres reprsentations des graphes
Il existe plusieurs faons de reprsenter un graphe. La reprsentation la
plus naturelle ou la plus courante lorsquil sagit den parler ou celle qui
a t lorigine du concept, est la reprsentation sagittale ou
graphique. Mais cette reprsentation nest pas adapte si on veut faire
des traitements partir des machines, sur des graphes.

Dfinition (Matrice dincidence aux arcs)

Soit G =(X, U) un graphe orient sans boucle tel que X = {x1, x2, , xn} et
U = {u1, , un}. La matrice dincidence aux arcs de G est la n m
matrice A = (aij) telle que :
aij = 1 si xi est lorigine de larc uj.
aij = - 1 si xi est lextrmit de uj.
aij = 0 dans les autres cas.

Dterminer la matrice dincidence aux arcs du graphe ci-dessous

X1 X3 U6
U1

U8 U3 U5
U2 X5
U7

U4
X2 X4

23
Dfinition (Matrice dadjacence ou dincidence sommet-sommet)
Soit G = (X, U) un graphe orient. La matrice dadjacence de G, on dit
aussi matrice boolenne, la n n matrice A = (aij) telle que
aij = 1 si (xi, xj) U et aij = 0 sinon.

Dfinition : Soit G = (X, U) un graphe orient. On appelle dictionnaire


des prcdents (resp suivants), le tableau simple entre qui tout
sommet x numre les lments prcdents P(x) (resp les suivants
S(x)).

x P(x)
x1 x2, x3, x4
x2 x 1 , x4
x3 x 1 , x2
x4 x2

X2

X1 X3

X4

24
Dfinition (Matrice dincidence aux artes) : Soit G = (X, U) un graphe
non orient avec X = {x1, , xn} et U = {u1, , um}. La matrice dincidence
aux artes de G est la n m matrice A = (aij) telle que :

aij = 1 si xi est une extrmit de uj et aij = 0 sinon.

Dfinition (Matrice dadjacence) : Soit G = (X, U) un graphe non orient


simple dordre n. La matrice dadjacence de G est la n n matrice
A = (aij) telle que aij = 1 si {xi, xj} U et aij = 0 sinon.

1.4 Complments
1.4.1 Clique, Stable et coloration
Dfinition : Soit G un graphe. Une clique de G est un sous-ensemble C
de X tel que deux sommets quelconques de C sont relis par une arte.

Exemple

X3
X4

X1

X6 X5 X2

{x1, x3, x6} est une clique.


25
Dfinition Un stable sur un graphe G est un sous-graphe sans arte.
Remarque : Un sommet isol est la fois une clique et un stable.
Par abus de langage, lensemble des sommets dun stable
(respectivement dune clique) est appel stable (respectivement clique)
de sorte que, on dit que S est un stable de G = (X, U) si S X et

x, y S, (x, y) U. c'est--dire deux sommets quelconques de S ne


sont pas adjacents.
Dfinition
Le nombre de stabilit dun graphe G est (G) le cardinal maximal
dun stable de G.
Dfinition La Coloration dun graphe G consiste en une affectation de
couleurs tous les sommets du graphe de telle sorte que deux
sommets adjacents ne soient pas porteurs de la mme couleur. Cest
une partition du graphe en stable.
Une coloration avec k couleurs on dit aussi une k-coloration est une
partition de lensemble des sommets en k parties stables.

Dfinition Le nombre chromatique (G) est dfini comme le nombre


minimum de couleurs distinctes ncessaires la coloration des
sommets du graphe.

Dfinition Un graphe G tel que (G) k qui est coloriable en k couleurs


est dit k-chromatique.
On considre les notations suivantes :

26
Notation : On note par le plus petit entier suprieur ou gal et
par le plus grand entier infrieur ou gal , cest--dire la partie
entire de .

On montre que :
Proposition Soit G=(X, U) un graphe sans boucle dordre n.
On a :

(G) d+1 o d = max {dG(x) : x X}.

Dmonstration
Notons { } une partition de X en k parties stables avec
. Alors :

| |

n, tant des entiers naturels, lingalit de gauche est


tablie.
Construisons une partition de X en sous ensembles stables de la
manire suivante.
- On considre un sommet x1 arbitraire de X et S1 est une plus
grande partie stable contenant x1.
- Sil existe un sommet x2 de X qui nest pas dans S1, on construit
S2, une plus grande partie stable de X contenant x2 disjointe avec
S1.
- Sil existe un sommet x3 de X qui nest pas dans , on
construit S3, une plus grande partie stable de X contenant x3 telle
que S1, S2, S3 soient 2 2 disjoints.

27
X tant fini, ce procd se terminera et on obtient une partition
{ } de X.
En choisissant une couleur par lment de la partition, on aura
ncessairement : .
Considrons prsent un sommet x de la partie Sk. Le caractre
maximal des parties construits assure que ce sommet est adjacent au
moins un sommet de chaque partie Si , { }. On en
dduit alors que do
.
Ce qui tablit la deuxime ingalit.
Proposition Soit G=(X, U) un graphe sans boucle dordre n. Alors on a

Dmonstration Considrons S une partie stable de X de cardinal


Une coloration possible des sommets consiste colorier les sommets
de S dune mme couleur. On en dduit que
( )
Ce qui est quivalent
.
1.4.2 Nombre cyclomatique
On rappelle quun cycle est une chane dont les extrmits concident.
Un cycle lmentaire est un cycle tel quen le parcourant, on ne
rencontre pas deux fois un mme sommet sauf sil est choisi comme
origine du cycle . Cest un cycle minimal pour linclusion, c'est--dire ne
contenant strictement aucun autre cycle.

28
Soit G=(X, U) avec { } un graphe orient dordre n et de
taille m. Etant donn un cycle lmentaire et un sens de parcours sur
ce cycle, on note +, lensemble des arcs du cycle orient dans le sens
du parcours et - lensemble des arcs orients dans le sens contraire.
On peut donc associer au cycle , le vecteur

tel que :
si , si , si

Remarque : Le vecteur est aussi un vecteur associ au cycle (il est


obtenu en choisissant lautre sens de parcours). On voit donc quau
sens de parcours prs, on pourra identifier un cycle et son vecteur
Exemple
U3
X2 X5 U4

U1 U2 U6 X3

X1 X4 U7
U5

= {u4, u7, u6} est un cycle lmentaire. Pour le sens de parcours


x5 x3 x4 x5, le vecteur = (0, 0, 0, 1, 0, -1, 1).

Dfinition : Etant donn deux cycles lmentaires 1 et 2 et un sens de


parcours sur chacun deux, et , leurs vecteurs associs. On
appelle la somme des cycles 1 et 2, le cycle dont le vecteur associ
est .
On montre que :
29
Proposition : Tout cycle est une somme de cycles lmentaires
disjoints.

Dmonstration : En parcourant on dfinira un nouveau cycle


lmentaire chaque fois quon arrive un sommet dj rencontr.

Dfinition : On dit que p cycles lmentaires 1, , p sont dpendants


sil existe entre leurs vecteurs associs une relation vectorielle de la
forme :

+ =0 avec les non tous nuls.

Lorsquau contraire + =0 implique que les sont tous


nuls, on dit que les p cycles sont indpendants.

Dfinition : Une base de cycle est un ensemble minimal de cycles


indpendants {1, , p} tel que tout vecteur reprsentatif dun cycle
peut se mettre sous la forme +

Dfinition : On appelle nombre cyclomatique dun graphe G, le nombre


dlments dans une base de cycle. On le note V(G).

Proposition : Soit G = (X, U) orient, |X| = n et |U|= m, alors


V(G) = m n + p o p est le nombre de composantes connexes de G.

30
1.4.3 Graphes particuliers
Dfinition : Un Arbre est un graphe connexe sans cycle.

Dfinition

On appelle fort un graphe sans cycle. C'est--dire un graphe dont


chaque composante connexe est un arbre.

Dfinition : Soit G = (X, U) un graphe orient.


Un sommet r de G est dit racine si pour tout x X-{r}, il existe un
chemin de r x.
Un sommet a de G est dit anti-racine de G si pour tout x X-{a}, il existe
un chemin de x a.

Dfinition

Une Arborescence est un arbre orient admettant une racine.


Une Anti-arborescence est un arbre qui admet une anti-racine.

31
Remarque : Une arborescence est un arbre mais un arbre nest pas une
arborescence. Si on inverse le sens des arcs dune arborescence, on
obtient une anti-arborescence.

Dfinition (graphe biparti) : Un graphe G = (X, U) est biparti si X = X1X2


tel que si u = (x, y) U, x X1 y X2 ; x X2 y X1.

Dfinition (graphe planaire) : Un graphe planaire est un graphe qui


peut tre reprsent sur un plan ou une sphre telle que deux arcs ne
se coupent pas.

Proposition

Tous les graphes de moins de 5 sommets ainsi que les graphes


bipartis de moins de 6 sommets sont planaires.
Tout graphe planaire est 4-chromatique.

1.4.4 Fermeture transitive dun graphe

Dfinition : Soit G = (X, U) un graphe orient. On appelle fermeture


transitive de G, le plus petit graphe transitif contenant G. C'est--dire
un graphe H = (X, ) ayant G comme graphe partiel et possdant le
petit nombre darcs. Schmatiquement, on construit en ajoutant U
un arc (xi, xk) qui nappartient pas U si (xi, xj) U et (xj, xk) U pour au
moins un sommet xj et ceux de faon itrative jusqu lobtention dun
graphe transitif.

Exemple

32
X3
X2

X5

X1
X6

X4

Dfinition :

On appelle somme boolenne la somme note telle que : 0 0=0,


1 0=1, 0 1=1, 1 1=1

On appelle produit boolen, le produit tel que :

O 0=0, 1 0=0, 0 1=0, 1 1=1.

La somme et le produit boolens de deux matrices sobtiennent en


substituant et aux oprateurs + et dans la somme et le produit
matriciels usuels.

Proposition

1) Si on considre la pime puissance boolenne (p un entier naturel


non nul) de la matrice boolenne M associe un graphe G,
Mp=M M (p fois). Elle reprsente la matrice
dadjacence dun graphe o un arc entre x et y signifie quil existe
dans G un chemin de cardinalit p allant de x y.
2) La matrice boolenne de la fermeture transitive de G est :
=M M2 Mn o n tant lordre de G.
33
Exemple

X2 X3

X4
X1

X5

Proposition : Un graphe orient G est sans circuit si et seulement si la


matrice dadjacence de sa fermeture transitive ne possde aucun 1 sur
la diagonale.

1.4.5 Ordonnancement par niveau dun graphe orient sans


circuit

Dfinition : Soit G = (X, U) un graphe orient. On appelle dictionnaire


des prcdents (resp suivants), le tableau simple entre qui tout
sommet x numre les lments prcdents P(x) (resp les suivants
S(x)).

Dfinition : Soit G = (X, U) un graphe orient sans circuit. On appelle


niveau de x X, la longueur (au sens des arcs) du plus long chemin
ayant pour extrmit terminale x.
Exemple

34
X5
X2

X1 X4

X6
X3

Le niveau de x1 est 0, le niveau de x2 est 2, niveau de x3 est 1 et le


niveau de x4 est 3.

Procdure de dtermination des niveaux des sommets dun graphe


orient sans circuit.

a. A laide du dictionnaire des prcdents.


1) Soit N0 lensemble des sommets de G qui nont pas de
prcdents. N0 constitue lensemble des sommets de G de
niveau 0.
2) Barrer dans le dictionnaire des prcdents les lments de N0
partout o ils se trouvent. Si un sommet a tous ses lments
barrs il est de niveau 1.
3) On ritre cette procdure en augmentant de 1, la valeur des
niveaux jusqu ce que tous les sommets soient barrs.
4)
b. A laide de la matrice boolenne
1) Lensemble N0 des sommets de niveau 0 est lensemble des
sommets dont les colonnes sont nulles

35
2) Barrer dans la matrice boolenne les colonnes et les lignes
correspondant aux lments de N0. Si un sommet a sa colonne
nulle il est de niveau 1.
3) On ritre cette procdure en augmentant de 1, la valeur des
niveaux jusqu ce que toutes les colonnes soient barres.

Exemple

x1 x2 x3 x4 x5 x6
x1 0 1 1 0 0 0
x2 0 0 0 1 0 0
x3 0 1 0 1 0 0
x4 0 0 0 0 1 1
x5 0 0 0 0 0 1
x6 0 0 0 0 0 0

N0 = {x1}, N1 = {x3}, N2 = {x2}, N3 = {x4}, N4 = {x5}, N5 = {x6}.

Lordonnancement par niveau dun graphe permet une


reprsentation plus simple du graphe (avec le moins dintersections
possible des arcs), les sommets tant placs de gauche droite par
ordre croissant des niveaux. Dautre part la recherche des chemins
optimaux se fait plus facilement sur un graphe ordonnanc par
niveau.

36
Chapitre 2 : Problme de cheminement dans
un graphe : problme de plus court chemin
2.1 Position du problme
Soit G = (X, U), un graphe quelconque. On dit que G est valu si pour
tout uU, on associe une longueur (valeur) l(u) ou d(u), des rels. Le
triplet (X, U, l) ou (X, U, d) est appel rseau.
Le problme du plus court chemin entre xi et xj de R = (X, U, l) est de
trouver un chemin de xi xj tel que l() = u l(u) soit minimal.
Ce problme a de nombreuses applications pratiques car la longueur
l(u) peut sinterprter comme un cot de transport sur larc u, comme
les dpenses de construction de larc u, comme le temps ncessaire
pour parcourir larc u.
Remarque
La recherche du plus long chemin est la longue, la recherche du plus
court chemin. En effet, rechercher un plus long chemin sur le rseau
R = (X, U, l) quivaut rechercher un plus court chemin dans le rseau
R = (X, U, -l).
Les algorithmes de rsolutions du problme du plus court chemin sont
diffrents selon les proprits du graphe et le problme considr.
Parmi les proprits du graphe, on distingue les cas suivants :

l(u) 0, u U.
l(u) = 1, u U.
l(u) est quelconque.
Parmi les problmes considrs, on distingue les cas suivants :

37
1. recherche du plus court chemin dun sommet S un sommet P.
2. Recherche du plus court chemin dun sommet S tous les autres
sommets.
3. Recherche du plus court chemin entre tous les couples de
sommets.
Remarque : Les problmes 1 et 2 sont identiques.

2.2 Principe doptimalit


Proposition : Tout sous chemin dun plus court chemin est un plus
court chemin.

Preuve : Soit un chemin allant de xi xj et soit un sous chemin de


allant de xk xl , alors o [ ] et [ ]
On suppose de valeur minimale. Si ntait pas de valeur minimale,
il existerait un chemin de valeur strictement plus faible allant de xk
xl et le chemin serait de valeur strictement infrieure celle de
, ce qui contredit le fait que est de valeur minimale

Cette proprit extrmement simple est la base de la programmation


dynamique. Pour ces problmes de cheminement loptimisation globale
est le rsultat doptimisations locales
Dfinition : soit R = (X, U, l) un rseau. Un circuit est dit absorbant si
l(u) = u l(u) < 0.

38
Exemple : soit le graphe suivant :
X2 X4
2
-3
7

-2 0
X1
4 X6

1
3 1
X3 X5

Soit = <x2, x4, x6, x5, x2>, l() = 2-3+1-2 = -2 < 0 alors est absorbant.
Proposition : Etant donn R = (X, U, l) un rseau. Sil existe entre deux
sommets x et y de R, un chemin comportant un circuit absorbant alors il
nexiste pas de plus court chemin entre ces deux sommets.
Proposition : Soit x et y deux sommets de R =(X, U, l) tel quil nexiste
pas de chemin entre x et y comportant un circuit absorbant. Alors la
recherche du plus court chemin entre x et y revient rechercher un
plus court chemin lmentaire entre eux.
Proposition : Etant donn dans R = (X, U, l) deux sommets x et y, on a
les situations suivantes :
il nexiste pas de chemin entre x et y.
Il existe un chemin entre x et y mais pas de plus court chemin
entre x et y.
Il existe un plus court chemin entre x et y.

39
2.3 Algorithmes
2.3.1 Dtermination de plus courts chemins dun sommet tous les
autres sommets.
On considre le rseau R = (X, U, l) avec X = {x1, x2, , xn} et on cherche
les plus courts chemins de x1 tous les xj pour j {2, , n}.

On montre que
Proposition : Une condition ncessaire et suffisante pour que, pour
tout i, il existe un chemin de longueur minimale allant de est
que le graphe G soit sans circuit absorbant.

Cas o les longueurs sont positives : Algorithme de Dijkstra


On suppose que l(u) 0 u U. On cherche les plus courts chemins de
x1 tous les xj, j {2, , n}.

Algorithme
0) Dbut
1) on pose S= {x2, , xn}, (x1) = 0, (xi) = l1i si xi S(x1) et + sinon,
lij = l(xi, xj).

2) Slectionner xi S tel que (xi) = Min { (xk) } avec xk S,


Faire S = S- {xi}, si | S|= 0 aller 5.
3) Faire pour tout xj S(xi) S, (xj) := Min { (xj), (xi)+lij }.
4) Aller 2.

40
5) Fin.
NB : S(xi)= les sommets suivants de xi
Convergence : A la fin de lalgorithme les (xi) donne la longueur du
plus court chemin de x1 xi pour tout i.

Exemple : Appliquer lalgorithme sur graphe suivant.

X4
4 5

2
7 X2
X5

X1
5
3
2

1
1

X3
X6
7

Remarque
On peut sintresser non seulement la distance du plus court chemin
de x1 xj mais aussi au chemin lui-mme. Pour cela, on procde comme
suit :
A chaque sommet P, on associe trois lments tels que marq(P),
pred(P), dist(P) o marq(P) est un marquage boolen, pred(P) est le
sommet prcdant xP sur le plus court chemin de x1 xP sur le graphe
des sommets marqus (un sommet est marqu si sa marque est 1),
dist(P) est la plus courte distance de x1 xP sur le sous graphe de
sommets marqus.
41
Algorithme

1) Initialisation pour i = 2, , n dist(xi) = +, pred(xi) = 0, marq(xi) = 0,


dist(x1) = 0, marq(x1) = 1, Y = X-{x1} (ensemble de sommets non
marqus), rcent = x1 (le sommet rcemment marqu).
2) Tant que |Y| 0 faire
pour chaque successeur de xi de rcent
si marq(xi)=0
si dist(xi) > dist(rcent)+l(rcent, xi) alors
dist(xi) = dist(rcent)+l(rcent, xi) et pred(xi) = rcent.
Fin si.
Fin si.
Fin pour.

Soit y Y tel que dist(y) = MinxY {dist(x)}.


Marq(y) = 1.
Y := Y-{y}.
rcent = y.
Fin tant que.
Exemple : Appliquer lalgorithme au graphe ci-dessous

2
X2 X4
3
5 5

2
X1 3 X6
1 1

1 2
X3 X5
6

42
2.3.2 Dtermination des plus courts chemins de xi tous les autres
sommets : cas o le graphe et les longueurs sont quelconques.
Algorithme de Bellman
1) Poser 0(x1) = 0 et 0(xi) = i {2,, n}. k=1.
2) A litration k, faire k(x1) = 0 et pour tous les xj, poser
k(xj) = Min { k-1(xi) + l(xij) avec xi P(xj) }.
3) Si k(xj) = k-1(xj) xj, stop.
si k n-1 faire k := k +1 et aller 2.

Si k = n, stop il existe un circuit absorbant.

Convergence : 1(xi) reprsente la longueur du chemin de x1 xi de


longueur minimale et ne contenant pas plus dun arc.
Dans ltape 2) k(xi) reprsente la valeur du chemin de x1 xi de
longueur minimale et ne contenant pas plus de k arcs.
Sil nexiste pas de circuit absorbant, il existe un plus court chemin
entre x1 et tous les autres sommets de moins de n-1 arcs et k(xi) se
stabilise en moins de n-1 itrations la valeur du plus court chemin de
x1 xi.
Sil ny a pas de stabilisation la nime itration, il existe un circuit
absorbant dans le graphe.

43
Remarques
1) lalgorithme de Bellman peut tre amlior au niveau de ltape.
Supposons que les k(xj) ltape 2) sont calculs dans un ordre
donn : x2, , xn. Pour calculer k(xj), on peut utiliser les valeurs k(xi)
pour i < j, calculs au dbut de ltape 2). On obtient :

k(xj) = Min { Min{ k(xi) + lij avec xi P(xj) },

Min { k-1(xi) + lij avec i > j et xi P(xj) } }.


2) Si on est sur quil nexiste pas de circuit absorbant dans le graphe,
lalgorithme de Bellman devient :
Algorithme de Ford
1) poser (x1) = 0 et (xi) = + pour les autres sommets.
2) Pour j allant de 2 n faire (xj) = Min { (xi) + lij } avec xi P(xj).
3) Recommencer 2) jusqu ce que les (xj) se stabilisent.
On peut sintresser non seulement aux plus courtes distances mais
aussi aux chemins correspondants. Pour cela, on peut considrer
lalgorithme suivant qui est une autre formulation de lalgorithme de
Bellman.
Algorithme de Bellman (bis)
1) dbut
2) Initialisation Pour i allant de 2 n faire dist(xi) = +, pred(xi) = 0 Fin
pour.
dist(x1) = 0.
pred(x1) = 0.
k = 0.
3) Rpter
stable = vrai; k := k+1
Pour tout xj x1

44
pour tout xi P(xj)
si dist(xj) > dist(xi) + lij alors
dist(xj) = dist(xi) + lij, pred(xj) = xi et stable = faux.
Fin si.
Fin pour.
Fin pour.
Jusqu stable = vrai ou k > n-1.
Exemple : Drouler lAlgorithme bis de Bellman.

X2 X4
3 4
4

9
X1 -4 1
X6

6
4
2
X3 X5

2.3.3 cas dun graphe sans circuits. Dtermination des plus courts
chemins de x1 tous les autres sommets.
Algorithme de Ford
On suppose que P(x1) =
1) Poser (x1) = 0 et S = { x1 }
2) Rechercher un sommet xj S = xj X-S tel que P(xj) S
3) Poser (xj) = Min { (xi) + lij } avec xi P(xj) S := S {xj}.
4) Si |S| = |X| = n, stop.
5) Retourner 2.

45
Remarque
Pratiquement, pour excuter ltape 2), on considre lordre obtenu
aprs lordonnancement par niveau du graphe
.

Exemple : Appliquer lalgorithme au graphe ci-dessous

4
X2 X4

2 2

-2
X1 7

-1

6
X3 X5
1

2.3.4 Recherche du plus court chemin entre tous les couples de


sommets ou dtection dun circuit absorbant.
Algorithme de Floyd
1) Poser Lij = lij si (xi, xj) U et + sinon.
2) pour k allant de 1 n
pour i allant de 1 n
si Lik = + alors passer au i suivant.
Si Lik + Lki < 0, stop car circuit absorbant.
Pour j allant de 1 n faire Lij = Min { Lij, Lik + Lkj} Fin pour.

46
Fin pour.
Fin pour.
Convergence : lalgorithme dtermine dans le cas o il ny a pas de
circuits absorbants dans le graphe, les plus courtes distances entre les
couples de sommets xi et xj.( Lij = plus courte distance entre les
sommets xi et xj).

Exemple : Appliquer lalgorithme au graphe ci-dessous

X2 X4
2

-2 4
2
2 3

1
X3 X5

47

Vous aimerez peut-être aussi