cse 2331 5331 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CSE 2331/5331 PowerPoint Presentation
Download Presentation
CSE 2331/5331

Loading in 2 Seconds...

play fullscreen
1 / 57

CSE 2331/5331 - PowerPoint PPT Presentation


  • 83 Views
  • Uploaded on

CSE 2331/5331. Topic 11: Basic Graph Alg. Representations Undirected graph Directed graph Topological sort. a. b. c. d. e. f. What Is A Graph. Graph G = (V, E) V: set of nodes E: set of edges. Example: V ={ a, b, c, d, e, f }

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CSE 2331/5331' - brianna-meyer


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cse 2331 5331

CSE 2331/5331

Topic 11:

Basic Graph Alg.

Representations Undirected graph

Directed graph

Topological sort

CSE 2331/5331

what is a graph

a

b

c

d

e

f

What Is A Graph
  • Graph G = (V, E)
  • V: set of nodes
  • E: set of edges
  • Example:
    • V ={ a, b, c, d, e, f }
    • E ={(a, b), (a, d), (a, e), (b, c), (b, d), (b, e), (c, e), (e,f)}

CSE 2331/5331

slide3

a

b

c

d

e

f

  • Un-directed graph
  • Directed graph

CSE 2331/5331

un directed graphs
Un-directed graphs

CSE 2331/5331

vertex degree

a

b

c

d

e

f

Vertex Degree
  • deg(v) = degree of v = # edges incident on v
  • Lemma:

CSE 2331/5331

some special graphs
Some Special Graphs
  • Complete graph
  • Path
  • Cycle
  • Planar graph
  • Tree

CSE 2331/5331

representations of graphs
Representations of Graphs
  • Adjacency lists
    • Each vertex u has a list, recording its neighbors
      • i.e., all v’s such that (u, v)  E
    • An array of V lists
      • V[i].degree = size of adj list for node
      • V[i].AdjList= adjacency list for node

CSE 2331/5331

adjacency lists
Adjacency Lists
  • For vertex v  V, its adjacency list
    • has size: deg(v)
    • decide whether (v, u)  E or not in time O(deg(v))
  • Size of data structure (space complexity):
    • O(|V| + |E|) = O(V+E)

CSE 2331/5331

adjacency matrix
Adjacency Matrix
  • matrix
    • if is an edge
    • Otherwise,

CSE 2331/5331

adjacency matrix1
Adjacency Matrix
  • Size of data structure:
    • O ( V  V)
  • Time to determine if (v, u)  E :
    • O(1)
  • Though larger, it is simpler compared to adjacency list.

CSE 2331/5331

sample graph algorithm
Sample Graph Algorithm
  • Input: Graph G represented by adjacency lists

Running time:

O(V + E)

CSE 2331/5331

connectivity
Connectivity
  • A path in a graph is a sequence of vertices such that there is an edge between any two adjacent vertices in the sequence
  • Two vertices are connected if there is a path in G from u to w.
    • We also say that w is reachable from u.
  • A graph G is connected if every pair of nodes are connected.

CSE 2331/5331

connectivity checking
Connectivity Checking
  • How to check if the graph is connected?
  • One approach: Graph traversal
    • BFS: breadth-first search
    • DFS: depth-first search

CSE 2331/5331

bfs breadth first search
BFS: Breadth-first search
  • Input:
    • Given graph G = (V, E), and a source node s  V
  • Output:
    • Will visit all nodes in V reachable from s
    • For each output a value
      • distance (smallest # of edges) from s to v.
      • if v is not reachable from s.

CSE 2331/5331

intuition
Intuition
  • Starting from source node s,
    • Spread a wavefront to visit other nodes
    • First visit all nodes one edge away from s
    • Then all nodes two edges away from s

Need a data-structure

to store nodes

to be explored.

CSE 2331/5331

intuition cont
Intuition cont.
  • A node can be:
    • un-discovered
    • discovered, but not explored
    • explored (finished)
  • :
    • is set when node v is first discovered.
  • Need a data structure to store discovered but un-explored nodes
    • FIFO ! Queue

CSE 2331/5331

pseudo code
Pseudo-code

Use adjacency list

representation

Time complexity:

O(V+E)

CSE 2331/5331

correctness of algorithm
Correctness of Algorithm
  • A node not reachable from s will not be visited
  • A node reachable from s will be visited
  • computed is correct:
    • Intuitively, if all nodes k distance away from s are in level k, and no other nodes are in level k,
    • Then all nodes (k+1)-distance away from s must be in level (k+1).
    • Rigorous proof by induction

CSE 2331/5331

connectivity checking1
Connectivity-Checking

Time complexity:

O(V+E)

CSE 2331/5331

summary for bfs
Summary for BFS
  • Starting from source node s, visits remaining nodes of graph from small distance to large distance
  • This is one way to traverse an input graph
    • With some special property where nodes are visited in non-decreasing distance to the source node s.
    • Return distance between s to any reachable node in time O(|V| + |E|)

CSE 2331/5331

dfs depth first search
DFS: Depth-First Search
  • Another graph traversal algorithm
  • BFS:
    • Go as broad as possible in the algorithm
  • DFS:
    • Go as deep as possible in the algorithm

CSE 2331/5331

example
Example
  • Perform DFS starting from
  • What if we add edge

CSE 2331/5331

slide23
DFS
  • Time complexity
    • O(V+E)

CSE 2331/5331

depth first search tree
Depth First Search Tree
  • If v is discovered when exploring u
    • Set
  • The collection of edges
    • form a tree,
    • called Depth-first search tree.

CSE 2331/5331

dfs with dfs tree
DFS with DFS Tree

CSE 2331/5331

example1
Example
  • Perform DFS starting from

CSE 2331/5331

remarks
Remarks
  • DFS(G, k)
    • Another way to compute all nodes reachable to the node
  • Same time complexity as BFS
  • There are nice properties of DFS and DFS tree that we are not reviewing in this class.

CSE 2331/5331

directed graphs
Directed Graphs

CSE 2331/5331

slide31

a

b

c

d

e

f

  • Un-directed graph
  • Directed graph
    • Each edge is directed from u to v

CSE 2331/5331

vertex degree1

a

b

c

d

e

f

Vertex Degree
  • indeg(v) = # edges of the form
  • outdeg(v) = # edges of the form
  • Lemma:
  • Lemma:

CSE 2331/5331

representations of graphs1
Representations of Graphs
  • Adjacency lists
    • Each vertex u has a list, recording its neighbors
      • i.e., all v’s such that (u, v)  E
    • An array of V lists
      • V[i].degree = size of adj list for node
      • V[i].AdjList= adjacency list for node

CSE 2331/5331

adjacency lists1
Adjacency Lists
  • For vertex v  V, its adjacency list
    • has size: outdeg(v)
    • decide whether (v, u)  E or not in time O(outdeg(v))
  • Size of data structure (space complexity):
    • O(V+E)

CSE 2331/5331

adjacency matrix2
Adjacency Matrix
  • matrix
    • if is an edge
    • Otherwise,

CSE 2331/5331

adjacency matrix3
Adjacency Matrix
  • Size of data structure:
    • O ( V  V)
  • Time to determine if (v, u)  E :
    • O(1)
  • Though larger, it is simpler compared to adjacency list.

CSE 2331/5331

sample graph algorithm1
Sample Graph Algorithm
  • Input: Directed graph G represented by adjacency list

Running time:

O(V + E)

CSE 2331/5331

connectivity1
Connectivity
  • A path in a graph is a sequence of vertices such that there is an edge between any two adjacent vertices in the sequence
  • Given two vertices we say that wis reachable from u if there is a path in G from u to w.
    • Note: w is reachable from uDOES NOT necessarily mean that u is reachable from w.

CSE 2331/5331

reachability test
Reachability Test
  • How many (or which) vertices are reachable from a source node, say ?

CSE 2331/5331

bfs and dfs
BFS and DFS
  • The algorithms for BFS and DFS remain the same
    • Each edge is now understood as a directed edge
  • BFS(V,E, s) :
    • visits all nodes reachable from s in non-decreasing order

CSE 2331/5331

slide41
BFS
  • Starting from source node s,
    • Spread a wavefront to visit other nodes
    • First visit all nodes one edge away from s
    • Then all nodes two edges away from s

CSE 2331/5331

pseudo code1
Pseudo-code

Use adjacency list

representation

Time complexity:

O(V+E)

CSE 2331/5331

number of reachable nodes
Number of Reachable Nodes

Compute # nodes

reachable from

Time complexity:

O(V+E)

CSE 2331/5331

dfs depth first search1
DFS: Depth-First Search
  • Similarly, DFS remains the same
    • Each edge is now a directed edge
  • If we start with all nodes unvisited,
    • Then DFS(G, visits all nodes reachable to node
  • BFS from previous NumReachable() procedure can be replaced with DFS.

CSE 2331/5331

more example
More Example
  • Is reachable from ?
  • Is reachable from ?

CSE 2331/5331

slide46

DFS above can be replaced with BFS

DFS(G, k);

CSE 2331/5331

topological sort
Topological Sort

CSE 2331/5331

directed acyclic graph
Directed Acyclic Graph
  • A directed cycle is a sequence such that there is a directed edge between any two consecutive nodes.
  • DAG: directed acyclic graph
    • Is a directed graph with no directed cycles.

CSE 2331/5331

topological sort1

undershorts

socks

watch

pants

shoes

shirt

belt

tie

jacket

Topological Sort
  • A topological sort of a DAG G = (V, E)
    • A linear ordering A of all vertices from V
    • If edge (u,v)  E => A[u] < A[v]

CSE 2331/5331

another example
Another Example

Why requires DAG?

Is the sorting order

unique?

CSE 2331/5331

slide51

A topological sorted order of graph G exists if and only if G is a directed acyclic graph (DAG).

CSE 2331/5331

question
Question
  • How to topologically sort a given DAG?
  • Intuition:
    • Which node can be the first node in the topological sort order?
    • A node with in-degree 0 !
    • After we remove this, the process can be repeated.

CSE 2331/5331

example2

undershorts

socks

watch

pants

shoes

shirt

belt

tie

jacket

Example

CSE 2331/5331

slide56

Time complexity

    • O(V+E)
  • Correctness:
    • What if the algorithm terminates before we finish visiting all nodes?
    • Procedure TopologicalSort(G) outputs a sorted list of all nodes if and only if the input graph G is a DAG
      • If G is not DAG, the algorithm outputs only a partial list of vertices.

CSE 2331/5331

remarks1
Remarks
  • Other topological sort algorithm by using properties of DFS

CSE 2331/5331