cisc 235: topic 9 introduction to graphs. cisc 235 topic 92 outline graph definition terminology...
TRANSCRIPT
![Page 1: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/1.jpg)
CISC 235: Topic 9
Introduction to Graphs
![Page 2: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/2.jpg)
CISC 235 Topic 9 2
Outline
• Graph Definition
• Terminology
• Representations
• Traversals
![Page 3: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/3.jpg)
CISC 235 Topic 9 3
Graphs
A graph G = (V, E) is composed of: V: set of VerticesE: set of edges connecting the vertices in
V
An edge e = (u,v) is a pair of vertices
Example: V = {a,b,c,d,e}E = {(a,b),(a,c),(a,d),(b,e),(c,d),(c,e),(d,e)}
a b
d
c
e
![Page 4: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/4.jpg)
CISC 235 Topic 9 4
Example
TOR
OTT
KIN
ROC SYR
COR MON
450 km
100 km150 km
250 km
100 km
100 km
100 km
90 km
170 km
200 km
![Page 5: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/5.jpg)
CISC 235 Topic 9 5
Terminology
An undirected graph has undirected edges. Each edge is associated with an unordered pair.
A directed graph, or digraph, has directed edges. Each edge is associated with an ordered pair.
A weighted graph is one in which the edges are labeled with numeric values.
TO Ott
Kin
MO
500
300
200300
TO
Ott
MO
![Page 6: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/6.jpg)
CISC 235 Topic 9 6
Undirected Graphs
Adjacent (Neighbors): Two vertices connected by an edge are adjacent.
Incident: The edge that connects two vertices is incident on both of them.
Degree of a Vertex v, deg(v): The number of edges incident on it (loop at vertex is counted twice)
![Page 7: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/7.jpg)
CISC 235 Topic 9 7
Directed Graphs
Edge (u,v): u is adjacent to v
v is adjacent from u
deg -(v) : The in-degree of v, the number of edges entering it
deg +(v): The out-degree of v, the number of edges leaving it
![Page 8: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/8.jpg)
CISC 235 Topic 9 8
Euler & the Bridges of Koenigsberg
Can one walk across each bridge exactly once and return to the starting point?
![Page 9: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/9.jpg)
CISC 235 Topic 9 9
Eulerian Tour
What characteristics are required of an undirected graph for a Eulerian Tour to be possible?
![Page 10: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/10.jpg)
CISC 235 Topic 9 10
Terminology
A path is a sequence of vertices v1, v2, … vk such that vi and vi +1 are adjacent.
A simple path is a path that contains no repeated vertices, except for perhaps the first and last vertices in the path.
A cycle is a simple path, in which the last vertex is the same as the first vertex.
a b
d
c
e
a b
d
c
e
a b
d
c
e
a b
d
c
e
abecde cdeb
edc edce
![Page 11: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/11.jpg)
CISC 235 Topic 9 11
Terminology
A graph is connected if, for any two vertices, there is a path between them.
A tree is a connected graph without cycles.
A subgraph of a graph G is a graph H whose vertices and edges are subsets of the vertices and edges of G.
a b
d
c
e
a b
d
c
e
a b
c
e
graph G1 graph G2
graph G3 graph G4
a b
d
c
e
![Page 12: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/12.jpg)
CISC 235 Topic 9 12
Terminology
A forest is a graph that is a collection of trees.
More simply, it is a graph without cycles.
a b
d
c
e
a b
d
c
e
a b
c
e
a b
d
c
e
![Page 13: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/13.jpg)
CISC 235 Topic 9 13
Terminology
A complete graph is an undirected graph with every pair of vertices adjacent.
a
b
e
c
d
a
b c
b
c
a
d
a b a
![Page 14: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/14.jpg)
CISC 235 Topic 9 14
Undirected Graphs: Properties
If |E| = |V | -1 and the graph is connected, the graph is a tree
If |E| < |V | -1, the graph is not connected
If |E| > |V | -1, the graph has at least one cycle
a b
d
c
e
a b
d
c
e
a b
d
c
e
![Page 15: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/15.jpg)
CISC 235 Topic 9 15
Undirected Graphs: Properties
Let n = |V |
Let m = |E |
Sparse Graphs : m is O( n )
Dense Graphs : m is O( n2 )
Are complete graphs dense graphs?
a b
d
c
e
a
b
e
c
d
![Page 16: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/16.jpg)
CISC 235 Topic 9 16
Complete Graphs
K2
K3
K4
a
b
e
c
d
b
c
a
d
a
b c
a b n = 2
m = 1
n = 3
m = 3
n = 4
m = 6
K5
n = 5
m = 10
For Kn, m = n(n-1)/2
![Page 17: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/17.jpg)
CISC 235 Topic 9 17
Representations of Graphs
Adjacency List and Adjacency Matrix Representations of an Undirected Graph
![Page 18: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/18.jpg)
CISC 235 Topic 9 18
Representations of Graphs
Adjacency List and Adjacency Matrix Representations of a Directed Graph
![Page 19: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/19.jpg)
CISC 235 Topic 9 19
Graph Implementation
DataStore two sets of info: vertices & edgesData can be associated with both vertices & edges
A Few Typical OperationsadjacentVertices( v ) – Return list of adjacent verticesareAdjacent( v, w ) – True if vertex v is adjacent to winsertVertex( o ) – Insert new isolated vertex storing oinsertEdge( v, w, o ) – Insert edge from v to w, storing o
at this edgeremoveVertex( v ) – Remove v and all incident edgesremoveEdge( v, w ) – Remove edge (v,w)
![Page 20: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/20.jpg)
CISC 235 Topic 9 20
Graph Representations Space Analysis
Adjacency List:
Adjacency Matrix:
![Page 21: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/21.jpg)
CISC 235 Topic 9 21
Graph Representations Time Analysis
A Few Common Operations
Adjacency List Adjacency Matrix
areAdjacent( v, w )
adjacentVertices( v )
removeEdge( v, w )
![Page 22: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/22.jpg)
CISC 235 Topic 9 22
Traversals: Breadth-First Search & Depth-First Search
TOR
OTT
KIN
ROC SYR
COR MON
450 km
100 km150 km
250 km
100 km
100 km
100 km
90 km
170 km
200 km
![Page 23: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/23.jpg)
CISC 235 Topic 9 23
Breadth-First Search
bfs( vertex v )
Create a queue, Q, of vertices, initially empty
Visit v and mark it as visited
Enqueue ( v, Q )
while not empty( Q )
w = dequeue( Q )
for each unvisited vertex u adjacent to w
Visit u and mark it as visited
Enqueue( u, Q )
![Page 24: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/24.jpg)
CISC 235 Topic 9 24
Breadth-First Search on an Undirected, Connected Graph
![Page 25: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/25.jpg)
CISC 235 Topic 9 25
Depth-First Search
dfs( vertex v )
Visit v and mark it as visited
for each unvisited vertex u adjacent to v
dfs( v )
![Page 26: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/26.jpg)
Analysis of BFS & DFS
Let n = | V |
Let m = | E |
CISC 235 Topic 9 26
![Page 27: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/27.jpg)
CISC 235 Topic 9 27
Application: Java Garbage Collection
C & C++: Programmer must explicitly allocate and deallocate memory space for objects - source of errors
Java: Garbage collection deallocates memory space for objects no longer used. How?
![Page 28: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/28.jpg)
CISC 235 Topic 9 28
Mark-Sweep Garbage Collection Algorithm
• Suspend all other running threads.• Trace through the Java stacks of currently
running threads and mark as “live” all of the “root” objects.
• Traverse each object in the heap that is active, by starting at each root object, and mark it as “live”.
• Scan through the entire memory heap and reclaim any space that has not been marked.
![Page 29: CISC 235: Topic 9 Introduction to Graphs. CISC 235 Topic 92 Outline Graph Definition Terminology Representations Traversals](https://reader034.vdocuments.us/reader034/viewer/2022052401/5697bf7c1a28abf838c841c4/html5/thumbnails/29.jpg)
Algorithms Related to BFS & DFS
• How could we test whether an undirected graph G is connected?
• How could we compute the connected components of G?
• How could we compute a cycle in G or report that it has no cycle?
• How could we compute a path between any two vertices, or report that no such path exists?
• How could we compute for every vertex v of G, the minimum number of edges of any path between s and v?
CISC 235 Topic 9 29