Graphs Chapter 29. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes...

34
Graphs Chapter 29

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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