Fiche de cours

Implémenter un graphe

Lycée   >   Terminale   >   NSI   >   Implémenter un graphe

  • Fiche de cours
  • Quiz et exercices
  • Vidéos et podcasts
Objectifs
  • Implémenter un graphe par sa matrice d'adjacence.
  • Implémenter un graphe par sa liste d'adjacence.
Points clés
  • Pour implémenter un graphe, on peut utiliser une matrice d’adjacence, dont les éléments permettent de repérer les sommets qui sont liés ou non par un arc.
    Un matrice d’adjacence est un tableau à double entrée dans lequel les lignes représentent les sommets de départ et les colonnes les sommets d’arrivée.
  • On peut aussi utiliser la structure de dictionnaire avec la liste d’adjacence.
    La liste d’adjacence a une structure de dictionnaire qui a pour clés les sommets du graphe et pour valeurs associées aux clés les listes des sommets adjacents.
Pour bien comprendre
  • Notion de graphe
  • Opérations (primitives) de la structure de données relationnelle de type graphe
  • Matrices (tableaux à double entrée)
1. L'implémentation par une matrice d'adjacence
Principe

Pour implémenter un graphe (le définir dans un langage de programmation), on peut utiliser une représentation graphique spécifique qui se nomme matrice d’adjacence.

Une matrice d’adjacence est un tableau à double entrée (une matrice carrée), dans lequel les lignes représentent les sommets de départ et les colonnes les sommets d’arrivée.
Une entrée nulle (0) indique qu’il n’y a pas d’arc entre ces deux sommets, une valeur non nulle indique l’existence d’un arc avec une éventuelle pondération. Par défaut, on utilise la valeur 1 pour indiquer l'existence d’un arc.
Dans un graphe avec pondération, les arcs sont affectés d'une étiquette qui est un nombre positif.
Exemple
Voici la matrice d’adjacence (à droite) associée à la représentation sagittale d’un graphe (à gauche).

On classe les sommets dans l’ordre alphabétique et on établit la matrice d’adjacence en procédant ligne par ligne.

Par exemple, la première ligne de la matrice d’adjacence est associée au sommet A : A n’est pas lié à A, on a donc un 0, puis on a trois 1 puisque le sommet A est directement lié aux sommets B, C et D.
Rappel
Dans la représentation sagittale d’un graphe, les sommets du graphes sont représentés par des points et les arcs sont représentés par des segments qui vont d’un point à un autre.
Implémenter un graphe en Python par sa matrice d’adjacence – Exemple

En Python, un tableau à double entrée est un tableau de tableau.

On étudie la matrice d’adjacence suivante.


Pour implémenter en Python le graphe associé à cette matrice d’adjacence, on écrit le code suivant.


On obtient l’affichage suivant.


L’affichage d’une matrice d’adjacence en Python se fait en ligne, et chaque ligne de la matrice est séparée par une virgule.

2. L'implémentation par une liste d'adjacence
Principe

On peut décider d’utiliser la structure de dictionnaire pour implémenter le graphe, les sommets sont alors des clés et on associe à chaque sommet une liste de sommets adjacents. On utilise ici une liste d’adjacence.

Une liste d’adjacence a une structure de dictionnaire qui a pour clés les sommets du graphe et pour valeurs associées aux clés les listes des sommets adjacents.
Les couples d’une liste d’adjacence sont (‘sommet’,’liste des sommets adjacents’). Il faut utiliser des crochets [] pour définir la liste des sommets adjacents.
Remarque
Les sommets sont présentés dans l’ordre alphabétique dans une liste d’adjacence.

On peut même ajouter des valeurs supplémentaires, lorsqu’on a un graphe avec pondération.

Rappels
  • Un dictionnaire est un ensemble de couples clé:valeur, qui est délimité par des {}. La clé ne peut pas être modifiée.
  • Exemple
    La variable informaticiens référence un dictionnaire qui contient le nom d’informaticiens et leur année de naissance.
    informaticiens={"Cynthia Dwork":1958,"Marvin Minsky":1927}
  • Deux sommets sont adjacents s’ils sont liés par une arête.
Exemple 1
On considère le graphe suivant.

La liste d’adjacence associée à ce graphe est la suivante.

graphe={'A':['B','C'],'B':['A','C'],
'C':['A','B','D'],'D':['C'],'E':[]}

Explications

  • Le sommet A est une clé associée à la liste de ses deux sommets adjacents B et C.
  • Le sommet E est une clé associée à une liste vide [] car ce sommet est isolé.
Exemple 2
On considère le graphe avec pondération suivant.

La liste d’adjacence associée à ce graphe est la suivante.

graphe={'A':[('B',54),('D',15)],'B':[('A',54),('D',27)],'C':[('D',100)],'D':[('A',15),('B',27),('C',100)]}
Implémenter d’un graphe en Python par sa liste d’adjacence
– Exemple

Pour implémenter en Python le graphe associé à une liste d’adjacence, il faut juste écrire le dictionnaire dans le code.

graphe={'A':[('B',54),('D',15)],'B':[('A',54),('D',27)],'C':[('D',100)], 'D':[('A',15),('B',27),('C',100)]}

Pour implémenter en Python le graphe associé à cette liste d’adjacence, on écrit le code suivant.

La ligne 3 permet de parcourir les clés du dictionnaire qui représentent le graphe.

On obtient alors l’affichage suivant.

Évalue ce cours !

 

Des quiz et exercices pour mieux assimiler sa leçon

La plateforme de soutien scolaire en ligne myMaxicours propose des quiz et exercices en accompagnement de chaque fiche de cours. Les exercices permettent de vérifier si la leçon est bien comprise ou s’il reste encore des notions à revoir.

S’abonner

 

Des exercices variés pour ne pas s’ennuyer

Les exercices se déclinent sous toutes leurs formes sur myMaxicours ! Selon la matière et la classe étudiées, retrouvez des dictées, des mots à relier ou encore des phrases à compléter, mais aussi des textes à trous et bien d’autres formats !

Dans les classes de primaire, l’accent est mis sur des exercices illustrés très ludiques pour motiver les plus jeunes.

S’abonner

 

Des quiz pour une évaluation en direct

Les quiz et exercices permettent d’avoir un retour immédiat sur la bonne compréhension du cours. Une fois toutes les réponses communiquées, le résultat s’affiche à l’écran et permet à l’élève de se situer immédiatement.

myMaxicours offre des solutions efficaces de révision grâce aux fiches de cours et aux exercices associés. L’élève se rassure pour le prochain examen en testant ses connaissances au préalable.

S’abonner

Des vidéos et des podcasts pour apprendre différemment

Certains élèves ont une mémoire visuelle quand d’autres ont plutôt une mémoire auditive. myMaxicours s’adapte à tous les enfants et adolescents pour leur proposer un apprentissage serein et efficace.

Découvrez de nombreuses vidéos et podcasts en complément des fiches de cours et des exercices pour une année scolaire au top !

S’abonner

 

Des podcasts pour les révisions

La plateforme de soutien scolaire en ligne myMaxicours propose des podcasts de révision pour toutes les classes à examen : troisième, première et terminale.

Les ados peuvent écouter les différents cours afin de mieux les mémoriser en préparation de leurs examens. Des fiches de cours de différentes matières sont disponibles en podcasts ainsi qu’une préparation au grand oral avec de nombreux conseils pratiques.

S’abonner

 

Des vidéos de cours pour comprendre en image

Des vidéos de cours illustrent les notions principales à retenir et complètent les fiches de cours. De quoi réviser sa prochaine évaluation ou son prochain examen en toute confiance !

S’abonner

Découvrez le soutien scolaire en ligne avec myMaxicours

Plongez dans l'univers de myMaxicours et découvrez une approche innovante du soutien scolaire en ligne, conçue pour captiver et éduquer les élèves de CP à la terminale. Notre plateforme se distingue par une riche sélection de contenus interactifs et ludiques, élaborés pour stimuler la concentration et la motivation à travers des parcours d'apprentissage adaptés à chaque tranche d'âge. Chez myMaxicours, nous croyons en une éducation où chaque élève trouve sa place, progresse à son rythme et développe sa confiance en soi dans un environnement bienveillant.

Profitez d'un accès direct à nos Profs en ligne pour une assistance personnalisée, ou explorez nos exercices et corrigés pour renforcer vos connaissances. Notre assistance scolaire en ligne est conçue pour vous accompagner à chaque étape de votre parcours éducatif, tandis que nos vidéos et fiches de cours offrent des explications claires et concises sur une multitude de sujets. Avec myMaxicours, avancez sereinement sur le chemin de la réussite scolaire, armé des meilleurs outils et du soutien de professionnels dédiés à votre épanouissement académique.

Fiches de cours les plus recherchées

NSI

Passer d'une représentation d'un graphe à une autre

NSI

Comprendre le modèle relationnel d'une base de données

NSI

Utiliser l'algèbre relationnel dans une base de données relationnelle

NSI

Repérer des anomalies dans une base de données relationnelle

NSI

Introduire la notion de système de gestion de base de données relationnelle

NSI

Découvrir le langage SQL

NSI

Administrer une base de données avec le langage SQL

NSI

Construire des requêtes d'interrogation à l'aide des clauses du langage SQL

NSI

Construire des requêtes d'insertion et de mise à jour à l'aide du langage SQL

NSI

Découvrir le système sur une puce