Théorie des graphes : exercices corrigés pas à pas

Aussi appelé : algorithme de Dijkstra

Exercices gratuits sur Théorie des graphes avec schémas, indices et corrigés complets. De nouvelles valeurs à chaque fois, à trois niveaux : degrés et arêtes, chemins eulériens et arbres, plus courts chemins et arbres couvrants.

Exercice gratuitFacile

Un arbre a 12 sommets. Combien d’arêtes |E| a-t-il ?

|V| = 12

Réponse exacte : un nombre entier, sans arrondi.

Exercice suivant →

Ce que vous travaillez

  1. Faciledegrés et arêtes
  2. Moyenchemins eulériens et arbres
  3. Difficileplus courts chemins et arbres couvrants

Comment résoudre les exercices de Théorie des graphes

  1. Notez le degré de chaque sommet ; la somme des degrés vaut deux fois le nombre d’arêtes.
  2. Pour les questions d’Euler, vérifiez que le graphe est connexe et comptez les sommets de degré impair.
  3. Pour les arbres, utilisez n − 1 arêtes et le lemme des poignées de main.
  4. Pour Dijkstra, tenez un tableau des distances provisoires et fixez à chaque tour le sommet non fixé de plus petite distance.
  5. Pour un arbre couvrant minimal, triez les arêtes par poids et sautez toute arête qui ferme un cycle (Kruskal), ou faites croître un arbre à partir d’un sommet de départ (Prim).

Erreurs fréquentes

  • Oublier de diviser la somme des degrés par 2.
  • Déclarer un graphe eulérien sans vérifier la connexité.
  • Fixer un sommet dans Dijkstra avant que sa distance soit la plus petite.
  • Prendre les arêtes les plus légères sans vérifier les cycles.
  • Compter les circuits hamiltoniens de Kn comme n! au lieu de (n − 1)!/2.

Formules clés

Lemme des poignées de main
Σ deg(v) = 2|E|
Graphes complets
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Graphe régulier
|E| = n·k/2
Arbre et forêt
|E| = n − 1, |E| = n − c
Feuilles d’un arbre
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Euler
circuit : tous les degrés pairs ; chemin : exactement 2 degrés impairs
Circuits hamiltoniens dans Kn
(n − 1)!/2
Mise à jour de Dijkstra
d(v) = min(d(v), d(u) + w(u, v))
Marches de longueur L
(Mᴸ)ij

Apprendre Théorie des graphes depuis zéro

Avant cela : Ensembles, relations et fonctions

1Sommets, arêtes et degrés

Un graphe se compose de sommets (points) et d’arêtes (lignes entre deux sommets). Dans un graphe simple, il n’y a ni boucles ni arêtes multiples.

Le degré d’un sommet est le nombre d’arêtes qui y aboutissent. Chaque arête a deux extrémités, donc elle ajoute 1 au degré de chacune. Cela donne le lemme des poignées de main :

Σ deg(v) = 2·|E|

Deux conséquences : la somme des degrés est toujours paire, et le nombre de sommets de degré impair est pair lui aussi.

  • Le graphe complet Kn relie chaque paire : n(n − 1)/2 arêtes.
  • Le graphe biparti complet Km,n relie chaque sommet d’un côté à chaque sommet de l’autre : m·n arêtes.
  • Un graphe k-régulier à n sommets a n·k/2 arêtes.

La matrice d’adjacence a un 1 en (i, j) quand i et j sont reliés. Pour un graphe non orienté elle est symétrique, la somme d’une ligne est un degré, et l’entrée (i, j) de Mᴸ compte les marches de longueur L de i à j.

Auto-évaluation Un graphe a pour degrés 3, 3, 2, 2, 2. Combien d’arêtes a-t-il ?
  1. 10
  2. 12
  3. 5
  4. 6

Réponse: 6. Les degrés totalisent 12, et chaque arête est comptée deux fois, donc il y a 12/2 = 6 arêtes. 5 est le nombre de sommets.

2Euler et Hamilton

Un circuit eulérien utilise chaque arête exactement une fois et revient à son point de départ. Un chemin eulérien utilise chaque arête une fois mais peut finir ailleurs. Pour un graphe connexe :

  • tous les degrés pairs : il existe un circuit eulérien ;
  • exactement deux degrés impairs : il existe un chemin eulérien, d’un sommet impair à l’autre ;
  • plus de deux degrés impairs : ni l’un ni l’autre.

Un circuit hamiltonien visite chaque sommet exactement une fois. Il n’existe pas de test simple par les degrés. Dans Kn il y a (n − 1)!/2 circuits hamiltoniens différents : fixez le départ, ordonnez les n − 1 autres sommets, et divisez par 2 pour les deux sens.

Auto-évaluation Un graphe connexe a pour degrés 2, 3, 4, 3, 2. Qu’admet-il ?
  1. Ni l’un ni l’autre
  2. Un chemin eulérien, mais pas de circuit eulérien
  3. Un circuit eulérien
  4. À la fois un circuit eulérien et un chemin eulérien qui n’est pas un circuit

Réponse: Un chemin eulérien, mais pas de circuit eulérien. Exactement deux sommets ont un degré impair (les deux 3), donc il existe un chemin eulérien entre eux, mais pas de circuit.

3Arbres

Un arbre est un graphe connexe sans cycle. Tout arbre à n sommets a exactement n − 1 arêtes. Ajouter une arête quelconque crée un cycle ; en retirer une quelconque le déconnecte.

Une forêt de c arbres à n sommets a n − c arêtes. Un graphe connexe à m arêtes conserve un arbre couvrant après suppression de m − n + 1 arêtes.

Le lemme des poignées de main compte les feuilles : Σ deg = 2(n − 1). Une forme courte est L = 2 + Σ (d − 2) sur les sommets de degré d ≥ 3. Un arbre avec deux sommets de degré 3 et le reste en feuilles a 2 + 1 + 1 = 4 feuilles.

4Dijkstra et arbres couvrants minimaux

L’algorithme de Dijkstra trouve les plus courtes distances depuis un sommet de départ dans un graphe à poids positifs ou nuls.

  1. Donnez au départ la distance 0 et à tous les autres sommets ∞.
  2. Fixez le sommet non fixé de plus petite distance ; sa distance est maintenant définitive.
  3. Pour chaque voisin v, mettez à jour d(v) = min(d(v), d(u) + w(u, v)).
  4. Répétez jusqu’à ce que la cible soit fixée.

Un arbre couvrant minimal relie tous les sommets avec le plus petit poids total. Kruskal trie les arêtes de la plus légère à la plus lourde et prend chacune sauf si elle ferme un cycle. Prim fait croître un arbre à partir d’un sommet de départ, en ajoutant toujours l’arête la plus légère qui en sort. Les deux s’arrêtent après n − 1 arêtes.

Exemple détaillé

Trouvez la plus courte distance de A à E dans le graphe ci-dessous.

1

Départ

412581ABCDE

d(A) = 0. Ses voisins reçoivent d(B) = 4 et d(C) = 1.

2

Fixer C (1)

Par C : d(B) = min(4, 1 + 2) = 3 et d(E) = 1 + 8 = 9.

3

Fixer B (3)

Par B : d(D) = 3 + 5 = 8.

4

Fixer D (8)

Par D : d(E) = min(9, 8 + 1) = 9. Pas d’amélioration, égalité.

5

Fixer E (9)

E est fixé : sa distance est définitive.

Réponse

La plus courte distance est d(E) = 9, le long de A → C → E. Le trajet A → C → B → D → E a la même longueur, 1 + 2 + 5 + 1 = 9.

Auto-évaluation L’algorithme de Kruskal a pris les arêtes de poids 1, 2 et 3. L’arête suivante la plus légère, de poids 4, relie deux sommets déjà connectés. Que se passe-t-il ?
  1. Elle est ignorée parce qu’elle fermerait un cycle
  2. Elle est prise parce que c’est la plus légère restante
  3. L’algorithme s’arrête
  4. L’arête de poids 3 est retirée à la place

Réponse: Elle est ignorée parce qu’elle fermerait un cycle. Kruskal ne ferme jamais de cycle : une arête entre deux sommets de la même composante est ignorée, et l’algorithme passe à l’arête suivante.

5Erreurs fréquentes

  • Oublier de diviser la somme des degrés par 2 pour obtenir le nombre d’arêtes.
  • Tester l’existence d’un circuit eulérien sans vérifier que le graphe est connexe.
  • Fixer un sommet dans Dijkstra avant qu’il ait la plus petite distance provisoire.
  • Prendre les n − 1 arêtes les plus légères sans vérifier les cycles.
  • Compter les circuits hamiltoniens de Kn comme n! au lieu de (n − 1)!/2.

6À quoi ressemblent les questions d’examen

  • Facile : degrés et arêtes. Vous utilisez le lemme des poignées de main, comptez les arêtes de Kn, Km,n, des graphes réguliers et des arbres, lisez une matrice d’adjacence, ou cliquez sur le sommet d’un degré donné.
  • Moyen : chemins eulériens et arbres. Vous décidez si un graphe a un circuit ou un chemin eulérien, comptez les feuilles d’un arbre, le nombre d’arêtes à retirer pour obtenir un arbre couvrant, ou les circuits hamiltoniens de Kn.
  • Difficile : plus courts chemins et arbres couvrants. Vous exécutez l’algorithme de Dijkstra, trouvez le sommet fixé à un tour donné, le poids d’un arbre couvrant minimal, cliquez sur l’arête que Kruskal ou Prim ajoute ensuite, ou comptez des marches avec la matrice d’adjacence.

Apprenez pas à pas dans l’applicationApprenez pas à pas dans l’application

Exemples corrigés

Exemple 1Facile
AABBCCDDEE0010000001100010000101110

La matrice d’adjacence d’un graphe simple non orienté est représentée. Combien d’arêtes |E| le graphe a-t-il ?

Calculer |E|

Afficher les indices
  1. L’entrée (i, j) vaut 1 quand les sommets i et j sont reliés par une arête.
  2. Chaque arête {i, j} donne deux 1 : un en (i, j) et un en (j, i).
  3. La matrice contient 8 uns.
Afficher la réponse et la solution pas à pas

Degrés : le degré d’un sommet est le nombre d’arêtes qui y aboutissent. Chaque arête a deux extrémités, donc les degrés totalisent deux fois le nombre d’arêtes : Σ deg(v) = 2|E| (le lemme des poignées de main). Le nombre de sommets de degré impair est donc pair. Kn a n(n − 1)/2 arêtes, un graphe k-régulier à n sommets en a nk/2, et un arbre à n sommets a n − 1 arêtes.

Compter les uns

sommes des lignes: 1 + 1 + 2 + 1 + 3 = 8
|E| = 8/2 = 4

Réponse

|E| = 4
Exemple 2Moyen
ABCDEFGCircuit eulérienChemin eulérien, pas de circuitni l’une ni l’autre

Le graphe connexe a-t-il un circuit eulérien, un chemin eulérien qui n’est pas un circuit, ou ni l’un ni l’autre ? Cliquez sur votre réponse.

|V| = 7|E| = 10
  1. 1Circuit eulérien
  2. 2Chemin eulérien, pas de circuit
  3. 3ni l’une ni l’autre
Afficher les indices
  1. Le théorème d’Euler n’a besoin que des degrés des sommets (le graphe est connexe).
  2. Tous les degrés pairs : circuit eulérien. Exactement deux degrés impairs : chemin eulérien entre eux. Davantage : aucun des deux.
  3. Comptez les sommets de degré impair.
Afficher la réponse et l’explication

Euler, Hamilton et arbres : un graphe connexe a un circuit eulérien (chaque arête une fois, retour au départ) quand tous les sommets ont un degré pair, et un chemin eulérien qui n’est pas un circuit quand exactement deux sommets ont un degré impair ; le chemin va alors d’un sommet impair à l’autre. Un circuit hamiltonien visite chaque sommet une fois ; Kn en a (n − 1)!/2. Un arbre à n sommets a n − 1 arêtes, et un graphe connexe à m arêtes conserve un arbre couvrant après suppression de m − n + 1 arêtes.

Degrés

deg(A) = 1, deg(B) = 4, deg(C) = 2, deg(D) = 4, deg(E) = 4, deg(F) = 2, deg(G) = 3

Sommets impairs

A, G → 2
Chemin eulérien, pas de circuit

Réponse

Chemin eulérien, pas de circuit

Le chemin eulérien commence à un sommet impair et finit à l’autre.

Exemple 3Difficile
ABCDEF

Combien de marches fermées de longueur 3 partent de E et y reviennent ? Une marche peut répéter des sommets et des arêtes. Appelez ce nombre N.

M = matrice d’adjacenceL = 3

Calculer N

Afficher les indices
  1. Avec la matrice d’adjacence M, le nombre de marches de longueur L de i à j est l’entrée (i, j) de Mᴸ.
  2. Comptez d’abord les marches de longueur 2 de E à chaque sommet, puis faites un pas de plus.
  3. Marches de longueur 2 depuis E : A: 2, B: 1, C: 0, D: 2, E: 4, F: 1.
Afficher la réponse et la solution pas à pas

Degrés : le degré d’un sommet est le nombre d’arêtes qui y aboutissent. Chaque arête a deux extrémités, donc les degrés totalisent deux fois le nombre d’arêtes : Σ deg(v) = 2|E| (le lemme des poignées de main). Le nombre de sommets de degré impair est donc pair. Kn a n(n − 1)/2 arêtes, un graphe k-régulier à n sommets en a nk/2, et un arbre à n sommets a n − 1 arêtes.

Matrice d’adjacence

A: 0 1 1 0 0 0
B: 1 0 0 1 1 0
C: 1 0 0 0 1 0
D: 0 1 0 0 1 1
E: 0 1 1 1 0 1
F: 0 0 0 1 1 0

Un pas de plus

(M³)EE = 2·0 + 1·1 + 0·1 + 2·1 + 4·0 + 1·1 = 4

Réponse

N = 4

Questions et réponses

Théorie des graphes : de quoi s’agit-il ?

Un graphe se compose de sommets (points) et d’arêtes (lignes entre deux sommets). Dans un graphe simple, il n’y a ni boucles ni arêtes multiples.

Le degré d’un sommet est le nombre d’arêtes qui y aboutissent. Chaque arête a deux extrémités, donc elle ajoute 1 au degré de chacune. Cela donne le lemme des poignées de main :

Théorie des graphes : comment résoudre les exercices étape par étape ?
  1. Notez le degré de chaque sommet ; la somme des degrés vaut deux fois le nombre d’arêtes.
  2. Pour les questions d’Euler, vérifiez que le graphe est connexe et comptez les sommets de degré impair.
  3. Pour les arbres, utilisez n − 1 arêtes et le lemme des poignées de main.
  4. Pour Dijkstra, tenez un tableau des distances provisoires et fixez à chaque tour le sommet non fixé de plus petite distance.
  5. Pour un arbre couvrant minimal, triez les arêtes par poids et sautez toute arête qui ferme un cycle (Kruskal), ou faites croître un arbre à partir d’un sommet de départ (Prim).
Théorie des graphes : quelles sont les erreurs fréquentes ?
  • Oublier de diviser la somme des degrés par 2.
  • Déclarer un graphe eulérien sans vérifier la connexité.
  • Fixer un sommet dans Dijkstra avant que sa distance soit la plus petite.
  • Prendre les arêtes les plus légères sans vérifier les cycles.
  • Compter les circuits hamiltoniens de Kn comme n! au lieu de (n − 1)!/2.
Théorie des graphes : que couvrent les exercices ?
  • Facile: degrés et arêtes
  • Moyen: chemins eulériens et arbres
  • Difficile: plus courts chemins et arbres couvrants

Chaque exercice a de nouvelles valeurs : vous apprenez la méthode, pas une réponse. Bloqué ? Ouvrez d’abord un petit indice, et l’explication complète seulement si vous en avez besoin.

Comment fonctionne l’entraînement

  • Chaque exercice a de nouvelles valeurs : vous apprenez la méthode, pas une réponse.
  • Bloqué ? Ouvrez d’abord un petit indice, et l’explication complète seulement si vous en avez besoin.
  • Votre progression, vos erreurs et vos exercices enregistrés sont conservés pour que vous puissiez réviser avant l’examen.

Thèmes avant et après celui-ci

À voir d’abord

Cours qui contiennent ce thème

Autres thèmes en Mathématiques et statistiques

Fiche d’exercices imprimable