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 |
Test your knowledge on Introduction aux graphes et parcours with 6 multiple-choice questions with detailed corrections.
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 ?
Memorize the key concepts of Introduction aux graphes et parcours with 12 interactive flashcards.
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.
Import your course and AI generates sheets, quizzes and flashcards in 30 seconds.
Sheet generator