Algorithmique des graphes - Cours 4 – Parcours en profondeur
en tête de la pile est le sommet actuel précédé par la suite de ses ancêtres. Page 10. Parcours en profondeur – graphes non-orientés. A : B
Quelques rappels sur la théorie des graphes
On appelle ordre d'un graphe le nombre de ses sommets i.e c'est card(S). le parcours en profondeur consiste
Parcours dun graphe
1 avr. 2013 Les sommets de ce graphe sont a b
Première partie : Algorithmique avancée pour les graphes
Une façon naïve de déterminer les différentes SCC d'un graphe consiste à faire un parcours (en largeur ou en profondeur) à partir de chacun des sommets du
Théorie des graphes et optimisation dans les graphes Table des
8.4 Parcours en profondeur (Depth First Search = DFS) . donné un tel graphe on pourra s'intéresser
Algorithmique Cours 7 : Parcours de graphes ROB3 – année 2014
) : tous les autres arcs. Arcs associée à un parcours en profondeur. A. B. C. D arc
Graphes : introduction Graphes Graphes Graphes : G = (S A)
parcours en largeur parcours en profondeur
ALGO1 – Parcours en profondeur
7 févr. 2021 1 Parcours en profondeur générique dans un arbre ... C. D. E. F. Théor`eme 2 Soit G = (S A) un graphe. Un parcours en profondeur sur G ...
Algorithmique des graphes - Cours 5 – Composantes fortement
On l'appelle le graphe des composantes fortement connexes. CFC(G). Page 15. Tester la connexité forte avec Parcours en profondeur. Calculer la composante
Parcours de graphes
L'algorithme de parcours en profondeur (DFS) d'un graphe G prend un temps O(n+m) Parcours. Propriétés du parcours en profondeur: A. B. C.
[PDF] Parcours de graphes - IGM
Le parcours d'un graphe en profondeur se réalise en partant d'un sommet arbitraire v à visiter et en parcourant d'abord un de ses voisins u et tous ses “
[PDF] Algorithmique des graphes - Cours 4 – Parcours en profondeur
Algorithme 1 : Parcours en profondeur DFS(G) Données : graphe G marque des sommets (initialisé à Faux) père ? des sommets (initialisée à null)
[PDF] Parcours dun graphe Parcours profondeur dabord
Parcours d'un graphe • un processus dans lequel on visite tous les noeuds que l'on puisse atteindre à partir du noeud initial
[PDF] Parcours dun graphe
Parcours en profondeur Jean-Manuel Mény – IREM de LYON () Algorithmique ISN 2013 47 / 97 Page 66 Parcours en profondeur : principe de l'algorithme Vous
[PDF] Première partie : Algorithmique avancée pour les graphes - CNRS
Une façon naïve de déterminer les différentes SCC d'un graphe consiste à faire un parcours (en largeur ou en profondeur) à partir de chacun des sommets du
[PDF] Quelques rappels sur la théorie des graphes - CNRS
On appelle ordre d'un graphe le nombre de ses sommets i e c'est card(S) le parcours en profondeur consiste à partir d'un sommet donné à suivre un
[PDF] Parcours de graphes - Université de Montréal
L'algorithme de parcours en profondeur (DFS) d'un graphe G prend un temps O(n+m) C D E A Sommets non visités Sommets visités Arêtes non visitées
[PDF] Parcours de graphes
L'algorithme de parcours en profondeur (DFS) d'un graphe G prend un temps O(n+m) Parcours Propriétés du parcours en profondeur: A B C
[PDF] Algorithmique Cours 7 : Parcours de graphes ROB3
) : tous les autres arcs Arcs associée à un parcours en profondeur A B C D arc
[PDF] Parcours de graphes
sommets du graphe Il y a deux stratégies de parcours différentes : partant d'un sommet le graphe est parcouru ? en largeur ? en profondeur
Algorithmique des graphes
Cours 5 - Composantes fortement connexes
František Kardoš
frantisek.kardos@u-bordeaux.frDéfinitions
Un graphe orienté est ditfortement connexesi ses sommets sont tous accessibles entre eux, i.e., pour toute paire de sommetsuetvil existe un chemin deuàvet aussi un chemin devàu.Le graphe ci-dessous est-il fortement connexe?A B C DE F GDéfinitions
Un graphe orienté est ditfortement connexesi ses sommets sont tous accessibles entre eux, i.e., pour toute paire de sommetsuetvil existe un chemin deuàvet aussi un chemin devàu.Le graphe ci-dessous est-il fortement connexe?A B C DE F GDéfinitions
Dans un graphe orienté, unecomposante fortement connexe est un sous-ensembleXde sommets deGinduisant un graphe fortement connexe,Xétant maximal par rapport à la connexité forte.Quelles sont les composantes fortement connexes?A B C DE F GDéfinitions
Dans un graphe orienté, unecomposante fortement connexe est un sous-ensembleXde sommets deGinduisant un graphe fortement connexe,Xétant maximal par rapport à la connexité forte.Quelles sont les composantes fortement connexes?A B C DE F GQuelques observations
Vrai ou faux?
I Soituvun arc d"une composante fortement connexe. Alors il existe un chemin devàu.I Soituvun arc d"une composante fortement connexe. Alors uvest contenu dans un circuit.I Soituetvdeux sommets d"un graphe orienté. Siuetv appartiennent au même circuit, alorsuetvsont dans la même composante fortement connexe.I Soituetvdeux sommets d"un graphe orienté. Siuetv sont dans la même composante fortement connexe, alors uetvappartiennent au même circuit.FAUX!Quelques observations
Vrai ou faux?
I Soituvun arc d"une composante fortement connexe. Alors il existe un chemin devàu.I Soituvun arc d"une composante fortement connexe. Alors uvest contenu dans un circuit.I Soituetvdeux sommets d"un graphe orienté. Siuetv appartiennent au même circuit, alorsuetvsont dans la même composante fortement connexe.I Soituetvdeux sommets d"un graphe orienté. Siuetv sont dans la même composante fortement connexe, alors uetvappartiennent au même circuit.FAUX!Quelques observations
Vrai ou faux?
I Soituvun arc d"une composante fortement connexe. Alors il existe un chemin devàu.I Soituvun arc d"une composante fortement connexe. Alors uvest contenu dans un circuit.I Soituetvdeux sommets d"un graphe orienté. Siuetv appartiennent au même circuit, alorsuetvsont dans la même composante fortement connexe.I Soituetvdeux sommets d"un graphe orienté. Siuetv sont dans la même composante fortement connexe, alors uetvappartiennent au même circuit.FAUX!Quelques observations
Vrai ou faux?
I Soituvun arc d"une composante fortement connexe. Alors il existe un chemin devàu.I Soituvun arc d"une composante fortement connexe. Alors uvest contenu dans un circuit.I Soituetvdeux sommets d"un graphe orienté. Siuetv appartiennent au même circuit, alorsuetvsont dans la même composante fortement connexe.I Soituetvdeux sommets d"un graphe orienté. Siuetv sont dans la même composante fortement connexe, alors uetvappartiennent au même circuit.FAUX!Quelques observations
Vrai ou faux?
I Soituvun arc d"une composante fortement connexe. Alors il existe un chemin devàu.I Soituvun arc d"une composante fortement connexe. Alors uvest contenu dans un circuit.I Soituetvdeux sommets d"un graphe orienté. Siuetv appartiennent au même circuit, alorsuetvsont dans la même composante fortement connexe.I Soituetvdeux sommets d"un graphe orienté. Siuetv sont dans la même composante fortement connexe, alors uetvappartiennent au même circuit.FAUX!Calcul de composantes fortement connexes
Lemme Soit G un graphe orienté, soit C un circuit dans G. Soit G=C le graphe obtenu en réduisant C en un seul sommet, disons c. Alors G=C a autant de composantes connexes que G, en plus, I Si une composante X ne couvre pas C, alors X est une composante de G=C; I Si X est une composante couvrant C, alors XnV(C)[ fcg est une composante de G=C.Note. En réduisant un circuitC, on peut supprimer les boucles et pour tout ensemble d"arcs parallèles il suffit d"en garder un.Calcul de composantes fortement connexes
On applique le lemme tant que le graphe contient encore des circuits.Le graphe final est un graphe sans circuit, dont tout sommet représente une composante fortement connexe du graphe de départ.On l"appelle legraphe des composantes fortement connexesCFC(G).
Calcul de composantes fortement connexes
On applique le lemme tant que le graphe contient encore des circuits.Le graphe final est un graphe sans circuit, dont tout sommet représente une composante fortement connexe du graphe de départ.On l"appelle legraphe des composantes fortement connexesCFC(G).
Calcul de composantes fortement connexes
On applique le lemme tant que le graphe contient encore des circuits.Le graphe final est un graphe sans circuit, dont tout sommet représente une composante fortement connexe du graphe de départ.On l"appelle legraphe des composantes fortement connexesCFC(G).
Tester la connexité forte avec Parcours en profondeur Calculer la composante fortement connexe d"un sommetu:Idée : Pour un sommetu, déterminer
I l"ensembleDesc(u)des sommets accessibles depuisu I l"ensembleAnc(u)des sommetsuest accessible depuis avec deux parcours en profondeur, un surG, et l"autre surG1.La CFC(u)est alorsDesc(u)\Anc(u).
Parcours en profondeur et CFC
SoitGun graphe orienté, soitXune CFC deG. Soitxle premier sommet deXdécouvert par un parcours deGen profondeur. Alorsxest l"ancêtre commun de tous les sommets deX. Autrement dit, tous les sommets deXsont découverts et visités avant la fin de la visite dex. Par ailleurs, si d(x) = minfd(u) :u2Xg; alors f(x) = maxff(u) :u2Xg:Parcours en profondeur et CFC
SoitX1etX2deux CFC d"un graphe orientéG. Notonsx1(resp. x2) le premier sommet deX1(X2) découvert par un parcours de
Gen profondeur.
ISiX1!X2dansCFC(G), alorsx1est un ancêtre dex2,
I(x1)I(x2).
I SiX1 X2ouX1etX2ne sont pas du tout reliés par un arc dansCFC(G), alorsI(x1)\I(x2) =;.Algorithme de Kosaraju
SoitGun graphe orienté.
1.Exécuter un parcours en prof ondeurde G.
2. Exécuter un parcours en prof ondeursur le g raphe transposéG1en explorant les sommets dans l"ordre décroissant de la fin de visite du premier parcours. Les arborescences produites par le second parcours sont lesCFC deG.
Algorithme de Kosaraju - exemple
A:B;G B:E C: D:F E:D;G F:E G:B;CAlgorithme de Kosaraju - complexité
SoitGun graphe orienté.
1. Exécuter un parcours en prof ondeurde G-O(m+n). Calculer le g raphetr ansposéG1-O(m+n)si graphe représenté par listes de successeurs. 2. Exécuter un parcours en prof ondeurde G1-O(m+n). La complexité de l"algorithme de Kosaraju est doncO(m+n), la même que celle d"un parcours en profondeur.Algorithme de Tarjan
permet de calculer les CFC en un seul parcours en profondeur. Pendant le parcours en profondeur deG, on utilise un tableau supplémentairet[]pour calculer, pour chaque sommet deG, le sommet le plus haut (l"ancêtre le plus ancien) vers lequel il estpossible de remonter grâce à des arcs de retour.Si jamais pour un sommetuà la fin de sa visite on at[u] =u,
on sais queuest la racine d"une composante fortement connexe.Algorithme de Tarjan
permet de calculer les CFC en un seul parcours en profondeur. Pendant le parcours en profondeur deG, on utilise un tableau supplémentairet[]pour calculer, pour chaque sommet deG, le sommet le plus haut (l"ancêtre le plus ancien) vers lequel il estpossible de remonter grâce à des arcs de retour.Si jamais pour un sommetuà la fin de sa visite on at[u] =u,
on sais queuest la racine d"une composante fortement connexe.Algorithme de Tarjan - implémentation
Danst[], au lieu de stocker
le sommet le plus haut (l"ancêtre le plus ancien) vers lequel il est possible de remonter grâce à des arcs de retour, on va stocker le début de visitedu sommet le plus haut (l"ancêtre le plus ancien) vers lequel il est possible de remonter grâce à des arcs de retour.Pour calculert[u], au début de visite deu, on l"initialise àd[u]. On le met à jour à la fin de visite de chacun de ses fils, et aussi lors d"une découverte d"un arc de retour.Algorithme de Tarjan - implémentation
Danst[], au lieu de stocker
le sommet le plus haut (l"ancêtre le plus ancien) vers lequel il est possible de remonter grâce à des arcs de retour, on va stocker le début de visitedu sommet le plus haut (l"ancêtre le plus ancien) vers lequel il est possible de remonter grâce à des arcs de retour.Pour calculert[u], au début de visite deu, on l"initialise àd[u]. On le met à jour à la fin de visite de chacun de ses fils, et aussi lors d"une découverte d"un arc de retour. Algorithme de Tarjan - implémentationAlgorithme 1 :DFS(G)Données :grapheG débutpour chaques sommet deGfairecouleur[s] BLANC ;
[s] NULL ; fin temps 0 ; pour chaques sommet deGfairesicouleur[s] =BLANC
alorsVisiter(s) ; fin fin finAlgorithme 2 :Visiter(u)début couleur[u] GRIS ; d[u] temps temps+1 ; pour chaquev voisin de u fairesicouleur[v] =BLANC alors[v] u;Visiter(v) ;
fin fin couleur[u] NOIR ; f[u] temps temps+1 ; finAlgorithme de Tarjan - implémentation
Algorithme 1 :DFS(G)Données :grapheG
débutpour chaques sommet deGfairecouleur[s] BLANC ;
[s] NULL ; fin temps 0 ; pour chaques sommet deGfairesicouleur[s] =BLANC
alorsVisiter(s) ; fin fin finAlgorithme 2 :Visiter(u)début couleur[u] GRIS ; d[u] temps temps+1 ; t[u] d[u]; pour chaquev voisin de u fairesicouleur[v] =BLANC alors[v] u;Visiter(v) ;
t[u] min(t[u];t[v]); fin sicouleur[v] =GRIS alorst[u] min(t[u];d[v]); fin fin couleur[u] NOIR ; f[u] temps temps+1 ;quotesdbs_dbs44.pdfusesText_44[PDF] parcours en largeur graphe
[PDF] parcours en profondeur itératif
[PDF] algorithme parcours en profondeur python
[PDF] parcours en largeur graphe java
[PDF] conflit de puissance définition
[PDF] parcours lecture acces pas cher
[PDF] parcours lecture pdf
[PDF] parcours lecture le petit chaperon rouge
[PDF] parcours lecture acces avis
[PDF] parcours lecture occasion
[PDF] coexistence pacifique cours
[PDF] archives militaire en ligne
[PDF] livret militaire en ligne
[PDF] la coexistence pacifique de 1953 ? 1962 pdf