Vous êtes sur la page 1sur 10

IUT Info 1A

Annee 2007-08
Periode 1

Graphes et Automates

B. Gugger
F. Madelaine
C. Simon
D. Richard

Feuille de TD n3
Les polycopies du cours, les feuilles de TD et quelques corriges sont disponibles `a
lurl suivante.
http ://laic.u-clermont1.fr/~fmadelaine/teaching/graphe1.html

Pr
eliminaires

Un peu de vocabulaire
Un graphe est un couple G = (S, A) o`
u:
S est un ensemble fini non vide dont les elements sont appeles sommets
A est un ensemble de paires de sommets appelees ar
etes.
Si a = {x, y} est une arete, on dit alors que x et y sont voisins ou adjacents dans le
graphe G.
Lordre dun graphe G = (S, A) est le nombre de sommets ; la taille de G est le nombre
daretes.

Quelques graphes usuels


Si n 1, on definit le graphe complet Kn comme
  etant un graphe dordre n dont tous
n
les sommets sont adjacents. Ainsi, Kn est de taille
.
2

Si p et q sont des entiers de N , le graphe biparti complet Kp,q est un graphe dordre
p + q, dont lensemble S des sommets est de la forme S = S 0 S 00 avec S 0 et S 00 disjoints de
cardinaux respectifs p et q et dont les aretes sont exactement les paires x0 x00 o`
u x0 S 0 et
00
00
x S . Ainsi, Kp,q est de taille pq.
Si n 2, la chane Pn (P comme (( path ))) est un graphe dordre n dont les sommets
peuvent etre ordonnes en une suite (x1 , . . . , xn ) telle que les aretes de ce graphe sont les paires
xi xi+1 pour 1 i n 1. Ainsi, Pn est de taille n 1. On dit aussi que Pn est de longueur
n 1. Par abus, on admet quun sommet seul forme une chane (de longueur nulle).
Si n 2, le cycle Cn (C comme (( cycle ))) est un graphe dordre n dont les sommets
peuvent etre ordonnes en une suite (x1 , . . . , xn ) telle que les aretes de ce graphe sont les
paires xi xi+1 pour 1 i n 1 et xn x1 . Ainsi, Cn est de taille n.
Si n 2, l
etoile Sn (S comme (( star ))) est un graphe dordre n pour lequel il existe un
sommet adjacent `
a tous les autres et ce sont les seules adjacences. Ainsi, Sn est de taille n 1.
Si n 3, la roue Wn (W comme (( wheel ))) est un graphe dordre n constitue dun cycle
dordre n 1 et dun sommet supplementaire adjacent `a tous les sommets du cycle. Ainsi,
Wn est de taille 2n 2.

Isomorphismes de graphes

On sinteresse souvent `
a des proprietes sur les graphes pour lesquelles seule la forme generale
du graphe compte, cest-`
a-dire pour lesquelles le nom des sommets est sans importance. On
1

feuille de TD n 3

Graphe et Automates

dit que deux graphes sont isomorphes (du grec qui signifie litteralement de meme forme) si
au nom des sommets pr`es les graphes sont les memes. Formellement, deux graphes G = (S, A)
et G0 = (S 0 , A0 ) sont dits isomorphes sil existe une bijection f : S S 0 telle que :


x, y S
xy A f (x)f (y) A0
Un telle fonction est appellee un isomorphisme.
Remarque. En pratique pour montrer que deux graphes sont isomorphes on exhibera un isomorphisme qui montrera precisement comment on peut renommer les sommets. Pour montrer
que deux graphes ne sont pas isomorphes, on trouvera une proprietee qui separe les deux
graphes. Par exemple : lun a un sommet de degre 1, lautre nen a pas, ou encore lun a un
cycle de taille 3 et lautre nen a pas.

Les degr
es dun graphe

Le degr
e dun sommet x de G est le nombre de ses voisins. En particulier, le degre de x vaut
0 si le sommet x est isole. On note le degre de x par deg(x).
Proposition 1. Dans un graphe,
(i) la somme des degres des sommets est double de la taille du graphe ; et,
(ii) le nombre de sommets de degres impairs est pair.
Soit n N et soit s = (d1 , d2 , . . . , dn ) une suite croissante dentiers naturels. On dit que s
est une s
equence de degr
es sil existe un graphe G = (S, A) dordre n avec S = {x1 , . . . , xn )
et deg(xi ) = di pour 1 i n.
Remarque. Deux graphes isomorphes ont meme sequence de degres car si deux sommets x et
x0 se correspondent par lisomorphisme, x et x0 ont meme degre. Par contre, la reciproque est
fausse : deux graphes ayant meme sequence de degres ne sont pas necessairement isomorphes
(voir lexercice 2)
Nous allons maintenant caracteriser de facon recursive, les suites croissantes dentiers
naturels finies qui sont des sequences de degres.
Proposition 2 (Caract
erisation des s
equences de degr
es). Soit n entier naturel superieur ou egal `
a 1 et soit s = (d1 , . . . , dn ) une suite croissante dentiers naturels avec dn n1.
Soit s0 = (d01 , . . . , d0n1 ) la suite obtenue a
` partir de s :
en supprimant le terme dn
en soustrayant 1 aux dn derniers termes restants (cest-`
a-dire `
a chaque dk pour ndn
k n 1)
en reordonnant la suite obtenue en une suite croissante.
Alors, s est une sequence de degres si et seulement si s0 est une sequence de degres.
Remarque. La condition dn n 1 est necessaire si lon veut que s soit une sequence de
degres (dans un graphe dordre n, le degre maximum dun sommet est n 1).

feuille de TD n 3

Graphe et Automates

Exercice 1. a - Dessiner les graphes suivants : K3 , S4 , P5 , C3 , C6 , W7 , K1,3 .


b - Donner lordre et la taille de ces graphes.
c - Donner leur sequence de degres.
d - Lesquels dentres eux sont isomorphes ?
Exercice 2. Parmi les trois graphes suivants, dont on donnera les sequences de degres,
montrer que deux sont isomorphes, et que le troisi`eme nest pas isomorphe aux deux autres.

Fig. 1 Graphes de Petersen et un intrus

Exercice 3. a - Existe-t-il un graphe de sequence de degres (0, 0, 1, 2, 2, 2, 6, 7) ?


b - Montrer que (0, 0, 1, 3, 3, 3, 4, 4, 5, 5) est une sequence de degres.
c - En deduire un graphe de sequence de degres (0, 0, 1, 3, 3, 3, 4, 4, 5, 5).
Exercice 4. En considerant la sequence des degres, montrer que dans un graphe dordre n
avec n 2, deux sommets au moins ont meme degre.

Chemin et connexit
e

D
efinitions
Soit G = (S, A) un graphe. Un chemin dans G est une liste finie de sommets de G telle que
deux sommets consecutifs de la liste soient adjacents. Le premier et le dernier element de la
liste sont appeles d
epart et arriv
ee ou simplement extr
emit
es du chemin. La longueur
dun chemin est le nombre daretes le constituant. Par exemple, un chemin de longueur nulle
est constitue dun sommet seulement.
On veut definir formellement la notion pour un graphe detre (( en un seul morceau )), ou
bien lorsque le graphe nest pas en un seul tenant, des parties du graphe qui le sont. Soient
x et y deux sommets de G. Le sommet x est dit en relation avec y sil existe un chemin dans
G de depart x et darrivee y. On note alors xRy.
Proposition 3. La relation R est une relation dequivalence sur G.
Les classes dequivalence modulo la relation R sont appelees classes de connexit
e de G.
La classe de connexit
e dun sommet x de G est la classe de connexite de G contenant x.
Un graphe G est dit connexe sil poss`ede une seule classe de connexite.

feuille de TD n 3

Graphe et Automates

On propose un algorithme de recherche de la classe de connexite dun sommet. On se donne


donc un graphe G et un sommet x de G. Voici lalgorithme :
Algorithme de calcul de la classe de connexit
e de x
Marquer x en gris.
Tant quil reste des sommets marqu
es gris faire
choisir un sommet y en gris ;
marquer ses voisins non marqu
es en gris ;
marquer y en noir ;
fin tant que.
Renvoyer les sommets marqu
es (en noir).
Proposition 4. Lalgorithme termine et renvoie la classe de connexite de x.
Lemme 1 (Lemme de la chane extraite). Soit G un graphe et soient x et y deux sommets de
G. Sil existe un chemin dextremites x et y dans G, alors il existe une chane dextremites x
et y dans G.

Probl`
emes de distances

Soit G un graphe connexe valu


e aux ar
etes (`a chaque arete xy de G, on associe une valuation
v(x, y)). La valuation dune chane est la somme des valuations de ses aretes. La distance
d(x, y) entre deux sommets x et y de G, est la valuation minimale dune chane les reliant.
Lalgorithme de Dijkstra calcule, pour un sommet a de G fixe, les differentes distances
d(a, x) pour x dans G.
Remarque. Lalgorithme de Dijkstra sapplique aussi `a un graphe non connexe, mais dans
ce cas, les sommets non relies `
a a par une chane, resteront `a une distance infinie de a.
On suppose que G = (S, A) est un graphe connexe dordre n et que a est un sommet de
G. On construit la fonction definie par (x) = d(a, x).
Algorithme de Dijkstra
Pour tout sommet x de G, faire (x) ; fin pour.
Faire (a) 0.
Faire x0 a.
Faire E {x0 } et E S \ E.
Pour i variant de 0 `
a n 2 faire
Pour tout sommet y de E tel que xi y A faire
si (y) > (xi ) + v(xi , y) faire (y) (xi ) + v(xi , y) ; fin si ;
fin pour.
Choisir un sommet y de E qui minimise .
Faire xi+1 y.
Faire E E {xi+1 } et E E \ {xi+1 }.
Fin pour.
Retourner .
Proposition 5. Lalgorithme renvoie la fonction distance `
a a.
4

feuille de TD n 3

Graphe et Automates

Exercice 5. Soit H le graphe qui consiste en une copie de la roue W6 dont le centre x
(cest-`a-dire lunique sommet de degre 5) est adjacent `a lextremite dune copie de la chane
P4 .
a - Dessiner le graphe H, donner sa taille, son ordre et sa sequence de degres.
b - Appliquer lalgorithme de classe de connexite `a H et x.
c - En deduire que le graphe est connexe.
Exercice 6 (Exercice pour (( matheux ))). a - Demontrer le lemme de la chane extraite. (indication, faire une recurrence sur le nombre daretes, ou encore sur le nombre de fois ou
un sommet est repete dans le chemin).
b - Montrer la transitivite de la relation dont les classes dequivalence sont les classes de
connexite dun graphe.
c - Montrer que dans un graphe, si x, y et z sont des sommets, d(x, y) d(x, z) + d(z, y).
Exercice 7. Pour le graphe G de la figure 2 utiliser lalgorithme de Dijkstra pour trouver
les distances d(x, a) o`
u a G. En particulier, determiner un chemin de poids minimum reliant
x `a y.

4
2

x
3

y
2

6
3

5
3

Fig. 2 Graphe G

Arbres

Proposition 6. Soit G un graphe dordre n. Les conditions suivantes sont equivalentes :


(i) G est connexe et sans cycle.
(ii) Pour tous sommets x et y de G, il existe une unique chane dextremites x et y.
(iii) G est connexe minimum au sens des aretes : supprimer une arete le deconnecte.
(iv) G est connexe et poss`ede exactement n 1 aretes.
Un graphe qui verifie lune des proprietes equivalentes precedentes est appele un arbre. Dans
un arbre, tout sommet de degre 1 est appele une feuille.
On donne maintenant une caracterisation constructive recursive des arbres.
Proposition 7. Un graphe dordre n 2 est un arbre si et seulement si il est obtenu `
a partir
dun arbre dordre n 1 par ajout dune feuille.
On construit ainsi tous les arbres (`
a isomorphisme pr`es) `a partir dun graphe dordre 1 (qui
est un arbre !), par ajout successif de feuilles.
5

feuille de TD n 3

Graphe et Automates

Arbres couvrant de poids minimum

Un sous-graphe de G = (S, A) est un graphe G0 = (S 0 , A0 ) tel que S 0 S et A0 A. Le


sous-graphe G0 recouvre G si S = S 0 . On parle aussi de sous-graphe couvrant.
Le but des deux algorithmes qui suivent est de construire, pour un graphe connexe value
aux aretes, un arbre recouvrant de co
ut minimum, cest-`a-dire dont la somme des valuations
des aretes est minimum. Cet arbre contiendra tous les sommets du graphe, sera connexe avec
un nombre minimum daretes et sera minimum en co
ut.
Soit G = (S, A) un graphe connexe dordre n et de taille p, value aux aretes.
Algorithme de Kruskal
Ordonner les ar^
etes par co^
ut croissant sous la forme (a1 , . . . , ap ).
Faire G0 (S, ).
Faire i 0.
Tant que G0 non connexe faire :
i i + 1.
Si ai connecte deux composantes connexes de G0 ajouter ai `
a G0 ; fin
si.
fin tant que.
Retourner G0 .
Remarque. On peut remplacer la condition Tant que G0 non connexe par Tant que G0 a
moins de n 1 ar^
etes.
Proposition 8. Lalgorithme de Kruskal renvoie un arbre recouvrant de co
ut minimum.
Algorithme de Prim
Choisir un sommet s dans S.
Faire G0 ({s}, ).
Tant que G0 ne recouvre pas G faire
parmi les ar^
etes xx0 de A avec x G \ G0 et x0 G0 ,
en choisir une de co^
ut minimum ;
ajouter x aux sommets de G0 et xx0 aux ar^
etes de G0 .
Fin tant que.
Retourner G0 .
Proposition 9. Lalgorithme de Prim renvoie un arbre recouvrant de co
ut minimum.
Remarque. Des arbres recouvrant obtenus par les algorithmes de Kruskal et de Prim
peuvent etre distincts mais ont le meme co
ut (`a savoir le minimum possible).
Remarque. On peut montrer que pour un graphe G dordre n et de taille p, lalgorithme de
Kruskal a une complexite de lordre de p2 , tandis que lalgorithme de Prim a une complexite
de lordre de n3 .

feuille de TD n 3

Graphe et Automates

Exercice 8. a- Trouver tous les arbres dordre 4 `a isomorphisme pr`es.


b- Trouver tous les arbres dordre 5 `a isomorphisme pr`es.
c- Trouver tous les arbres dordre 6 `a isomorphisme pr`es.
Exercice 9. Appliquer les algorithmes de Kruskal et de Prim au graphe G de la figure 3,
pour trouver un arbre recouvrant de poids minimum (pour lalgorithme de Prim, on commencera par le sommet x).

4
1

8
2

3
7

9
x

Fig. 3 Graphe G

Coloration

Nombre chromatique
Soit G un graphe et soit k un entier naturel non nul. Une k-coloration de G est une coloration
des sommets de G utilisant k couleurs. Une k-coloration est dite valide ou appelee aussi
bonne k-coloration si deux sommets adjacents du graphe G nont pas la meme couleur.
Le nombre chromatique de G note (G) est lentier minimum k tel quil existe une
bonne k-coloration de G.
Remarque. Pour le graphe complet Kn , le nombre chromatique est n. Et, le nombre chromatique dun arbre avec au moins une arete est 2.
Proposition 10 (Encadrement du nombre chromatique). Si G est un graphe, on note
(G) le degre maximum dun sommet et (G) lordre maximum dun sous-graphe complet de
G. Alors, (G) (G) (G) + 1.

Coloration gloutonne
On propose un algorithme utilisant, apr`es choix de lordre des sommets `a colorier, le moins
de couleurs possibles pour obtenir une bonne coloration.
Soit G = (S, A) un graphe dordre n et soit (x1 , . . . , xn ) la suite des sommets deG.
On note 1, 2, 3, . . . les couleurs utilisees dans lordre. Voici lalgorithme :
Pour i de 1 `
a n faire
affecter `
a xi la plus petite couleur non d
ej`
a affect
ee
aux voisins de xi parmi {x1 , . . . , xi1 } ;
fin pour.

feuille de TD n 3

Graphe et Automates

Maintenant, la proposition suivante montre quun choix adequat de lordre des sommets
permet dobtenir une bonne coloration minimale des sommets par lalgorithme de coloration
gloutonne.
Proposition 11. On peut toujours trouver un ordre sur les sommets dun graphe G tel que
lalgorithme de coloration gloutonne donne une bonne coloration minimum de G.
Remarque. Le probl`eme de decision (( est-ce-que le graphe a nombre chromatique 3 )) est difficile
(NP-complet). En particulier, il ny a pas dalgorithme connu de complexite polynomiale (par
rapport `a lordre du graphe), permettant de repondre `a cette question.
Dans lalgorithme glouton par exemple, la recherche dun ordre correct sur les sommets
pour obtenir une bonne coloration minimale est de lordre de n! et est loin detre polynomiale !

Polyn
ome chromatique
Si G est un graphe et k un entier naturel, on note PG (k) le nombre de k-colorations valides
du graphe G. La fonction PG est une fonction polynomiale appelee polyn
ome chromatique
de G.
Lemme 2. Pour un graphe complet Kn , on a PKn (k) = k(k 1) (k n + 1). Pour un
graphe G dordre n et de taille nulle, PG (k) = k n
Lidee principale de lalgorithme de calcul du polynome chromatique consiste `a observer
que etant donne un graphe G et deux sommets x et y non-adjacents, on a deux types de
colorations valides : celles pour lesquelles la couleur de x et la meme que celle de y, et
celles pour lesquelles la couleur ce x et de y sont differentes. Autrement dit le premier type
correspond `
a des colorations valides du graphe G/(x = y) (le graphe obtenu en identifiant
x et y en un seul sommet) et le second type correspond `a des colorations valides du graphe
G + {xy} (le graphe obtenu en ajoutant larete {x, y}). Le nombre total de coloriage valide
est la somme de ces deux cas. On a donc le resultat suivant.
Lemme 3. Si x et y sont deux sommets non adjacents de G, alors
PG (k) = PG+{xy} (k) + PG/(x=y) (k).
La seconde idee et dobserver quon peut colorier independemment les composantes connexes
dun graphe.
Lemme 4. Soit G un graphe dont les composantes connexes sont G1 , . . . , Gp . Alors PG (k) =
PG1 (k)PG2 (k) PGp (k).
On obtient donc un algorithme simple pour calculer recursivement le polynome chromatique dun graphe G dordre n.
Algorithme pour le calcul du polyn
ome chromatique
1. Si le graphe nest pas connexe alors prendre le produit des polyn^
omes chromatiques de ces composantes connexes
2. Si le graphe est connexe mais pas complet alors choisir deux sommets
x et y et faire la somme des polyn^
omes chromatiques de G + {xy} et
G/(x = y).
3. Si le graphe est complet alors prendre PKn (k) = k(k 1) (k n + 1).
8

feuille de TD n 3

Graphe et Automates

Exercice 10. a- Quel est le nombre chromatique de Kn ?


b- Quel est celui de Pn et de Sn ?
c- Quel est celui de Cn (on distinguera deux cas) ?
d- En deduire le nombre chromatique de Wn ?
Exercice 11. Pour le graphe de la figure 4, determiner une coloration optimale par coloration
gloutonne (apr`es choix convenable dun ordre sur les sommet). Trouver aussi une coloration
optimale qui nest pas gloutonne.

Fig. 4 Graphe G

Exercice 12. Determiner le polyn


ome chromatique du graphe G de la figure 5.

Fig. 5 Graphe G

Exercice 13. On rappelle quun graphe G = (S, A) est bipartie si et seulement si il existe une
partition de ces sommets S en deux ensembles S1 et S2 tels que toutes les aretes du graphe
ont une extremite dans S1 et une dans S2 .
a- Montrer quun graphe bipartie de taille non nulle a pour nombre chromatique 2.
b- Montrer quun graphe a pour nombre chromatique 2 si il est bipartie et de tqille non nulle.
c- Montrer quun cycle dordre impair a pour nombre chromatique 3.
d- En deduire quun graphe ayant un cycle impair ne peut pas etre bipartie
e- (question plus difficile) Montrer quun graphe qui nest pas bipartie a forcement un cycle
dordre impair.
Exercice 14. a- Montrer que PKn (k) = k(k 1) (k n + 1)
b- Montrer que PIn (k) = k n , o`
u In est le graphe dordre n et de taille nulle.
c- Montrer que PWn (k) = k.PCn1 (k 1).
d- Montrer que PSn (k) = k.(k 1)n1 .

feuille de TD n 3

Graphe et Automates

Ce resume de cours est la version courte du polycopie de Benot Gugger. Ce


polycopie contient en particulier les preuves des resultats presentes, des examples
pour chaque construction et quelques exercices. Ce polycopie est disponible `a lurl
suivante.
http ://laic.u-clermont1.fr/~fmadelaine/teaching/graphe1.html

10