Graphes

Graphes




I Graphes simples

II Multigraphes

III Chaînes et cycles

IV Arbres

I Graphes simples

Graphes → 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

GraphesI Graphes simples → 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:


Démonstration
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

GraphesI Graphes simples → 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

GraphesI Graphes simples → 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


Démonstration
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

GraphesI Graphes simples → 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


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


Démonstration
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

GraphesI Graphes simples → 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: 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

Graphes → 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

GraphesII Multigraphes → 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:


Démonstration
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

GraphesII Multigraphes → 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 gamma visite chacun des vi et des ei. Le sommet v0 est l'origine de la chaîne gamma 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 `` gamma 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

GraphesII Multigraphes → 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 infty. 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 infty 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

Graphes → III Chaînes et cycles

III-1 Connexité

III-2 Cycles

III-3 Graphes eulériens

III-4 Graphes hamiltoniens

III-1 Connexité

GraphesIII Chaînes et cycles → 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
Elle est

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

GraphesIII Chaînes et cycles → 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:
  1. et vi=vj. Posons alors

    et

    Ce sont deux chaînes fermées extraites de gamma. 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 gamma.
  2. et . Posons alors

    et

    Ce sont deux chaînes fermées extraites de gamma. 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 gamma.

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 gamma et une chaîne impaire delta 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

GraphesIII Chaînes et cycles → 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 gamma est un cycle eulérien.
Supposons d'abord que gamma 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 gamma, 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 gamma et est une k+1-chaîne simple, une contradiction. On a donc montré que gamma est un cycle.
Supposons maintenant qu'il existe une arête a non visitée par gamma, 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 gamma. Il est clair que est visité par gamma. 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 gamma. Comme G est connexe, il existe une arête e incidente à s, et cette arête n'est pas visitée par gamma, 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 gamma 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 gamma est un cycle eulérien de G', il visite forcément e et, en retirant e de gamma, on obtient une chaîne eulérienne de G.

III-4 Graphes hamiltoniens

GraphesIII Chaînes et cycles → 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 gamma. Deux cas se présentent: Dans tous les cas, delta est un cycle élémentaire de longueur k+1, que nous réécrivons , avec . Nous allons montrer que delta est un cycle hamiltonien.
Soit s un sommet qui n'est pas visité par delta. 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 delta, donc . De même, les voisins de w0 sont parmi les k sommets visités par delta 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

Graphes → 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

GraphesIV Arbres → 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.

Démonstration
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.

Démonstration
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.

Démonstration
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 gamma et delta sont simples, une des visites est dans gamma et l'autre dans : il existe et tels que ei = fj. Il y a deux possibilités:
  1. 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 .
  2. 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.

Démonstration
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 delta ne visite pas e, on pose . Dans le cas contraire, il existe un unique tel que fi=e. On ``remplace e dans delta par le grand arc de gamma'', 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 gamma 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

GraphesIV Arbres → IV-2 Caractérisation des arbres

On rappelle sans démonstration un théorème classique:

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:
  1. B est une base de E.
  2. Pour tout vecteur , il existe une famille de scalaires telle que et une seule.
  3. 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).
  4. B est libre et quelle que soit la valeur de , la famille ne l'est pas ( B est libre maximale).
  5. B est une famille génératrice de E et m=n.
  6. B est une famille libre et m=n.
Le théorème suivant est tout-à-fait analogue au théorème précédent:

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:
  1. G est un arbre.
  2. Pour tout couple (u,v) de sommets, il existe une chaîne simple d'origine u et extrémité v et une seule.
  3. G est connexe, et toute arête de G est un isthme ( G est connexe minimal).
  4. G est une forêt, et pour toute arête , admet un cycle ( G est une forêt maximale).
  5. G est connexe et m=n-1.
  6. G est une forêt, et m=n-1.

Démonstration

IV-3 Arbres couvrants

GraphesIV Arbres → 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

n est l'ordre de G, m son nombre d'arêtes, et e son nombre de composantes connexes.

Démonstration
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

GraphesIV Arbres → 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.

document sur les graphes.
: graph, interactive mathematics, interactive math, server side interactivity

The most recent version

Cette page n'est pas dans son apparence habituelle parce que WIMS n'a pas pu reconnaître votre navigateur web.
Afin de tester le navigateur que vous utilisez, veuillez taper le mot wims ici : puis appuyez sur ``Entrer''.

Veuillez noter que les pages WIMS sont générées interactivement; elles ne sont pas des fichiers HTML ordinaires. Elles doivent être utilisées interactivement EN LIGNE. Il est inutile pour vous de les ramasser par un programme robot.