Graphes
Graphes
 
    I Graphes simples
    II Multigraphes
    III Chaînes et cycles
    IV Arbres
  
  
I Graphes simples
    I-1 Définitions
    I-2 Bestiaire
    I-3 Sous-graphes, le théorème de Turán
    I-4 Colorations
    I-5 Graphes planaires
  
  
I-1 Définitions
Un 
graphe simple est un couple 
G=(
S, 
A) d'ensembles finis. L'ensemble 
S des 
sommets est supposé non vide. Son cardinal, le nombre 
n de sommets est appelé l'
ordre du graphe 
G.
 L'ensemble 
A des 
arêtes est un sous-ensemble quelconque de l'ensemble des parties à deux éléments ou 
paires de sommets. Les deux éléments d'une arête 
a sont ses 
extrémités. Comme il y a 
 paires de sommets, il y a entre 
0 et 
 arêtes.
On dit que deux sommets 
s et 
s' sont 
voisins si 
 est une arête. Le nombre de voisins du sommet 
s est appelé son 
degré et est souvent noté 
d(
s). Un 
sommet isolé est un sommet de degré 0, c'est-à-dire  sans voisin.
Donnons tout de suite un résultat fondamental
Théorème
Le nombre d'arêtes d'un graphe simple est égal à la demi-somme des degrés de ses sommets:
   
Notons 
B l'ensemble des bouts, couples 
 tels que 
. Comme chaque arête a deux bouts, on a  
 par le principe des bergers. D'autre part, chaque sommet 
s appartient à 
d(s) arêtes. On a donc 
, d'où le résultat.
En conséquence,
Corollaire
 le nombre de sommets de degré impair d'un graphe simple est pair.
On utilise souvent des raccourcis, parlant du graphe plutôt que de ses sommets ou de ses arêtes. Par exemple, le 
degré minimum, respectivement 
maximum, du graphe 
G est défini comme
respectivement
Si ces deux nombres sont égaux, c'est-à-dire  si tous les sommets ont le même degré 
k, on dit que le graphe est 
k-
régulier.
Une 
représentation plane du graphe 
G=(
S,
A) est un dessin plan, comportant 
 points étiquetés par les éléments de 
S et pour chaque arête 
, une courbe simple, par exemple un segment de droite, joignant les sommets étiquetés 
s et 
s'. Les croisements entre ces représentations des arêtes ne sont pas significatifs. Toutefois, il est souvent préférable de les éviter si possible. Un 
graphe planaire est un graphe qui admet une représentation plane sans croisement, mais cette notion ne jouera pas un rôle central dans ce cours.
Voici deux représentations du graphe
 
 et
 
Un 
isomorphisme du graphe simple 
G=(
S,
A) sur le graphe simple 
G'=(
S',
A') est une bijection 
  telle que
Il est facile de voir que cela définit une relation d'équivalence sur les graphes.
Par exemple, il y a 
8 graphes distincts dont l'ensemble des sommets est 
:
Ils se répartissent en quatre classes d'isomorphisme. On dit qu'il y a, 
à isomorphisme près, 4 graphes simples d'ordre 3 distincts:
En effaçant les étiquettes des sommets, on obtient une représentation plane d'un graphe à isomorphisme près.
  
  
I-2 Bestiaire
Nous allons donner des exemples de (classes d'isomorphismes de) graphes simples naturels.
  
  
I-3 Sous-graphes, le théorème de Turán
Le 
graphe complémentaire du graphe simple 
G=(
S,
A) est un graphe 
 qui a les mêmes sommets que 
G, mais dans lequel deux sommets distincts sont voisins si et seulement si ils ne le sont pas dans 
G. En d'autre termes, on a 
. Un graphe est 
auto-complémentaire si et seulement si  il est isomorphe à son complémentaire. Les deux figures plus haut pour 
C5 et 
K5 montrent que 
C5 est auto-complémentaire.
Un 
sous-graphe d'un graphe simple 
G=(
S,
A) est un graphe 
G'=(
S',
A') tel que 
 et 
. On dit que c'est un sous-graphe 
couvrant
si 
S'=
S. Pour toute partie 
S' de 
S, on définit le 
sous-graphe de 
G induit par 
S' et on note 
G(
S') le graphe 
G(
S')=(
S',
A'), où 
 est l'ensemble des arêtes de 
A dont les deux extrémités sont dans 
S'.
On dit que 
G contient le graphe 
G' s'il existe un sous-graphe de 
G isomorphe à 
G'. Nous allons prouver le
Théorème [de Turán]
Soit 
 et 
 des entiers. Si le graphe simple 
G=(
S,
A) d'ordre 
n ne contient pas de 
p-clique, alors
   
Par récurrence sur 
n et 
p. Pour 
n=1 ou 
p=2, il n'y a rien à démontrer. Soit donc 
n>1 et 
p>2 deux entiers, et supposons le résultat vrai pour 
p'<
p ou 
n'<
n. On considère un graphe simple 
G=(
S,
A) d'ordre 
n qui ne contient pas de 
p-clique.
Si 
G ne contient pas de 
(
p-1)-clique, on peut appliquer l'hypothèse de récurrence avec 
p'=
p-1. On a donc
Nous pouvons donc supposer que 
G contient une 
(
p-1)-clique, c'est-à-dire  qu'il existe une partie 
S' de 
S de cardinal 
p-1 telle que tous les éléments de 
S' sont voisins entre eux. Notons 
. Si 
S'' est vide, le graphe 
G est la clique 
, on a 
n=
p-1 et
Sinon, le graphe induit 
G''=
G(
S'') ne contient pas non plus de 
p-clique et a un ordre 
n''=
n-
p+1<
n. On peut lui appliquer l'hypothèse de récurrence et on a
Les arêtes de 
G sont de trois sortes: celles qui ont leurs deux extrémités dans 
S', au nombre de 
, celles dont les deux extrémités sont dans
S'', au nombre de 
 majoré ci-dessus, et celles dont une extrémité est dans 
S' et l'autre dans 
S''. Pour chaque sommet 
s de 
S'', il y a au moins un sommet 
t de 
S' qui n'est pas voisin de 
s, puisque autrement 
 serait une 
p-clique de 
G. Il y a donc au plus 
p-2 arêtes de la troisième espèce qui ont 
s pour extrémité, et il y a au plus 
(
p-2) 
n'' arêtes de troisième espèce en tout. Au total, on a
On remarque que si 
n=
q(
p-1) est un multiple de 
p-1, on peut construire un graphe d'ordre 
n de la façon suivante: on répartit les sommets en 
p-1 groupes de 
q éléments et deux sommets quelconques sont voisins si et seulement si  ils n'appartiennent pas au même groupe. Voici l'exemple 
p=5, 
q=3:
 
Il est clair que ce graphe ne contient pas de 
p-clique puisque d'après le principe des tiroirs toute partie de 
S de cardinal 
p contient deux sommets de même groupe, donc non voisins. Comptons les arêtes  du graphe. Il y a 
 paires de groupes et 
q2 arêtes entre éléments de cette paire de groupes. On a donc
et la borne donnée par le théorème de Turán est atteinte.
  
  
I-4 Colorations
Une application 
 de l'ensemble des sommets d'un graphe simple 
G=(
S,
A) est une 
coloration du graphe si l'image par 
f d'une arête est toujours un ensemble à 2 éléments. On appelle 
couleur du sommet 
s l'élément 
f(
s) de 
C et la condition s'exprime sous la forme ``Si deux sommets sont voisins, ils sont de couleurs différentes''.
Le plus souvent, on ne s'intéresse pas aux couleurs, mais seulement à la répartition des sommets en couleurs distinctes.
Les sommets d'une couleur donnée forment un 
stable de 
G, c'est-à-dire  une partie de 
S qui ne contient aucune paire de sommets voisins.
Si 
, on dit que la coloration utilise 
k couleurs. Les ensembles de sommets des différentes couleurs forment une 
partition de 
S en 
k
stables. On dit que le graphe 
G est 
k-
parti (
biparti pour 
k=2, 
triparti si 
k=3, etc.) s'il existe une telle partition, ou encore
s'il existe une coloration de 
G qui utilise exactement 
k couleurs. Nous verrons plus loin une caractérisation simple des graphes bipartis.
Nous ajoutons ici un spécimen dans notre bestiaire. Soit 
 un entier et 
 une famille d'entiers non nuls. On définit le 
graphe multiparti complet 
 de la manière suivante. L'ensemble 
S des sommets a 
 éléments. Il est partitionné en 
k parties 
, avec 
 pour tout 
i. Deux sommets sont voisins si et seulement si ils n'appartiennent pas à la même partie. C'est, bien sûr, un graphe 
k-parti. Le graphe 
 est représenté plus haut dans la discussion du théorème de Turán. Voici une représentation de 
Il est clair que l'application identique 
IS est une coloration de 
G qui utilise 
n couleurs.
Il est alors naturel de se demander combien de couleurs sont nécessaires pour colorier un graphe 
G.
Le 
nombre chromatique 
 du graphe 
G est le plus petit entier 
k pour lequel il existe une coloration de 
G utilisant 
k couleurs.
La proposition suivante donne les nombres chromatiques associés aux graphes vus plus haut.
Proposition
-   
 si et seulement si  
G est un 
n-stable,
 
-   
 si et seulement si  
G est une 
n-clique,
 
-   
 pour 
,
 
-   
,
 
-   
 pour 
,
 
-   
,
 
-   
.
 
 La preuve de cette proposition sera faite en exercice.
Ë chaque numérotation 
 des sommets, on fait naturellement correspondre une coloration par des entiers naturels non
nuls grâce à l'
algorithme glouton:
pour i allant de 1 à n faire
  colorier le sommet i avec la première couleur parmi 1,2,3...
  qui n'est pas déjà utilisée par un voisin du sommet i
fin faire
Ainsi, le sommet 
s1 est colorié avec la couleur 1, le sommet 
s2 est colorié avec la couleur 2 s'il est voisin de 
s1 et avec 
c1 sinon, etc.
Dans la figure suivante, nous avons appliqué cet algorithme deux fois au même graphe, mais avec des numérotations différentes des sommets. Entre parenthèses les numéros des couleurs sont indiqués. On voit que la première numérotation utilise 4 couleurs en tout alors que la deuxième en utilise 5. On peut montrer qu'il existe toujours une numérotation des sommets telle que l'algorithme glouton utilise 
 couleurs, mais cela n'a rien d'évident.
Rappelons que nous avons défini le 
degré maximum 
 d'un graphe 
G comme le maximum des degrés des sommets de 
G.
On a la
Proposition
Le nombre chromatique d'un graphe simple vérifie
   
En fait, quel que soit l'ordre choisi sur les sommets, l'algorithme glouton utilise au maximum 
 couleurs distinctes. Soit en effet 
k le numéro de la plus haute couleur utilisée, et 
s un sommet qui a cette couleur. L'algorithme glouton attribue la couleur 
k à 
s parce que les voisins de 
s déjà coloriés occupent toutes les couleurs de 
1 à 
k-1. Donc 
s a au moins 
k-1 voisins distincts, et 
, d'où 
.
  
  
I-5 Graphes planaires
On rappelle qu'un graphe est 
planaire s'il admet une représentation plane dans laquelle les courbes qui représentent les arêtes ne se croisent pas.
On dit que le graphe 
K est un 
mineur du graphe 
G si on peut obtenir un graphe isomorphe à 
K à partir de 
G en effectuant une suite d'opérations dont chacune est de l'un des trois types suivants:
-   ablation d'une arête
 
-   ablation d'un sommet et de toutes les arêtes dont ce sommet est une extrémité.
 
-   suture d'une arête: On identifie les deux extrémités de l'arête, et on efface la boucle et les arêtes multiples qui découleraient de cette identification.
 
Par exemple, par ablation des sommets 3 et 6 et suture de l'arête 
, on voit que le graphe 
K3 est un mineur du graphe suivant.
 
On peut montrer qu'un graphe 
G est planaire si et seulement si  ni 
K5 ni 
 ne sont des mineurs de 
G.
Considérons une carte de géographie, divisée en un certain nombre de pays d'un seul tenant. On lui associe un graphe de la manière suivante: dans chaque pays, on met un sommet, et les sommets associés à deux pays sont voisins si ces pays ont une frontière commune --- pas seulement un point commun, une certaine longueur de frontière. Aux deux cartes suivantes,
on associe donc les deux graphes suivants:
Le graphe obtenu est planaire, et à une coloration de ce graphe on associe un coloriage de la carte dans lequel deux pays limitrophes ont des couleurs différentes.
En 1976, Appel et Haken ont démontré le
Théorème [des quatre couleurs]
Toute carte de géographie plane peut être coloriée avec quatre couleurs de façon que deux pays limitrophes aient toujours des couleurs différentes.
Les considérations ci-dessus montrent que cet énoncé est équivalent au suivant:
Théorème
Si 
G est un graphe simple planaire, 
.
La démonstration a fait sensation à l'époque, non seulement parce que le problème datait de plus d'un siècle, mais aussi parce qu'elle se décomposait en environ 1500 cas, ce qui avait rendu nécessaire d'en faire écrire et vérifier une partie essentielle par des machines.
  
  
II Multigraphes
Un 
multigraphe est la donnée d'un couple 
G=(
S,
A) d'ensembles finis, avec 
S non vide, ainsi que d'une application 
 qui à chaque 
arête fait correspondre un ensemble de 1 ou 2 
sommets, ses 
extrémités. Si 
 est un singleton, on dit que l'arête 
a est une 
boucle de 
base 
s. On parlera en général du multigraphe 
G=(
S,
A), en oubliant la fonction 

.
Les 
représentations des multigraphes utilisent des lignes courbes. Voici un exemple de multigraphe
Ë tout multigraphe 
G=(
S,
A), on fait correspondre le graphe simple 
sous-jacent 
G'=(
S,
A'), où
en d'autres termes, on efface les boucles et on consolide les 
arêtes multiples en une seule. Le graphe simple sous-jacent au multigraphe ci-dessus
est donc
Dans toute la suite, nous utiliserons le terme 
graphe pour désigner un multigraphe, pour signifier qu'en réalité la situation ne concerne que le graphe simple sous-jacent.
On définit de façon naturelle un isomorphisme entre 
G=(
S,
A) et 
G'=(
S',
A') comme un couple 
(
f,
g), où 
f est une bijection de 
S sur 
S',
g est une bijection de 
A sur 
A' telle que
Un 
sous-graphe d'un multigraphe 
(
S,
A) est un multigraphe 
(
S',
A') tel que 
, 
 et 
. Un tel sous-graphe est 
couvrant si 
S'=
S. Le 
sous-graphe induit par 
 est le multigraphe 
(
S',
A'), avec
 On peut encore dire qu'un multigraphe en 
contient un autre s'il admet un sous-graphe isomorphe à cet autre. Par exemple, le multigraphe 
G contient
 
si et seulement si  il existe dans 
G deux boucles de même base.
    II-1 Matrices d'incidence et d'adjacence
    II-2 Chaînes dans un multigraphe
    II-3 Algorithmes de Moore et de Dijkstra
  
  
II-1 Matrices d'incidence et d'adjacence
On numérote les sommets et arêtes d'un multigraphe 
G=(
S,
A):
La 
matrice d'incidence 
M du graphe est une matrice 
 définie par
La somme des éléments de la colonne d'indice 
j vaut 2. La somme des éléments de la ligne 
i est, par définition, le 
degré de 
si: les boucles de base 
si comptent pour 2, les autres arêtes d'extrémité 
si pour 1. On peut alors énoncer la même relation fondamentale que pour les graphes simples:
Théorème
Le nombre d'arètes d'un multigraphe est égal à la demi-somme des degrés de ses sommets:
   
Ce nombre est égal à la somme de tous les éléments de la matrice 
M:
Et on a encore le
Corollaire
Le nombre de sommets de degré impair d'un multigraphe est pair.
La 
matrice d'adjacence 
AG du graphe 
G est une matrice 
 définie par
 
 On voit que cette matrice est symétrique. La somme des éléments d'une ligne (ou colonne) n'est pas le degré du sommet correspondant puisque les boucles ne sont ici comptées qu'une fois.
Voici les matrices d'incidence et d'adjacence du multigraphe dessiné plus haut.
  
  
II-2 Chaînes dans un multigraphe
Soit 
 un entier naturel. Une 
k-
chaîne, ou 
chaîne de longueur 
k d'un multigraphe est la donnée d'une famille 
 de 
k+1 sommets et d'une famille 
 de 
k arêtes telles que pour tout 
, on ait 
. On note
On dit que la chaîne 
 visite
 visite chacun des 
vi et des 
ei.
Le sommet 
v0 est l'
origine de la chaîne 

 et 
vk est son 
extrémité.
En particulier, si 
 est un sommet, 
(
s) est une 
0-chaine, d'origine 
s et extrémité 
s.
Une chaîne est 
fermée si 
v0=
vk. Elle est 
simple si les arêtes 
 sont distinctes. Elle est 
élémentaire si les sommets 
 sont distincts.
Dans un graphe simple, on a forcément 
. On se contente donc de noter les sommets et on écrit 
.
Il y a des opérations naturelles sur les chaînes:
Si l'extrémité de 
 est égale à l'origine de 
, c'est-à-dire  si 
vk=
w0, on peut définir la 
concaténation 
 en posant 
 et 
 pour 
.
On peut aussi définir la chaîne 
 qui est ``

 parcourue dans l'autre sens'' en posant 
 et 
.
Théorème
Soit 
G=(S,A) un multigraphe, et 
AG sa matrice d'incidence. Pour tout 
 et tout couple 
, le coefficient 
 de la puissance 
k-ième de 
AG est égal au nombre de 
k-chaînes d'origine 
si et extrémité 
sj.
  
  Démonstration
   
Par récurrence sur 
k. La matrice 
AG0 est la matrice identité 
In, et il est clair que le nombre de 0-chaînes d'origine 
si et extrémité 
sj vaut 1 si 
i=
j et 0 sinon. La propriété est donc vraie pour 
k=0. Supposons-la vraie pour 
k. Une 
k+1-chaîne d'origine 
si et extrémité 
sj s'écrit
, avec 
v0=
si et 
. Si 
vk=
sl, 
 est une 
k-chaîne d'origine 
si et extrémité 
sl et 
 vérifie 
. L'hypothèse de récurrence dit qu'il y a 
 possibilités pour la première partie et la définition de 
AG dit qu'il y a 
 possibilités pour la seconde.
Le nombre de 
k+1-chaînes d'origine 
si, extrémité 
sj et telles que le sommet 
vk soit 
sl vaut donc 
. le nombre total de 
k+1-chaînes d'origine 
si et extrémité 
sj est donc
  
II-3 Algorithmes de Moore et de Dijkstra
On définit une fonction 
 appelée 
distance sur 
G de la façon suivante. S'il existe une chaîne d'origine 
s et extrémité 
t, 
D(
s,
t) est la longueur minimale d'une telle chaîne. S'il n'en existe pas, on pose 
.
Cette fonction n'est pas une distance au sens usuel puisque elle peut prendre la valeur 

. Mais il est facile de voir que  la fonction
est une distance sur 
S. Dans la pratique, on préfère utiliser 
D, qui prend des valeurs entières.
Donnons un algorithme classique de calcul de 
D(
s,
t), pour un sommet fixé et tout sommet 
t, l'
algorithme de Moore:
Données: Un sommet s d'un graphe (S,A)
Sortie: Pour tout dans S, D[t] contient D(s,t)
D[s] <- 0
Pour tout t dans S faire
  D[t] <- infini
fin pour
k <- 0
V <- {s} (V est un ensemble de sommets, au départ un singleton)
tant que V n'est pas vide faire
  k <- k+1
  W <- {} (ensemble vide)
  pour tout x dans V faire
    pour tout y voisin de x et tel que D[y] = infini faire
      D[y] <- k
      W <- W union {y} (on ajoute y à l'ensemble W)
    fin pour
  fin pour
  V <- W
fin tant que
En d'autre termes, 
s est étiqueté 0, les voisins de 
s étiquetés 1, les voisins des voisins de 
s sauf 
s lui-même sont étiquetés 2, et si 
t est étiqueté 
k, ses voisins non encore étiquetés seront étiquetés 
k+1, etc. Voici un exemple d'exécution de l'algorithme de Moore
Il existe une généralisation naturelle de cette notion de distance sur un graphe. Un 
graphe valué 
 est la donnée d'un multigraphe 
G=(
S,
A) et d'une fonction 
 appelée 
coût ou 
poids ou 
longueur... Le coût d'une chaîne 
 est alors défini par 
. On définit la distance 
C(
s,
t) entre deux sommets d'un graphe valué comme le minimum des coûts des chaînes d'origine 
s et extrémité 
t s'il en existe, et 

 s'il n'en existe pas. Pour déterminer 
C(
s,
t) pour un sommet fixé 
s et chaque sommet 
t, on peut utiliser l'
algorithme de Dijkstra:
Données: Un sommet s d'um graphe valué (S,A,m),
Sortie: Pour tout t dans S, C[t] contient C(s,t)
        Si 0 < C[t] < infini, T[t] contient la première étape
        dans une chaîne de coût minimal menant de t à s.
Pour tout t dans S faire
  C[t] <- infini
fin pour
C[s] <- 0
V <- {} (ensemble vide)
W <- S (tous les sommets)
tant qu'il y a dans W un sommet t tel que C[t] est fini faire
  u <- un sommet de W tel que C[u] soit minimal
  V <- V union {u}
  W <- W \ {u}  (On transfère u de W vers V)
  pour chaque voisin x de u faire
    si C[u] + m({u, x}) < C[x] faire
      C[x] <- C[u] + m({u, x})
      T[x] <- u
    fin si
  fin pour
fin tant que
Pour montrer que cet algorithme est correct, il suffit de vérifier que l'
invariant de boucle suivant est maintenu: si 
 est dans 
V, un chemin de moindre coût de 
t à 
s commence par 
T[t] est reste dans 
V. On peut montrer que la complexité de cet algorithme est en 
, où 
n est le nombre de sommets et 
m le nombre d'arêtes.
Voici par exemple les étapes de l'algorithme sur une valuation du cube 
Q3.
Les étiquettes des sommets représentent le tableau 
C et le tableau 
T
est représenté par des flèches qui pointent de 
t vers 
T[t]. Si un sommet est dans 
V, le point qui le marque est plus gros.
Pour trouver comment rejoindre le coin en bas à gauche à moindre coût, suivre les flèches.
  
  
III Chaînes et cycles
    III-1 Connexité
    III-2 Cycles
    III-3 Graphes eulériens
    III-4 Graphes hamiltoniens
  
  
III-1 Connexité
Si 
s et 
t sont deux sommets d'un graphe 
G=(
S,
A), on dira que 
s est 
relié à 
t et on écrira 
 s'il existe une chaîne de 
G dont l'origine est 
s et l'extrémité 
t. Cela revient à dire que 
D(
s,
t) est fini.
Théorème
La relation 
 est une relation d'équivalence sur 
S.
  
  Démonstration
Un graphe sera dit 
connexe si deux sommets quelconques sont toujours reliés. Il revient au même de dire que 
D ne prend que des valeurs finies, ou encore que le 
diamètre 
 du graphe 
G est fini.
Ë toute relation d'équivalence sur un ensemble 
S, on associe une 
partition de 
S en 
classes d'équivalence. On a donc une partition
. Si deux sommets sont voisins, ils sont reliés. Toute arête de 
G relie donc deux sommets qui appartiennent à la même classe.
En posant 
, on a donc montré que 
A est réunion disjointe des 
Ai. Les multigraphes 
Gi=(
Si,
Ai) ont la propriété que deux
sommets quelconques de 
Gi sont reliés dans 
Gi. Ils sont donc connexes, et on a montré le
Théorème
Pour tout graphe 
G=(S,A), il existe une partition unique de 
S en 
 parties non vides telle que les sous-graphes induits 
Gi=G(Si)
soient connexes et que toute arête de 
G appartienne à un des 
Gi.
Les 
Gi sont appelés les 
composantes connexes de 
G et 
p est le 
nombre des composantes connexes de 
G.
La fonction 
D induit une distance sur chaque composante connexe de 
G.
Il est facile de voir que tous les graphes du bestiaire sont connexes, sauf le stable 
Sn pour 
n>1, qui a 
n composantes connexes.
Théorème
Un graphe 
G=(S,A) est connexe si et seulement si  pour toute partition de 
S en 2 parties (non vides) 
S' et 
S'', il existe une arête 
 dont une extrémité est dans 
S' et l'autre dans 
S''.
  
  Démonstration
   
Suppossons d'abord 
G  connexe. Considérons une partition 
S en 2 parties (non vides) 
S' et 
S''. Comme 
S' et 
S'' sont non vides, on peut choisir 
 et 
. Comme 
G est connexe, il existe une chaîne 
 d'origine 
s et extrémité 
t. L'ensemble 
 n'est pas vide puisque 
, et ne contient pas 
0 puisque 
. Notons 
r>0 son plus petit élément. On a 
, donc 
 et 
. L'arête 
er a une extrémité dans 
S' et une autre dans 
S''.
Réciproquement, supposons que pour toute partition de 
S en 2 parties (non vides) 
S' et 
S'', il existe une arête 
 dont une extrémité est dans 
S' et l'autre dans 
S''. Considérons deux sommets 
s et 
t de 
S. Notons 
S' l'ensemble des extrémités des chaînes d'origine 
s, et 
S'' le complémentaire de 
S' dans 
S. Supposons que 
. Ni 
S' ni 
S'' ne sont alors vides. On applique l'hypothèse sur 
G: il existe une arête 
, avec 
u dans 
S' et 
. Il existe une chaîne 
 d'origine 
s et extrémité 
u, alors, l'existence de 
, d'origine 
s et extrémité 
v montre que 
, une contradiction. On a donc montré que 
, il y a une chaîne d'origine 
s et extrémité 
t. On en déduit que 
G est connexe.
  
  
III-2 Cycles
Pour 
 un 
k-
cycle ou 
cycle de longueur 
k d'un multigraphe 
G est une 
k-chaîne simple fermée de 
G. Un 
k-cycle est dit 
élémentaire si les sommets 
 sont tous distincts. L'origine (et extrémité) du cycle est plutôt appelée sa 
base.
Remarquons qu'un 
1-cycle est associé à une boucle et qu'un 2-cycle est associé à une arête double. On en déduit que dans un graphe simple, la longueur d'un cycle est au moins 3.
Proposition
De tout cycle, on peut extraire un cycle élémentaire.
  
  Démonstration
   
Si 
 est un 
k-cycle, l'ensemble des couples d'entiers 
(i,j) tels que 
 et 
vi=vj n'est pas vide,
puisqu'il contient 
(0,k). Il existe donc un tel couple 
(i,j) avec 
j-i minimal. On voit que 
 est un cycle élémentaire.
Proposition
De toute chaîne fermée de longueur impaire, on peut extraire un cycle de longueur impaire.
  
  Démonstration
   
Par récurrence sur la longueur 
k de la chaîne fermée. Si 
k=1, la 1-chaîne fermée 
(
s,
a,
s) est un 1-cycle. Supposons la propriété vraie pour toute 
k'-chaîne fermée, avec 
k'<
k impair.
Si la 
k-chaîne fermée 
 est simple, c'est un cycle. Sinon, il existe 
(
i,
j), avec 
 tel que 
ei=
ej. On en déduit que les ensembles 
 et 
 sont égaux. Il y a deux possibilités:
-   
 et 
vi=vj. Posons alors 
 et
 Ce sont deux chaînes fermées extraites de . La première a pour longueur 
k1=j-i>0 et la seconde 
k2=(k-j+1)+(i-1)>0. On
a 
k1+k2=k impair, donc l'un des deux est impair, strictement plus petit que 
k. On peut appliquer l'hypothèse de récurrence à 
 ou 
 pour
obtenir un cycle impair extrait de . La première a pour longueur 
k1=j-i>0 et la seconde 
k2=(k-j+1)+(i-1)>0. On
a 
k1+k2=k impair, donc l'un des deux est impair, strictement plus petit que 
k. On peut appliquer l'hypothèse de récurrence à 
 ou 
 pour
obtenir un cycle impair extrait de . .
-   
 et 
. Posons alors 
 et
 Ce sont deux chaînes fermées extraites de . La première a pour longueur 
k1=j-i-1 et la seconde 
k2=(k-j)+(i-1). On
a 
k1+k2=k-2 impair, donc l'un des deux est impair, strictement plus petit que 
k. On peut appliquer l'hypothèse de récurrence à 
 ou 
 pour
obtenir un cycle impair extrait de . La première a pour longueur 
k1=j-i-1 et la seconde 
k2=(k-j)+(i-1). On
a 
k1+k2=k-2 impair, donc l'un des deux est impair, strictement plus petit que 
k. On peut appliquer l'hypothèse de récurrence à 
 ou 
 pour
obtenir un cycle impair extrait de . .
Théorème
Si le degré minimum 
 d'un multigraphe 
G vaut au moins 2, alors il existe un cycle dans 
G.
  
  Démonstration
   
Soit 
 une chaîne simple de longueur 
k maximale. Comme il y a au moins un sommet, et que son degré n'est pas nul, il y a au moins une arête, et 
.
Si 
ek est une boucle, 
(vk,ek,vk) est un cycle. Sinon, comme 
d(vk)>1, il existe une arête 
e d'origine 
vk et différente de 
ek. Notons 
u le sommet tel que 
.
La chaîne 
 a pour longueur 
k+1. Elle n'est donc pas simple. On en déduit qu'il existe 
i, avec 
 tel que
ei=e. Il existe donc 
j, avec 
j=i ou 
j=i-1 tel que 
j<k et 
vj=vk. On a donc un cycle 
.
Théorème
Si le degré minimum 
 d'un graphe simple 
G vaut au moins 2, alors il existe dans 
G un cycle élémentaire de longueur au moins égale à 
.
  
  Démonstration
   
Soit 
 une chaîne élémentaire de longueur 
k maximale. Comme il y a au moins un sommet, et que son degré n'est pas nul, il y a au moins une arête, et 
.
Soit 
u un voisin de 
v0. La chaîne 
 a pour longueur 
k+1, et n'est donc pas élémentaire. On en déduit que 
u est égal à l'un des 
vi, pour un 
, que nous appellerons l'indice du voisin 
u. Chacun des voisins de 
v0 a un indice différent. L'un d'eux au moins a donc un indice 
. Puisque 
vi est voisin de 
v0, 
 est un cycle élémentaire, et sa longueur vaut au moins 
.
Donnons enfin la caractérisation des graphes bipartis en termes de cycles:
Théorème
Un multigraphe 
G=(S,A) différent du 1-stable est biparti si et seulement si  il n'existe pas dans 
G de cycle
de longueur impaire. En particulier, il ne doit pas avoir de boucle.
Remarquons que le nombre chromatique 
 est inférieur ou égal ou égal à 2 si et seulement si  
G est biparti ou 1-stable.
  
  Démonstration
   
Si 
G est biparti, il existe une partition 
 telle que toute arête ait une extrémité dans 
S' et une autre dans 
S''. Si 
 est un 
k-cycle et si 
, on voit, par récurrence sur 
i, que 
 pour 
i pair et 
 pour 
i impair. On sait que 
. Donc 
k est pair.
Réciproquement, supposons que 
G n'admette pas de cycle impair.
Commençons par supposer que 
G est connexe et 
.
Choisissons un sommet 
. Notons
 
 
Comme 
G est connexe, il est clair que 
. D'autre part, tout voisin d'un élément de 
S' est dans 
S'' et tout voisin d'un élément de 
S'' est dans 
S'. Comme 
, on voit que ni 
S' ni 
S'' ne sont vides. Il reste donc à prouver que 
.
Si 
 il existe une chaîne paire 

  et une chaîne impaire 

 d'origine 
s et extrémité 
t. La concaténation 
 de ces deux chaînes est une chaîne fermée de longueur impaire. On peut donc en extraire un cycle impair, une contradiction.
Dans le cas où 
G n'est pas connexe, on voit que chacune des composantes connexes de 
G est bipartie ou 
1-stable et 
G lui-même est donc biparti ou 1-stable.
  
III-3 Graphes eulériens
Un 
cycle eulérien d'un multigraphe 
G est un cycle qui visite toutes les arêtes et tous les sommets de 
G. Un 
graphe eulérien est un multigraphe qui admet un cycle eulérien. Une 
chaîne eulérienne est une chaîne simple qui visite toutes les arêtes et tous les sommets de 
G. Un graphe 
semi-eulérien est un multigraphe qui admet une chaîne eulérienne.
 Notons que ces chaînes passent une fois et une seule par chaque arête, et au moins une fois par chaque sommet, mais qu'elles peuvent passer plusieurs fois par le même sommet. Des trois graphes suivants, le premier est eulérien, le second est semi-eulérien sans être eulérien, et le troisième n'est pas semi-eulérien.
Théorème
Soit 
G un multigraphe d'ordre au moins 2. Le multigraphe 
G est eulérien si et seulement si  il est connexe et tous ses sommets sont de degré pair.
  
  Démonstration
   
Remarquons d'abord qu'en ajoutant ou effaçant une boucle, on ne change pas la connexité, ni la parité du degré des sommets, ni l'existence d'un cycle eulérien. Nous pouvons donc supposer que 
G n'a pas de boucle.
Si 
G est eulérien, soit 
 une chaîne eulérienne. Elle visite tous les sommets, donc pour tout couple 
(
s,
t) de sommets, elle induit une chaîne d'extrémités 
s et 
t. Le graphe 
G est donc connexe. Soit 
s un sommet de 
G, 
As l'ensemble des arêtes incidentes à 
s et 
. L'application  
 qui à une arête 
a incidente à 
s fait correspondre l'unique entier
 tel que 
s=
vi et (
a=
ei ou 
) vérifie
On déduit alors du principe des bergers que 
 est pair.
Réciproquement, supposons que 
G est connexe et que tous les sommets de 
G sont de degré pair. Considérons une chaîne simple de longueur 
k maximale 
. Nous allons montrer que 

 est un cycle eulérien.
Supposons d'abord que 

 ne soit pas fermée, c'est-à-dire  que 
. Posons 
s=
vk et définissons 
As l'ensemble des arêtes incidentes à 
s visitées par 

, 
Is et 
fs comme ci-dessus. On voit que 
 est un singleton et 
 vaut 2 pour 
i<
k. On en déduit que 
  est impair. Comme 
s est de degré pair, il existe une arête 
a incidente à 
s=
vk qui n'est pas visitée par 

 et 
 est une 
k+1-chaîne simple, une contradiction. On a donc montré que 

 est un cycle.
Supposons maintenant qu'il existe une arête 
a non visitée par 

, et posons 
. Comme 
G est connexe, il existe une chaîne 
 d'origine 
w0=
v0 et extrémité 
wl=
u. Posons 
 et 
. Notons 
i le plus petit élément de 
 tel que
fi ne soit pas visité par 

. Il est clair que 
 est visité par 

. Il existe donc 
 tel que 
. On voit que
 est une 
k+1-chaîne simple, une contradiction.
Supposons enfin qu'il existe un sommet 
s non visité par 

. Comme 
G est connexe, il existe une arête 
e incidente à 
s, et cette arête n'est pas visitée par 

, ce qui est impossible comme on vient de le voir.
Corollaire
Soit 
G un multigraphe d'ordre au moins 2. Le multigraphe 
G est semi-eulérien si et seulement si 
il est connexe et le nombre de ses sommets de degré impair est 
0 ou 
2.
  
  Démonstration
   
Si 

 est une chaîne eulérienne de 
G=(
S,
A) dont les extrémités sont 
u et 
v, considérons le graphe 
G' obtenu en ajoutant à 
G une arête 
e d'extrémités 
u et 
v. La chaîne 
 est un cycle eulérien de 
G'. On en déduit que les degrés de tous les sommets de 
G (autres que 
u et 
v si 
) sont pairs. La connexité de 
G est évidente exactement comme dans la démonstration du théorème.
Réciproquement, si 
G a deux sommets distincts de degré impair, 
u et 
v, le graphe 
G' défini comme ci-dessus a tous ses sommets de degré pair. Si 
G est connexe, 
G' l'est aussi et on peut appliquer le théorème à 
G'. Si 

 est un cycle eulérien de 
G', il visite forcément 
e et, en retirant 
e de 

, on obtient une chaîne eulérienne de 
G.
  
III-4 Graphes hamiltoniens
Un 
cycle hamiltonien est un cycle élémentaire qui visite tous les sommets d'un graphe. Sa longueur est donc l'ordre 
n du graphe. Une 
chaîne hamiltonienne est une chaîne élémentaire qui visite tous les sommets d'un graphe. Sa longueur est donc 
n-1. Un 
graphe hamiltonien est un multigraphe qui admet un cycle hamiltonien.
Proposition
Les graphes simples 
Cn et 
Kn sont hamiltoniens si et seulement si  
.
En effet, dans un graphe simple, la longueur d'un cycle est au moins 3.
Théorème
Si 
G=(S,A) est un graphe simple d'ordre 
 tel que
pour toute paire 
(u,v) de sommets non voisins, on a 
, alors 
G est hamiltonien.
  
  Démonstration
   
Considérons dans 
G une chaîne élémentaire de longueur maximale 
. On voit facilement que 
1<
k<
n et que les voisins de 
v0 et ceux de 
vk sont tous visités par 

. Deux cas se présentent:
-   Si 
v0 et 
vk sont voisins, posons 
 
-   Si 
v0 et 
vk ne sont pas voisins,
posons
 et
 On a 
 et 
.
D'après l'hypothèse sur 
G, on a 
, donc 
I et 
J ont un élément commun 
i, avec 
1<i<k. Posons alors
 
Dans tous les cas, 

 est un cycle élémentaire de longueur 
k+1, que nous réécrivons 
, avec 
. Nous allons montrer que 

 est un cycle hamiltonien.
Soit 
s un sommet qui n'est pas visité par 

. S'il est voisin d'un des 
wi, alors 
 est une chaîne élémentaire de longueur 
k+1, une contradiction. On en déduit que les voisins de 
s ne rencontrent pas les 
k+1 sommets visités par 

, donc 
. De même, les voisins de 
w0 sont parmi les 
k sommets visités par 

 autres que 
w0, et 
. On a donc 
d(
s)+
d(
w0)<
n, ce qui mène à une contradiction avec le fait que 
s et 
w0 ne sont pas voisins.
Corollaire
Si 
G est un graphe simple d'ordre 
 tel que 
, alors 
G est hamiltonien.
  
  
IV Arbres
Une 
forêt est un multigraphe sans cycle. En particulier, c'est un graphe simple. Un 
arbre est un graphe connexe sans cycle.
Voici quelques arbres.
Le théorème suivant montre que les arbres ont une position centrale.
Nous aurons besoin de quelques propositions préliminaires.
    IV-1 Préliminaires
    IV-2 Caractérisation des arbres
    IV-3 Arbres couvrants
    IV-4 Théorème de Cayley
  
  
IV-1 Préliminaires
Un 
sommet pendant d'un graphe est un sommet de degré 1. Si 
s est un sommet pendant, il existe une arête 
e incidente à 
s et une seule.
Proposition
Si 
G=(
S,
A) est une forêt, et si 
A n'est pas vide, alors il y a au moins deux sommets pendants dans 
G.
   
On rappelle que 
G est un graphe simple.
Soit 
 une chaîne élémentaire de longueur 
k maximale. Comme 
A n'est pas vide, il y a au moins une arête, donc 
k>0.
Le seul voisin de 
v0 est 
v1. En effet, si 
u est un autre voisin de 
v0, soit 
u est l'un des 
vi, avec 
i>1 et 
est un cycle, une contradiction, soit non, auquel cas 
 est une une chaîne élémentaire de longueur 
k+1, encore une contradiction.
On en déduit 
d(
v0)=1, et de même 
d(
vk)=1.
Corollaire
Si 
G=(
S,
A) est un arbre d'ordre 
, il y a dans 
A exactement 
n-1 arêtes.
   
Par récurrence sur 
n. Pour 
n=1, il n'y a pas de boucle, donc 
 et 
. Si 
n>1, il y a au moins deux sommets. Comme 
G est connexe, il y a au moins une chaîne qui les joint, donc 
A n'est pas vide. Il y a donc aumoins un sommet pendant 
s. Soit 
e l'unique arête adjacente à 
s. Le graphe
 est un arbre d'ordre 
n-1. On peut lui appliquer l'hypothèse de récurrence. On a donc
 donc 
m=
n-1.
Proposition
Soit 
 et 
 deux chaînes simples distinctes d'origine 
u  et extrémité 
v dans un multigraphe 
G. De la chaîne fermée 
, on peut extraire un cycle.
   
Par récurrence sur 
p=
k+
l. Si 
p=0, il n'est pas possible que 
, il n'y a donc rien à démontrer.
Supposons la propriété vraie si la somme des longueurs est strictement plus petite que 
p>0. Si 
 est simple, c'est un cycle. Sinon, il existe une arête visitée deux fois par 
. Comme 

 et 

 sont simples, une des visites est dans 

 et l'autre dans 
: il existe 
 et 
 tels que 
ei = 
fj. Il y a deux possibilités:
-   
 et 
vi=wj. On a alors soit 
 soit 
. Dans les deux cas on peut appliquer l'hypothèse de récurrence pour obtenir un cycle extrait de 
.
 
-   
 et 
. On a alors soit 
 soit 
. Dans les deux cas on peut appliquer l'hypothèse de récurrence pour obtenir un cycle extrait de 
.
 
Corollaire
Dans un multigraphe 
G=(S,A), il existe un cycle si et seulement si  il existe deux chaînes simples distinctes qui ont même origine et même extrémité.
Enfin, dans un graphe connexe 
G=(
S,
A), un 
isthme est une arête 
e telle que le graphe 
 ne soit pas connexe.
Proposition
Dans un graphe connexe, une arête est un isthme si et seulement si  elle n'est visitée par aucun cycle.
   
Supposons d'abord que 
e est visité par un cycle. On peut écrire 
), avec 
vk=
v0. Soit 
u et 
v deux sommets de 
G. Comme 
G est connexe, il existe une chaîne simple 
 Si 

 ne visite pas 
e, on pose 
. Dans le cas contraire, il existe un unique 
 tel que 
fi=
e. On ``remplace 
e dans 

 par le grand arc de 

'', c'est-à-dire  qu'on pose
si 
 et 
wi=
v=0, et
si 
 et 
wi=
v1. Il existe dans tous les cas une chaîne 
 de 
, d'origine 
u et extrémité 
v. On en déduit que 
 est connexe et 
e n'est pas un isthme.
Réciproquement, si 
e n'est pas un isthme, notons 
u et 
v les extrémités de 
e. Comme 
 est connexe, il existe une chaîne simple 

 de 
 d'origine 
v et extrémité 
u. La chaîne 
 est fermée et simple: c'est un cycle qui visite 
e.
Corollaire
Soit 
G1=(
S1,
A1) et 
G2=(
S2,
A2) deux arbres, composantes connexes distinctes d'une forêt 
G=(
S,
A). Soit 
 et 
. Posons 
.
Le graphe simple 
 est encore une forêt.
En effet, 
e est un isthme du graphe connexe 
. Un cycle de 
G' doit visiter 
e donc rester dans 
G'', une contradiction.
  
  
IV-2 Caractérisation des arbres
Théorème
Soit 
G=(
S,
A) un multigraphe. On note 
 son ordre et 
 le nombre de ses arêtes. Les propriétés suivantes sont équivalentes:
-   
G est un arbre.
 
-   Pour tout couple 
(u,v) de sommets, il existe une chaîne simple d'origine 
u et extrémité 
v et une seule.
 
-   
G est connexe, et toute arête de 
G est un isthme (
G  est connexe minimal).
 
-   
G est une forêt, et pour toute arête 
, 
 admet un cycle (
G est une forêt maximale).
 
-   
G est connexe et 
m=n-1.
 
-   
G est une forêt, et 
m=n-1.
 
On rappelle sans démonstration un théorème tout-à-fait analogue à celui-ci:
Théorème
Soit 
E un 
K-espace vectoriel de dimension 
n, et 
 une famille finie d'éléments de 
E. Les propriétés suivantes sont équivalentes:
-   
B est une base de 
E.
 
-   Pour tout vecteur 
, il existe une famille 
 de scalaires telle que 
 et une seule.
 
-   
B est une famille génératrice de 
E et pour tout 
 la famille obtenue en enlevant 
bi à 
B ne l'est pas (
B est génératrice minimale).
 
-   
B est libre et quelle que soit la valeur de 
, la famille 
 ne l'est pas (
B est libre maximale).
 
-   
B est une famille génératrice de 
E et 
m=n.
 
-   
B est une famille libre et 
m=n.
 
   
-  [
] La connexité est équivalente à l'existence de chaînes simples de 
u à 
v pour tous sommets 
u et 
v.
D'autre part, grâce au lemme 	{aller-retour}, on voit que l'existence d'un cycle équivaut à celle de deux chaînes simples ayant même origine et même extrémité.
 
-  [
] D'après la proposition  
    isthme
, dans un graphe connexe, l'existence d'un isthme est équivalente à la non-existence d'un cycle.
 
-  [
] D'après le corollaire  
    ajout
, si une forêt n'est pas connexe, on peut lui ajouter une arête sans créer de cycle. Réciproquement, si 
G est un arbre et 
, alors il existe une chaîne simple d'origine 
u et extrémité 
v dans 
G, 
(u,e,v) en est une autre dans 
, ce qui, grâce à la proposition  
    aller-retour
 montre que 
 n'est pas une forêt.
 
-  [
] C'est une conséquence du corollaire  
    nombre
.
 
-  [
] Parmi les sous-graphes couvrants de 
G qui sont connexes, il y en a au moins un 
G'=(S,A') qui est minimal. C'est un arbre. D'après 
, on a 
. Or 
. On en déduit 
A'=A.
 
-  [
] Une forêt est un graphe simple. On en déduit que parmi les forêts sur 
S dont 
G est un graphe couvrant, il en existe une 
G'=(S,A') qui est
maximale. C'est un arbre. D'après 
, on a 
. Or 
. On en déduit 
A'=A.
 
 
  
  
IV-3 Arbres couvrants
Un 
arbre couvrant d'un multigraphe 
G est un sous-graphe couvrant de 
G qui est un arbre. Si un graphe a un arbre couvrant, il est connexe. Le théorème précédent montre que la réciproque est vraie. Nous présentons deux algorithmes naturels pour trouver un arbre couvrant d'un multigraphe 
G connexe.
Données: Un multigraphe connexe G = (S,A)
Sortie: Une partie A' de A telle que G'=(S, A') est un arbre.
A' <- {}
tant que $G'$ n'est pas connexe
  choisir une composante connexes C de G'
  choisir une arête e de A liant C et S \ C
  faire A' <- A' union {e}
fin tant que
L'existence de l'arête 
e est due au fait que 
G est connexe. L'adjonction de 
e à 
A' ne change pas le fait que 
G' est une forêt.
L'algorithme s'arrête donc bien quand 
G est un arbre.
Cet algorithme a une variante adaptée aux graphes valués: on définit le poids d'un sous-graphe comme la somme des coûts de toutes les arêtes de ce sous-graphe, et on cherche un arbre couvrant de poids minimal.
Données: Un multigraphe valué connexe G = (S,A,c)
Sortie: Une partie A' de A telle que G'=(S, A') est un arbre
  et le poids total de A' est minimal.
numéroter les éléments de A par poids croissant:
  c(e_1) <= ... <= c(e_m)
A' <- {}
pour i allant de 1 à m faire
  si (e_i n'est pas une boucle et si) les extrémités de e_i
    sont sur des composantes connexes différentes de G' faire
    A' <- A' union {e_i}
  fin si
fin tant que
Cet algorithme, qui prend en priorité les arêtes de poids faible, est appelé 
glouton pour la même raison qui fait qu'en informatique
les arbres sont représentés avec leurs racines en haut et les feuilles en bas.
Il existe une méthode duale pour extraire un arbre couvrant, qui consiste à couper les cycles tant qu'il y en a. Nous allons l'énoncer pour un multigraphe quelconque.
Données: Un multigraphe G = (S,A) à e composantes connexes.
Sortie: A' est une partie de A telle que G'=(S,A')
  est une forêt à e composantes connexes.
A' <- A
tant qu'il existe un cycle dans G'
  choisir un cycle C dans G'
  choisir une arête e visitée par C
  faire A' <- A' \ {e}
fin tant que
Comme on l'a vu plus haut, le fait d'enlever une arête visitée par un cycle ne change rien à la connexité. Le nombre de composantes connexes de 
G' est donc le même que celui de 
G. En particulier, si 
G est connexe, 
G' est un arbre couvrant de 
G.
En général, combien de fois la boucle interne de l'algorithme s'exécute-t'elle ? Appelons 
p ce nombre. On voit que 
est le nombre d'arêtes qu'on a enlevées. La proposition suivante montre que 
p ne dépend pas des choix
faits dans l'algorithme, mais seulement du multigraphe 
G. Nous appellerons 
p le 
nombre de cycles indépendants de 
G.
Proposition
Dans l'algorithme précédent, la boucle interne s'exécute 
p fois, avec
p = m-n+e
où 
n est l'ordre de 
G, 
m son nombre d'arêtes, et 
e son nombre de composantes connexes.
   
Notons 
Gi=(
Si,
Ai) les 
e composantes connexes d'une forêt 
G=(
S,
A) à 
n sommets et 
m arêtes. Chaque 
Gi est un arbre, on a donc 
.
Comme 
S est réunion disjointe des 
Si et 
A réunion disjointe des 
Ai, on a
Si maintenant 
G=(
S,
A) est un multigraphe quelconque et qu'on exécute l'algorithme, le résultat est une forêt 
(
S,
A') qui a le même nombre 
n de sommets et le même nombre 
e de composantes connexes que 
G. Son nombre d'arêtes est 
m'=
m-
p. Or on vient de montrer que 
m'=
n-
e, d'où le résultat.
  
IV-4 Théorème de Cayley
On s'intéresse ici aux arbres couvrants de la clique 
Kn, ou plutôt à leur nombre. On voit facilement que 
K1 et 
K2 sont des arbres et que 
K3 a trois arbres couvrants. 
 
Il est plus difficile d'établir que les arbres couvrants de 
K4 sont au nombre de 16, mais il n'y en a que deux à isomorphisme près.
Supposons désormais 
.
Nous allons décrire une opération de codage qui à tout arbre 
T dont l'ensemble des sommets est 
 fait correspondre une famille
 de 
n-2 éléments de 
 de la façon suivante.
Données: Un arbre T = (S, A) d'ensemble de sommets S = [1,n]
Sortie: le tableau b contient n-2 entiers de [1,n]
pour i de 1 à n-2 faire
  s <- le plus petit sommet pendant de T
  e <- l'arête incidente à s
  b[i] <- le voisin de s dans T
  S <-  S \ {s}
  A <-  A \ {e}
fin pour
Voici la suite des opérations qui donne l'encodage d'un certain arbre couvrant de 
K9.
 
Le résultat final est donc la famille 
(4,6,6,5,4,4,5).
L'opération de décodage se décrit de la même façon:
Données: Un tableau b de n-2 entiers de [1,n]
Sortie: T = ([1,n], A) est un arbre
A <- {}
S <- [1,n]
pour i de 1 à n-2 faire
  s <- le plus petit élément de S qui n'est égal
       à aucun b[j] avec i <= j <= n-2.
  A <- A union {{s,b[i]}}
  S <- S \ {s}
fin pour
A <- A union {S}
Comme 
S a 
n-
i+1 éléments et 
j ne prend que 
n-
i-1 valeurs, on peut toujours trouver 
s.
Pour prouver que le graphe obtenu est un arbre, il suffit de remarquer qu'à tout
moment 
S contient un sommet et un seul dans chaque composante connexe de 
T.
Comme 
b[
i] n'a pas pu être enlevé de 
S aux tours précédents, il est encore dans 
S et
l'arête 
 réunit deux composantes connexes différentes: il ne peut se créer de
cycle. Après la fin de la boucle, S ne contient que deux éléments, appartenant aux deux composantes connexes de 
.
Enfin, 
T est une forêt à 
n-1 arêtes, c'est donc bien un arbre.
Voici la suite d'opérations décrivant le décodage de 
(4,6,6,5,4,4,5):
On voit que les opérations de codage et de décodage sont inverses l'une de l'autre. On a donc une bijection entre l'ensemble 
Tn des arbres couvrants  de 
Kn et
. On a donc prouvé le
Théorème [de Cayley]
Pour tout 
, une 
n-clique a exactement 
 arbres couvrants.