Graph Theory, DFS - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Graph Theory, DFS

Description:

Graph Theory, DFS & BFS Kelly Choi 08-07-2006 What is a graph? A set of vertices and edges Directed/Undirected Weighted/Unweighted Cyclic/Acyclic Representation of ... – PowerPoint PPT presentation

Number of Views:210
Avg rating:3.0/5.0
Slides: 25
Provided by: Kell1270
Category:
Tags: dfs | graph | latest | theory | topics

less

Transcript and Presenter's Notes

Title: Graph Theory, DFS


1
Graph Theory, DFS BFS
  • Kelly Choi
  • 08-07-2006

2
What is a graph?
  • A set of vertices and edges
  • Directed/Undirected
  • Weighted/Unweighted
  • Cyclic/Acyclic

3
Representation of Graphs
  • Adjacency Matrix
  • A V x V array, with matrixij storing whether
    there is an edge between the ith vertex and the
    jth vertex
  • Adjacency Linked List
  • One linked list per vertex, each storing directly
    reachable vertices
  • Edge List

4
Representation of Graphs
Adjacency Matrix Adjacency Linked List Edge List
Memory Storage O(V2) O(VE) O(VE)
Check whether (u,v) is an edge O(1) O(deg(u)) O(deg(u))
Find all adjacent vertices of a vertex u O(V) O(deg(u)) O(deg(u))
deg(u) the number of edges connecting vertex u deg(u) the number of edges connecting vertex u deg(u) the number of edges connecting vertex u deg(u) the number of edges connecting vertex u
5
Graph Searching
  • Why do we do graph searching? What do we search
    for?
  • What information can we find from graph
    searching?
  • How do we search the graph? Do we need to visit
    all vertices? In what order?

6
Depth-First Search (DFS)
  • Strategy Go as far as you can (if you have not
    visit there), otherwise, go back and try another
    way

7
Implementation
  • DFS (vertex u)
  • mark u as visited
  • for each vertex v directly reachable from u
  • if v is unvisited
  • DFS (v)
  • Initially all vertices are marked as unvisited

8
Topological Sort
  • Topological order A numbering of the vertices
    of a directed acyclic graph such that every edge
    from a vertex numbered i to a vertex numbered j
    satisfies iltj
  • Topological Sort Finding the topological order
    of a directed acyclic graph

9
Example Teachers Problem
  • Emily wants to distribute candies to N students
    one by one, with a rule that if student A is
    teased by B, A can receive candy before B.
  • Given lists of students teased by each students,
    find a possible sequence to give the candies

10
Shortest Paths?
  • Given vertices s and t, if we try to find a path
    from s to t by DFS, the first path found may not
    be the shortest one.
  • How can I find a shortest path?
  • Lets first review what we have done

11
An Idea of What We Did
  • Start by visiting a certain vertex
  • Vertices fall into 3 categories
  • Unvisited
  • Visited
  • Visited Dead (All reachable vertices from these
    vertices are visited)

12
An Idea of What We Did
  • Find unvisited vertices by expanding your path
    from visited (but not dead) vertices.
  • In DFS, we choose the most recently visited
    vertex to expand.
  • Are there any other strategies?

13
Breadth-First Search (BFS)
  • Instead of going as far as possible, BFS tries to
    search all paths.
  • BFS makes use of a queue to store visited (but
    not dead) vertices, expanding the path from the
    earliest visited vertices.

14
Simulation of BFS
  • Queue

1
4
3
2
6
5
15
Implementation
  • while queue Q not empty
  • dequeue the first vertex u from Q
  • for each vertex v directly reachable from u
  • if v is unvisited
  • enqueue v to Q
  • mark v as visited
  • Initially all vertices except the start vertex
    are marked as unvisited and the queue contains
    the start vertex only

16
There is more
  • Other Graph Searching Algorithms
  • Bidirectional search (BDS)
  • Iterative deepening search (IDS)

17
Advantages
  • Guarantee shortest paths for unweighted graphs
  • Use queue instead of recursive functions
    Avoiding stack overflow

18
Flood Fill
  • An algorithm that determines the area connected
    to a given node in a multi-dimensional array
  • Start BFS/DFS from the given node, counting the
    total number of nodes visited
  • Example Squareland (HKOI 2006)

19
Graph Modeling
  • Conversion of a problem into a graph problem
  • Essential in solving most graph problems

20
Basics of graph modeling
  • Identify the vertices and the edges
  • Identify the objective of the problem
  • State the objective in graph terms
  • Implementation
  • construct the graph from the input instance
  • run the suitable graph algorithms on the graph
  • convert the output to the required format
  • (cx, 2004)

21
Other Topics in Graph Theory
  • Cut Vertices Cut Edges
  • Euler Path/Circuit Hamilton Path/Circuit
  • Planarity

22
Cut Vertices Cut Edges
  • What is a cut vertex?
  • A cut vertex is a type of graph vertex, the
    removal of which causes an increase in the number
    of connected components
  • What is a cut edge?

23
Euler Path Hamilton Path
  • An Euler path is a path in a graph which visits
    each edge exactly once
  • A Hamilton path is a path in an undirected graph
    which visits each vertex exactly once.

24
Planarity
  • A planar graph is a graph that can be drawn so
    that no edges intersect
  • K5 and K3,3 are non-planar graphs
Write a Comment
User Comments (0)
About PowerShow.com