Vous êtes sur la page 1sur 65

Thorie des graphes

Historique
Un bon dessin vaut mieux quun bon discours Le langage des graphes essaie de mettre en pratique cette ide La thorie des graphes est ne des proccupations qui ntaient pas directement des proccupations mathmatiques

Le problme des sept ponts de Knigsberg


Le problme des sept ponts de Knigsberg est un problme mathmatique

Le problme tait le suivant :

Peut on se promener en passant une fois et une seule par tous les ponts ?

Le problme des sept ponts de Knigsberg


Cette configuration des ponts de Knigsberg se modlise par un graphe

Cest Lonhard Euler a dmontr que le problme tait insoluble cycle eulrien

chane passant par toutes les artes du graphe une et une seule fois, et revenant son point de dpart)

Le problme tait insoluble Lonhard Euler a dmontr que


pour quun trajet passe une fois et une seule sur chaque arte et revienne au point de dpart sur un graphe, il faut que le graphe possde au moins un sommet de degr impair

Historique
Plus rcemment (60,70)
vision plus unifi des concepts des objets des rsultats obtenus

Les graphes sont devenus une branche des mathmatiques discrte Dveloppement des ordinateurs
problmatique de la manipulation automatique de telles structures
Algorithmique des graphes

Graphes non orients

Graphes non orients

Un graphe G est compos


Dun ensemble de sommets V(G) qui est un ensemble fini Dun ensemble dartes E(G) E(G){(a,b): aV et bV}

On note G(V,E)

Reprsentation graphique
b a g d f e c

V={a,b,c,d,e,f,g} E={(a,b),(a,f),(a,g),(b,c),(b,g),(c,e),(d,e),(d,g), (e,f),(f,g)}

Reprsentation graphique
La reprsentation graphique dun graphe nest pas unique
a b g

d e c

Reprsentation graphique
Peu importe que les artes se coupent dans le plan On reprsente uniquement les relations entre les sommets On parlera de graphe sans boucle
E(G){(a,b): aV et bV et a!b}
d

Dfinitions
Soit G=(V,E) un graphe non orient simple (sans boucle) Deux artes sont adjacentes si elles partagent une mme extrmit

Artes adjacentes exemple


b a g d f e c

(a,b) et (a,f) (a,g) et (b,g) (c,e) et (c,g)

Dfinitions
Soit G=(V,E) un graphe non orient simple (sans boucle) Deux artes sont adjacentes si elles partagent une mme extrmit Lensemble des voisins dun sommet u dans G est
N(u)={vV: (u,v) E}

Exemple:
b a g d f e c

N(a)=(b,g,f) N(b)=(a,g,c)

Degr
Le degr dun sommet u dans G est
d(u)=|N(u)|

Le degr minimum de G est


"=Min{d(u):uV}

Le degr maximum de G est


#=Max{d(u):uV}

Exemple:
b a g d f e c

N(b)=(a,g,c) d(b)=3

"=2 #=4

Chemin
Soient u et v deux sommets distincts dun graphe G(V,E) Un chemin de u v dans G est:
une suite u0,u$,,uk,v de sommets 2 2 distincts tq i{$,,k} avec (ui-$,ui)

La longueur dun chemin est le nombre darte quil possde

Chemin
u est lorigine du chemin v est lextrmit du chemin Si k=0 alors le chemin est de longueur 0
il est compos dun seul chemin

Chemin (Exemple)
a b c d e f

chemin de longueur 5

d a

c b a c d c

Chemin (Exemple)
a g

b c

d f e

Il y a de nombreux chemins entre a et e


a,b,c,e a,f,g,d,e c,b,a,f,g,d,e

Tous ces chemins ne sont pas de mme longueur La longueur la plus courte entre a et e dans G
est appel la distance dans G

La distance
Soit un graphe simple non orient G(V,E) Soit u et v 2 sommets distincts de V Soit P(u,v) lensemble des chemins de u v dans G La distance entre u et v est
d(u,v)=Min{longueur P: PP(u,v)}

distance (Exemple)
a g

b c

d f e

La distance entre 2 sommets est le plus court des chemins qui les relie Si P(u,v)= avec u!v on pose d(u,v)=+% Ex:
d(a,b)=$ d(a,e)=2 d(a,d)=2

Excentricit, rayon, diamtre


Soit un graphe simple non orient G(V,E) uV lexcentricit de u est:
exc(u)=Max{d(u,v): u,v V}

le rayon de G est:
R=min{exc(u): u V}

Le diamtre de G est:
D=max{exc(u): u V}

Excentricit, rayon, diamtre


Soit un graphe simple non orient G(V,E) uV lexcentricit de u est:
exc(u)=Max{d(u,v): u,v V}

Autrement dit:

lexcentricit de u dsigne la distance qui spare u du sommet le plus loign de u dans G lexcentricit dun sommet est la distance maximum de ce sommet aux autres sommets

Excentricit, rayon, diamtre


Soit un graphe simple non orient G(V,E) uV lexcentricit de u est: le rayon de G est:
exc(u)=Max{d(u,v): u,v V} R=min{exc(u): u V}

Le diamtre de G est:
D=max{exc(u): u V} autrement dit
D dsigne la plus grande distance entre 2 sommets du graphe.

Graphe connexe
Un graphe est connexe si il existe un chemin dans G entre toutes paires de sommets (distincts)
b a g d f e f c b a g d e c

Cycle
Un cycle est un chemin dont lorigine et lextrmit sont confondues
b a c

d f e

Graphes orients

Graphes orients
On va dcrire des relations non symtriques Graphe orient G=(V,A)
V ensemble de sommet A ensemble des arcs:
A{(u,v):u,vV} (u,v)!(v,u) arc de u vers v

Graphes orients
a b c d

V=(a,b,c,d,e) A={(a,b),(b,c),(b,e),(c,d),(d,e),(e,d),(e,a)} Un arc est not comme un couple de sommet Un arte est note comme une paire de sommet

Dfinitions
uV
N+(u)={v: (u,v) A) N-(u)={v: (v,u) A) d+(u)=|N+(u)| d-(u)=|N-(u)| d(u)=d+(u)+d-(u) Voisins sortants de u Voisins entrants de u Degr sortants de u Degr entrants de u

On a de mme "+, " ,#+, #

Chemin
Soient u et v deux sommets distincts. Un chemin de u vers v dans G est une suite de sommets u, u0,u$,,uk,v 2 2 distincts

,ui)A tq i{$,,k} avec (ui- $


a b c d e

Dfinitions analogues
pour
distance excentricit Rayon Diamtre

analogue entre cycle et circuit un graphe orient est symtrique si u,vV, u!v, (u,v)A et (v,u)A

Graphe fortement connexe


Un graphe orient G(V,A) est fortement connexe si pour tout couple de sommets u,v il existe un chemin de u vers v
a g d f

Sous-graphe
Soit G un graphe orient ou pas Le sous-graphe de G engendr par VV est le graphe dont lensemble des sommets est V et dont les artes (arcs) ont leur deux extrmits dans V b
Autrement dit: On supprime des sommets et leurs artes incidentes
a g d f e c

Graphe partiel
Soit G un graphe orient ou pas Le graphe partiel de G engendr par EE est le graphe dont lensemble des artes (arcs) est E
b

Autrement dit: On supprime des artes

a g

d f e

Sous-graphe partiel (exemple)


b a g d f e a g d f e b c c

Utilisation et applications

Utilisation
Les graphes capturent principalement la notion de relations binaires
f e

R(u,v) est vraie Une relation peut dans la vie courante lier des objets divers:
Pierre connat Jean Paul est plus grand que Jacques E$ est client de E2 Il y a une route entre telle et telle ville.

Utilisation
Un graphe de ces relations met jour les contraintes structurelles de lorganisation des objets entre eux via une relation particulire. Lorsquun graphe est donn on veut gnralement pouvoir dire des choses sur lui.
ces besoins sexpriment souvent en termes de distances entre les sommets

Codage des graphes en machine


Une des difficult pour travailler sur les graphes est de les reprsenter correctement en mmoire.
sans utiliser trop de mmoire en ayant un temps daccs courts

On codera souvent un graphe non orient comme un graphe orient symtrique


f e f e

La matrice dadjacence
Le plus simple des codages est davoir une matrice carre nxn (ou n=|V(G)|) dlments binaires Les n sommets du graphes sont reprsents par des entiers de $ n G[i][j]=$ si il y a un arc de i vers j dans G G[i][j]=0 sinon Cest la matrice dadjacence du graphe

La matrice dadjacence
2 $ 4 7 5 6 3

$ 2 3 4 5 6 7

$ 2 3 4 5 6 7 $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $

La matrice dadjacence
Avantages:
Trs facile construire Accs trs rapide un arc particulier (constant) souple dutilisation

Inconvnients:
Occupation n2 cases alors que le nombre darcs peut tre bien moindre (beaucoup de 0) Donc occupation mmoire importante

Liste dadjacence
On peut utiliser un tableau n cases de pointeurs, chaque case i pointant vers la liste chans des voisins sortants (ou entrants)
$ 3 $ 2 3 2 4 4 2 4 $ 2 4 3

Liste dadjacence
Avantages:
On ne code que les arcs rellement prsent dans le graphe

Inconvnients:
plus compliqu mettre en uvre temps de recherche pour savoir si un sommet est voisin dun autre

Les arbres
Les arbres constituent une famille trs importante des graphes Ils sont minimaux pour un certain nombre de proprits.

Caractrisation des arbres


Thorme: Soit T=(V,E) un graphe n sommets

T est un arbre T est connexe et sans cycle T est sans cycle et admet n-$ artes T est connexe et admet n-$ artes T est sans cycle et en ajoutant une arte on cre un cycle et $ seul T est connexe et si on supprime une arte quelconque, il ne lest plus

Isthme
Soit un graphe G=(V,E) connexe. Une arte [x,y] est appele isthme si le graphe G(V,E-[x,y]) nest pas connexe
$ x 4 2 y 4 3

$ x 2 y

Fort
Une fort est un graphe dont les composantes connexes sont des arbres

Arborescence terminologie
Un nud peut avoir 0 ou plusieurs fils Un nud (sauf la racine) a exactement $ pre
n1 n2 n3 n4

n5

n6

n7

Dfinition rcursive
Base :
un nud unique n est un arbre n est la racine de larbre

Rcurrence :
Soit r un nouveau nud T$, T2, , Tk sont des arbres ayant pour racine r$, r2, , rk. Nouvel arbre a pour racine r et on ajoute un arc entre r et r$, r et r2, .., r et rk.

Dfinition rcursive : exemple


r

r1 n2 n3 n4

r2 T2 n8

r3

n9 T3

n5

n6 T1

n7

Chemins, anctres, descendants


Les anctres dun nud :
Nuds trouvs sur le chemin unique entre ce nud et la racine

Le nud d est un descendant de a si et seulement si a est un anctre de d. Soit m$, m2, m3, , mk une squence de nuds :

Longueur du chemin = nombre darcs parcourus (k-$)

Gnalogie
La racine est un anctre de tous les nuds Chaque nud est un descendant de la racine Les nuds ayant le mme pre = frres Un nud n et tous ses descendants = sousarbre

Feuilles et nuds intrieurs


Une feuille est nud qui na pas de fils Un nud intrieur est un nud qui a au moins $ fils Tout nud de larbre est :
Soit une feuille Soit un nud intrieur

Hauteur et profondeur
La hauteur dun nud n est la longueur du plus long chemin depuis la racine jusqu n. La hauteur dun arbre : max {h(x), x nud de larbre}

Familles particulires de graphes

Graphe complet
Kn n sommets
V={$,,n} et E={(i,j):i,jV,i!j} entre chaque paire de sommets il y a une arte

k5

Grille 2D
Grpxq n=p.q sommets
V={(i,j): $&i&p, $&j&q} E={(i,j)(i,j+$): $&i&p, $&j&q-$ } {(i,j)(i+$,j): $&i&p, $&j&q-$ }
($ , $ ) ($,2) ($,3)

Gr 2x3

(2,$)

(2,2)

(2,3)

Tore 2D
Trpxq n=p.q sommets
V={(i,j): 0&i&p-$, 0&j&q-$} E={(i,j)(i,j+$mod p): 0&i&p-$, 0&j&q-$ } {(i,j)(i+$mod q,j): 0&i&p-$, 0&j&q-$ }

Hypercube
Hd n=2d sommets
Lensemble des sommets de Hd sont tous des d-uplets (ordonns) de 0 et de $/ V={(x$,,xd): i{$,,d} xi {0,$} Lensemble des artes: il y a une arte entre les sommets u et v ssi la reprsentation binaire de u et v diffre que dun bit E={(x$,,xd) (y$,,yd) !i xi!xj)

H1 H0
0 0$ 00 $ 0 $$ $0
0$0 00$ 000 $00

H4
0$$ $$0 $0$ $$$

H2

H3

Remarque

Graphe biparti
Un graphe G(V,E) est dit biparti si on peut diviser lensemble de ses sommets en 2 sous-ensemble X$ et X2tel que X$X2=V et X$ X2= et toute arte aE a une extrmit dans X$ et lautre dans X2. On note G=(X$,X2,E)