Implémenter un graphe
- Fiche de cours
- Quiz et exercices
- Vidéos et podcasts
- Implémenter un graphe par sa matrice d'adjacence.
- Implémenter un graphe par sa liste d'adjacence.
- 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.
- Notion de graphe
- Opérations (primitives) de la structure de données relationnelle de type graphe
- Matrices (tableaux à double entrée)
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.
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.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.
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.
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.
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.
- 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.
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é.
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)]}– 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.
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.
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.
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.
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 !
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.
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 !