Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes...
-
Upload
rosa-lynch -
Category
Documents
-
view
222 -
download
0
Transcript of Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes...
![Page 1: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/1.jpg)
Graphs
Chapter 29
![Page 2: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/2.jpg)
2
Chapter Contents
Some Examples and Terminology• Road Maps• Airline Routes• Mazes• Course Prerequisites• Trees
Traversals• Breadth-First Traversal• Dept-First Traversal
Topological Order
Paths• Finding a Path• Shortest Path in an
Unweighted Graph• Shortest Pat in a
Weighted Graph
Java Interfaces for the ADT Graph
![Page 3: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/3.jpg)
3
Some Examples and Terminology
Vertices or nodes are connected by edges
A graph is a collection of distinct vertices and distinct edges• Edges can be directed or undirected• When it has directed edges it is called a
digraph
A subgraph is a portion of a graph that itself is a graph
![Page 4: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/4.jpg)
4
Road Maps
Fig. 29-1 A portion of a road map.
NodesNodes
EdgesEdges
![Page 5: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/5.jpg)
5
Road Maps
Fig. 29-2 A directed graph representing a portion of a city's street map.
![Page 6: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/6.jpg)
6
Paths
A sequence of edges that connect two vertices in a graphIn a directed graph the direction of the edges must be considered• Called a directed path
A cycle is a path that begins and ends at same vertex• Simple path does not pass through any vertex
more than once
A graph with no cycles is acyclic
![Page 7: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/7.jpg)
7
Weights
A weighted graph has values on its edges• Weights or costs
A path in a weighted graph also has weight or cost• The sum of the edge weights
Examples of weights• Miles between nodes on a map• Driving time between nodes• Taxi cost between node locations
![Page 8: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/8.jpg)
8
Weights
Fig. 29-3 A weighted graph.
![Page 9: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/9.jpg)
9
Connected Graphs
A connected graph• Has a path between every pair of
distinct vertices
A complete graph• Has an edge between every pair of
distinct vertices
A disconnected graph• Not connected
![Page 10: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/10.jpg)
10
Connected Graphs
Fig. 29-4 Undirected graphs
![Page 11: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/11.jpg)
11
Adjacent Vertices
Two vertices are adjacent in an undirected graph if they are joined by an edge
Sometimes adjacent vertices are called neighbors
Fig. 29-5 Vertex A is adjacent to B, but B is not adjacent to A.
![Page 12: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/12.jpg)
12
Airline Routes
Note the graph with two subgraphs • Each subgraph connected• Entire graph disconnected
Fig. 29-6 Airline routes
![Page 13: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/13.jpg)
13
Mazes
Fig. 29-7 (a) A maze; (b) its representation as a graph
![Page 14: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/14.jpg)
14
Course Prerequisites
Fig. 29-8 The prerequisite structure for a selection of courses as a directed graph without cycles.
![Page 15: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/15.jpg)
15
TreesAll trees are graphs• But not all graphs are trees
A tree is a connected graph without cyclesTraversals• Preorder, inorder, postorder traversals are
examples of depth-first traversal• Level-order traversal of a tree is an example of
breadth-first traversal
Visit a node• For a tree: process the node's data• For a graph: mark the node as visited
![Page 16: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/16.jpg)
16
Trees
Fig. 29-9 The visitation order of two traversals; (a) depth first; (b) breadth first.
![Page 17: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/17.jpg)
17
Breadth-First TraversalAlgorithm for breadth-first traversal of nonempty graph beginning at a given vertex
Algorithm getBreadthFirstTraversal(originVertex)vertexQueue = a new queue to hold neighborstraversalOrder = a new queue for the resulting traversal orderMark originVertex as visitedtraversalOrder.enqueue(originVertex)vertexQueue.enqueue(originVertex)while (!vertexQueue.isEmpty()){ frontVertex = vertexQueue.dequeue()
while (frontVertex has an unvisited neighbor){ nextNeighbor = next unvisited neighbor of frontVertex
Mark nextNeighbor as visitedtraversalOrder.enqueue(nextNeighbor)vertexQueue.enqueue(nextNeighbor)
}}return traversalOrder
A breadth-first traversal visits a vertex and then each of the
vertex's neighbors before advancing
A breadth-first traversal visits a vertex and then each of the
vertex's neighbors before advancing
![Page 18: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/18.jpg)
18
Breadth-First TraversalFig. 29-10 (ctd.)
A trace of a breadth-first
traversal for a directed graph,
beginning at vertex A.
![Page 19: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/19.jpg)
19
Depth-First Traversal
Visits a vertex, then• A neighbor of the vertex, • A neighbor of the neighbor,• Etc.
Advance as possible from the original vertex
Then back up by one vertex• Considers the next neighbor
![Page 20: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/20.jpg)
20
Depth-First Traversal
Fig. 29-11 A trace of a depth-
first traversal beginning at
vertex A of the directed graph in Fig. 29-10a.
![Page 21: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/21.jpg)
21
Topological Order
Given a directed graph without cycles
In a topological order • Vertex a precedes vertex b whenever• A directed edge exists from a to b
![Page 22: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/22.jpg)
22
Topological Order
Fig. 29-12 Three topological orders for the graph of Fig. 29-8.
![Page 23: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/23.jpg)
23
Topological Order
Fig. 29-13 An impossible prerequisite structure for three courses as a directed graph with a cycle.
![Page 24: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/24.jpg)
24
Topological Order
Algorithm for a topological sort
Algorithm getTopologicalSort()vertexStack = a new stack to hold vertices as they are visitedn = number of vertices in the graphfor (counter = 1 to n){ nextVertex = an unvisited vertex whose neighbors, if any, are all visited
Mark nextVertex as visitedstack.push(nextVertex)
}return stack
![Page 25: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/25.jpg)
25
Topological Order
Fig. 29-14 Finding a topological order
for the graph in Fig. 29-8.
![Page 26: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/26.jpg)
26
Shortest Path in an Unweighted Graph
Fig. 29-15 (a) an unweighted graph and (b) the possible paths from vertex A to vertex H.
![Page 27: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/27.jpg)
27
Shortest Path in an Unweighted Graph
Fig. 29-16 The graph in 29-15a after the shortest-path algorithm has traversed from vertex A to vertex H
![Page 28: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/28.jpg)
28
Shortest Path in an Unweighted Graph
Fig. 29-17 Finding the shortest path from vertex A to vertex H in the unweighted graph in Fig. 29-15a.
![Page 29: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/29.jpg)
29
Shortest Path in an Weighted Graph
Fig. 29-18 (a) A weighted graph and (b) the possible paths from vertex A to vertex H.
![Page 30: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/30.jpg)
30
Shortest Path in an Weighted Graph
Shortest path between two given vertices• Smallest edge-weight sum
Algorithm based on breadth-first traversal
Several paths in a weighted graph might have same minimum edge-weight sum• Algorithm given by text finds only one of these
paths
![Page 31: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/31.jpg)
31
Shortest Path in an Weighted Graph
Fig. 29-19 Finding the cheapest path from vertex A to vertex H in the
weighted graph in Fig 29-18a.
![Page 32: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/32.jpg)
32
Shortest Path in an Weighted Graph
Fig. 29-20 The graph in Fig. 29-18a after finding the cheapest path from vertex A to vertex H.
![Page 33: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/33.jpg)
33
Java Interfaces for the ADT Graph
Methods in the BasicGraphInterface• addVertex• addEdge• hasEdge• isEmpty• getNumberOfVertices• getNumberOfEdges• clear
![Page 34: Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.](https://reader035.fdocuments.us/reader035/viewer/2022062322/5697c01c1a28abf838ccfc62/html5/thumbnails/34.jpg)
34
Java Interfaces for the ADT Graph
Fig. 29-21 A portion of the flight map in Fig. 29-6.
Operations of the ADT graph enable creation of a graph and
answer questions based on relationships among vertices
Operations of the ADT graph enable creation of a graph and
answer questions based on relationships among vertices