Réseaux sociaux : Représentés par un graphe où les sommets sont des individus ou entités, et les arêtes (ou arcs) indiquent des relations ou interactions entre eux. Exemple : un graphe avec une grosse composante connexe montre une communauté fortement reliée.
Réseau routier, carte : Modélisation d’un espace géographique sous forme de graphe où chaque sommet représente un lieu, et chaque arête une route reliant deux lieux. Si les routes ont un sens, le graphe est orienté.
Labyrinthe : Modélisé par un graphe dont les sommets sont des points ou intersections, et les arêtes représentent les passages possibles. La modélisation peut révéler des îlots ou zones inaccessibles, et permet d’appliquer des parcours pour résoudre des problèmes d’évasion ou de navigation.
Graphe de positions : Graphe où chaque sommet représente une configuration ou une position dans un jeu. Si aucune position ne se répète, ce graphe est un arbre sans cycle. Les feuilles correspondent à des états finaux (victoire, défaite, nul). La stratégie consiste à remonter depuis ces feuilles pour déterminer le résultat optimal.
Graphe de dépendances : Graphe orienté où chaque sommet est un module ou une étape, et chaque arc indique une dépendance ou un prérequis. Utilisé notamment en compilation ou en gestion de projets, il doit être exempt de cycles pour assurer une progression logique.
Les exemples introductifs montrent que la modélisation par graphe est une méthode puissante pour représenter et analyser des situations variées, en utilisant des parcours et en vérifiant l’absence de cycles pour garantir la cohérence ou la stratégie optimale.
Un graphe est une structure composée de sommets et d’arêtes ou arcs, dont la représentation peut varier (matrice ou dictionnaire), et dont la nature orientée ou non orientée influence la définition des relations entre sommets.
Représentation en Python : méthode de modélisation d’un graphe en utilisant des structures de données Python, telles que listes ou dictionnaires, pour faciliter l’implémentation des algorithmes de parcours ou d’analyse.
Matrice d’adjacence : liste de listes en Python où chaque élément M[i][j] indique la présence ou l’absence d’une arête ou d’un arc entre le sommet i et le sommet j. Si une arête existe, la valeur est True ou une valeur équivalente ; sinon, False.
Dictionnaire d’adjacence : dictionnaire Python où chaque clé est un sommet du graphe, et la valeur associée est la liste des successeurs (pour un graphe orienté) ou des voisins (pour un graphe non orienté).
Liste des voisins : liste contenant tous les sommets adjacents à un sommet donné dans un graphe non orienté, ou tous les successeurs/prédécesseurs dans un graphe orienté, selon la structure de représentation.
Liste des successeurs : liste des sommets accessibles directement depuis un sommet donné dans un graphe orienté, c’est-à-dire tous v tels que (s, v) appartient à E.
Liste des prédécesseurs : liste des sommets ayant une arête ou un arc allant vers un sommet donné dans un graphe orienté, c’est-à-dire tous v tels que (v, s) appartient à E.
La matrice d’adjacence est représentée par une liste de listes, où chaque élément M[i][j] vaut True si une arête ou un arc relie i à j, sinon False. La commande len(M) donne l’ordre du graphe (nombre de sommets).
Le dictionnaire d’adjacence associe à chaque sommet une liste de ses successeurs ou voisins, facilitant l’accès direct aux successeurs d’un sommet donné.
La liste des voisins s’obtient en parcourant la ligne correspondante dans la matrice d’adjacence ou en accédant à la liste dans le dictionnaire d’adjacence.
La liste des successeurs dans un dictionnaire d’adjacence est directement la valeur associée à la clé du sommet dans le dictionnaire.
La liste des prédécesseurs dans un graphe orienté se construit en parcourant le dictionnaire d’adjacence : pour chaque sommet, on vérifie dans tous les autres si ce sommet apparaît dans leur liste de successeurs.
Les représentations en Python, telles que la matrice d’adjacence et le dictionnaire d’adjacence, offrent deux approches complémentaires pour modéliser un graphe : la première privilégie la simplicité d’accès par indices, la seconde facilite la gestion dynamique et l’accès direct aux successeurs ou voisins.
Parcours en largeur : méthode d'exploration d'un graphe consistant à visiter tous les sommets à un même niveau avant de passer au niveau suivant, en utilisant une structure de file d'attente.
Coloriage des sommets : technique pour marquer l'état d'un sommet durant l'exploration, avec trois couleurs possibles :
Liste d'attente : structure FIFO (First In First Out) utilisée pour gérer les sommets à explorer dans le parcours en largeur. Elle stocke les sommets gris à traiter.
Arborescence de découverte : arbre ou graphe partiel constitué des arcs qui relient chaque sommet découvert à son prédécesseur lors du parcours, représentant la structure de l'exploration.
Tableau des prédécesseurs : tableau où chaque élément indique le sommet qui a permis de découvrir le sommet correspondant lors du parcours, initialisé à -1 pour les sommets racines ou non encore découverts.
Le parcours en largeur explore un graphe niveau par niveau en utilisant une file d'attente, permettant de déterminer la connectivité, les distances minimales, et de construire une arborescence de découverte.
Parcours en profondeur (Depth First Search, DFS) : méthode d'exploration d'un graphe qui consiste à suivre un chemin le plus loin possible avant de revenir en arrière pour explorer d'autres branches. La gestion de la liste d'attente se fait comme une pile (LIFO).
Pile (stack) : structure de données où le dernier élément ajouté est le premier à être retiré. Utilisée dans le parcours en profondeur pour gérer l'exploration des sommets.
Exploration chemin le plus long : concept lié à la recherche du plus long chemin dans un graphe, souvent abordé en utilisant le parcours en profondeur pour explorer toutes les branches possibles.
Le parcours en profondeur explore un graphe en suivant un chemin jusqu’à sa fin avant de revenir en arrière, utilisant une pile pour gérer l’ordre d’exploration, ce qui permet de découvrir en profondeur chaque branche du graphe.
Cycle : Un cycle est une chaîne de sommets reliés deux à deux par des arêtes ou arcs, qui commence et se termine au même sommet, et dont tous les autres sommets sont distincts. Si une chaîne relie un sommet à lui-même, on parle aussi de cycle.
Cycle dans un graphe : Un cycle est une séquence finie de sommets reliés par des arêtes ou arcs, formant une boucle fermée, sans répétition de sommets sauf le début et la fin.
Cycle orienté : Un cycle dans un graphe orienté est une chaîne fermée où chaque arc est orienté dans le même sens que la chaîne, formant une boucle dans le sens de la direction des arcs.
Cycle non orienté : Un cycle dans un graphe non orienté est une chaîne fermée où les arêtes n'ont pas de sens, formant une boucle sans orientation spécifique.
Cycle simple : Un cycle qui ne passe pas deux fois par le même sommet, sauf le sommet de départ/fin.
Cycle avec répétition : Un cycle qui peut passer plusieurs fois par certains sommets, c'est-à-dire pas nécessairement simple, pouvant contenir des répétitions de sommets ou d'arêtes.
Lors du parcours en profondeur (DFS), si un successeur d’un sommet courant est déjà gris, cela indique l'existence d’un cycle, car cela signifie qu’il existe un chemin de vers , formant une boucle.
La détection de cycles dans un graphe orienté se fait en vérifiant si, lors du DFS, un successeur gris est rencontré. Si oui, le graphe contient un cycle.
La détection de cycles dans un graphe non orienté repose aussi sur le DFS, mais en vérifiant si un successeur gris n’est pas le père dans l’arborescence, ce qui indique un cycle.
La fonction pour tester si un graphe est acyclique retourne False si un cycle est détecté, et True sinon.
La présence d’un successeur déjà gris lors d’un parcours en profondeur indique un cycle dans le graphe, permettant de détecter si le graphe est acyclique ou non.
| Critère | Graphe non orienté | Graphe orienté | Auteur / Référence |
|---|---|---|---|
| Définition | Sommets reliés par des arêtes sans sens | Sommets reliés par des arcs avec sens | Notions clés & Définitions |
| Représentation | Matrice d’adjacence ou dictionnaire | Matrice d’adjacence ou dictionnaire | Représentation en Python |
| Sommet | Élément de V | Élément de V | Notions clés & Définitions |
| Arête / Arc | Paire {s, t} | Couple (s, t) | Notions clés & Définitions |
| Degré (d(s)) | Somme des degrés (∑𝑠∈𝑉 𝑑(𝑠) = 2 * | 𝐸 | ) |
| Parcours en largeur | Utilise une file, couleurs (blanc, gris, noir) | Même principe, avec gestion des successeurs | Parcours en largeur |
Teste dein Wissen zu Introduction aux graphes et parcours mit 6 Multiple-Choice-Fragen mit detaillierten Korrekturen.
1. Quel est l’effet principal de l’utilisation d’exemples introductifs pour la modélisation par graphe dans l’apprentissage ?
2. Qui est crédité d'avoir formulé ou introduit la notion de graphe en mathématiques et en informatique ?
Merke dir die Schlüsselkonzepte von Introduction aux graphes et parcours mit 12 interaktiven Karteikarten.
Exemples introductifs — réseaux sociaux ?
Graphe avec sommets : individus, arêtes : relations.
Graphe — définition ?
Structure de sommets reliés par des arêtes ou arcs.
Représentation Python — matrice ?
Liste de listes indiquant présence d’arête par True/False.
Intelligence Artificielle
Bases de données
Bases de données
Bases de données
Importiere deinen Kurs und die KI erstellt in 30 Sekunden Lernzettel, Quizze und Karteikarten.
Lernzettel-Generator