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
Graph Terminology • Connected graphs – 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
Breadth-first Traversal • Example 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
Algorithm • Every node keeps – 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
Recommend
More recommend