Week -7-8 Topic - Graph Algorithms CSE - PowerPoint PPT Presentation

About This Presentation
Title:

Week -7-8 Topic - Graph Algorithms CSE

Description:

Scanning each row for checking the connectivity of a Vertex is in order O(n) ... For un-weighted graphs: BFS can be used for 1. BFS can used to for 2. ... – PowerPoint PPT presentation

Number of Views:33
Avg rating:3.0/5.0
Slides: 20
Provided by: SUSH91
Learn more at: https://crystal.uta.edu
Category:

less

Transcript and Presenter's Notes

Title: Week -7-8 Topic - Graph Algorithms CSE


1
Week -7-8Topic - Graph AlgorithmsCSE
5311
  • Prepared by-
  • Sushruth Puttaswamy
  • Lekhendro Lisham

2
Contents
  • Different Parts of Vertices used in Graph
    Algorithms
  • Analysis of DFS
  • Analysis of BFS
  • Minimum Spanning Tree
  • Kruskals Algorithm
  • Shortest Paths
  • Dijkshitras Algorithm

3
Different Parts of Vertices (used in Graph
Algorithms)
  • Vertices of the Graph are kept in 3 parts as
    below
  • Visited Vertices already selected.
  • Fringe Vertices to be considered for
  • next selection.
  • Unvisited Vertices yet to consider as a
    possible candidate.

Visited
Fringe
Unvisited
  • For DFS, the Fringe Part is kept in a STACK
    while for BFS
  • QUEUE is used.

4
Brief Description of DFS
  • Explores a graph using greedy method.
  • Vertices are divided into 3 parts as it proceeds
    i.e. into Visited, Fringe Unvisited
  • Fringe part is maintained in a Stack.
  • The path is traced from last visited node.
  • Element pointed by TOS is the next vertex to be
    considered by DFS algorithm to select for Visited
    Part.

5
Data Structures use in DFS
a b e
d c Graph
with 5 Vertices
b
V F U F U
a b c d e

d
a
c
e

b
e
d

e
a
c


TOS
b
b
d
c
d


(U/V/F) 1-D Array
Adjacency list
Fringe (Stack)
6
Analysis of DFS
  • For a Graph G(V, E) and n V mE
  • When Adjacency List is used
  • Complexity is O(mn)
  • When Adjacency Matrix is used
  • This again requires a stack to maintain the
    fringe an array for maintaining the state of a
    node.
  • Scanning each row for checking the connectivity
    of a Vertex is in order O(n).
  • So, Complexity is O(n2).

2
7
Applications of DFS
  • To check if a graph is connected. The algorithm
    ends when the Stack becomes empty.
  • Graph is CONNECTED if all the vertices are
    visited.
  • Graph is DISCONNECTED if one or more vertices
  • remained unvisited.
  • Finding the connected components of a
    disconnected graph. Repeat 1 until all the
    vertices become visited. Next vertex can also be
    taken randomly.
  • Check if a graph is bi-connected (i.e. if 2
    distinct paths exist between any 2 nodes.).
  • Detecting if a given directed graph is strongly
    connected( path exists between a-b b-a).
  • Hence DFS is the champion algorithm for all
    connectivity problems

8
Analysis of BFS
  • Fringe part is maintained in a Queue.
  • The trees developed are more branched wider.
  • When Adjacency List is used
  • Complexity is O(mn)
  • When Adjacency Matrix is used
  • This requires a Queue to maintain the fringe an
    array for maintaining the state of a node.
  • Scanning each row for checking the connectivity
    of a Vertex is in order O(n).
  • So, Complexity is O(n2).

9
Minimum Spanning Tree (MST)
  • A spanning tree of a connected Graph G is a
    sub-graph of G which covers all the vertices of
    G.
  • A minimum-cost spanning tree is one whose edge
    weights add up to the least among all the
    spanning trees.
  • A given graph may have more than one spanning
    tree.
  • DFS BFS give rise to spanning trees, but they
    dont consider weights.

10
Properties MST
  • The least weight edge of the graph is always
    present in the MST.
  • Proof by contradiction

w3
w2
c
h
d
Let this be a MST. Also let us assume that the
shortest edge is not part of this tree. Consider
node g h. All edges on the path between these
nodes are longer.(w1,w2,w3) Let us take any edge
(ex-w1) delete it. We will then connect g h
directly. But this edge has a lighter weight then
already existing edges which is a contradiction.
w1
g
CONTRADICTION
11
. Properties of MST
  • For any pair of vertices a b, the edges along
    the path from a to b have to be greater than the
    weight of (a,b).

12
Kruskals Algorithm
  • An algorithm to find the minimum spanning tree of
    connected graph.
  • It makes use of the previously mentioned
    properties.
  • Step 1 Initially all the edges of the graph are
    sorted based on their weights.
  • Step2 Select the edge with minimum weight from
    the sorted list in step 1.Selected edge shouldnt
    form a cycle. Selected edge is added into the
    tree or forest.
  • Step 3 Repeat step 2 till the tree contains all
    nodes of the graph.

13
. Kruskals Algorithm
  • This algorithm works because when any edge is
    rejected it will be longer than the already
    existing edge(s).
  • The Union-Find data structure is tailor made to
    implement this algorithm.
  • Cycle formation between any 2 vertices a b is
    checked if Find(a)Find(b).
  • Applet Demo Link.

14
Analysis of Kruskals Alg.
  • If an adjacency list is used.
  • We have n vertices m edges the following steps
    are followed.
  • Sort the edges mlogm
  • Find operation 2m O(m)
  • Union - n-1 O(n)
  • O(mlogm) O(mlogn ) O(mlog n).
  • If we use path compression then find union
    become m times inverse Ackermans function.
  • But sorting always takes mlogm time.

2
15
Shortest Paths
  • The problem is to find shortest paths among
    nodes.
  • There are 3 different versions of this problem as
    shown below
  • Single source single destination shortest path
    (SSSP)
  • Single source all destinations shortest path
    (SSAP).
  • All pairs shortest path.
  • For un-weighted graphs
  • BFS can be used for 1.
  • BFS can used to for 2.
  • Running BFS from all nodes is presently the best
    algorithm for 3.

16
Dijkshitras Algorithm
  • This is an algorithm for finding the shortest
    path in a weighted graph.
  • It finds the shortest path from a single source
    node to all other nodes.
  • The shortest path from a single node to all
    destinations is a tree.
  • The following applet gives a very good
    demonstration of the Dijkshitras Algorithm. It
    finds the shortest distances from 1 city to all
    the remaining cities to which it has a path.
  • Applet

17
. Dijkshitras Algorithm
  • DIJKSTRA (G, w, s)
  • INITIALIZE-SINGLE-SOURCE(G, s)
  • S ? ø
  • Q ? VG
  • while Q ? ø
  • do u ? EXTRACT-MIN(Q)
  • S ? S U u
  • for each vertex v ? Adju do
  • if dv gt du w (u, v)
  • then dv ? du w (u, v)
  • p v ? u
  • The algorithm repeatedly selects the
    vertex u with the minimum shortest-path estimate,
    adds u to S, and relaxes all edges leaving u.

18
. Analysis of Dijkshitras Alg.
  • For a Graph G(V, E) and n V mE
  • When Binary Heap is used
  • Complexity is O((mn) log n)
  • When Fibonacci Heap is used
  • Complexity is O( m n log n)

19
  • Thank you.
Write a Comment
User Comments (0)
About PowerShow.com