Graph Algorithms Minimum Spanning Tree (Chap 23)

Slides:



Advertisements
Similar presentations
Maximum flow Main goals of the lecture:
Advertisements

1 Review of some graph algorithms Graph G(V,E) (Chapter 22) –Directed, undirected –Representation Adjacency-list, adjacency-matrix Breadth-first search.
Introduction To Algorithms CS 445 Discussion Session 8 Instructor: Dr Alon Efrat TA : Pooja Vaswani 04/04/2005.
The Maximum Network Flow Problem. CSE Network Flows.
Advanced Algorithm Design and Analysis (Lecture 8) SW5 fall 2004 Simonas Šaltenis E1-215b
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 21: Graphs.
1 The Max Flow Problem. 2 Flow networks Flow networks are the problem instances of the max flow problem. A flow network is given by 1) a directed graph.
CS138A Network Flows Peter Schröder. CS138A Flow Networks Definitions a flow network G=(V,E) is a directed graph in which each edge (u,v)
CS138A Maximum Bipartite Matching Peter Schröder.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2001 Lecture 4 Tuesday, 2/19/02 Graph Algorithms: Part 2 Network.
1 Maximum flow problems. 2 - Introduction of: network, max-flow problem capacity, flow - Ford-Fulkerson method pseudo code, residual networks, augmenting.
1 Maximum Flow Maximum Flow Problem The Ford-Fulkerson method Maximum bipartite matching.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 4 Tuesday, 10/2/01 Graph Algorithms: Part 2 Network.
Greedy Algorithms Reading Material: Chapter 8 (Except Section 8.5)
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2004 Lecture 5 Wednesday, 10/6/04 Graph Algorithms: Part 2.
Maximum Flow Maximum Flow Problem The Ford-Fulkerson method
Maximum Flow Chapter 26.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
Lecture 12-2: Introduction to Computer Algorithms beyond Search & Sort.
Single Source Shortest-Path: The General Case (with negative edges) Bellman-Ford algorithm. Iteratively relax all edges |V|-1 times Running time? O(VE).
CS 473Lecture ?1 CS473-Algorithms I Lecture ? Network Flows Finding Max Flow.
Max Flow – Min Cut Problem. Directed Graph Applications Shortest Path Problem (Shortest path from one point to another) Max Flow problems (Maximum material.
Maximum Flow Chapter 26. Flow Concepts Source vertex s – where material is produced Sink vertex t – where material is consumed For all other vertices.
1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
Chapter 20: Graphs. Objectives In this chapter, you will: – Learn about graphs – Become familiar with the basic terminology of graph theory – Discover.
Theory of Computing Lecture 12 MAS 714 Hartmut Klauck.
Maximum Flow Problem Definitions and notations The Ford-Fulkerson method.
Instructor Neelima Gupta Edited by Divya Gaur(39, MCS '09) Thanks to: Bhavya(9), Deepika(10), Deepika Bisht(11) (MCS '09)
TU/e Algorithms (2IL15) – Lecture 8 1 MAXIMUM FLOW (part II)
Network Flow What is a network? Flow network and flows
Maximum Flow Chapter 26.
The Maximum Network Flow Problem
Maximum Flow c v 3/3 4/6 1/1 4/7 t s 3/3 w 1/9 3/5 1/1 3/5 u z 2/2
Maximum Flow Chapter 26.
Data Structures and Algorithms (AT70. 02) Comp. Sc. and Inf. Mgmt
Lectures on Network Flows
Algorithms and Networks Hans Bodlaender
Network flow problem [Adapted from M.Chandy].
Richard Anderson Lecture 23 Network Flow
Lecture 22 Network Flow, Part 2
CSCI 3160 Design and Analysis of Algorithms Tutorial 8
ADVANCED ALGORITHMS GRAPH ALGORITHMS (UNIT-2).
Graph Algorithm.
Instructor: Shengyu Zhang
Edmonds-Karp Algorithm
Network Flows and Matching (Supplementary)
Maximum Flow c v 3/3 4/6 1/1 4/7 t s 3/3 w 1/9 3/5 1/1 3/5 u z 2/2
Lecture 10 Network flow Max-flow and Min-cut Ford-Fulkerson method
CS 583 Analysis of Algorithms
Flow Networks Topics Flow Networks Residual networks
Chapter 11 Graphs.
Lecture 5 Tuesday, 3/2/10 Graph Algorithms: Part 2
Network Flows and Matching (Supplementary)
Flow Networks General Characteristics Applications
Flow Networks and Bipartite Matching
Algorithms (2IL15) – Lecture 7
EE5900 Advanced Embedded System For Smart Infrastructure
離散數學 DISCRETE and COMBINATORIAL MATHEMATICS
Maximum Flow c v 3/3 4/6 1/1 4/7 t s 3/3 w 1/9 3/5 1/1 3/5 u z 2/2
Text Book: Introduction to algorithms By C L R S
Dinitz's algorithm for finding a maximum flow in a network.
MAXIMUM flow by Eric Wengert.
Maximum Flow Neil Tang 4/8/2008
Algorithm Course Dr. Aref Rashad
Lecture 22 Network Flow, Part 2
Review for Final Neil Tang 05/01/2008
Advanced Graph Homer Lee 2013/10/31.
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 .
More Graphs Lecture 19 CS2110 – Fall 2009.
Presentation transcript:

Graph Algorithms Minimum Spanning Tree (Chap 23) Shortest Path (Chap. 24, 25) Maximum Flow (Chap. 26, optional)

Review of some graph algorithms Graph G(V,E) (Chapter 22) Directed, undirected Representation Adjacency-list, adjacency-matrix Breadth-first search (BFS), O(V+E) Depth-first search (DFS), O(V+E), recursive Topological Sort Strong connected components

Review of some graph algorithms Minimum Spanning Tree (Chapter 23) Greedy algorithm Kruskal’s algorithm: O(ElgV) Using disjoint set algorithm, similar to connected components Prim’s algorithm: O(E+VlgV) Similar to Dijkstra, using min-priority QUEUE Single-source shortest paths (Chapter 24) Bellman-Ford algorithm: O(VE) dj=min{dj,dk+w(j,k)} where k is j’s neighbor Dijkstra’s algorithm: O(E+VlgV) Find the closest node n1 which is s’s neighbor, modify other nodes distance Find the second closest node n2 which is the neighbor of s or n1, modify the distance Find the third closest node n3, which is the neighbor of s, n1, or n2, ,….

Graph algorithms (cont.) All-pairs shortest paths (Chapter 25) Floyd-Warshall algorithms: O(V3). Dynamic programming, similar to Matrix Chain Multiplications

Shortest paths among all pairs— Floyd-Warshall algorithm Given G=(V, E, w) suppose V={1,2,…,n} are vertices and w is weight matrix on edges Consider a subset of vertices {1,2,…, k} for some k, for any pair of i and j, consider all the paths from i to j including only vertices from 1,2,…,to k and let p be one of the minimum such paths (also a simple path).

Floyd-Warshall algorithm (cont.) There are two cases: K is not on path p. In this case, path p will be a minimum path including only vertices of 1,2,…, k-1. k is on path p. In this case, the portion of i to k on path p will be a minimum path from i to k including only vertices 1,2, …, k-1, similarly for the pair of k and j.

Floyd-Warshall algorithm (cont.) Let D(i,j,k) denote the (length of) minimum path between i and j including only vertices 1,2,…, k. D(i,j,n) will be the answer for any pair i and j. Recursive definition: Algorithm: Initialize for k=0 For (k=1 to n) For (i=1 to n) and for (j=1 to n) D(i,j,k)=min{D(i,j,k-1), D(i,k,k-1)+D(k,j,k-1)}

Maximum Flow (chap. 26) Max-flow problem: A directed graph G=<V,E>, a capacity function on each edge c(u,v) 0 and a source s and a sink t. A flow is a function f : VVR that satisfies: Capacity constraints: for all u,vV, f(u,v) c(u,v). Skew symmetry: for all u,vV, f(u,v)= -f(v,u). Flow conservation: for all uV-{s,t}, vV f(u,v)=0, or to say, total flow out of a vertex other s or t is 0, or to say, how much comes in, also that much comes out. Find a maximum flow from s to t. Denote the value of f as |f|=vVf(s,v), i.e., the total flow out of the source s. |f|=uVf(u,t), i.e., the total flow into the sink t.

Example of max-flow problem

Ford-Fulkerson method Contains several algorithms: Residue networks Augmenting paths

Residual Networks Given a flow network G=<V,E> and a flow f, the residual network of G induced by f is Gf=<V,Ef> where Ef={(u,v)VV: cf(u,v)=c(u,v)-f(u,v), and cf(u,v)>0} a network with left capacity >0, also a flow network.

Residual network and augmenting path

Residual network and flow theorem Lemma 26.2 (page 653): Let G=<V,E> be a flow network with source s and sink t, and let f be a flow, Let Gf be the residual network of G induced by f, and let f' be a flow of Gf. Define the flow sum: f+f' as: (f+f')(u.v)=f(u.v)+f'(u.v), then f+f' is a flow in G with value |f+f'|=|f|+|f'|. Proof: Capacity constraint, skew symmetry, and flow conservation and finally |f+f'|=|f|+|f'|.

Augmenting paths Let G=<V,E> be a flow network with source s and sink t, and let f be a flow, An augmenting path p in G is a simple path from s to t in Gf, the residual network of G induced by f. Each edge (u,v) on an augmenting path admits some additional positive flow from u to v without violating the capacity constraint. Define residual capacity of p is the maximum amount we can increase the flow: cf(p)=min{cf(u,v): (u,v) is on p.}

Augmenting path Lemma 26.3 (page 654): Corollary 26.4 (page 654): Let G=<V,E> be a flow network with source s and sink t, let f be a flow, and let p be an augmenting path in Gf. Define fp: VVR by: fp(u,v)= cf(p) if (u,v) is on p. -cf(p) if (v,u) is on p. 0 otherwise Then fp is a flow in Gf with value |fp|=cf(p) >0. Corollary 26.4 (page 654): Define f'=f+fp, then f' is a flow in G with value |f'|=|f|+|fp|>|f|.

Basic Ford-Fulkerson algorithm Running time: if capacities are in irrational numbers, the algorithm may not terminate. Otherwise, O(|E||f*|) where f* is the maximum flow found by the algorithm: while loop runs f* times, increasing f* by one each loop, finding an augmenting path using depth- first search or breadth-first search costs |E|.

Execution of Ford-Fulkerson

An example of loop |f*| times Note: if finding an augmenting path uses breadth-first search, i.e., each augmenting path is a shortest path from s to t in the residue network, while loop runs at most O(|V||E|) times (in fact, each edge can become critical at most |V|/2-1 times), so the total cost is O(|V||E|2). Called Edmonds-Karp algorithm.

Network flows with multiple sources and sinks Some problems can be reduced to maximum flow problem. Here give two examples. Reduce to network flow with single source and single sink Introduce a supersource s which is directly connected to each of the original sources si with a capacity c(s,si)= Introduce a supersink t which is directly connected from each of the original sinks ti with a capacity c(si,s)=

Maximum bipartite matching Matching in a undirected graph G=(V,E) A subset of edges ME, such that for all vertices vV, at most one edge of M is incident on v. Maximum matching M For any matching M′, |M|| M′|. Bipartite: V=LR where L and R are distinct and all the edges go between L and R. Practical application of bipartite matching: Matching a set L of machines with a set R of tasks to be executed simultaneously. The edge means that a machine can execute a task.

Copyright © The McGraw-Hill Companies, Inc Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.

Finding a maximum bipartite matching Construct a flow network G′=(V′,E′,C) from G=(V,E) as follows where =LR: V′=V{s,t}, introducing a source and a sink E′={(s,u): uL}  E {(v,t): vR} For each edge, its capacity is unit 1. As a result, the maximum flow in G′ is a maximum matching in G.

Copyright © The McGraw-Hill Companies, Inc Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.