Konigsberg Bridge Problem

Similar documents
國立清華大學電機工程學系. Outline

Chapter 6. GRAPHS. Figure 6.1 : The bridges of Koenigsberg

Undirected Graphs. Hwansoo Han

UNIT 5 GRAPH. Application of Graph Structure in real world:- Graph Terminologies:

Chapter 14. Graphs Pearson Addison-Wesley. All rights reserved 14 A-1

Graph Algorithms Using Depth First Search

UNIT Name the different ways of representing a graph? a.adjacencymatrix b. Adjacency list

Chapter 9 Graph Algorithms

Outline. Introduction. Representations of Graphs Graph Traversals. Applications. Definitions and Basic Terminologies

11/22/2016. Chapter 9 Graph Algorithms. Introduction. Definitions. Definitions. Definitions. Definitions

Undirected Graphs. DSA - lecture 6 - T.U.Cluj-Napoca - M. Joldos 1

Foundations of Discrete Mathematics

Chapter 9 Graph Algorithms

GRAPHICAL ALGORITHMS. UNIT _II Lecture-12 Slides No. 3-7 Lecture Slides No Lecture Slides No

CS302 - Data Structures using C++

Chapter 9 Graph Algorithms

Graph. Vertex. edge. Directed Graph. Undirected Graph

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI. Department of Computer Science and Engineering CS6301 PROGRAMMING DATA STRUCTURES II

Index. stack-based, 400 A* algorithm, 325

Graph Algorithms. Chapter 22. CPTR 430 Algorithms Graph Algorithms 1

Varying Applications (examples)

Outline. Graphs. Divide and Conquer.

DS UNIT 4. Matoshri College of Engineering and Research Center Nasik Department of Computer Engineering Discrete Structutre UNIT - IV

BACKGROUND: A BRIEF INTRODUCTION TO GRAPH THEORY

CS521 \ Notes for the Final Exam

Basic Graph Definitions

Directed Graphs. DSA - lecture 5 - T.U.Cluj-Napoca - M. Joldos 1

CS/COE 1501 cs.pitt.edu/~bill/1501/ Graphs

Part VI Graph algorithms. Chapter 22 Elementary Graph Algorithms Chapter 23 Minimum Spanning Trees Chapter 24 Single-source Shortest Paths

GRAPHS Lecture 17 CS2110 Spring 2014

Computer Science & Engineering 423/823 Design and Analysis of Algorithms

Algorithm Design (8) Graph Algorithms 1/2

COT 6405 Introduction to Theory of Algorithms

Graph and Digraph Glossary

Lecture 3: Graphs and flows

Graph Representation

Unweighted Graphs & Algorithms

CS 220: Discrete Structures and their Applications. graphs zybooks chapter 10

CSI 604 Elementary Graph Algorithms

Elementary Graph Algorithms CSE 6331

Elementary Graph Algorithms. Ref: Chapter 22 of the text by Cormen et al. Representing a graph:

CS 341: Algorithms. Douglas R. Stinson. David R. Cheriton School of Computer Science University of Waterloo. February 26, 2019

CS/COE

Graph Traversals. CS200 - Graphs 1

Chapter 28 Graphs and Applications. Objectives

W4231: Analysis of Algorithms

Graphs. A graph is a data structure consisting of nodes (or vertices) and edges. An edge is a connection between two nodes

Sample Solutions to Homework #4

Minimum Spanning Trees Ch 23 Traversing graphs

CSC Intro to Intelligent Robotics, Spring Graphs

22 Elementary Graph Algorithms. There are two standard ways to represent a

Algorithm Design and Analysis

GRAPHS, GRAPH MODELS, GRAPH TERMINOLOGY, AND SPECIAL TYPES OF GRAPHS

3.1 Basic Definitions and Applications

Reference Sheet for CO142.2 Discrete Mathematics II

Trees Algorhyme by Radia Perlman

Module 5 Graph Algorithms

The ADT priority queue Orders its items by a priority value The first item removed is the one having the highest priority value

March 20/2003 Jayakanth Srinivasan,

Directed Graphs (II) Hwansoo Han

CS 310 Advanced Data Structures and Algorithms

Graphs. Tessema M. Mengistu Department of Computer Science Southern Illinois University Carbondale Room - Faner 3131

Lecture 10. Elementary Graph Algorithm Minimum Spanning Trees

Data Structures Brett Bernstein

Data Structure. IBPS SO (IT- Officer) Exam 2017

GRAPHS (Undirected) Graph: Set of objects with pairwise connections. Why study graph algorithms?

Graph Theory. ICT Theory Excerpt from various sources by Robert Pergl


Graphs. Pseudograph: multiple edges and loops allowed

Introductory Combinatorics

CSCE 750, Fall 2002 Notes 6 Page Graph Problems ffl explore all nodes (breadth first and depth first) ffl find the shortest path from a given s

IS 709/809: Computational Methods in IS Research. Graph Algorithms: Introduction

CS 4407 Algorithms Lecture 5: Graphs an Introduction

GRAPHS Lecture 19 CS2110 Spring 2013

Introduction III. Graphs. Motivations I. Introduction IV

Lecture 4: Graph Algorithms

Minimum Spanning Trees

Applications of BDF and DFS

Theory of Computing. Lecture 10 MAS 714 Hartmut Klauck

Strongly connected: A directed graph is strongly connected if every pair of vertices are reachable from each other.

ROOT A node which doesn t have a parent. In the above tree. The Root is A. LEAF A node which doesn t have children is called leaf or Terminal node.

Graphs. Part I: Basic algorithms. Laura Toma Algorithms (csci2200), Bowdoin College

CMSC 380. Graph Terminology and Representation


ROOT: A node which doesn't have a parent. In the above tree. The Root is A.

Representations of Graphs

12. Graphs. Königsberg Cycles. [Multi]Graph

Graph Algorithms (part 3 of CSC 282),

MAT 7003 : Mathematical Foundations. (for Software Engineering) J Paul Gibson, A207.

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1

Graph Algorithms. Definition

CS781 Lecture 2 January 13, Graph Traversals, Search, and Ordering

Tutorial. Question There are no forward edges. 4. For each back edge u, v, we have 0 d[v] d[u].

Graph Theory CS/Math231 Discrete Mathematics Spring2015

CSE 417: Algorithms and Computational Complexity. 3.1 Basic Definitions and Applications. Goals. Chapter 3. Winter 2012 Graphs and Graph Algorithms

Taking Stock. Last Time Flows. This Time Review! 1 Characterize the structure of an optimal solution

1 Digraphs. Definition 1

Chapter 2 Graphs. 2.1 Definition of Graphs

(Re)Introduction to Graphs and Some Algorithms

E.G.S. PILLAY ENGINEERING COLLEGE (An Autonomous Institution, Affiliated to Anna University, Chennai) Nagore Post, Nagapattinam , Tamilnadu.

Transcription:

Graphs

Konigsberg Bridge Problem c C d g A Kneiphof e D a B b f c A C d e g D a b f B

Euler s Graph Degree of a vertex: the number of edges incident to it Euler showed that there is a walk starting at any vertex, going through each edge exactly once and terminating at the start vertex iff the degree of each vertex is even. This walk is called Eulerian. No Eulerian walk of the Konigsberg bridge problem since all four vertices are of odd edges.

Application of Graphs Analysis of electrical circuits Finding shortest routes Project planning Identification of chemical compounds Statistical mechanics Genertics Cybernetics Linguistics Social Sciences

Definition of A Graph A graph, G, consists of two sets, V and E. V is a finite, nonempty set of vertices. E is set of pairs of vertices called edges. The vertices of a graph G can be represented as V(G). Likewise, the edges of a graph, G, can be represented as E(G). Graphs can be either undirected graphs or directed graphs. For a undirected graph, a pair of vertices (u, v) or (v, u) represent the same edge. For a directed graph, a directed pair <u, v> has u as the tail and the v as the head. Therefore, <u, v> and <v, u> represent different edges.

Three Sample Graphs V(G ) = {,,, } E(G ) = {(, ), (, ), (, ), (, ), (, ), (, )} V(G ) = {,,,,,, } E(G ) = {(, ), (, ), (, ), (, ), (, ), (, )} V(G ) = {,, } E(G ) = {<, >, <, >, <, >} (a) G (b) G (c) G

Graph Restrictions A graph may not have an edge from a vertex back to itself (v, v) or <v, v> are called self edge or self loop. A graph may not have multiple occurrences of the same edge Without this restriction, it is called a multigraph.

Examples of Graphlike Structures (a) Graph with a self edge (b) Multigraph

Terminology of Graph Graph: G=(V, E), V: a set of vertices, E: a set of edges Edge (arc): a pair (v,w), where v, w V Directed graph (Digraph): graph if pairs are ordered (directed edge) Adjacent: w is adjacent to v if (v,w) E Undirected graph: if (v,w) E, (v,w)=(w,v)

Terminology of Graph (cont d) Path: a sequence of vertices w, w, w,, w N where (w i, w i+ ) E, i N. Length of a path: number of edges on the path. Simple path: a path where all vertices are distinct except the first and last. Cycle in a directed graph: a path such that w = w N Acyclic graph (DAG): a directed graph which has no cycles.

Terminology of Graph (cont d) Connected: an undirected graph if there is a path from every vertex to every vertex. Strongly connected: a directed graph if there is a path from every vertex to every vertex. Complete graph: a graph in which there is an edge between every pair of vertices.

Complete Graph The number of distinct unordered pairs (u, v) with u v in a graph with n vertices is n(n- )/. A complete unordered graph is an unordered graph with exactly n(n-)/ edges. A complete directed graph is a directed graph with exactly n(n-) edges.

G and G Subgraphs (i) (ii) (iii) (a) Some subgraphs of G (iv)

Graphs with Two Connected Components H H 7 G

Strongly Connected Components of G

Degree of A Vertex Degree of a vertex: The degree of a vertex is the number of edges incident to that vertex. If G is a directed graph, then we define in-degree of a vertex: is the number of edges for which vertex is the head. out-degree of a vertex: is the number of edges for which the vertex is the tail. For a graph G with n vertices and e edges, if d i is the degree of a vertex i in G, then the number of edges of G is e n ( d i i ) /

Abstract of Data Type Graphs class Graph { // objects: A nonempty set of vertices and a set of undirected edges // where each edge is a pair of vertices public: Graph(); // Create an empty graph void InsertVertex(Vertex v); void InsertEdge(Vertex u, Vertex v); void DeleteVertex(Vertex v); void DeleteEdge(Vertex u, Vertex v); }; Boolean IsEmpty(); // if graph has no vertices return TRUE List<List> Adjacent(Vertex v); // return a list of all vertices that are adjacent to v

Adjacency Matrix Representation 7 7 7 Space: ( V ), good for dense, not for sparse * Undirected graph: symmetric matrix

Adjacency List Representation 7 7 7 7 Space: O( V + E ) good for sparse

Adjacent Lists HeadNodes [] [] [] [] (a) G HeadNodes [] [] [] (b) G

Sequential Representation of Graph G 7 8 9 7 8 9 9 7 8 7 H H 7 G

Inverse Adjacency Lists for G [] [] []

Multilists In the adjacency-list representation of an undirected graph, each edge (u, v) is represented by two entries. Multilists: To be able to determine the second entry for a particular edge and mark that edge as having been examined, we use a structure called multilists. Each edge is represented by one node. Each node will be in two lists.

Adjacency Multilists for G HeadNodes N [] [] [] N N N N N N edge (, ) edge (, ) [] N N edge (, ) N N N edge (, ) The lists are Vertex : N -> N -> N N N edge (, ) Vertex : N -> N -> N N edge (, ) Vertex : N -> N -> N Vertex : N -> N -> N

Weighted Edges Very often the edges of a graph have weights associated with them. distance from one vertex to another cost of going from one vertex to an adjacent vertex. To represent weight, we need additional field, weight, in each entry. A graph with weighted edges is called a network.

Graph Operations A general operation on a graph G is to visit all vertices in G that are reachable from a vertex v. Depth-first search Breath-first search

Depth-First Search Depth First Search: generalization of preorder traversal Starting from vertex v, process v & then recursively traverse all vertices adjacent to v. To avoid cycles, mark visited vertex

Graph G and Its Adjacency Lists HeadNodes [] 7 [] [] [] 7 [] 7 [] 7 [] 7 [7}

Analysis of DFS If G is represented by its adjacency lists, the DFS time complexity is O(e). If G is represented by its adjacency matrix, then the time complexity to complete DFS is O(n ).

Breath-First Search Breadth First search (BFS): level order tree traversal BFS algorithm: using queue

Breath-First Search (cont d) A A* B D E B* D* E* C C*

Connected components Determined by calling DFS or BFS Check if there is any unvisited vertex Program. (pp.8)

Spanning Tree Any tree consisting solely of edges in G and including all vertices in G is called a spanning tree. obtained by using either a depth-first or a breath-first search. A spanning tree is a minimal subgraph, G, of G such that V(G ) = V(G), and G is connected. (Minimal subgraph is defined as one with the fewest number of edges). Any connected graph with n vertices must have at least n- edges, and all connected graphs with n edges are trees. Therefore, a spanning tree has n edges.

A Complete Graph and Three of Its Spanning Trees

Depth-First and Breath- First Spanning Trees 7 7 (a) DFS () spanning tree (b) BFS () spanning tree

Minimal Cost Spanning Tree A minimum-cost spanning tree is a spanning tree of least cost Cost: the sum of the costs (weights) of the edges in the spanning tree Three greedy-method algorithms available to obtain a minimum-cost spanning tree Kruskal s algorithm Prim s algorithm Sollin s algorithm

Kruskal s Algorithm Kruskal s algorithm builds a minimum-cost spanning tree T by adding edges to T one at a time. The algorithm selects the edges for inclusion in T in nondecreasing order of their cost. An edge is added to T if it does not form a cycle with the edges that are already in T. Theorem.: Let G be any undirected, connected graph. Kruskal s algorithm generates a minimumcost spanning tree.

Stages in Kruskal s Algorithm 8 8 (a) (b) (c)

8 Stages in Kruskal s Algorithm (Cont.) 8 (d) (e) (f)

Stages in Kruskal s Algorithm (Cont.) 8 8 (g) (g)

Prim s Algorithm The set of selected edges forms a tree at all times when using Prim s algorithm In Prim s algorithm, a least-cost edge (u, v) is added to T such that T {(u, v)} is also a tree. This repeats until T contains n- edges.

Stages in Prim s Alogrithm (a) (b) (c) 8 8

Stages in Prim s Alogrithm (Cont.) (d) (e) (f) 8 8

Sollin s Algorithm Contrast to Kruskal s and Prim s algorithms, Sollin s algorithm selects multiple edges at each stage At the beginning, the selected edges and all the n vertices form a spanning forest During each stage, a minimum-cost edge is selected for each tree in the forest. It s possible that two trees in the forest to select the same edge. Only one should be used. Also, it s possible that the graph has multiple edges with the same cost. So, two trees may select two different edges that connect them together. Again, only one should be retained.

Stages in Sollin s Algorithm 8 8 (a) (b)

Biconnected Components Definition: A vertex v of G is an articulation point iff the deletion of v, together with the deletion of all edges incident to v, leaves behind a graph that has at least two connected components Definition: A biconnected graph is a connected graph that has no articulation points e.g., Figure.a Definition: A biconnected component of a connected graph G is a maximal biconnected subgraph H of G G contains no other subgraph that is both biconnected and properly contains H.

A Connected Graph and Its Biconnected Components 8 9 8 9 7 7 7 7 (a) A connected graph (b) Its biconnected components

Biconnected Components (Cont.) Two biconnected components of the same graph can have at most one vertex in common The biconnected components of G partition the edges of G No edge can be in two or more biconnected components The biconnected components of a connected, undirected graph G found by using any depth-first spanning tree of G A nontree edge (u, v) is a back edge with respect to a spanning tree T iff either u is an ancestor of v or v is an ancestor of u A nontree edge that is not back edge is called a cross edge

Depth-First Spanning Tree 8 9 9 7 8 7 8 7 7 8 9 9

Biconnected Components (Cont.) The root of the depth-first spanning tree is an articulation point iff it has at least two children. Define low(w) as the lowest depth-first number that can be reached from w using a path of descendants followed by, at most, one back edge. low( w) min{ dfn( w),min{ low( x) x is a child of w}, min{ dfn(x) ( w, x) is a back edge}}

Biconnected Components (Cont.) u is an articulation point iff u is either the root of the spanning tree and has two or more children or u is not the root and u has a child w such that low(w) dfn(u). a of u u w d of w

dfn and low values for the Spanning Tree vertex 7 8 9 dfn 7 8 9 low 9 low(w) dfn(u), where w is the child of 7 u 8 7 8 9 9

Graph and Shortest Paths From Vertex to all destinations Path Length ), ),, ),,, ), (a) Graph (b) Shortest paths from

Single Source/All Destinations: Nonnegative Edge Costs Let S denotes the set of vertices to which the shortest paths have already been found. ) If the next shortest path is to vertex u, then the path begins at v, ends at u, and goes through only vertices that are in S. ) The destination of the next path generated must be the vertex u that has the minimum distance among all vertices not in S. ) The vertex u selected in ) becomes a member of S. The algorithm is first given by Edsger Dijkstra. Therefore, it s sometimes called Dijstra Algorithm.

Diagram for Example. 7 8 7 9 Los Angeles San Francisco Denver New Orleans Miami New York Boston Chicago 7 9 8 7 7

San Francisco 8 7 Denver Chicago 7 Los Angeles New Orleans 9 Miam i Boston New York iteration S Vertex selected Distance LA SF DEN CHI BOST NY MIA NO [] [] [] [] [] [] [] [7] Initial -- --- + + + + + {} + + + {,} + + + {,,} + + {,,,} 7 + {,,,,7} {,,,,7,} {,,,,7,,}

Directed Graphs 7 - S 7 7 (a) Directed graph with a negative-length edge - Require the graph has no cycles (b) Directed graph with a cycle of negative length

Single Source/All Destinations: General Weights When there are no cycles of negative length, there is a shortest path between any two vertices of an n-vertex graph that has at most n- edges on it.. If the shortest path from v to u with at most k, k >, edges has no more than k edges, then dist k [u] = dist k- [u].. If the shortest path from v to u with at most k, k >, edges has exactly k edges, then it is comprised of a shortest path from v to some vertex i followed by the edge <i, u>. The path from v to i has k edges, and its length is dist k- [i]. The distance can be computed in recurrence by the following: dist k [ u] min{ dist k [ u],min{ dist [ i] length[ i][ u]}} The algorithm is also referred to as the Bellman and Ford Algorithm. i k

Shortest Paths with Negative Edge Lengths k dist k [7] - - - 7 - (a) A directed graph (b) dist k

All-Pairs Shortest Paths (Cont d) Notations A - [i][j]: is just the length[i][j] A n- [i][j]: the length of the shortest i-to-j path in G A k [i][j]: the length of the shortest path from i to j going through no intermediate vertex of index greater than k. How to determine the value of A k [i][j] A k [i][j] = min{a k- [i][j], A k- [i][k]+ A k- [k][j] }, k,,k- k,...,k- i,,k- j

Example for All-Pairs Shortest-Paths Problem A - A 7 (a) A - (b) A A A 7 7 (c) A (d) A

Transitive Closure Definition: The transitive closure matrix, denoted A +, of a graph G, is a matrix such that A + [i][j] = if there is a path of length > from i to j; otherwise, A + [i][j] =. Definition: The reflexive transitive closure matrix, denoted A *, of a graph G, is a matrix such that A * [i][j] = if there is a path of length >= from i to j; otherwise, A * [i][j] =.

Graph G and Its Adjacency Matrix A, A +, A * (a) Digraph G (b) Adjacency matrix A (c) A + (d) A *

Activity-on-Vertex (AOV) Networks Definition: Activity-On-Vertex network or AOV network A directed graph G the vertices represent tasks or activities the edges represent precedence relations between tasks. Definition: Vertex i in an AOV network G is a predecessor of vertex j iff there is a directed path from vertex i to vertex j. i is an immediate predecessor of j iff <i, j> is an edge in G. If i is a predecessor of j, then j is an successor of i. If i is an immediate predecessor of j, then j is an immediate successor of i.

Activity-on-Vertex (AOV) Networks (Cont.) Definition: A topological order is a linear ordering of the vertices of a graph such that, for any two vertices i and j, if i is a predecessor of j in the network, then i precedes j in the linear ordering.

An Activity-on-Vertex (AOV) Network Course number Course name Prerequisites C Programming I None C Discrete Mathematics None C Data Structures C, C C Calculus I None C Calculus II C C Linear Algebra C C7 Analysis of Algorithms C, C C8 Assembly Language C C9 Operating Systems C7, C8 C Programming Languages C7 C Compiler Design C C Artificial Intelligence C7 C Computational Theory C7 C Parallel Algorithms C C Numerical Analysis C

An Activity-on-Vertex (AOV) Network (Cont.) C9 C C C C C8 C C C7 C C C C C C

Figure. Action of Program. on an AOV network ->->->->-> (a) Initial (b) Vertex deleted (c) Vertex deleted (d) Vertex deleted (e) Vertex deleted (f) Vertex deleted

Figure.7 Internal representation used by topological sorting algorithm [] [] [] count first data link [] [] []

An AOE Network a = a = a = start a = a = a 7 = 9 a 8 = 7 a = 7 a 9 = 8 a = finish a = event interpretation Start of project Completion of activity a Completion of activities a and a 7 Completion of activities a 8 and a 9 8 Completion of project

Adjacency lists for Figure.8 (a) [] [] [] count first vertex dur link [] [] 9 7 7 [] 7 [] 8 [7] 8 [8]

Compute ee ee [] [] [] [] [] [] [] [7] [8] Stack Initial [] output [,,] output 7 [,,] output 7 [,] output 7 [] output 7 7 [] output 7 7 [7,] output 7 7 7 8 [] output 7 7 8 [8] output 8 a = a = start a = a = a = a = a 9 = a 7 = 9 a 8 = 7 7 a = a = 8 finish

Critical Path Analysis (cont.) AOE graph S A/ B/ C/ D/ ' E/ F/ 7' G/ 8' K/ 7 8 ' 9 H/

Critical Path Analysis (cont.) Earliest completion times: longest path computed by topological order EE = EE w =max(ee v +D v,w ) C/ A/ S ' D/ B/ E/ 7' F/ 8' G/ K/ 9 7 7 8 9 ' 7 9 H/

Critical Path Analysis (cont.) Latest completion times: latest time without affecting final completion time computed by reverse topological order S LE n =EE n LE v =min(le w -D v,w ) A/ B/ C/ ' E/ D/ F/ 7' G/ 8' 7 K/ Min( 7, ) 7 9 8 9 ' 9 9 9 H/

Critical Path Analysis (cont.) Slack time(v,w)=le w -EE w Critical path = zero slack time S A/ B/ C/ ' E/ D/ 7' 8' 7 K/ F/ G/ 9 7 9 7 8 9 9 ' 9 7 9 9 H/