Vous êtes sur la page 1sur 22

Éléments de théorie des graphes

Licence — Université Lille 1


Pour toutes remarques : Alexandre.Sedoglavic@univ-lille1.fr
Semestre 3 — 2008-09

Exercice 1 — Construction de graphe.


On souhaite prélever 4 litres de liquide d’un tonneau. Pour ce faire, on
dispose de 2 sceaux (non gradués) d’une contenance de 5 et 3 litres. Comment
procéder ?
Correction. On peut construire le graphe dont les sommets sont les états
possibles (couples de volume d’eau dans les sceaux) et les arcs sont les
opérations permettant de passer d’un état à un autre.
Exercice 2 — Graphe de contrôle d’un programme informatique.
On cherche à concevoir des jeux de donnée afin de tester le programme
suivant :
int
pgcd
(int x, int y)
{
while( x!=y )
if (x>y)
x -= y ;
else
y -= x ;
return x ;
}

Questions.
1. Donnez le graphe de contrôle de ce programme.
2. Donnez un jeux de données de départ afin parcourir tous les :

1
– sommets du graphe de contrôle ;
– arcs du graphe de contrôle ;
– chemins du graphe de contrôle.

Correction.
1. Les sommets du graphe de contrôle sont :
1 :(x,y), 2 :(x !=y), 3 :(return x), 4 :(x > y), 5 :(y-=x), 6 :(x-=y)
La matrice d’adjacence du graphe de contrôle est :
 
0 1 0 0 0 0
 0 0 1 1 0 0 
 
 0 0 0 0 0 0 
 .
 0 0 0 0 1 1 
 
 0 1 0 0 0 0 
0 1 0 0 0 0

Exercice 3 — Relations remarquables.


Soit G un graphe fini ayant n sommets et m arêtes avec n ≥ 1 et m ≥ 0.
Pour tout entier k, on note nk le nombre de sommets de degré k et K le
maximum des degrés des sommets.
1. Montrer que
K
X
nk = n.
k=0

2. En utilisant la représentation d’un graphe par sa matrice d’incidence,


montrer que
XK
k · nk = 2 m.
k=0

3. En utilisant la représentation d’un graphe par sa matrice d’adjacence,


montrer que si G n’a pas de boucle alors K ≤ n − 1.
4. Donner un exemple où on a l’égalité.

Correction.

2
1. On peut partitionner l’ensemble des sommets suivant leur degré. Ainsi
l’ensemble des sommets S peut être partitionner par les ensembles Sk
des sommets de degré k :

S = ∪K
k=0 Sk , avec Si ∩ Sj = ∅, si i 6= j.

On a donc
K
X
|S| = |Sk |.
k=0

Comme le cardinal de Sk est nk , la relation a démontrer en découle


immédiatement.
2. La matrice d’incidence associée à un graphe non orienté (S, A) est de
taille |S| × |A| et définie par :


S := s1 , . . . , s|S| ,  2 si aj est une boucle de si ,
 Mi,j = 1 si aj est incident avec si ,
A := a1 , . . . , a|A| , 
0 sinon.

Notons d(vi ) le degré i.e. le nombre d’arêtes partant et arrivant à vi .


Par définition, on a
X K X
X
d(s) = d(s)
s∈S k=0 s∈Sk

Donc en notant que |Sk | = nk et que s ∈ Sk implique que d(s) = k, on


a bien
X XK
d(s) = knk .
s∈S k=0

Or en considérant chaque ligne de la matrice d’incidence, on a


X n X
X m
d(v) = Mi,j ,
v∈G i=1 j=1

avec Mi,j le coefficient de la matrice d’incidence positionné dans la


ligne i et la colonne j. Ainsi, cette somme correspond à la somme
de tous les coefficients de cette matrice. Or comme un arc rejoint 2
sommets, la somme de chaque colonne est 2. Comme il y a m colonnes,
cette somme est 2m.

3
3. La matrice d’adjacence associée à un graphe (orienté ou pas) (S, A) est
de taille |S| × |S| et définie par :

 1, si (si , sj ) ∈ A,
S := s1 , . . . , s|S| , Mi,j =
0, sinon.

Si notre graphe n’a pas de boucle alors les coefficients diagonaux de


cette matrice sont nuls (on a Mi,i = 0). La somme de la jième colonne
de la matrices correspond au degré du jième sommet. Cette somme est
inférieure ou égale à n − 1 (i.e. le nombre de lignes moins 1 pour ne pas
considérer la diagonale). CQFD.
4. Il suffit de se donner une matrice d’adjacence comme :
 
0 1 1
 1 0 0 
1 0 0

et de tracer le graphe correspondant.

Exercice 4 — Un graphe sans boucle a au moins 2 sommets de


même degré.
Soit G un graphe sans boucle ayant n sommets (n ≥ 1).
1. Montrer que le degré d’un sommet est toujours strictement inférieur
à n.
2. Montrer qu’il ne peut pas y avoir simultanément un sommet de degré 0
et un sommet de degré n − 1.
3. En déduire qu’il y a au moins deux sommets de même degrés.

Correction.
1. Considérons un sommet quelconque du graphe, une arête peut lier ce
sommet à chacun des n − 1 autres sommets. Donc, le degré de ce som-
met est n − 1 au plus.
Plus formellement, on considère la matrice d’adjacence, la somme d’une
colonne correspond au degré du sommet. S’il n’y a pas de boucle, cette
somme est inférieure ou égale à n − 1.
2. Supposons qu’il existe un sommet de degré 0 ; les autres sommets sont
associés à des colonnes ou il y a 2 zéros (un pour l’absence de boucle

4
et un pour ce sommet de degré 0). Ainsi le maximum des degrés est au
plus n − 2 et il ne peut y avoir de sommet de degré n − 1.
Inversement, s’il y a un sommet de degré n − 1, alors chaque autre
sommet du graphe possède une arête adjacente avec ce sommet. Donc,
il ne peut y avoir de sommet de degrés 0.
3. La question précédente montre qu’il y a n − 1 degrés possibles au maxi-
mum pour n sommets. Il ne peut y avoir d’injection d’un ensemble de n
éléments dans n − 1 éléments et donc 2 sommets ont même degré.

Exercice 5 — Propriété des sommes de degrés d’un graphe.


À tout sommet s d’un graphe G = (S, A), on associe le nombre d+ (s)
d’arcs de A de but s, le nombre d− (s) d’arcs de A de source s et le nombre d(s) = d+ (s) + d− (s),
appelé degré de s.
1. Quel rapport y a-t-il entre la somme des degrés des sommets d’un
graphe et le nombre d’arcs m ?
2. En déduire que dans un graphe, le nombre de sommets de degré impair
est pair.
3. Soit δ le minimum des degrés des sommets d’un graphe ayant m arcs
et n sommets. Montrer que n δ ≤ 2 m.
Correction.
1. C’est le théorème des poignées de mains. La somme des degrés est égale
à 2 m.
2. Notons d1 + · · · + dk la somme des degrés impairs et dk+1 + · · · + dn la
somme des degrés pairs. Cette dernière somme est manifestement un
nombre pair. La différence de deux nombres pairs est un nombre pair
donc la somme des degrés impairs

d1 + · · · + dk = 2 m − (dk+1 + · · · + dn )

est un nombre pair.


3. On a δ ≤ di pour tout i donc n δ ≤ d1 + · · · + dn = 2 m.

Exercice 6 — Utilisation de la parité de la somme des degrés d’un


graphe.
Est-il possible de tracer 5 segments sur une feuille de papier de manière
à ce que chaque segment en coupe exactement 3 autres ?

5
Correction. Modélisons la situation par un graphe. Les sommets de notre
graphe sont les segments. Une arête entre 2 sommets indique que les segments
correspondant se coupent. On veut que le degré de chaque sommet soit 3 ; la
somme des degrés est donc 3 × 5 et doit être le double du nombre d’arêtes.
Comme 15 n’est pas un nombre pair, ce n’est pas possible.
Exercice 7 — .
Soit G un graphe fini sans boucle. On suppose que G ne contient pas de
triangle et on note S l’ensemble des sommets et A l’ensemble des arêtes.
1. Montrer que pour deux sommets adjacents distincts x et y, le nombre nx
de sommets S \ {x, y} adjacents à x et le nombre ny de sommets S \ {x, y}
adjacents à y satisfont l’inégalité :

nx + ny ≤ |S| − 2.

2. En déduire par récurrence sur le nombre |S| de sommets que le nombre


d’arêtes |A| vérifie :
|S|2
|A| ≤ .
4
Correction.
1. Construisons le graphe G0 pour lequel x et y sont identifiés (fusionnés)
en un même sommet z. On a d(z) = d(x) + d(y) − 2 et d(z) ≤ |G0 | − 1
c’est à dire d(z) ≤ |S| − 2. Comme d(x) = nx + 1 et de même pour y,
le résultat en découle trivialement.
2. Pour |S| = 1, on a |A| = 0 et pour |S| = 2, on a |A| = 1. La relation est
vérifiée pour ces cas. Supposons qu’elle est vérifiée pour |S| = n − 2 et
considérons un graphe à n sommet. Si on lui retire 2 sommets x et y,
alors l’ensemble B des arêtes restantes est de cardinal au plus n2 /4 − n − 1.
Le fait qu’il n’y a pas de triangle dans G montre que |A| = |B| + nx + ny
et donc que la relation est vraie pour un ensemble de cardinal n.

Exercice 8 — Isomorphisme de graphes.


1. Montrer que la relation d’isomorphisme entre les graphes est une rela-
tion d’équivalence.
2. Trouver tous les graphes non-isomorphes d’ordre n ≤ 4.

6
3. Parmi les graphes suivants y a-t-il des graphes isomorphes ?

q
q q q q q q
q q q q q q q q q q q q q q q q q q q q
q

Correction.
1. On doit montrer que c’est une relation :
(a) binaire : trivial dans notre cas ;
(b) réflexive : trivial dans notre cas ;
(c) symétrique : trivial dans notre cas ;
(d) transitive : trivial dans notre cas ;
2. On peut raisonner sur les matrices d’adjacence par exemple.
3. L’isomorphisme entre graphes conserve certaines propriétés — les in-
variants de graphes — comme par exemple le nombre de sommets, le
nombre d’arêtes, le degrés des sommets mis en relation, l’existence de
cycle, etc.
On voit ainsi que seuls les 2 premiers graphes peuvent être isomophes.
Pour aller plus loin, on peut mettre les 2 graphes sous une forme cano-
nique (par exemple, les sommets triés par degrés croissants) puis tenter
de voir si ces formes normales sont isomorphes. En maple, on a :
A1:=Matrix([[0,1,0,0,0,0,0],[1,0,1,0,0,1,0],[0,1,0,1,0,0,1],[0,0,1,0,0,0,0],
[0,0,0,1,0,0,0],[0,1,0,0,0,0,0],[0,0,1,0,0,0,0]]) ;
A2:=Matrix([[0,1,0,0,0,0,0],[1,0,1,0,0,1,0],[0,1,0,1,0,0,0],[0,0,1,0,1,0,1],
[0,0,0,1,0,0,0],[0,1,0,0,0,0,0],[0,0,0,1,0,0]]) ;

Exercice 9 — Les matrices associées à un graphe.

7
Soit G un graphe fini ayant n sommets si . On définit la matrice AG = (aij )
d’adjacence par aij = 1 si les sommets si et sj sont adjacents et aij = 0 sinon.
Le rang de la matrice d’adjacence AG est appelé le rang du graphe G qu’on
note rank(G).
1. Montrer que les graphes finis G et H sont isomorphes si, et seulement
si, la matrice d’adjacence AG s’obtient par les mêmes permutations des
lignes et des colonnes de la matrice AH .
2. En utilisant la matrice d’adjacence du graphe G montrer que le diamètre d(G)
et le rang rank(G) du graphe G sont liés par l’inégalité

d(G) ≤ rank(G).

(Indic. : utiliser le block de la matrice AG correspondant au chemin le


plus long de G et montrer que son rang est au moins d(G)).
Correction.
1.
2. La distance entre deux sommets est le minimum d’arête permettant de
relier ces sommets.
Le diamètre d’un graphe est le maximum des distances entre deux
sommets de ce graphe reliés par une chaı̂ne simple.

Exercice 10 — Connexité.
1. Soit Gn un graphe dont les sommets sont si avec i ∈ {1, ..., n}. On joint
deux sommets sk et sm par une arête si, et seulement si, les nombres k
et m sont premiers entre eux. Écrivez la matrice d’incidence du graphe
G5 .
2. Est ce que le graphe Gn de l’exercice précédent est connexe ?
3. Montrer que si le nombre d’arêtes d’un graphe G sans boucle et d’ordre n > 2
2
est strictement supérieur à Cn−1 alors G est connexe.
4. Soit G un graphe connexe, montrer que tout couple de deux chaı̂nes
simples de longueur maximale de G ont un sommet commun.
5. Montrer qu’il n’existe pas de graphe dont les degrés des sommets sont
tous distincts.
6. Montrer que si le degré minimal δ(G) = minv∈V G d(v) d’un graphe G
d’ordre n vérifie la relation δ(G) ≥ (n − 1)/2 alors G est connexe.

8
7. Montrer que pour tous les nombres naturels n, m, k vérifiant les condi-
tions :
2
1 ≤ k ≤ n, n − k ≤ m ≤ Cn−k+1 ,
il existe un graphe d’ordre n ayant exactement m arêtes et k compo-
santes connexes.

Correction.
1.
2.
2
3. Si le graphe G a strictement plus de Cn−1 arêtes, c’est un graphe com-
plet et donc connexe.
4. Une chaı̂ne simple ne peut visiter le même sommet 2 fois. Une chaı̂ne
de longueur maximale ne peut être prolongée. Si ces chaı̂nes n’ont pas
de sommet commun, le graphe a deux composantes connexes disjointes
(preuve à faire).
5. C’est un exercice de cette feuille. On ne peut avoir en même temps un
sommet de degrés 0 et un sommet de degrés n − 1. Les degrés possibles
du graphe sont compris dans l’ensemble {1, . . . , n − 1} ou {0, . . . , n − 2}
et le principe des tiroirs indique que deux sommets ont même degrés.
6. Prenons deux sommets distincts x et y du graphe. La composante
connexe de x (resp. y) est composée de 1 + (n − 1)/2 sommets au mini-
mum de par la condition sur le degrée minimal du graphe. L’intersection
de ces composantes connexes ne peut donc être vide (leur réunion est
d’ordre 1 + n et donc au moins un sommet est dans les deux compo-
santes) et le graphe est donc connexe.
7. Montrons que m ≥ n − k en raisonnant par récurrence. Si m = 0, l’inégalité
est vraie. Supposons cette inégalité vraie pour des graphes d’ordre n et
considérons un graphe G d’ordre n + 1 ayant k composantes connexes.
Considérons une arête a et le graphe G0 = G \ {a}. Le nombre de com-
posantes connexes de G0 est soit k, soit k + 1 et son nombre d’arêtes
est m − 1. On a donc l’inégalité

m−1≥n−k >n−k−1

qui permet de conclure.

9
2
Montrons que m ≤ Cn−k+1 . Prenons le cas extrêmes d’un graphe ayant k
composantes connexes toutes constituées par un graphe complet. Nous
allons voir que dans ce cas, qu’il y a k − 1 composantes qui sont des
sommets isolés et une composante d’ordre n − k + 1. Raisonnons par
l’absurde. On suppose que le nombre d’arêtes de G est maximale.
Soit Kp et Kq deux graphes complets disjoints avec p ≥ q > 1. En re-
tirant un sommet de Kq (on supprime les arêtes incidentes à ce som-
mets) et en l’ajoutant à Kp , on augmente l’ordre du graphe (ce qui
est impossible, car en itérant ce processus, on arrive à des graphes
d’ordre fini avec un nombre d’arêtes infinie). Donc, il y a — dans le
cas du plus grand nombre d’arêtes — une unique composante connexe
d’ordre n − k + 1 ce qui prouve l’inégalité.

Exercice 11 — arbres et forêts (rang cyclomatique).


On rappelle que le nombre ν(G) = m(G) − n(G) + k(G) est appelé rang
cyclomatique d’un graph G où m(G), n(G), k(G) désignent respectivement
les nombres d’arêtes, de sommets et de composantes connexes de G. Montrer
que
1. Un graphe G est une forêt si, et seulement si, ν(G) = 0.
2. G contient un seul cycle si, et seulement si, ν(G) = 1.
3. G contient n cycles différents sans corde si, et seulement si, ν(G) = n.
4. Si m(G) ≥ n(G) alors G contient un cycle (on peut donner deux méthodes
différentes de la preuve : soit par l’absurde soit une preuve directe).

Correction. L’exercice sur la connexité indique que n(G) − k(G) ≤ m(G) ;


Ainsi, ν(G) ≥ 0 pour tout graphe.
1. Un arbre est un graphe H tels que m(H) = n(H) − 1 (il n’y a pas de
cycle) et k(H) = 1. Donc en prenant un ensemble d’arbres G, i.e. une
forêt, on a bien ν(G) = 0.
Faisons une récurrence sur le nombre m(G) en fixant l’ordre du graphe.
Si m(G) = 0 alors la relation ν(G) = 0 est évidente.
Supposons que si ν(G) = 0 pour un graphe avec m arêtes alors ce
graphe est une forêt.
Considérons un graphe avec m + 1 arêtes tel que ν(G) = 0. Deux cas
sont possibles :

10
(a) l’arête am+1 relie deux composantes distinctes du graphe résultant G0
à m arêtes. On a m(G) = m(G0 ) + 1 et k(G) = k(G0 ) − 1

ν(G) = m(G) − n + k(G) = m(G0 ) + 1 − n + k(G0 ) − 1 = 0.

On a donc ν(G0 ) = 0 et G0 est une forêt. On vient juste de coller 2


arbres ensembles sans mettre de cycle, on garde une forêt.
(b) l’arête am+1 relie deux sommets dans la même composante du
graphe résultant G0 à m arêtes.

ν(G) = m(G) − n + k(G) = m(G0 ) + 1 − n + k(G0 ) − 1 = 0.

On a donc ν(G0 ) = −1 ce qui n’est pas possible d’après l’exercice


sur la connexité (car on y voit que n(G) − k(G) ≤ m(G)).
2. Faisons une récurrence sur le nombre m(G) en fixant l’ordre du graphe.
Remarquons que pour m(G) ≤ 2, il ne peut y avoir de cycle. Pour m(G) = 3,
montrons que ν(G) = 1 si, et seulement si, G possède un cycle.
– Si G possède un cycle alors deux sommets sont adjacents à un troisième.
Dans ce cas, une composante connexe regroupe 3 sommets et les
autres forment donc chacun une composante. Donc k(G) = n(G) − 2.
En conclusion, on a donc

ν(G) = m(G) − n(G) + k(G) = 3 − n(G) + n(G) − 2 = 1.

– Réciproquement, supposons que ν(G) = 1. Dans ce cas, on a :

k(G) = n(G) − 2.

Considérons tous le graphes possibles comprenant 3 arêtes et leur


nombre de composantes connexes. C’est à dire, les graphes avec :
– 3 sommets non isolés (qui ne forme pas chacun une composante
connexe) et un cycle : k(G) = n(G) − 2 ;
– 4 sommets non isolés et sans cycle : k(G) = n(G) − 3 ;
– 5 sommets non isolés et sans cycle : k(G) = n(G) − 3 ;
– 6 sommets non isolés et sans cycle : k(G) = n(G) − 3 ;
Donc si G possède un cycle, on a k(G) = n(G) − 2 et donc ν(G) = 1.
Supposons maintenant la propriété vraie pour tout graphe ayant m
arêtes. Considérons un graphe G ayant m(G) = m + 1 arêtes. En
supprimant une arête a, on définit un graphe G0 ; deux cas sont pos-
sibles :

11
(a) a est dans un cycle et sa suppression ne modifie pas le nombre
de composante connexe, donc k(G) = k(G0 ).
– Si ν(G) = 1, on a donc :
ν(G) = 1 = m(G)−n(G)+k(G) = m(G0 )+1−n(G0 )+k(G0 ) = ν(G0 )+1.
Ainsi, ν(G0 ) = 0 et G0 n’avait pas de cycle. Donc G a un seul
cycle.
– Si G0 n’a pas de cycle, on a
ν(G0 ) = 0 = m(G0 )−n(G0 )+k(G0 ) = m(G)−1−n(G)+k(G) = ν(G)−1.
Ainsi, si G a un cycle alors ν(G) = 1.
(b) a n’est pas dans un cycle et sa suppression augmente le nombre
de composantes connexes k(G0 ) = k(G) + 1.
– Si ν(G) = 1, on a donc :
ν(G) = 1 = m(G)−n(G)+k(G) = m(G0 )+1−n(G0 )+k(G0 )−1 = ν(G0 ).
Dans ce cas, ν(G0 ) = 1 et par hypothèse de récurrence G0 a un
seul cycle. Pour obtenir G, on rajoute une arête qui ne produit
pas de cycle supplémentaire. G admet un unique cycle.
– Si G a un unique cycle, le graphe induit G0 a aussi un unique
cycle et donc :
ν(G0 ) = 1 = m(G0 )−n(G0 )+k(G0 ) = m(G)−1−n(G)+k(G)+1 = ν(G).
Donc, si G a un unique cycle, on a ν(G) = 1.
3. Une corde dans un cycle est une arête qui relie deux sommets non
adjacents de ce cycle (pensez au carré avec une diagonale, il y a 3
cycles — 2 triangles et le carré —, pour le cycle constitué du carré, la
corde est la diagonale).
Faisons maintenant une récurrence sur ν(G) le nombre de cycle. Les
questions précédentes permettent de traiter les cas ν(G) = 0 et ν(G) = 1.
Supposons la propriété vraie pour ν(G) = p et considérons un graphe G
tel que ν(G) = p + 1.
Le graphe G possède au moins un cycle (comme nous le montre l’exer-
cice précédant).
Prenons une arête a d’un cycle de G que l’on supprime pour obtenir
un graphe G0 . Le nombre de composantes connexes ne change pas car
cette arête est dans un cycle.

12
– Si ν(G) = p + 1 alors

ν(G) = p+1 = m(G)−n(G)+k(G) = m(G0 )+1−n(G0 )+k(G0 ) = ν(G)+1.

Ainsi, ν(G) = p et par hypothèse de récurrence admet p cycles. Donc


le graphe G admet p + 1 cycles.
– Si le graphe G admet p + 1 cycles sans cordes, alors G0 en contient p
(on vient d’en supprimer un, car il n’y a pas de corde — en fait, on
compte les faces internes constitués par un cycle). Donc,

ν(G0 ) = p = m(G0 )−n(G0 )+k(G0 ) = m(G)−1−n(G)+k(G) = ν(G)−1.

Ainsi, si le graphe G admet p + 1 cycles sans cordes, alors ν(G) = p + 1.


4. Si m(G) ≥ n(G) alors ν(G) est strictement positif. Supposons qu’il n’y
a pas de cycle, alors ν(G) = 0 ce qui implique un nombre de compo-
santes connexes négatif. C’est impossible.

Exercice 12 — Exemple de raisonnement sur les graphes.


La syldavie est un pays avec 15 villes. On peut aller de chaque ville à
au moins 7 autres villes du pays par une autoroute. Peut-on se rendre, par
autoroute de la capitale du pays à chacune des autres villes.
Correction. Soit A une ville quelconque. L’autoroute nous conduit de la
capitale vers au moins 7 villes différentes ; on a donc un réseau de 8 villes
reliés par autoroute. De la ville A on peut également relier par autoroute au
moins 7 autres villes différentes ; on a donc un nouveau réseau de 8 villes
reliés par autoroute. Il doit y avoir une ville commune à ces deux réseaux,
car sinon le pays aurait au moins 16 villes. La capitale est donc relié à A en
au plus deux coups, en passant par cette ville commune ; elle est donc reliée
à toutes les autres villes du pays.
Exercice 13 — Graphe de de Bruijn.
Un code d’entrée d’un d’immeuble est composé de 3 lettres binaires. Trou-
ver un mot de longueur aussi petite que possible qui contient toutes mots
de 3 lettres binaires. (Un tel mot contiendra alors le code d’entrée).
Pour ce faire construire un graphe orienté composé de 4 sommets représentant
des mots binaires de longueur 2 : {00, 01, 11, 10}. Une arête orientée relie tout
sommet ab aux deux sommets b0 et b1.

13
Correction. Du sommet ab partent donc exactement 2 arêtes et arrivent
aussi exactement 2 arêtes, celles venant des sommets 0a et 1a (si a et b sont
identiques on aura une boucle).
Le graphe ainsi construit possède donc — par la version orienté du théorème
d’Euler — un cycle orienté eulérien. On peut coder chaque arête orientée par
un mot de longueur 3, plus précisement, l’arête orientée partant de ab vers bc
est codée par abc.
Pour obtenir une solution, on part d’un sommet quelconque, par exemple 10,
et on parcourt un circuit eulérien : chaque arête parcourue indique quel chiffre
on ajoute à la droite du mot commencé.
On obtient ainsi une suite de 10 chiffres, par exemple ici 1011100010. Le
cycle est :

10 → 01 → 11 → 11 → 10 → 00 → 00 → 01 → 10.

Ce résultat peut être étendu à un alphabet fini quelconque et à des mots


de longueur quelconque. On montre ainsi que, étant donné un alphabet de d
lettres, il existe toujours un mot de longueur dn + (n − 1) qui contient tous
les mots de longueur n sur cet alphabet une fois et une seule. Dans notre
exemple, nous avons d = 2, n = 3, donc un mot de longueur 8 + 2 = 10.
Exercice 14 — Exemple d’un graphe complet non planaire.
Montrer que le graphe complet à 5 sommet (noté K5 ) n’est pas planaire.
Correction. Raisonnons par l’absurde. Supposons une réalisation plane de K5
de sommets {a, b, c, d}. Les arcs (a, b), (b, c) et (c, a) forment une courbe
fermée et donc une face. Supposons que le point d soit à l’intérieur de cette
face ; si le point e est à l’extérieur, le graphe n’est pas planaire. Donc ce point
doit être à l’intérieur du cycle (a, b, c, a). Supposons que ce point e soit dans
la face délimité par le cycle (b, c, d, b) dans ce cas, l’arc (a, e) coupe ce cycle
et le graphe n’est pas planaire. Les autres cas se traitent de la même façon.
Une autre démonstration repose sur la formule d’Euler. K5 a 10 arêtes
et 5 sommets et c’est un graphe simple connexe donc on aurait 10 ≤ 3 · 5 − 6
ce qui est faux.
Exercice 15 — Exemple d’un graphe complet non planaire.
Trois consommateurs doivent être reliés à 3 producteurs leur fournissant 3
produits par des tubes différents. Tracer le plan du réseau ainsi constitué en
respectant une contrainte de non croisement.

14
Correction. Le graphe ainsi obtenu est appelé le graphe bi-parti complet
d’ordre 3 et on le note K3,3 . Nous allons montrer que la relation s − a + f = 2
permet de voir que ce graphe n’est pas planaire. Le graphe K3,3 a 6 sommets
et 9 arêtes. Donc, on a la relation f = 5 dans notre cadre. Il nous faut main-
tenant expliciter la notion de face :
– une face bordée par une seule arête correspond à une boucle ;
– une face bordée par 2 arêtes correspond à des arêtes joignant les mêmes
sommets ;
– pour un graphe simple planaire, chaque face est bordée par au moins 3
arêtes.
Notre graphe bi-parti simple ne peut avoir de faces triangulaires : en effet,
il relie une partie {a, b, c} à l’autre {α, β, γ} et un triangle comporterait
nécessairement 2 (ou 3) sommet de la même partie. Donc toute face est
bordée par 4 arêtes et donc 4f ≤ 2a. Dans notre cas, 4f = 20 et 2a = 18.
Exercice 16 — Utilisation de la puissance de la matrice d’adjacence.
Un voyageur veut aller de la ville 1 à la ville 9 dans un réseau donné par
le graphe suivant :

{(1, 2), (1, 3), (2, 3), (2, 4), (3, 4), (5, 7), (6, 7), (6, 9), (7, 9), (8, 9)}

De combien de façons peut on faire le trajet en 5 étapes.


Correction. Utilise les puissances de la matrice d’adjacence.
Exercice 17 — Exemple de graphe probabiliste.
Un individu peut être dans 3 états différents : immunisé I, malade M ou
sain S. D’un momment de mesure à un autre, l’état peut évoluer selon les
règles :
– étant I, il peut le rester avec une probabilité 0.9 ou passer à l’état S
avec une probabilité 0.1 ;
– étant S, il peut le rester avec une probabilité 0.5 ou passer à l’état M
avec une probabilité 0.5 ;
– étant M, il peut le rester avec une probabilité 0.2 ou passer à l’état I
avec une probabilité 0.8.

Questions.
1. Dessinez le graphe probabiliste décrivant cette situation.

15
2. Calculer la probabilité qu’un individu soit dans l’etat M ou I au bout
de 3 mesures dans chacune des situations de départ suivantes : I, M
et S.
3. Que peut on dire de la proportion d’individu dans l’état M au bout
d’un an ?

Correction.
1.
2. La matrice de transition associée est :
 
9 0 1
1 
8 2 0 .
10
0 5 5

Exercice 18 — Exemple d’automate.


Proposez un automate déterministe permettant de reconnaı̂tre les mul-
tiples de 3.
Correction. L’automate va avoir 4 états : init, 0, 1 et 2 qui sont les restes
modulo 3 possibles. On part de l’état init puis à chaque lettre décimale
constituant le nombre, on prend l’état correspondant.
Exercice 19 — Graphes planaires.
1. Montrer que la formule d’Euler peut être généralisée pour un graphe
planaire ayant n sommets, m arêtes, f faces et k composantes connexes
comme suit :
n − m + f = k + 1.
2. Montrer que pour un graphe planaire avec k composantes connexes, on
a m ≥ 3(n − k − 1).

Correction.
1. Nous allons refaire la démonstration de la formule d’Euler en suivant
la démarche classique :
– prouver laformule pour une forêt de k arbres ;
– passer des arbres aux graphes en ajoutant des arêtes.

16
L’idée de base est que tout graphe planaire connexe s’obtient à partir
d’un arbre par ajout d’arêtes.
Pour chaque un arbre, on a la relation m = n − 1. Ceci implique que
pour une forêt, on a la relation m = n − k. Puisque dans une forêt,
il n’y a qu’une face (la face extérieure, et donc f = 1), on a bien la
relation :
n − m + f = k + 1.
Passons maintenant aux graphes. On fixe le nombre de sommets et on
fait une récurrence sur le nombre d’arête (i.e. on ajoute des arêtes à un
graphe G0 pour obtenir un graphe G). En ajoutant une arêtes soit :
– on relie deux composantes connexes en une seule m(G) = m(G0 ) + 1
et k(G) = k(G0 ) − 1. Cela ne change ni le nombre de sommets ni le
nombre de face. On a :
0 = n−m(G0 )+f −k(G0 )−1 = n−(m(G0 )+1)+f −(k(G0 )−1)−1 = n−m(G)+f −k(G)−1
– on le nombre de composantes connexes reste fixe et on vient d’ajouter
une face :
0 = n−m(G0 )+f (G0 )−k−1 = n−(m(G0 )+1)+(f (G0 )+1)−k−1 = n−m(G)+f (G)−k−1.
Ceci montre que la formule reste vraie.
2. Commençons par montrer un analogue du lemme des poignées de mains
pour les faces. Le degré d’une face est le nombre d’arêtes que l’en-
tourent. En sommant l’ensemble des degrés, on trouve 2 fois le nombre
d’arêtes : X
d(f ) = 2m.
face
Toute face est bordée par au moins 3 arêtes. Donc d(f ) ≥ 3. On en
conclut donc que 2m ≥ 3f . En utilisant la formule d’Euler, on obtient
donc que
3f = 3k + 3 − 3n + 3m ≤ 2m, 3n − 3k − 3 ≥ m.

Exercice 20 — Polyèdres réguliers connexes : eulériens et hamilto-


niens.
Vérifier si les graphes définis par les polyèdres réguliers convexes (tétraèdre,
cube, octaèdre, dodécaèdre, icosaèdre) sont eulériens (resp. hamiltoniens).
Correction.

17
– Un circuit est simple s’il ne contient pas deux fois le même arc.
– Un circuit est eulérien s’il est simple et contient tous les arcs d’un
graphe.
– Un circuit est élémentaire s’il ne contient pas deux arcs de même origine
ou de même but.
– Un circuit est hamiltonien s’il est élémentaire et contient tous les som-
mets d’un graphe.
Le théorème d’Euler permet de déterminer si un graphe est eulériens.
Un graphe non orienté sans sommets isolés possède un cycle eulérien si,
et seulement si,
1. Il est connexe.
2. Il a 0 ou 2 sommets de degré impair.
Dans le cas où il n’y a aucun sommet de degré impair, cette chaı̂ne eulérienne
est un cycle. Dans le cas où il y en a deux, ce sont les extrémités de la chaı̂ne.
Le théorème de Dirac permet de décider si certains graphes sont pla-
naires : Si chaque sommet d’un graphe de n sommets est de degré supérieur
ou égal à n/2 alors le graphe admet un cycle hamiltonien.
Les polyèdres réguliers (les degrés des sommets sont tous égaux) convexes
vérifient la relation d’euler :

s − a + f = 2.

Le lemme des poignées de mains permet de conclure sur les degrés des
polyèdres réguliers :
a
d=2 .
s

Polyèdre Sommets Arêtes Faces degrés eulériens hamiltonien


tétraèdre 4 6 4 3 non oui
cube 8 12 6 3 non oui
octaèdre 6 12 8 4 oui oui
dodécaèdre 20 30 12 3 non oui
icosaèdre 12 30 20 5 non oui

Comme tous les polyèdres réguliers convexes sont complets et planaires, on


peut donner une représentation plane.
Exercice 21 — Modélisation et graphe hamiltoniens.

18
Un groupe de 9 chevaliers se réunit chaque jours autour d’une table ronde.
Combien de jour au plus peuvent-ils se réunir si l’on souhaite que personne
n’ait deux fois le même voisin ?
Correction. On peut regarder le graphe complet à 9 sommets (les cheva-
liers). Une arête peut se comprendre comme le fait que les cheveliers incidents
sont voisins. Un circuit hamiltonien est une disposition autour de la table. La
question est donc de savoir combien il y a de circuits hamiltoniens disjoints
dans K9 .
Le graphe K9 possède (8 · 9)/2 arêtes d’après le lemme des poignées de
mains, soit 36 arêtes. De plus, chaque cycle doit utiliser 9 arêtes (pour relier
les chevaliers). Il ne peut donc y avoir que 4 cycles au maximum.
Exercice 22 — Existence d’un graphe.
Considérons 13 téléphones. Est-il possible de les relier par des fils téléphoniques
de sorte que chaque appareil soit relié avec exactement 3 autres ?
Correction. Les sommets sont les téléphones et les arêtes sont les fils. Or
le lemme des poignées de mains interdit cette situation (39 est un nombre
impair).
Exercice 23 — Coloration de graphe.
Les étudiants a, b, c, d, e et f doivent passer des examens — occupant une
demi-journée — dans différentes disciplines :
matière étudiants
algorithmique a,b
compilation c,d
bases de données c, e, f, g
Java a, e, f, h
Architecture b,f,g,h
Organiser la session d’examen la plus courte possible.
Correction. On peut construire un graphe non orienté dont chaque sommet
est une discipline et dont les arêtes correspondent aux incompatibilités (i.e.
aux étudiants devant assister à deux examens).
Le reste est un problème de coloration, chaque couleur étant une demi-
journée.
Le nombre chromatique du graphe est le nombre minimal de demi-journée.

19
Exercice 24 — Graphe d’arêtes associé à un graphe.
Étant donné un graphe G, le graphe d’arêtes L(G) associé au graphe G
est le graphe dont les sommets sont les arêtes de G et tel que deux sommets
de L(G) sont adjacents si, et seulement si, les arêtes correspondantes de G
sont incidentes.

Questions.
1. Dessinez les graphes L(G) pour G = Kn avec n ≤ 4.
2. Montrer que le nombre d’arêtes du graphe L(G) vérifie :
Pn(G)
i=1 di2
− m(G)
2
avec n(G) le nombre de sommets, m(G) le nombre d’arêtes de G et di
le degré du ième sommet.
3. On considère le gaphe G définit par la matrice d’adjacence suivante :

s1 s2 s3 s4 s5 s6 s7 s8
s1 0 1 1 1 1 1 1 1
s2 1 0 1 0 0 0 0 1
s3 1 1 0 1 0 0 0 0
s4 1 0 1 0 1 0 0 0
s5 1 0 0 1 0 1 0 0
s6 1 0 0 0 1 0 1 0
s7 1 0 0 0 0 1 0 1
s8 1 1 0 0 0 0 1 0

(a) Donnez une représentation sagittale de ce graphe. (Dessinez ce


graphe.)
(b) Combien le graphe G a-t-il d’arêtes ?
(c) Ce graphe est-il eulérien ?
(d) Combien le graphe L(G) a-t-il d’arêtes ?
(e) Le graphe L(G) est-il planaire ?

Correction.
1.

20
2. Considérons un graphe G obtenu à partir d’un graphe G0 par l’ajout
d’une arête entre les sommets s1 et s2 de G0 . Par définition, on a :

n(L(G)) = n(L(G0 )) + 1, m(L(G)) = m(L(G0 )) + d1 (G0 ) + d2 (G0 ).

En effet, en rajoutant une arête à G0 , on rajoute un sommet à L(G).


De plus, le nombre d’arêtes de L(G) augmente de d1 (G0 ) + d2 (G0 ) car
cette nouvelle arête est incidente avec d1 (G0 ) + d2 (G0 ) arêtes de G0 .
On peut maintenant raisonner par récurrence. Pour tout graphe G
ayant 1 unique arête, L(G) n’a pas d’arête et on a bien :
Pn(G) 2
i=1 di
= 1, m(G) = 1.
2
La relation est donc vraie pour m(L(G)) = 1.
Supposons cette relation vraie pour un graphe G0 ayant n arêtes et
ajoutons lui une arête entre les sommets s1 et s2 . On a :
Pn(G0 ) 2
0 0 0 di
m(L(G)) = m(L(G ))+d1 (G )+d2 (G ) = i=1 −m(G0 )+d1 (G0 )+d2 (G0 ).
2
Ce qui peut s’écrire :
Pn(G0 ) 2
di d12 (G0 ) + d22 (G0 ) + 2d1 (G0 ) + 2d2 (G0 ) + 2
m(L(G)) = i=3 −(m(G0 )+1)+ .
2 2
Or comme dans notre situation dj (G) = dj (G0 ) + 1 pour j = 1, 2 et di (G) = di (G0 )
pour i > 2, on a bien :
Pn(G) 2
di (G)
m(L(G)) = i=1 − m(G).
2
3. (a)
(b) m(G) = (73 + 7)/2 = 28/2 = 14 d’après le lemme des poignés de
mains.
(c) Puisqu’il y a 7 sommets de degré impair, le théorème d’Euler
montre que ce graphe n’est pas eulérien.
(d) m(L(G)) = (72 + 79)/2 − 14 = 42 d’après le résultat précédent.
(e) Pour un graphe planaire, on doit avoir m(L(G)) ≤ 3n(L(G)) − 6
ce qui n’est pas le cas dans notre exemple.

21
Exercice 25 — Étude d’une famille de graphes.
Considérons Gn le graphe dont les sommets sont les permutations de {1, . . . , n}.
Deux sommets de Gn sont adjacents si, et seulement si, les permutations cor-
respondantes s’obtiennent l’une de l’autre par une transposition.

Questions.
1. Combien Gn a-t-il de sommets ?
2. Donnez les degrés des sommets de Gn .
3. Combien Gn a-t-il d’arêtes ?
4. Le graphe Gn est-il planaire si n > 3.

Correction.
1. Gn a n! sommets.
2. Gn est un graphe régulier dont le degrés de chaque sommet est Cn2 .
3. Le lemme des poignés de mains indique n!Cn2 /2.
4. Non car on a n!Cn2 /2 > 3n! − 6.

22