Discrete Optimization Lecture 3 – Part 1 M. Pawan Kumar Slides available online

Slides:



Advertisements
Similar presentations
Lecture 24 MAS 714 Hartmut Klauck
Advertisements

Max Flow Problem Given network N=(V,A), two nodes s,t of V, and capacities on the arcs: uij is the capacity on arc (i,j). Find non-negative flow fij for.
Introduction to Graphs
1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
EMIS 8374 Vertex Connectivity Updated 20 March 2008.
October 31, Algorithms and Data Structures Lecture XIII Simonas Šaltenis Nykredit Center for Database Research Aalborg University
Discussion #33 Adjacency Matrices. Topics Adjacency matrix for a directed graph Reachability Algorithmic Complexity and Correctness –Big Oh –Proofs of.
1 Chapter 22: Elementary Graph Algorithms IV. 2 About this lecture Review of Strongly Connected Components (SCC) in a directed graph Finding all SCC (i.e.,
Lectures on Network Flows
Data Structures, Spring 2004 © L. Joskowicz 1 Data Structures – LECTURE 14 Strongly connected components Definition and motivation Algorithm Chapter 22.5.
Lecture 13 CSE 331 Oct 2, Announcements Please turn in your HW 3 Graded HW2, solutions to HW 3, HW 4 at the END of the class Maybe extra lectures.
Covering Trains by Stations or The power of Data Reduction Karsten Weihe, ALEX98, 1998 Presented by Yantao Song.
A general approximation technique for constrained forest problems Michael X. Goemans & David P. Williamson Presented by: Yonatan Elhanani & Yuval Cohen.
Greedy Algorithms Reading Material: Chapter 8 (Except Section 8.5)
Minimum Cost Flow Lecture 5: Jan 25. Problems Recap Bipartite matchings General matchings Maximum flows Stable matchings Shortest paths Minimum spanning.
Data Structures, Spring 2006 © L. Joskowicz 1 Data Structures – LECTURE 14 Strongly connected components Definition and motivation Algorithm Chapter 22.5.
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 11 Instructor: Paul Beame.
Polyhedral Optimization Lecture 3 – Part 3 M. Pawan Kumar Slides available online
CSE 421 Algorithms Richard Anderson Lecture 22 Network Flow.
Polyhedral Optimization Lecture 3 – Part 2
Polyhedral Optimization Lecture 4 – Part 3 M. Pawan Kumar Slides available online
Polyhedral Optimization Lecture 5 – Part 1 M. Pawan Kumar Slides available online
Design Techniques for Approximation Algorithms and Approximation Classes.
Applications of the Max-Flow Min-Cut Theorem. S-T Cuts SF D H C A NY S = {SF, D, H}, T={C,A,NY} [S,T] = {(D,A),(D,C),(H,A)}, Cap [S,T] =
Discrete Optimization Lecture 5 – Part 2 M. Pawan Kumar Slides available online
Polyhedral Optimization Lecture 4 – Part 2 M. Pawan Kumar Slides available online
Discrete Optimization Lecture 4 – Part 1 M. Pawan Kumar Slides available online
Polyhedral Optimization Lecture 5 – Part 2 M. Pawan Kumar Slides available online
& 6.855J & ESD.78J Algorithm Visualization The Ford-Fulkerson Augmenting Path Algorithm for the Maximum Flow Problem.
The Ford-Fulkerson Augmenting Path Algorithm for the Maximum Flow Problem Thanks to Jim Orlin & MIT OCW.
Lecture 5.4: Paths and Connectivity CS 250, Discrete Structures, Fall 2011 Nitesh Saxena *Adopted from previous lectures by Zeph Grunschlag.
Network Flows. Menger ’ s Theorem Theorem 7.1. (Menger [1927] ) Let G be a graph (directed or undirected), let s and t be two vertices, and k  N. Then.
CSCI-256 Data Structures & Algorithm Analysis Lecture Note: Some slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved. 25.
and 6.855J March 6, 2003 Maximum Flows 2. 2 Network Reliability u Communication Network u What is the maximum number of arc disjoint paths from.
Discrete Optimization Lecture 1 M. Pawan Kumar Slides available online
1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
Discrete Optimization Lecture 4 – Part 1 M. Pawan Kumar
CSEP 521 Applied Algorithms Richard Anderson Lecture 8 Network Flow.
CSE 421 Algorithms Richard Anderson Lecture 22 Network Flow.
1 Assignment #3 is posted: Due Thursday Nov. 15 at the beginning of class. Make sure you are also working on your projects. Come see me if you are unsure.
Discrete Optimization Lecture 5 – Part 1 M. Pawan Kumar Slides available online
Theory of Computing Lecture 12 MAS 714 Hartmut Klauck.
C&O 355 Lecture 19 N. Harvey TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A A A A A A A A A A.
Polyhedral Optimization Lecture 5 – Part 3 M. Pawan Kumar Slides available online
A directed graph G consists of a set V of vertices and a set E of arcs where each arc in E is associated with an ordered pair of vertices from V. V={0,
Submodularity Reading Group Matroid Polytopes, Polymatroid M. Pawan Kumar
TU/e Algorithms (2IL15) – Lecture 8 1 MAXIMUM FLOW (part II)
Polyhedral Optimization Lecture 2 – Part 2 M. Pawan Kumar Slides available online
V15: Max-Flow Min-Cut V15 continues chapter 12 in Gross & Yellen „Graph Theory“ Theorem [Characterization of Maximum Flow] Let f be a flow in a.
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
Submodularity Reading Group Minimum Cut, Dinic’s Algorithm
Lectures on Network Flows
Algorithms and Networks Hans Bodlaender
Discrete Optimization Lecture 1
Autumn 2016 Lecture 11 Minimum Spanning Trees (Part II)
Discrete Inference and Learning
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 9 Greedy Strategy
Autumn 2015 Lecture 11 Minimum Spanning Trees (Part II)
Algorithms (2IL15) – Lecture 5 SINGLE-SOURCE SHORTEST PATHS
Basic Graph Algorithms
CS 583 Analysis of Algorithms
Union-Find.
Algorithms (2IL15) – Lecture 7
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
Algorithms Lecture # 27 Dr. Sohail Aslam.
Winter 2019 Lecture 11 Minimum Spanning Trees (Part II)
Graph Theory: Euler Graphs and Digraphs
Directed Graphs (Part II)
Autumn 2019 Lecture 11 Minimum Spanning Trees (Part II)
Presentation transcript:

Discrete Optimization Lecture 3 – Part 1 M. Pawan Kumar Slides available online

Questions? Solutions for the knapsack problems?

Path Packing –Description of the Algorithm –Analysis of the Algorithm Outline

Arc Disjoint s-t Paths v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Set of s-t Paths with no common arcs

s-t Cut v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s C = out-arcs(U)s in U t not in U

An Interesting Operation on Digraphs v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P

v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Reverse the arcs of P An Interesting Operation on Digraphs

v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1 An Interesting Operation on Digraphs

Reversing vs. Removing v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1

Reversing vs. Removing v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s U = {v 0, v 4 } |out-arcs(U)| decreases by 1.

Reversing vs. Removing v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s U = {v 0, v 4 } |out-arcs(U)| decreases by 2.

Reversing vs. Removing v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s U = {v 0 } |out-arcs(U)| decreases by 1.

Reversing vs. Removing v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s U = {v 0 } |out-arcs(U)| decreases by 1. Unknown decrease in cut size. Cannot construct an algorithm.

Another Example v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U Corresponds to minimum s-t cut … of size 3

Another Example Corresponds to minimum s-t cut … of size 3 Why is (v 2,v 6 ) not included? v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

Find an s-t Path v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

Find an s-t Path v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

Reversing vs. Removing v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

Reversing vs. Removing Reduces minimum s-t cut … by 1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

Reversing vs. Removing Reduces minimum s-t cut … by 1 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

Reversing vs. Removing v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

Reversing vs. Removing Reduces minimum s-t cut … by 2 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

Reversing vs. Removing Reduces minimum s-t cut … by 2 v0v0 v0v0 v2v2 v2v2 v3v3 v3v3 v6v6 v6v6 v7v7 v7v7 v 10 t s v9v9 v9v9 v4v4 v4v4 v5v5 v5v5 v8v8 v8v8 v1v1 v1v1 U

Reversing vs. Removing Removing the arcs doesn’t decrease cut size by a constant Reversing the arcs does decrease cut size by a constant A simple algorithm made possible by reversing

Path Packing –Description of the Algorithm –Analysis of the Algorithm Outline

Algorithm v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P

Algorithm v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P

v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1 Algorithm

v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1

Algorithm v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1

Algorithm v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1

Algorithm v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P Reverse the arcs of P For U, s in U, t not in U |out-arcs(U)| decreases by 1. Size of each s-t cut decreases by 1

Algorithm v8v8 v8v8 v0v0 v0v0 v1v1 v1v1 v2v2 v2v2 v3v3 v3v3 v4v4 v4v4 v5v5 v5v5 v6v6 v6v6 v9v9 v9v9 v7v7 v7v7 t s Find an s-t path P No more s-t paths Size of minimum cut = 0 Size of minimum cut for original digraph = 3

Algorithm While there exist s-t paths Find an s-t path P Reverse the arcs of P End U is the set of vertices reachable by s in the end Minimum s-t cut = out-arcs(U)

Path Packing –Description of the Algorithm –Analysis of the Algorithm Outline

Computational Complexity While there exist s-t paths Find an s-t path P Reverse the arcs of P End O(m) O(m 2 )

Analysis D i is the digraph after i iterations. D 0 = D. A i is the set of all arcs that are reversed in D i. B i = A i “union” {i arcs from t to s}. (V,B i ) is Eulerian. Mathematical induction over iterations Proof?

Analysis Trivial for i = 0. (V, B i “union” arcs(P) “union” (t,s)) is Eulerian Assume (V,B i ) is Eulerian. Mathematical induction over iterations Remove pairs of arcs (u,v) and (v,u) where (u,v) is in B i, (v,u) is in arcs(P). (V, B i+1 ) is EulerianCompute of arc disjoint paths