Learn how to traverse directed graphs using Depth-First and Breadth-First search algorithms. Explore unexplored edges, discovery edges, back edges, and more in CSE 373 course. Enhance your knowledge of graph algorithms!
01 / 93Discovering Directed Graph Algorithms with Depth-First and Breadth-First Searches
1 / 17
Télécharger la présentation
Discovering Directed Graph Algorithms with Depth-First and Breadth-First Searches
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
Depth-First Search Stack (before): Stack (after): A unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): A Stack (after): C unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): C Stack (after): D, E unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): D (from C), E Stack (after): D (from C), D (from E) unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): D (from C), D (from E) Stack (after): D (from C) unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): D (from C) Stack (after): unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): Stack (after): B unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): B Stack (after): unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): Stack (after): F unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): F Stack (after): H unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): H Stack (after): G unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): G Stack (after): I, J, L unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): I, J, L Stack (after): I, J unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): I, J Stack (after): I, K unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): I, K Stack (after): I unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Depth-First Search Stack (before): I Stack (after): unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): Queue (after): A unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): A Queue (after): C unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): C Queue (after): D, E unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): D, E Queue (after): E unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): E Queue (after): unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): Queue (after): B unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): B Queue (after): unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): B Queue (after): unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): Queue (after): F unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): F Queue (after): H unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): H Queue (after): G unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): G Queue (after): I, J, L unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): I, J, L Queue (after): J (from G), L, J (from I) unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): J (from G), L, J (from I) Queue (after): L, J (from I), K unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): L, J (from I), K Queue (after): J (from I), K unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): J (from I), K Queue (after): K unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Breadth-First Search Queue (before): K Queue (after): unexplored edge B A F H discovery edge cross edge L back edge G C forward edge D J E I K CSE 373 AU 05 - Digraph Algorithms
Topological Sort 142 322 143 321 • Problem: Find an order in • which all these courses can • be taken. • Example: 142 143 378 • 370 321 341 322 • 326 421 401 326 370 341 378 421 In order to take a course, you must take all of its prerequisites first 401 CSE 373 AU 05 - Digraph Algorithms
Topological Sort Given a digraph G = (V, E), find a total ordering of its vertices such that: for any edge (v, w) in E, v precedes w in the ordering B C A F D E CSE 373 AU 05 - Digraph Algorithms
Topo sort - good example B C Any total ordering in which all the arrows go to the right is a valid solution A F D E A F D E B C Note that F can go anywhere in this list because it is not connected. Also the solution is not unique. CSE 373 AU 05 - Digraph Algorithms
Topo sort - bad example B C Any ordering in which an arrow goes to the left is not a valid solution A F D E A F E D B C NO! CSE 373 AU 05 - Digraph Algorithms
Paths and Cycles • Given a digraph G = (V,E), a path is a sequence of vertices v1,v2, …,vk such that: • (vi,vi+1) in E for 1 < i < k • path length = number of edges in the path • path cost= sum of costs of each edge • A path is a cycle if : • k > 1; v1 = vk • G is acyclic if it has no cycles. CSE 373 AU 05 - Digraph Algorithms
Topological sort algorithm: 1 • Step 1: Identify vertices that have no incoming edges • The “in-degree” of these vertices is zero B C A F D E CSE 373 AU 05 - Digraph Algorithms
Topo sort algorithm: 1a • Step 1: Identify vertices that have no incoming edges • If no such vertices, graph has only cycle(s) (cyclic graph) • Topological sort not possible – Halt. B C A Example of a cyclic graph D CSE 373 AU 05 - Digraph Algorithms
Topo sort algorithm:1b • Step 1: Identify vertices that have no incoming edges • Select one such vertex Select B C A F D E CSE 373 AU 05 - Digraph Algorithms
Topo sort algorithm: 2 Step 2: Delete this vertex of in-degree 0 and all its outgoing edges from the graph. Place it in the output. B C A A F D E CSE 373 AU 05 - Digraph Algorithms
Continue until done Repeat Step 1 and Step 2 until graph is empty Select B C A F D E CSE 373 AU 05 - Digraph Algorithms
B Select B. Copy to sorted list. Delete B and its edges. B C A B F D E CSE 373 AU 05 - Digraph Algorithms
C Select C. Copy to sorted list. Delete C and its edges. C A B C F D E CSE 373 AU 05 - Digraph Algorithms
D Select D. Copy to sorted list. Delete D and its edges. D A B C F D E CSE 373 AU 05 - Digraph Algorithms
E, F Select E. Copy to sorted list. Delete E and its edges. Select F. Copy to sorted list. Delete F and its edges. D A B C E F F E CSE 373 AU 05 - Digraph Algorithms
Done B C A F D E D A B C E F CSE 373 AU 05 - Digraph Algorithms
Connexion au compte
Connectez-vous pour publier votre contenu sur SlideServe.