© 2010 Goodrich, Tamassia Breadth-First Search1 CB A E D L0L0 L1L1 F L2L2.

Slides:



Advertisements
Similar presentations
© 2004 Goodrich, Tamassia Depth-First Search1 DB A C E.
Advertisements

Depth-First Search1 Part-H2 Depth-First Search DB A C E.
© 2004 Goodrich, Tamassia Breadth-First Search1 CB A E D L0L0 L1L1 F L2L2.
Chapter 8, Part I Graph Algorithms.
Depth-First Search1 DB A C E. 2 Outline and Reading Definitions (§6.1) Subgraph Connectivity Spanning trees and forests Depth-first search (§6.3.1) Algorithm.
Breadth-First Search1 Part-H3 Breadth-First Search CB A E D L0L0 L1L1 F L2L2.
© 2004 Goodrich, Tamassia Directed Graphs1 JFK BOS MIA ORD LAX DFW SFO.
© 2004 Goodrich, Tamassia Depth-First Search1 DB A C E.
TTIT33 Alorithms and Optimization – DALG Lecture 4 Graphs HT TTIT33 Algorithms and optimization Algorithms Lecture 4 Graphs.
Graph Traversals CSC 172 SPRING 2002 LECTURE 26. Traversing graphs Depth-First Search like a post-order traversal of a tree Breath-First Search Less like.
1 Graphs: Concepts, Representation, and Traversal CSC401 – Analysis of Algorithms Lecture Notes 13 Graphs: Concepts, Representation, and Traversal Objectives:
CSC311: Data Structures 1 Chapter 13: Graphs I Objectives: Graph ADT: Operations Graph Implementation: Data structures Graph Traversals: DFS and BFS Directed.
TDDB56 DALGOPT-D TDDB57 DALG-C – Lecture 11 – Graphs Graphs HT TDDB56 – DALGOPT-D Algorithms and optimization Lecture 11 Graphs.
1 Graph Algorithms Lecture 09 Asst. Prof. Dr. Bunyarit Uyyanonvara IT Program, Image and Vision Computing Lab. School of Information and Computer Technology.
CSC 213 – Large Scale Programming. Today’s Goals  Make Britney sad through my color choices  Revisit issue of graph terminology and usage  Subgraphs,
Graphs Part 1. Outline and Reading Graphs (§13.1) – Definition – Applications – Terminology – Properties – ADT Data structures for graphs (§13.2) – Edge.
October 22, DFS, BFS, Biconnectivity, Digraphs 1 CS 221 West Virginia University.
Graphs. Data Structure for Graphs. Graph Traversals. Directed Graphs. Shortest Paths. 2 CPSC 3200 University of Tennessee at Chattanooga – Summer 2013.
Chapter 6 Graphs ORD DFW SFO LAX
1 Applications of BFS and DFS CSE 2011 Winter May 2016.
GRAPHS 1. Outline 2  Undirected Graphs and Directed Graphs  Depth-First Search  Breadth-First Search.
1 prepared from lecture material © 2004 Goodrich & Tamassia COMMONWEALTH OF AUSTRALIA Copyright Regulations 1969 WARNING This material.
October 21, Graphs1 Graphs CS 221 (slides from textbook author)
Depth-First Search1 DB A C E. 2 Depth-first search (DFS) is a general technique for traversing a graph A DFS traversal of a graph G – Visits all the vertices.
1 Subgraphs A subgraph S of a graph G is a graph such that The vertices of S are a subset of the vertices of G The edges of S are a subset of the edges.
Depth-First Search Lecture 21: Graph Traversals
Graphs & Paths Presentation : Part II. Graph representation Given graph G = (V, E). May be either directed or undirected. Two common ways to represent.
CSC401: Analysis of Algorithms 6-1 CSC401 – Analysis of Algorithms Chapter 6 Graphs Objectives: Introduce graphs and data structures Discuss the graph.
CHAPTER 13 GRAPH ALGORITHMS ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA.
CSC 213 – Large Scale Programming Lecture 31: Graph Traversals.
1 COMP9024: Data Structures and Algorithms Week Eleven: Graphs (I) Hui Wu Session 1, 2016
© 2010 Goodrich, Tamassia Shortest Paths1 C B A E D F
Graphs ORD SFO LAX DFW Graphs 1 Graphs Graphs
CSC 172 DATA STRUCTURES.
Breadth-First Search L0 L1 L2
Graphs – Breadth First Search
Graphs 10/24/2017 6:47 AM Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and.
Directed Graphs Directed Graphs Shortest Path 12/7/2017 7:10 AM BOS
Searching Graphs ORD SFO LAX DFW Spring 2007
Breadth-First Search L0 L1 L2 C B A E D F Breadth-First Search
Breadth-First Search L0 L1 L2
COMP9024: Data Structures and Algorithms
COMP9024: Data Structures and Algorithms
Chapter 14 Graph Algorithms
Directed Graphs Directed Graphs 1 Shortest Path Shortest Path
Graphs Part 1.
Graphs.
Graphs.
Breadth-First Search L0 L1 L2 C B A E D F Breadth-First Search
Depth-First Search D B A C E Depth-First Search Depth-First Search
Breadth-First Search L0 L1 L2 C B A E D F Breadth-First Search
Breadth-First Search (BFS)
Depth-First Search D B A C E Depth-First Search Depth-First Search
Elementary Graph Algorithms
What is a Graph? a b c d e V= {a,b,c,d,e} E= {(a,b),(a,c),(a,d),
Depth-First Search D B A C E Depth-First Search Depth-First Search
Depth-First Search Graph Traversals Depth-First Search DFS.
Graphs ORD SFO LAX DFW Graphs Graphs
Subgraphs, Connected Components, Spanning Trees
Depth-First Search D B A C E Depth-First Search Depth-First Search
Searching Graphs ORD SFO LAX DFW Spring 2007
Graphs Part 1 ORD SFO LAX DFW
Copyright © Aiman Hanna All rights reserved
Depth-First Search D B A C E 4/13/2019 5:23 AM Depth-First Search
Breadth-First Search L0 L1 L2 C B A E D F Breadth-First Search
Breadth-First Search L0 L1 L2 C B A E D F 4/25/2019 3:12 AM
Applications of BFS CSE 2011 Winter /17/2019 7:03 AM.
Breadth-First Search L0 L1 L2 C B A E D F 5/14/ :22 AM
Breadth-First Search L0 L1 L2 C B A E D F 7/28/2019 1:03 PM
Presentation transcript:

© 2010 Goodrich, Tamassia Breadth-First Search1 CB A E D L0L0 L1L1 F L2L2

© 2010 Goodrich, Tamassia Breadth-First Search2  Breadth-first search (BFS) is a general technique for traversing a graph  A BFS traversal of a graph G Visits all the vertices and edges of G Determines whether G is connected Computes the connected components of G Computes a spanning forest of G  BFS on a graph with n vertices and m edges takes O(n  m ) time  BFS can be further extended to solve other graph problems Find a minimum path between two given vertices Find a simple cycle  BFS is to graphs what level-order is to binary trees

© 2010 Goodrich, Tamassia Breadth-First Search3 BFS Algorithm  The algorithm uses a mechanism for setting and getting “labels” of vertices and edges Algorithm BFS(G, s) L 0  new empty sequence L 0.insertBack(s) s.setLabel( VISITED ) i  0 while  L i.empty() L i  1  new empty sequence for all v  L i.elements() for all e  v.incidentEdges() if e.getLabel()  UNEXPLORED w  e.opposite(v) if w.getLabel()  UNEXPLORED e.setLabel( DISCOVERY ) w.setLabel( VISITED ) L i  1.insertBack(w) else e.setLabel( CROSS ) i  i  1 Algorithm BFS(G) Input graph G Output labeling of the edges and partition of the vertices of G for all u  G.vertices() u.setLabel( UNEXPLORED ) for all e  G.edges() e.setLabel( UNEXPLORED ) for all v  G.vertices() if v.getLabel()  UNEXPLORED BFS(G, v)

© 2010 Goodrich, Tamassia Example via Queue  Start vertex: 0  Traverse order: 0, 1, 2, 3, 4, 5, 6, 7  Queue contents at each step: Depth-First Search OutputQueue x Quiz! vertex 0 -> 1 -> 2 vertex 1 -> 0 -> 3 -> 4 vertex 2 -> 0 -> 5 -> 6 vertex 3 -> 1 -> 7 vertex 4 -> 1 -> 7 vertex 5 -> 2 -> 7 vertex 6 -> 2 -> 7 vertex 7 -> 3 -> 4 -> 5 -> 6

© 2010 Goodrich, Tamassia Another Example via Queue  Start vertex: 4  Traverse order: 4, 1, 7, 0, 3, 5, 6, 2  Queue contents at each step: Depth-First Search vertex 0 -> 1 -> 2 vertex 1 -> 0 -> 3 -> 4 vertex 2 -> 0 -> 5 -> 6 vertex 3 -> 1 -> 7 vertex 4 -> 1 -> 7 vertex 5 -> 2 -> 7 vertex 6 -> 2 -> 7 vertex 7 -> 3 -> 4 -> 5 -> 6

© 2010 Goodrich, Tamassia Breadth-First Search6 Example C B A E D discovery edge cross edge A visited vertex A unexplored vertex unexplored edge L0L0 L1L1 F CB A E D L0L0 L1L1 F CB A E D L0L0 L1L1 F

© 2010 Goodrich, Tamassia Breadth-First Search7 Example (cont.) CB A E D L0L0 L1L1 F CB A E D L0L0 L1L1 F L2L2 CB A E D L0L0 L1L1 F L2L2 CB A E D L0L0 L1L1 F L2L2

© 2010 Goodrich, Tamassia Breadth-First Search8 Example (cont.) CB A E D L0L0 L1L1 F L2L2 CB A E D L0L0 L1L1 F L2L2 CB A E D L0L0 L1L1 F L2L2 Animation

© 2010 Goodrich, Tamassia Breadth-First Search9 Properties Notation G s : connected component of s Property 1 BFS(G, s) visits all the vertices and edges of G s Property 2 The discovery edges labeled by BFS(G, s) form a spanning tree T s of G s Property 3 For each vertex v in L i The path of T s from s to v has i edges Every path from s to v in G s has at least i edges CB A E D L0L0 L1L1 F L2L2 CB A E D F

© 2010 Goodrich, Tamassia Breadth-First Search10 Analysis  Setting/getting a vertex/edge label takes O(1) time  Each vertex is labeled twice once as UNEXPLORED once as VISITED  Each edge is labeled twice once as UNEXPLORED once as DISCOVERY or CROSS  Each vertex is inserted once into a sequence L i  Method incidentEdges is called once for each vertex  BFS runs in O(n  m) time provided the graph is represented by the adjacency list structure Recall that  v deg(v)  2m

© 2010 Goodrich, Tamassia Breadth-First Search11 Applications  Using the template method pattern, we can specialize the BFS traversal of a graph G to solve the following problems in O(n  m) time Compute the connected components of G Compute a spanning forest of G Find a simple cycle in G, or report that G is a forest Given two vertices of G, find a path in G between them with the minimum number of edges, or report that no such path exists

© 2010 Goodrich, Tamassia Breadth-First Search12 DFS vs. BFS CB A E D L0L0 L1L1 F L2L2 CB A E D F DFSBFS ApplicationsDFSBFS Spanning forest, connected components, paths, cycles  Shortest paths  Biconnected components 

© 2010 Goodrich, Tamassia Breadth-First Search13 DFS vs. BFS (cont.) Back edge (v,w) w is an ancestor of v in the tree of discovery edges Cross edge (v,w) w is in the same level as v or in the next level CB A E D L0L0 L1L1 F L2L2 CB A E D F DFSBFS