Mathématiques > Graphes (Terminale - Spécialité) > Introduction aux Graphes > Représentation des graphes (matrice d'adjacence, liste d'adjacence)
Représentation des Graphes : Matrices et Listes d'Adjacence
Découvrez les méthodes de représentation des graphes : matrices d'adjacence et listes d'adjacence. Comprenez leurs avantages et inconvénients pour résoudre des problèmes concrets.
Introduction : Pourquoi Représenter un Graphe ?
La représentation d'un graphe est fondamentale pour pouvoir manipuler et analyser ses propriétés avec des outils informatiques. Un graphe, qui est une structure composée de nœuds (sommets) reliés par des arêtes, peut modéliser une grande variété de situations : réseaux sociaux, réseaux routiers, relations entre personnes, etc. Pour pouvoir appliquer des algorithmes (par exemple, trouver le plus court chemin), il faut d'abord traduire le graphe dans un format compréhensible par un ordinateur. Deux méthodes principales existent : la matrice d'adjacence et la liste d'adjacence.
La Matrice d'Adjacence
Une matrice d'adjacence est un tableau carré où les lignes et les colonnes représentent les sommets du graphe. La valeur à l'intersection de la ligne *i* et de la colonne *j* indique s'il existe une arête reliant le sommet *i* au sommet *j*.
Construction :
Exemple :
Considérons un graphe avec 4 sommets (A, B, C, D) et les arêtes suivantes : A-B, A-C, B-C, C-D. La matrice d'adjacence correspondante serait:
Avantages :
A B C D A 0 1 1 0 B 1 0 1 0 C 1 1 0 1 D 0 0 1 0
Inconvénients :
La Liste d'Adjacence
Une liste d'adjacence représente un graphe en associant à chaque sommet une liste de ses voisins. Autrement dit, pour chaque sommet, on enregistre tous les sommets auxquels il est directement connecté.
Construction :
Exemple :
Reprenons le même graphe que précédemment (4 sommets : A, B, C, D, et arêtes : A-B, A-C, B-C, C-D). La liste d'adjacence correspondante serait:
Avantages :
Inconvénients :
Choix de la Représentation
Le choix entre la matrice d'adjacence et la liste d'adjacence dépend du type de graphe et des opérations que l'on souhaite effectuer le plus fréquemment.
En pratique, la liste d'adjacence est souvent privilégiée pour les graphes de grande taille, car elle est plus économe en mémoire.
Ce qu'il faut retenir
FAQ
-
Quelle est la complexité spatiale de la matrice d'adjacence ?
La complexité spatiale de la matrice d'adjacence est de O(n²), où n est le nombre de sommets du graphe. Cela signifie que l'espace mémoire nécessaire croît quadratiquement avec le nombre de sommets. -
Quelle est la complexité spatiale de la liste d'adjacence ?
La complexité spatiale de la liste d'adjacence est de O(n + m), où n est le nombre de sommets et m le nombre d'arêtes du graphe. Pour les graphes creux (m est petit par rapport à n²), la liste d'adjacence est plus économe en mémoire que la matrice d'adjacence. -
Comment représenter un graphe pondéré (avec des poids sur les arêtes) avec une matrice d'adjacence ?
Dans une matrice d'adjacence pour un graphe pondéré, au lieu de mettre 1 pour indiquer la présence d'une arête, on met le poids de l'arête. Si il n'y a pas d'arête on met 0 ou infini suivant l'application.