Graph Theory - PowerPoint PPT Presentation

1 / 56
About This Presentation
Title:

Graph Theory

Description:

Now you want to know Alpha number, what is the minimum number of calls ... Problem: find a shortest path from your vertex to Alpha's vertex. Teacher's Problem ... – PowerPoint PPT presentation

Number of Views:181
Avg rating:3.0/5.0
Slides: 57
Provided by: hku61
Category:
Tags: alphas | graph | theory

less

Transcript and Presenter's Notes

Title: Graph Theory


1
Graph Theory
  • Kayman Lui
  • 20-09-2007

2
Overview
  • Graph
  • Notation and Implementation
  • Tree
  • Depth First Search (DFS)
  • DFS Forests
  • Topology Sort (T-Sort)
  • Strongly Connected Component (SCC)
  • Breadth First Search (BFS)
  • Graph Modeling
  • Variations of BFS and DFS
  • Bidirectional Search (BDS)
  • Iterative Deepening Search(IDS)

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

4
Representation of Graph
  • 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

5
Representation of Graphs
6
Trees and related terms
7
What is a tree?
  • A tree is an undirected simple graph G that
    satisfies any of the following equivalent
    conditions
  • G is connected and has no simple cycles.
  • G has no simple cycles and, if any edge is added
    to G, then a simple cycle is formed.
  • G is connected and, if any edge is removed from
    G, then it is not connected anymore.
  • Any two vertices in G can be connected by a
    unique simple path.
  • G is connected and has n - 1 edges.
  • G has no simple cycles and has n - 1 edges.

8
Graph Searching
  • Given a graph
  • Goal visit all (or some) vertices and edges of
    the graph using some strategy (the order of visit
    is systematic)
  • DFS, BFS are examples of graph searching
    algorithms
  • Some shortest path algorithms and spanning tree
    algorithms have specific visit order

9
Depth-First Search (DFS)
  • Strategy Go as far as you can (if you have not
    visit there), otherwise, go back and try another
    way
  • Example a person want to visit a place, but do
    not know the path

10
DFS (Demonstration)
11
DFS (pseudo code)
  • 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

12
Advanced DFS
  • Apart from just visiting the vertices, DFS can
    also provide us with valuable information
  • DFS can be enhanced by introducing
  • birth time and death time of a vertex
  • birth time when the vertex is first visited
  • death time when we retreat from the vertex
  • DFS tree
  • parent of a vertex

13
DFS spanning tree / forest
  • A rooted tree
  • The root is the start vertex
  • If v is first visited from u, then u is the
    parent of v in the DFS tree
  • Edges are those in forward direction of DFS, ie.
    when visiting vertices that are not visited
    before
  • If some vertices are not reachable from the start
    vertex, those vertices will form other spanning
    trees (1 or more)
  • The collection of the trees are called forest

14
DFS forest (Demonstration)
1
2
3
13
10
4
14
6
12
9
8
16
11
5
15
7
-
A
B
-
A
C
D
C
15
DFS (pseudo code)
  • DFS (vertex u)
  • mark u as visited
  • time ? time1 birthutime
  • for each vertex v directly reachable from u
  • if v is unvisited
  • parentvu
  • DFS (v)
  • time ? time1 deathutime

16
Classification of edges
  • Tree edge
  • Forward edge
  • Back edge
  • Cross edge
  • Question which type of edges is always absent in
    an undirected graph?

17
Determination of edge types
  • How to determine the type of an arbitrary edge
    (u, v) after DFS?
  • Tree edge
  • parent v u
  • Forward edge
  • not a tree edge and
  • birth v gt birth u and
  • death v lt death u
  • How about back edge and cross edge?

18
Determination of edge types
19
Applications of DFS Forests
  • Topological sorting (Tsort)
  • Strongly-connected components (SCC)
  • Some more advanced algorithms

20
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

21
Example
  • Assembly Line
  • In a factory, there is several process. Some need
    to be done before others. Can you order those
    processes so that they can be done smoothly?
  • Studying Order
  • Louis is now studying ACM materials. There are
    many topics. He needs to master some basic topics
    before understanding those advanced one. Can you
    help him to plan a smooth study plan?

22
T-sort Algorithm
  • If the graph has more then one vertex that has
    indegree 0, add a vertice to connect to all
    indegree-0 vertices
  • Let the indegree 0 vertice be s
  • Use s as start vertice, and compute the DFS
    forest
  • The death time of the vertices represent the
    reverse of topological order

23
Tsort (Demonstration)
1
2
3
4
5
8
12
13
6
7
9
10
11
14
15
16
A
B
C
G
S
D
F
E
G C F B A E D
? D E A B F C G
24
Strongly-connected components (SCC)
  • A graph is strongly-connected if
  • for any pair of vertices u and v, one can go from
    u to v and from v to u.
  • Informally speaking, an SCC of a graph is a
    subset of vertices that
  • forms a strongly-connected subgraph
  • does not form a strongly-connected subgraph with
    the addition of any new vertex

25
SCC (Illustration)
26
SCC (Algorithm)
  • Compute the DFS forest of the graph G to get the
    death time of the vertices
  • Reverse all edges in G to form G
  • Compute a DFS forest of G, but always choose the
    vertex with the latest death time when choosing
    the root for a new tree
  • The SCCs of G are the DFS trees in the DFS forest
    of G

27
SCC (Demonstration)
1
2
3
13
10
4
14
6
12
9
8
16
11
5
15
7
-
A
B
-
A
C
D
C
E
F
A
E
B
H
D
A
D
G
F
B
C
C
G
H
28
SCC (Demonstration)
29
DFS Summary
  • DFS spanning tree / forest
  • We can use birth time and death time in DFS
    spanning tree to do varies things, such as Tsort,
    SCC
  • Notice that in the previous slides, we related
    birth time and death time. But in the discussed
    applications, birth time and death time can be
    independent, ie. birth time and death time can
    use different time counter

30
Breadth-First Search (BFS)
  • Instead of going as far as possible, BFS goes
    through all the adjacent vertices before going
    further (ie. spread among next vertices)
  • Example set a house on fire, the fire will
    spread through the house
  • BFS makes use of a queue to store visited (but
    not dead) vertices, expanding the path from the
    earliest visited vertices.

31
BFS (Demonstration)
Queue
A
B
C
F
D
E
H
G
J
I
32
BFS (Pseudo code)
  • while queue not empty
  • dequeue the first vertex u from queue
  • for each vertex v directly reachable from u
  • if v is unvisited
  • enqueue v to queue
  • mark v as visited
  • Initially all vertices except the start vertex
    are marked as unvisited and the queue contains
    the start vertex only

33
Applications of BFS
  • Shortest paths finding
  • Flood-fill

34
Flood Fill
  • An algorithm that determines the area connected
    to a given node in a multi-dimensional array
  • Start BFS from the given node, counting the total
    number of nodes visited
  • It can also be handled by DFS

35
Comparisons of DFS and BFS
36
What is graph modeling?
  • Conversion of a problem into a graph problem
  • Sometimes a problem can be easily solved once its
    underlying graph model is recognized
  • Graph modeling appears in many ACM problems

37
Basics of graph modeling
  • A few steps
  • 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

38
Examples(1)
  • Given a grid maze with obstacles, find a shortest
    path between two given points

39
Examples (2)
  • A student has the phone numbers of some other
    students
  • Suppose you know all pairs (A, B) such that A has
    Bs number
  • Now you want to know Alpha number, what is the
    minimum number of calls you need to make?

40
Examples (2)
  • Vertex student
  • Edge whether A has Bs number
  • Add an edge from A to B if A has Bs number
  • Problem find a shortest path from your vertex to
    Alphas vertex

41
Teachers Problem
  • Question A teacher wants to distribute sweets to
    students in an order such that, if student u
    tease student v, u should not get the sweet
    before v
  • Vertex student
  • Edge directed, (v,u) is a directed edge if
    student v tease u
  • Algorithm T-sort

42
Variations of BFS and DFS
  • Bidirectional Search (BDS)
  • Iterative Deepening Search(IDS)

43
Bidirectional search (BDS)
  • Searches simultaneously from both the start
    vertex and goal vertex
  • Commonly implemented as bidirectional BFS

44
BDS Example Bomber Man (1 Bomb)
  • find the shortest path from the upper-left corner
    to the lower-right corner in a maze using a bomb.
    The bomb can destroy a wall.

45
Bomber Man (1 Bomb)
1
2
3
4
11
12
12
13
4
10
6
6
7
7
8
9
5
8
5
9
1
2
3
4
10
11
12
13
Shortest Path length 8
46
Iterative deepening search (IDS)
  • Iteratively performs DFS with increasing depth
    bound
  • Shortest paths are guaranteed

47
IDS
48
IDS (pseudo code)
  • DFS (vertex u, depth d)
  • mark u as visited
  • if (dgt0)
  • for each vertex v directly reachable from u
  • if v is unvisited
  • DFS (v,d-1)
  • i0
  • Do
  • DFS(start vertex,i)
  • Increment i
  • While (target is not found)

49
IDS Complexity (the details can be skipped)
  • ( )bm
  • ( ) bm

- b is branching factor- td is the number of
vertices visited for depth d
50
Conclusion
  • The complexity of IDS is the same as DFS

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

52
Cut Vertices Cut Edges
  • What is a cut vertex?
  • The removal of a set of vertices causes a
    connected graph disconnected
  • What is a cut edge?
  • The removal of a set of edges causes a connected
    graph disconnected

53
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.

54
Planarity
  • A planar graph is a graph that can be drawn so
    that no edges intersect
  • K5 and K3,3 are non-planar graphs

55
Last QuestionEquation
  • Question Find the number of solution of xi,
    given ki,pi. 1ltnlt6, 1ltxilt150
  • Vertex possible values of
  • k1x1p1 , k1x1p1 k2x2p2 , k1x1p1 k2x2p2
    k3x3p3 , k4x4p4 , k4x4p4 k5x5p5 , k4x4p4
    k5x5p5 k6x6p6

56
Graph problems in Uva
  • 280
  • 336
  • 532
  • 572
  • 10592
Write a Comment
User Comments (0)
About PowerShow.com