Graphs Chapter 19. 2 Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.

Slides:



Advertisements
Similar presentations
Part A - Terminology and Traversals
Advertisements

IKI 10100: Data Structures & Algorithms Ruli Manurung (acknowledgments to Denny & Ade Azurat) 1 Fasilkom UI Ruli Manurung (Fasilkom UI)IKI10100: Lecture10.
Graphs and Digraphs Chapter 14.
Graphs. 2 Some Examples and Terminology A graph is a set of vertices (nodes) and a set of edges (arcs) such that each edge is associated with exactly.
Graphs Chapter 12. Chapter Objectives  To become familiar with graph terminology and the different types of graphs  To study a Graph ADT and different.
Graphs Chapter 20 Data Structures and Problem Solving with C++: Walls and Mirrors, Carrano and Henry, © 2013.
Chapter 8, Part I Graph Algorithms.
Graphs Chapter 30 Carrano, Data Structures and Abstractions with Java, Second Edition, (c) 2007 Pearson Education, Inc. All rights reserved X.
© 2006 Pearson Addison-Wesley. All rights reserved14 A-1 Chapter 14 excerpts Graphs (breadth-first-search)
Data Structures Using C++
Graphs Graphs are the most general data structures we will study in this course. A graph is a more general version of connected nodes than the tree. Both.
CS202 - Fundamental Structures of Computer Science II
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 21: Graphs.
ITEC200 – Week 12 Graphs. 2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study.
Graphs Chapter 30 Slides by Steve Armstrong LeTourneau University Longview, TX  2007,  Prentice Hall.
CS 311 Graph Algorithms. Definitions A Graph G = (V, E) where V is a set of vertices and E is a set of edges, An edge is a pair (u,v) where u,v  V. If.
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved Graphs.
Introduction to Graphs
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
Spring 2010CS 2251 Graphs Chapter 10. Spring 2010CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs.
Transforming Infix to Postfix
Fall 2007CS 2251 Graphs Chapter 12. Fall 2007CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs To.
Graphs Chapter 20 Data Structures and Problem Solving with C++: Walls and Mirrors, Frank Carrano, © 2012.
Graphs Chapter 28 Copyright ©2012 by Pearson Education, Inc. All rights reserved.
Graph Implementations Chapter 31 Slides by Steve Armstrong LeTourneau University Longview, TX  2007,  Prentice Hall.
Graphs CS 400/600 – Data Structures. Graphs2 Graphs  Used to represent all kinds of problems Networks and routing State diagrams Flow and capacity.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
1 Chapter 9 Graph Algorithms Real-life graph problems Algorithms for some graph problems Choice of data structures for graph problems.
© 2006 Pearson Addison-Wesley. All rights reserved14 A-1 Chapter 14 Graphs.
Chapter 14 Graphs. © 2004 Pearson Addison-Wesley. All rights reserved Terminology G = {V, E} A graph G consists of two sets –A set V of vertices,
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved Graphs.
Common final examinations When: Wednesday, 12/11, 3:30-5:30 PM Where: Ritter Hall - Walk Auditorium 131 CIS 1166 final When: Wednesday, 12/11, 5:45-7:45.
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved Graphs.
Graphs. Definitions A graph is two sets. A graph is two sets. –A set of nodes or vertices V –A set of edges E Edges connect nodes. Edges connect nodes.
Graph Introduction, Searching Graph Theory Basics - Anil Kishore.
Graphs. Graphs Similar to the graphs you’ve known since the 5 th grade: line graphs, bar graphs, etc., but more general. Those mathematical graphs are.
Graphs Chapter Chapter Contents Some Examples and Terminology Road Maps Airline Routes Mazes Course Prerequisites Trees Traversals Breadth-First.
Graphs A graphs is an abstract representation of a set of objects, called vertices or nodes, where some pairs of the objects are connected by links, called.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Ver Chapter 13: Graphs Data Abstraction & Problem Solving with C++
1 Directed Graphs Chapter 8. 2 Objectives You will be able to: Say what a directed graph is. Describe two ways to represent a directed graph: Adjacency.
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
© 2006 Pearson Addison-Wesley. All rights reserved 14 A-1 Chapter 14 Graphs.
CSC2100B Tutorial 10 Graph Jianye Hao.
CSCI2100 Data Structures Tutorial 12
Graphs Upon completion you will be able to:
Graphs Chapter 28 © 2015 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Data Structures and Abstractions with Java, 4e Frank Carrano.
Chapter 20: Graphs. Objectives In this chapter, you will: – Learn about graphs – Become familiar with the basic terminology of graph theory – Discover.
Graph Revisited Fei Chen CSCI2100B Data Structures Tutorial 12 1.
Data Structures and Algorithm Analysis Graph Algorithms Lecturer: Jing Liu Homepage:
Main Index Contents 11 Main Index Contents Graph Categories Graph Categories Example of Digraph Example of Digraph Connectedness of Digraph Connectedness.
1 GRAPHS – Definitions A graph G = (V, E) consists of –a set of vertices, V, and –a set of edges, E, where each edge is a pair (v,w) s.t. v,w  V Vertices.
© 2006 Pearson Addison-Wesley. All rights reserved14 B-1 Chapter 14 (continued) Graphs.
Graphs Chapter 20.
Graphs.
Unit 10 Graphs (1) King Fahd University of Petroleum & Minerals
I206: Lecture 15: Graphs Marti Hearst Spring 2012.
CS202 - Fundamental Structures of Computer Science II
CS120 Graphs.
Graph Algorithm.
Graphs Representation, BFS, DFS
Graphs Chapter 13.
Copyright ©2012 by Pearson Education, Inc. All rights reserved
Graphs.
Chapter 11 Graphs.
Chapter 15 Graphs © 2006 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.
CSCI2100 Data Structures Tutorial
Chapter 14 Graphs © 2006 Pearson Addison-Wesley. All rights reserved.
Chapter 14 Graphs © 2011 Pearson Addison-Wesley. All rights reserved.
Copyright ©2012 by Pearson Education, Inc. All rights reserved
INTRODUCTION A graph G=(V,E) consists of a finite non empty set of vertices V , and a finite set of edges E which connect pairs of vertices .
Presentation transcript:

Graphs Chapter 19

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

3 Some Examples and Terminology 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 Vertices or nodes are connected by edges A subgraph is a portion of a graph that itself is a graph

4 Road Maps A portion of a road map. Undirected edges Nodes Edges

5 Street Maps A directed graph representing a city's street map. Directed edges

6 Path A sequence of edges that connect two vertices in a graph In 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

7 Weight 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

8 Weights A weighted graph.

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

10 Connected Graphs Undirected graphs

11 Adjacent Vertices Two vertices are adjacent in an undirected graph if they are joined by an edge Sometimes adjacent vertices are called neighbors Vertex A is adjacent to B, but B is not adjacent to A.

12 Airline Routes Note the graph with two subgraphs Each subgraph connected Entire graph disconnected Airline routes

13 Mazes (a) A maze; (b) its representation as a graph

14 Course Prerequisites The prerequisite structure for a selection of courses as a directed graph without cycles.

15 Trees All trees are graphs But not all graphs are trees A tree is a connected graph without cycles Traversals 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

16 Trees The visitation order of two traversals; (a) depth first; (b) breadth first.

17 Breadth-First Traversal (ctd.) A trace of a breadth-first traversal for a directed graph, beginning at vertex A.

18 Breadth-First Traversal Algorithm for breadth-first traversal of nonempty graph beginning at a given vertex Algorithm getBreadthFirstTraversal(originVertex) vertexQueue = a new queue to hold neighbors traversalOrder = a new queue for the resulting traversal order Mark originVertex as visited traversalOrder.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 visited traversalOrder.enqueue(nextNeighbor) vertexQueue.enqueue(nextNeighbor) } } return traversalOrder A breadth-first traversal visits a vertex and then each of the vertex's neighbors before advancing

19 Depth-First Traversal Visits a vertex, then A neighbor of the vertex, A neighbor of the neighbor, Etc. Visit them, and push them into stack Advance as much as possible from the original vertex When no unvisited neighbor exists, back up by one level by popping up current vertex Considers the next neighbor branch

20 Depth-First Traversal A trace of a depth-first traversal beginning at vertex A of the directed graph

21 Depth-First Traversal Algorithm getDepthFirstTraversal(originVertex) vertexStack = a new stack to hold vertices as they are visited traversalOrder = a new queue for the resulting traversal order Mark originVertex as visited traversalOrder.enqueue(originVertex) vertexStack.push(originVertex) while (!vertexStack.isEmpty()) { topVertex = vertexStack.peek() if (topVertex has an unvisited neighbor) {nextNeighbor = next unvisited neighbor of topVertex Mark nextNeighbor as visited traversalOrder.enqueue(nextNeighbor) vertexStack.push(nextNeighbor) } else // all neighbors are visited vertexStack.pop() } return traversalOrder

22 Graph Traversal Exercises Breadth-First and Depth-First Traversal starting from a

23 Some of the possible Answers Breadth-first a f h e g i d j k c l n b m o Depth-first a f e d c b g h i j k l m n o

24 Topological Order Given a directed graph without cycles (DAG) An ordering of vertices in a directed acyclic graph. In a topological order Vertex a precedes vertex b whenever A directed edge exists from a to b

25 Topological Order First find any vertex with no incoming edges. Print this vertex, and remove it, along with its edges from the graph. Then we apply the same strategy to the rest of graph. Indegree of node: Incoming number of edges

26 Topological Order Three topological orders for the graph

27 Topological Order An impossible prerequisite structure for three courses as a directed graph with a cycle.

28 Topological Order

29 Topological Order

30 Topological Order The graph shown has many valid topological sorts, including: 7,5,3,11,8,2,9,10 7,5,11,2,3,10,8,9 3,7,8,5,11,10,9,2

31 Shortest Path in an Unweighted Graph (a) an unweighted graph and (b) the possible paths from vertex A to vertex H.

32 Shortest Path in an Unweighted Graph The graph after the shortest-path algorithm has traversed from vertex A to vertex H

33 Shortest Path in an Unweighted Graph Finding the shortest path from vertex A to vertex H in the unweighted graph

34 Shortest Path in an Weighted Graph (a) A weighted graph and (b) the possible paths from vertex A to vertex H.

35 Shortest Path in an Weighted Graph Shortest path between two given vertices Smallest edge-weight sum Algorithm based on breadth-first traversal (Dijkstra algorithm) Several paths in a weighted graph might have same minimum edge-weight sum Algorithm given by text finds only one of these paths

36 Shortest Path in an Weighted Graph Finding the cheapest path from vertex A to vertex H in the weighted graph

37 Shortest Path in an Weighted Graph The graph after finding the cheapest path from vertex A to vertex H.

38 Shortest Path in an Weighted Graph Shortest Path from A to E?

39 Minimum Spanning Tree The minimum spanning tree (MST) of a graph defines the cheapest subset of edges that keeps the graph in one connected component. Telephone companies are particularly interested in minimum spanning trees, because the minimum spanning tree of a set of sites defines the wiring scheme that connects the sites using as little wire as possible.

40 Greedy Algorithm Greedy algorithms work in phases. In each phase, a decision is made that appears to be good, without regard for future consequences. A greedy algorithm makes the locally optimum choice at each phase with the hope of finding the global optimum.

41 Kruskal's Algorithm Let G be a connected graph with n vertices Initialize n components, each one containing one vertex of G. Now sort the edges in increasing order by weight and set T = the empty set. Now examine each edge in turn. If an edge joins two components, add it to T and merge the two components into one. If not, discard the edge. Stop when only one component remains.

42 Example

43 Kruskal's Algorithm Ordered edges: [1,4], [6,7], [3,4], [1,2], [4,2], [3,1], [4,7], [3,6], [7,5], [4,5], [6,4], [2,5] ComponentsT (edges) 1,2,3,4,5,6,7empty [1,4], 2, 3, 5,6,7[1,4] [1,4], 2,3,5,[6,7][1,4], [6,7] [1,4,3], 2, 5,[6,7] [1,4], [6,7], [3,4] [1,4,3,2], 5, [6,7][1,4], [6,7], [3,4], [1,2] [1,4,3,2,6,7], 5[1,4], [6,7], [3,4], [1,2], [4,7] [1,4,3,2,6,7,5][1,4], [6,7], [3,4], [1,2], [4,7], [7,5]

44 MST

45 Find a MST

46 Java Interfaces for the ADT Graph Methods in the BasicGraphInterface addVertex addEdge hasEdge isEmpty getNumberOfVertices getNumberOfEdges clear

47 Java Interfaces for the ADT Graph A portion of the flight map Operations of the ADT graph enable creation of a graph and answer questions based on relationships among vertices

48 The Adjacency Matrix (a) A directed graph and (b) its adjacency matrix.

49 The Adjacency Matrix Adjacency matrix uses fixed amount of space Depends on number of vertices Does not depend on number of edges Typically the matrix will be sparse Presence of an edge between two vertices can be known immediately All neighbors of a vertex found by scanning entire row for that vertex

50 The Adjacency List Adjacency lists for the directed graph

51 The Adjacency List Represents only edges that originate from the vertex Space not reserved for edges that do not exist Uses less memory than corresponding adjacency matrix Thus more often used than adjacency matrix