Graphs Tessema M. Mengistu Department of Computer Science Southern Illinois University Carbondale tessema.mengistu@siu.edu Room - Faner 3131 1
Outline Introduction to Graphs Graph Traversals Finding a Path Graph ADT 2
Introduction to Graph There are many applications that uses graphs Google Map 3
Introduction to Graph Airline Reservation Systems 4
Introduction to Graph Global Positioning System (GPS) 5
Introduction to Graph Graph Consists of a finite set (distinct) of vertices or nodes or points that are connected together using lines called edges A subgraph is a portion of a graph that is itself a graph 6
Introduction to Graph 7
Graph Terminology Nodes connected by edges Edges Undirected Directed (digraph)
Graph Terminology Path between two vertices Sequence of edges A path in a directed graph must consider the direction of the edges, and is called a directed path. The length of a path is the number of edges that it comprises. If the path does not pass through any vertex more than once, it is a simple path. Graph can be: Cyclic has a path that begins and ends at the same vertex Acyclic - A graph that has no cycles is 9
Graph Terminology Weights Shortest, fastest, cheapest, costs A weighted graph has values on its edges E.g distance in miles, cost, time of driving, etc A path in a weighted graph has a weight, or cost, which is the sum of its edge weights 10
Connected graphs Graph Terminology A graph that has a path between every pair of distinct vertices A complete graph Has an edge between every pair of distinct vertices. 11
Graph Terminology Adjacent vertices Undirected graph Two vertices are adjacent if they are joined by an edge Also are called neighbors Directed graph Vertex i is adjacent to vertex j if a directed edge begins at j and ends at i. Vertex A is adjacent to vertex B, but vertex B is not adjacent to vertex A. 12
Graph Terminology If a graph has n vertices, it can have at most n (n - 1) edges if the graph is directed n (n - 1) / 2 edges if the graph is undirected A graph is sparse if it has relatively few edges Has O(n) edges A graph is dense if it has many edges Has O(n2) edges. Typical graphs are sparse. 13
Graphs Vs Trees All trees are graphs, but not all graphs are trees. A tree is a connected graph without cycles. 14
Graph Traversals Graph Traversals Focus on the connections between vertices, rather than the contents of vertices In a graph, visit a node means simply to mark the node as visited. Begins at any vertex called the origin vertex and visits only the vertices that it can reach. Two types Breadth-first Depth-first 15
Breadth-first Traversal Breadth-first traversal Visits all neighbors of a node before visiting the neighbors neighbors. Traversal uses a queue to hold the visited vertices. The traversal order is then the order in which vertices are added to the queue. 16
Breadth-first Traversal 17
18
Example Breadth-first Traversal 19
Depth-first Traversal Depth-first traversal Follows a path that goes as deeply into the graph as possible before following other paths. After visiting a vertex, this traversal visits the vertex s neighbor, the neighbor s neighbor, and so on. Uses a stack in the iterative description of this traversal. 20
Depth-first Traversal 21
22
Depth-first Traversal Example 23
Path Path examples Learning whether a particular airline flies between two given cities Finding if there is a road connecting two cities A depth-first traversal stays on a path through the graph as it visits as many vertices as possible. Each time we visit another vertex, we see whether that vertex is the desired destination. If so, we are done and the resulting stack contains the path. Otherwise, we continue the traversal until either we are successful or the traversal ends. 24
Shortest Path unweighted Graph A graph can have several different paths between the same two vertices. We can find the path with the shortest length, that is, the path that has the fewest edges. Example a path between A and H 25
Every node keeps Algorithm Its predecessor node A length of the path to reach that specific node Example 26
27
28
Shortest Path Weighted Graph The shortest path is not necessarily the one with the fewest edges. The Shortest path is the one with the smallest edge-weight sum. Example 29
Figure 28-19 A trace of the traversal in the algorithm to find the cheapest path from vertex A to vertex H in a weighted graph
Figure 28-19 A trace of the traversal in the algorithm to find the cheapest path from vertex A to vertex H in a weighted graph
FIGURE 28-20 The graph in Figure 28-18a after finding the cheapest path from vertex A to vertex H
33
34
Graph ADT No addition, removal, or retrieval components. We use a graph to answer questions based on the relationships among its vertices. 35
Example 36