CSE 589 Applied Algorithms Spring 1999 Course Introduction Depth First Search.

Slides:



Advertisements
Similar presentations
Lecture 15. Graph Algorithms
Advertisements

Algorithms (and Datastructures) Lecture 3 MAS 714 part 2 Hartmut Klauck.
Cpt S 223 – Advanced Data Structures Graph Algorithms: Introduction
IKI 10100: Data Structures & Algorithms Ruli Manurung (acknowledgments to Denny & Ade Azurat) 1 Fasilkom UI Ruli Manurung (Fasilkom UI)IKI10100: Lecture10.
CS 206 Introduction to Computer Science II 03 / 27 / 2009 Instructor: Michael Eckmann.
Graph Searching CSE 373 Data Structures Lecture 20.
CS 206 Introduction to Computer Science II 11 / 07 / 2008 Instructor: Michael Eckmann.
Graphs By JJ Shepherd. Introduction Graphs are simply trees with looser restrictions – You can have cycles Historically hard to deal with in computers.
Graphs COL 106 Slide Courtesy : Douglas W. Harder, U Waterloo.
Graph & BFS.
Graphs CS-240/341. Graphs Used for representing many-to-many relationships –can take two forms directed (digraph) - a finite set of elements called vertices.
Graph Algorithms: Minimum Spanning Tree We are given a weighted, undirected graph G = (V, E), with weight function w:
Directed Graph Algorithms CSE 373 Data Structures Lecture 14.
Graphs CS-240/341. Uses for Graphs computer networks and routing airline flights geographic maps course prerequisite structures tasks for completing a.
Spring 2010CS 2251 Graphs Chapter 10. Spring 2010CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs.
CS 206 Introduction to Computer Science II 11 / 03 / 2008 Instructor: Michael Eckmann.
CS 206 Introduction to Computer Science II 11 / 05 / 2008 Instructor: Michael Eckmann.
CSE 326: Data Structures Spanning Trees Ben Lerner Summer 2007.
EE 220 (Data Structures and Analysis of Algorithms) Instructor: Saswati Sarkar T.A. Prasanna Chaporkar, Programming.
CS 206 Introduction to Computer Science II 03 / 30 / 2009 Instructor: Michael Eckmann.
CSE 589 Applied Algorithms Course Introduction. CSE Lecture 1 - Spring Instructors Instructor –Richard Ladner –206.
Design and Analysis of Algorithms Minimum Spanning trees
Tirgul 7 Review of graphs Graph algorithms: – BFS (next tirgul) – DFS – Properties of DFS – Topological sort.
Instructor: Dr. Sahar Shabanah Fall Lectures ST, 9:30 pm-11:00 pm Text book: M. T. Goodrich and R. Tamassia, “Data Structures and Algorithms in.
Data Structures Using C++ 2E
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
Been-Chian Chien, Wei-Pang Yang, and Wen-Yang Lin 6-1 Chapter 6 Graphs Introduction to Data Structure CHAPTER 6 GRAPHS 6.1 The Graph Abstract Data Type.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
Introduction to Graphs. Introduction Graphs are a generalization of trees –Nodes or verticies –Edges or arcs Two kinds of graphs –Directed –Undirected.
1 Applications of BFS and DFS CSE 2011 Winter May 2016.
CSE332: Data Abstractions Lecture 24.5: Interlude on Intractability Dan Grossman Spring 2012.
CS Data Structures II Review & Final Exam. 2 Topics Review Final Exam.
Graphs. Definitions A graph is two sets. A graph is two sets. –A set of nodes or vertices V –A set of edges E Edges connect nodes. Edges connect nodes.
1 BIM304: Algorithm Design Time: Friday 9-12am Location: B4 Instructor: Cuneyt Akinlar Grading –2 Midterms – 20% and 30% respectively –Final – 30% –Projects.
Graph Introduction, Searching Graph Theory Basics - Anil Kishore.
CSC212 Data Structure - Section AB
Graphs A graphs is an abstract representation of a set of objects, called vertices or nodes, where some pairs of the objects are connected by links, called.
Graphs Slide credits:  K. Wayne, Princeton U.  C. E. Leiserson and E. Demaine, MIT  K. Birman, Cornell U.
CSE 421 Algorithms Richard Anderson Winter 2009 Lecture 5.
Chapter 20: Graphs. Objectives In this chapter, you will: – Learn about graphs – Become familiar with the basic terminology of graph theory – Discover.
Graph Representations And Traversals. Graphs Graph : – Set of Vertices (Nodes) – Set of Edges connecting vertices (u, v) : edge connecting Origin: u Destination:
Graph Searching CSIT 402 Data Structures II. 2 Graph Searching Methodology Depth-First Search (DFS) Depth-First Search (DFS) ›Searches down one path as.
CSE 421 Algorithms Richard Anderson Autumn 2015 Lecture 5.
CSE 589 Applied Algorithms Spring 1999 Prim’s Algorithm for MST Load Balance Spanning Tree Hamiltonian Path.
CSC 213 – Large Scale Programming Lecture 31: Graph Traversals.
Graphs David Kauchak cs302 Spring Admin HW 12 and 13 (and likely 14) You can submit revised solutions to any problem you missed Also submit your.
Lecture #13. Topics 1.The Graph Abstract Data Type. 2.Graph Representations. 3.Elementary Graph Operations.
Week 11 - Wednesday.  What did we talk about last time?  Exam 2  And before that:  Graph representations  Depth first search.
Nattee Niparnan. Graph  A pair G = (V,E)  V = set of vertices (node)  E = set of edges (pairs of vertices)  V = (1,2,3,4,5,6,7)  E = ((1,2),(2,3),(3,5),(1,4),(4,
Lecture 11 Graph Algorithms
CC 215 Data Structures Graph Searching
I206: Lecture 15: Graphs Marti Hearst Spring 2012.
CS120 Graphs.
Definition In simple terms, an algorithm is a series of instructions to solve a problem (complete a task) We focus on Deterministic Algorithms Under the.
Graph Algorithm.
CSE 373 Data Structures and Algorithms
Chapter 11 Graphs.
CSE 373 Data Structures Lecture 16
Richard Anderson Autumn 2016 Lecture 5
Richard Anderson Winter 2009 Lecture 6
CSE 373: Data Structures and Algorithms
CSE 417: Algorithms and Computational Complexity
Chapter 14 Graphs © 2011 Pearson Addison-Wesley. All rights reserved.
Richard Anderson Winter 2019 Lecture 6
Richard Anderson Lecture 5 Graph Theory
Lecture 10 Graph Algorithms
Richard Anderson Winter 2019 Lecture 5
Richard Anderson Autumn 2015 Lecture 6
For Friday Read chapter 9, sections 2-3 No homework
Presentation transcript:

CSE 589 Applied Algorithms Spring 1999 Course Introduction Depth First Search

CSE Lecture 1 - Spring Instructors Instructor –Richard Ladner – TA –Saurabh Sinha –

CSE Lecture 1 - Spring Resources 589 Course Web Page – Papers and Sections from Books Recommended Algorithms Book –Introduction to Algorithms by Cormen, Leiserson, and Rivest

CSE Lecture 1 - Spring Engagement by Students Weekly Assignments –Algorithm design and evaluation Project with a written report –Evaluate several alternative approaches to algorithmically solve a problem –Must include readings from literature –May include an implementation study –May be done in small teams

CSE Lecture 1 - Spring Final Exam and Grading Thursday, June 10th, 6:30 - 8:20 pm Percentages –Weekly Assignments 30% –Project 30% –Final 40%

CSE Lecture 1 - Spring Some Topics Network spanning tree (warm up) Cache conscious sorting Data Compression Computational Biology Computational Geometry

CSE Lecture 1 - Spring Along the Way Analysis of algorithms Data structures NP-completeness Dynamic programming Greedy algorithms Clustering algorithms Branch-and-bound algorithms Approximation algorithms Classics of algorithms

CSE Lecture 1 - Spring What We’ll Do Today Applied Algorithms - By example Broadcasting in a network Depth First Search Breadth First Search Minimum Spanning Tree

CSE Lecture 1 - Spring Applied Algorithm Scenario Real world problem Abstractly model the problem Find abstract algorithm Adapt to original problem

CSE Lecture 1 - Spring Modeling What kind of algorithm is needed –Sorting or Searching –Graph Problem –Linear Programming –Dynamic Programming –Clustering –Algebra Can I find an algorithm or do I have to invent one

CSE Lecture 1 - Spring Broadcasting in a Network Network of Routers –Organize the routers to efficiently broadcast messages to each other Incoming message Duplicate and send to some neighbors. Eventually all routers get the message

CSE Lecture 1 - Spring Spanning Tree in a Graph Vertex = router Edge = link between routers Spanning tree - Connects all the vertices - No cycles

CSE Lecture 1 - Spring Undirected Graph G = (V,E) –V is a set of vertices (or nodes) –E is a set of unordered pairs of vertices V = {1,2,3,4,5,6,7} E = {{1,2},{1,6},{1,5},{2,7},{2,3}, {3,4},{4,7},{4,5},{5,6}} 2 and 3 are adjacent 2 is incident to edge {2,3}

CSE Lecture 1 - Spring Spanning Tree Problem Input: An undirected graph G = (V,E). G is connected. Output: T contained in E such that –(V,T) is a connected graph –(V,T) has no cycles

CSE Lecture 1 - Spring Depth First Search Algorithm Recursive marking algorithm Initially every vertex is unmarked DFS(i: vertex) mark i; for each j adjacent to i do if j is unmarked then DFS(j) end{DFS}

CSE Lecture 1 - Spring Example of Depth First Search DFS(1)

CSE Lecture 1 - Spring Example Step DFS(1) DFS(2)

CSE Lecture 1 - Spring Example Step DFS(1) DFS(2) DFS(7)

CSE Lecture 1 - Spring Example Step DFS(1) DFS(2) DFS(7) DFS(5)

CSE Lecture 1 - Spring Example Step DFS(1) DFS(2) DFS(7) DFS(5) DFS(4)

CSE Lecture 1 - Spring Example Step DFS(1) DFS(2) DFS(7) DFS(5) DFS(4) DFS(3)

CSE Lecture 1 - Spring Example Step DFS(1) DFS(2) DFS(7) DFS(5) DFS(4) DFS(3) DFS(6) Note that the edges traversed in the depth first search form a spanning tree.

CSE Lecture 1 - Spring Spanning Tree Algorithm ST(i: vertex) mark i; for each j adjacent to i do if j is unmarked then Add {i,j} to T; ST(j); end{ST} Main T := empty set; ST(1); end{Main}

CSE Lecture 1 - Spring Applied Algorithm Scenario Real world problem Abstractly model the problem Find abstract algorithm Adapt to original problem Evaluate Wrong problem Wrong model Incorrect algorithm poor performance

CSE Lecture 1 - Spring Evaluation Step Expanded Algorithm Correct? Choose Data Structure Performance? Implement yes satisfactory no unsatisfactory - New algorithm - New model - New problem - New data structure - New algorithm - New model

CSE Lecture 1 - Spring Correctness of ST Algorithm There are no cycles in T –This is an invariant of the algorithm. –Each edge added to T goes from a vertex in T to a vertex not in T. If G is connected then eventually every vertex is marked. 1 unmarked

CSE Lecture 1 - Spring Correctness (cont.) If G is connected then so is (V,T) i j 1

CSE Lecture 1 - Spring Data Structure Step Algorithm Correct? Choose Data Structure Performance? Implement yes satisfactory no unsatisfactory - New algorithm - New model - New problem - New data structure - New algorithm - New model

CSE Lecture 1 - Spring Edge List and Adjacency Lists List of edges Adjacency lists

CSE Lecture 1 - Spring Adjacency Matrix

CSE Lecture 1 - Spring Data Structure Choice Edge list –Simple but does not support depth first search Adjacency lists –Good for sparse graphs –Supports depth first search Adjacency matrix –Good for dense graphs –Supports depth first search

CSE Lecture 1 - Spring Spanning Tree with Adjacency Lists ST(i: vertex) M[i] := 1; v := G[i]; while not(v = null) j := v.vertex; if M[j] = 0 then Add {i,j} to T; ST(j); v := v.next; end{ST} Main G is array of adjacency lists; M[i] := 0 for all i; T is empty; Spanning_Tree(1); end{Main} nextvertex M is the marking array Node of linked list

CSE Lecture 1 - Spring Performance Step Algorithm Correct? Choose Data Structure Performance? Implement yes satisfactory no unsatisfactory - New algorithm - New model - New problem - New data structure - New algorithm - New model

CSE Lecture 1 - Spring Performance of ST Algorithm n vertices and m edges Connected graph Storage complexity O(m) Time complexity O(m)

CSE Lecture 1 - Spring Other Uses of Depth First Search Popularized by Hopcroft and Tarjan 1973 Connected components Biconnected components Strongly connected components in directed graphs topological sorting of a acyclic directed graphs