GRAPHS - PowerPoint PPT Presentation

About This Presentation
Title:

GRAPHS

Description:

Consistency - rules to determine the order of visits (top-down, ... make the path consistent with the actual graph (don't change conventions) Graph Traversals ... – PowerPoint PPT presentation

Number of Views:35
Avg rating:3.0/5.0
Slides: 40
Provided by: elizabe185
Category:

less

Transcript and Presenter's Notes

Title: GRAPHS


1
GRAPHS
2
Definition
  • The Graph Data Structure
  • set V of vertices
  • collection E of edges (pairs of vertices in V)
  • Drawing of a Graph
  • vertex lt-gt circle/oval
  • edge lt-gt line connecting the vertex pair

3
Sample Uses
  • Airports and flights
  • Persons and acquaintance relationships
  • Intersections and streets
  • Computers and connections the Internet

4
Graph Example
  • Graph G(V,E)
  • Va,b,c,d, E(a,b),(b,c),(b,d),(a,d)

a
b
c
d
5
Adjacency
  • Vertices connected by an edge are adjacent
  • An edge e is incident on a vertex v (and
    vice-versa) if v is an endpoint of e
  • Degree of a vertex v, deg(v)
  • number of edges incident on v
  • if directed graph, indeg(v) and outdeg(v)

6
Graph Properties
  • Graph G with n vertices and m edges
  • ?v in G deg(v) 2m
  • ?v in G indeg(v) ?v in G outdeg(v) m
  • m is O(n2)
  • m lt n(n-1)/2 if G is undirected
  • m lt n(n-1) if G is directed

7
Subgraphs
  • Graph H a subgraph of graph G
  • vertex set of H is a subset of vertex set of G
  • edge set of H is a subset of edge set of G
  • Spanning subgraph
  • vertex set of H identical to vertex set of G

8
Paths and Cycles
  • (simple) Path
  • sequence of distinct vertices such that
    consecutive vertices are connected through edges
  • (simple) Cycle
  • same as path except that first and last vertices
    are identical
  • Directed paths and cycles
  • edge directions matter

9
Connectivity
  • Connected graph
  • there is a path between any two vertices

10
Graph Methods
  • Container methods
  • General or Global methods
  • numVertices(),numEdges(),vertices(),edges()
  • Directed Edge methods
  • indegree(v), inadjacentVertices(v),
    inincidentEdges(v)
  • Update methods
  • adding/removing vertices or edges

11
General Methods
  • numvertices()-returns the number of vertices in
    G
  • numedges()- returns the number of edges in G
  • vertices()- return an enumeration of the vertex
    positions in G
  • edges()- returns an enumeration of the edge
    positions in G

12
General Methods
  • Degree (v) - returns the degree of v
  • adjacentvertices(v)- returns an enumeration of
    the vertices adjacent to v
  • incidentedges(v)- returns an enumeration of the
    edges incident upon v
  • endvertices(e)- return an array of size 2
    storing the end vertices of e

13
Directed Edges
  • Directededges()- return an enumeration of all
    directed edges
  • indegree(v)- return the indegree of v
  • outdegree(v)- return the outdegree of v
  • origin (v)- return the origin of directed edge e
  • other functions- inadjacentvertices(),
    outadjacentvertices(), destination()

14
Updating Graphs
  • Insertedge(v,w,o)- insert and return an
    undirected edge between vertices v and w storing
    the object o at this position
  • Insertvertex(o)- insert and return a new vertex
    storing the object o at this position
  • removevertex (v)- remove the vertex v and all
    incident edges
  • removeedge(e)- remove edge e

15
  • Implementation of a graph data structure

16
Graph Implementations
  • Edge List
  • vertices and edges are nodes
  • edge nodes refer to incident vertex nodes
  • Adjacency List
  • same as edge list but vertex nodes also refer to
    incident edge nodes
  • Adjacency Matrix
  • 2D matrix of vertices entries are edges

17
Implementation Examples
  • Illustrate the following graph using the
    different implementations

4
a
b
5
1
3
c
d
2
18
Edge List
19
Adjacency List
20
Adjacency Matrix
21
Implementation Examples-Query
  • Illustrate the following graph using the
    different implementations

4
a
b
8
5
e
1
3
6
c
7
d
2
22
Comparing Implementations
  • Edge List
  • simplest but most inefficient
  • Adjacency List
  • many vertex operations are O(d) time where d is
    the degree of the vertex
  • Adjacency Matrix
  • adjacency test is O(1)
  • addition/removal of a vertex resize 2D array

23
Graph Traversals
  • Traversal- A systematic procedure for exploring
    a graph by examining all of its vertices and
    edges
  • Consistency- rules to determine the order of
    visits (top-down, alphabetical,etc.)- make the
    path consistent with the actual graph (dont
    change conventions)

24
Graph Traversals
  • Depth First Search (DFS)
  • visit a starting vertex s
  • recursively visit unvisited adjacent vertices
  • Breadth First Search (BFS)
  • visit starting vertex s
  • visit unvisited vertices adjacent to s, then
    visit unvisited vertices adjacent to them, and so
    on (visit by levels)

25
DFS Traversal
  • Depth First Search- recursively visit (traverse)
    unvisited vertices
  • Dead End- reaching a vertex where all the
    incident edges go to a previously visited vertex
  • Back Track- If a dead-end vertex is reached, go
    to the previous vertex

26
Traversal Examples
  • DFS a,b,c,d,h,e,f,g,l,k,j,i

c
b
d
a
e
g
f
h
i
j
l
k
27
DFS Traversal
  • Path of the DFS traversal- patha,b,c,d,h- h is
    a dead end vertex- back track to d,c,b,a and go
    to another adjacent (unvisited) vertex -gt e-
    patha,e,f,g,k,j,i- i is a dead end vertex -
    back track to all the way back to a (also a dead
    end vertex)
  • finished

28
BFS Traversal
  • Visit adjacent vertices by levels
  • discovery edges- edges that lead to an unvisited
    vertex
  • cross edge- edges that lead to a previously
    visited vertex

29
Traversal Examples
  • BFS a,b,e,i,c,f,j,d,g,k,h,l

c
b
d
a
e
g
f
h
i
j
l
k
30
DFS Algorithm
  • Algorithm DFS(v)
  • Input Vertex v
  • Output Depends on the application
  • mark v as visited perform processing
  • for each vertex w adjacent to v do
  • if w is unmarked then
  • DFS(w)

31
BFS Algorithm
  • Algorithm BFS(s)
  • Input Starting vertex s
  • Output Depends on the application
  • // traversal algorithm uses a queue Q
  • // loop terminates when Q is empty

32
BFS Algorithm continued
  • Q ? new Queue()
  • mark s as visited and Q.enqueue(s)
  • while not Q.isEmpty()
  • v ? Q.dequeue()
  • perform processing on v
  • for each vertex w adjacent to v do
  • if w is unmarked then
  • mark w as visited and Q.enqueue(w)

33
Query
  • Let G be a graph whose vertices are the integers
    1 through 8 and let the adjacent vertices of each
    vertex be given by the table below
    Vertex Adjacent Vertices1 (2,3,4)2 (1,3,4)3
    (1,2,4)4 (1,2,3,6)5 (6,7,8)6 (4,5,7) 7 (
    5,6,8)8 (5,7)

34
Query
  • Assume that in the traversal of G, the adjacent
    vertices of a given vertex are returned in the
    same order as they are listed in the above table
  • a) Draw G
  • b) Give the sequence of vertices of G visited
    using a DFS traversal order starting at vertex 1
  • c) Give the sequence of vertices visited using a
    BFS traversal starting at vertex 1

35
  • Weighted GraphsOverview

36
Weighted Graphs
  • Graph G (V,E) such that there are weights/costs
    associated with each edge
  • w((a,b)) cost of edge (a,b)
  • representation matrix entries lt-gt costs

a
20
e
35
b
12
32
c
65
d
37
Problems on Weighted Graphs
  • Minimum-cost Spanning Tree
  • Given a weighted graph G, determine a spanning
    tree with minimum total edge cost
  • Single-source shortest paths
  • Given a weighted graph G and a source vertex v in
    G, determine the shortest paths from v to all
    other vertices in G
  • Path length sum of all edges in path

38
Weighted Graphs-Concerns
  • Minimum Cost
  • Shortest Path

39
Weighted Graphs
  • Shortest Path- Dijkstras Algorithm
  • Minimum Spanning Trees- Kruskals Algorithm
Write a Comment
User Comments (0)
About PowerShow.com