We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Presentation is loading. Please wait.
Published byHorace Chandler
Modified about 1 year ago
© 2004 Goodrich, Tamassia Breadth-First Search1 CB A E D L0L0 L1L1 F L2L2
© 2004 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 and report a path with the minimum number of edges between two given vertices Find a simple cycle, if there is one
© 2004 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.insertLast(s) setLabel(s, VISITED ) i 0 while L i.isEmpty() L i 1 new empty sequence for all v L i.elements() for all e G.incidentEdges(v) if getLabel(e) UNEXPLORED w opposite(v,e) if getLabel(w) UNEXPLORED setLabel(e, DISCOVERY ) setLabel(w, VISITED ) L i 1.insertLast(w) else setLabel(e, 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() setLabel(u, UNEXPLORED ) for all e G.edges() setLabel(e, UNEXPLORED ) for all v G.vertices() if getLabel(v) UNEXPLORED BFS(G, v)
© 2004 Goodrich, Tamassia Breadth-First Search4 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
© 2004 Goodrich, Tamassia Breadth-First Search5 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
© 2004 Goodrich, Tamassia Breadth-First Search6 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
© 2004 Goodrich, Tamassia Breadth-First Search7 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
© 2004 Goodrich, Tamassia Breadth-First Search8 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
© 2004 Goodrich, Tamassia Breadth-First Search9 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
© 2004 Goodrich, Tamassia Breadth-First Search10 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
© 2004 Goodrich, Tamassia Breadth-First Search11 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 in the tree of discovery edges CB A E D L0L0 L1L1 F L2L2 CB A E D F DFSBFS
Breadth-First Search1 Part-H3 Breadth-First Search CB A E D L0L0 L1L1 F L2L2.
© 2010 Goodrich, Tamassia Breadth-First Search1 CB A E D L0L0 L1L1 F L2L2.
GRAPHS 1. Outline 2 Undirected Graphs and Directed Graphs Depth-First Search Breadth-First Search.
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.
© 2004 Goodrich, Tamassia Depth-First Search1 DB A C E.
1 Graphs: Concepts, Representation, and Traversal CSC401 – Analysis of Algorithms Lecture Notes 13 Graphs: Concepts, Representation, and Traversal Objectives:
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.
1 prepared from lecture material © 2004 Goodrich & Tamassia COMMONWEALTH OF AUSTRALIA Copyright Regulations 1969 WARNING This material.
Graphs. Data Structure for Graphs. Graph Traversals. Directed Graphs. Shortest Paths. 2 CPSC 3200 University of Tennessee at Chattanooga – Summer 2013.
Graphs Part 1. Outline and Reading Graphs (§13.1) – Definition – Applications – Terminology – Properties – ADT Data structures for graphs (§13.2) – Edge.
CSC311: Data Structures 1 Chapter 13: Graphs I Objectives: Graph ADT: Operations Graph Implementation: Data structures Graph Traversals: DFS and BFS Directed.
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.
CSC 213 Lecture 21: Graph Traversals CB A E D L0L0 L1L1 F L2L2 CB A E D F.
1 Graph Algorithms Lecture 09 Asst. Prof. Dr. Bunyarit Uyyanonvara IT Program, Image and Vision Computing Lab. School of Information and Computer Technology.
October 22, DFS, BFS, Biconnectivity, Digraphs 1 CS 221 West Virginia University.
1 COMP9024: Data Structures and Algorithms Week Eleven: Graphs (I) Hui Wu Session 1, 2016
Depth-First Search1 Part-H2 Depth-First Search DB A C E.
CSC 213 – Large Scale Programming Lecture 31: Graph Traversals.
Chapter 6 Graphs ORD DFW SFO LAX
CSC401: Analysis of Algorithms 6-1 CSC401 – Analysis of Algorithms Chapter 6 Graphs Objectives: Introduce graphs and data structures Discuss the graph.
October 21, Graphs1 Graphs CS 221 (slides from textbook author)
© 2004 Goodrich, Tamassia Directed Graphs1 JFK BOS MIA ORD LAX DFW SFO.
© 2004 Goodrich, Tamassia Trees1 Lecture 5 Graphs Topics Graphs ( 圖 ) Depth First Search ( 深先搜尋 ) Breast First Search ( 寬先搜尋 )
© 2010 Goodrich, Tamassia Graphs1 Graph Data Structures ORD DFW SFO LAX
CSC 213 – Large Scale Programming. Today’s Goals Make Britney sad through my color choices Revisit issue of graph terminology and usage Subgraphs,
Directed Graphs1 JFK BOS MIA ORD LAX DFW SFO. Directed Graphs2 Outline and Reading (§12.4) Reachability (§12.4.1) Directed DFS Strong connectivity Transitive.
Directed Graphs1 JFK BOS MIA ORD LAX DFW SFO. Directed Graphs2 Outline and Reading (§6.4) Reachability (§6.4.1) Directed DFS Strong connectivity Transitive.
1 Directed Graphs CSC401 – Analysis of Algorithms Lecture Notes 15 Directed Graphs Objectives: Introduce directed graphs and weighted graphs Present algorithms.
CHAPTER 13 GRAPH ALGORITHMS ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA.
Graphs 1 Last Update: Dec 4, Graphs A graph is a pair (V, E), where – V is a set of nodes, called vertices – E is a collection of pairs of vertices,
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.
MSTs1 Minimum Spanning Trees CSCI 2720 Spring 2005.
1 Applications of BFS and DFS CSE 2011 Winter May 2016.
Data Structures and Algorithms1 Data Structures and algorithms (IS ZC361) Weighted Graphs – Shortest path algorithms – MST S.P.Vimal BITS-Pilani
TTIT33 Alorithms and Optimization – DALG Lecture 4 Graphs HT TTIT33 Algorithms and optimization Algorithms Lecture 4 Graphs.
Graph Traversals Visit vertices of a graph G to determine some property: Is G connected? Is there a path from vertex a to vertex b? Does G have a cycle?
Graph Traversals CSC 172 SPRING 2004 LECTURE 21. Announcements Project 3 is graded handed back Tuesday Grad spam, tonight – if you are really anxious.
TDDB56 DALGOPT-D TDDB57 DALG-C – Lecture 11 – Graphs Graphs HT TDDB56 – DALGOPT-D Algorithms and optimization Lecture 11 Graphs.
Data Structures Lecture 14 Fang Yu Department of Management Information Systems National Chengchi University Fall 2010.
Breadth-First Search Seminar – Networking Algorithms CS and EE Dept. Lulea University of Technology 27 Jan Mohammad Reza Akhavan.
Graphs Quebec Toronto Montreal Ottawa 449 km 255 km 200 km 545 km Winnipeg 2075 km 2048 km New York 596 km 790 km 709 km.
Graphs & Paths Presentation : Part II. Graph representation Given graph G = (V, E). May be either directed or undirected. Two common ways to represent.
1 Graphs and Paths : Chapter 15 Saurav Karmakar. 2 What is a Graph? A graph G = (V,E) is composed of: V: set of vertices E: set of edges connecting the.
CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals.
Graph Traversals. For solving most problems on graphs –Need to systematically visit all the vertices and edges of a graph Two major traversals –Breadth-First.
1 The Graph Abstract Data Type CS 5050 Chapter 6.
Graphs1 Graphs Chapter 6 ORD DFW SFO LAX
Lecture 14: Graph Algorithms Shang-Hua Teng. Undirected Graphs A graph G = (V, E) –V: vertices –E : edges, unordered pairs of vertices from V V –(u,v)
Graph Searching CSE 373 Data Structures Lecture 20.
© 2017 SlidePlayer.com Inc. All rights reserved.