Linear Programming – Max Flow – Min Cut Orgad Keller
Orgad Keller - Algorithms 2 2 We have an objective function: Subject to constraints: Linear Programming
Orgad Keller - Algorithms Given all parameters we want to find the optimal Linear Programming
Orgad Keller - Algorithms It is easier to present the problem with a matrix and vectors: Linear Programming
Orgad Keller - Algorithms Given the Primal Problem: It’s Dual Problem is defined as: The Dual Problem
Orgad Keller - Algorithms Given a problem and it’s dual problem, then: In other words, the optimal objective function’s value for the primal problem, is equal to the optimal objective function’s value for the dual problem. Strong Duality Theorem
Orgad Keller - Algorithms As you remember from Algorithms I Given a directed graph, two vertices and a capacity for each edge We want to find a flow function so that the flow value is maximal Maximum Flow
Orgad Keller - Algorithms But, we are subject to some rules: What goes in must come out: Capacity restrictions: Maximum Flow
Orgad Keller - Algorithms We’ll show by a simple example: Max Flow with Linear Programming
Orgad Keller - Algorithms We want to present the example in the form: Subject to: Max Flow with Linear Programming
Orgad Keller - Algorithms Formally: Max Flow with Linear Programming But we don’t permit equalities
Orgad Keller - Algorithms So we’ll add another edge, and change the problem’s representation a little. Max Flow with Linear Programming ∞
Orgad Keller - Algorithms
Orgad Keller - Algorithms
Orgad Keller - Algorithms As you remember from Algorithms I Given a directed graph, two vertices and a weight for each edge We want to find a minimal-weight subset of edges such that if we’ll remove them, we won’t be able to travel from to. Minimum Cut
Orgad Keller - Algorithms In other words: We’ll choose, where:,, such that the cut value, is minimal. Minimum Cut
Orgad Keller - Algorithms Going back to the example: Min Cut with Linear Programming
Orgad Keller - Algorithms Min Cut with Linear Programming What about: Is that enough? We haven’t ensured paths from to are cut. This look like And we know that
Orgad Keller - Algorithms Min Cut with Linear Programming Beside a variable for every edge, we’ll want a variable for every vertex, such that:
Orgad Keller - Algorithms Min Cut with Linear Programming Let’s take for instance: If is in the cut, that means that If is not in the cut, that means that either or or So it is the same to constrain:
Orgad Keller - Algorithms Formally: Max Flow with Linear Programming In order to ensure
Orgad Keller - Algorithms
Orgad Keller - Algorithms
Orgad Keller - Algorithms
Orgad Keller - Algorithms We now see that the problems are dual So also according to the Strong Duality Theorem, Max Flow = Min Cut Max Flow – Min Cut Theorem
Orgad Keller - Algorithms We want integer values for the variables, but this is LP, not IP! So how do we know that the solution will yield integer values for the variables? Theroem: If the constraints matrix is totally unimodular and the right hand side is comprised of integers, then it’s easy to find an integer solution. Integer Values
Orgad Keller - Algorithms Definition: A Unimodular matrix is a square matrix whose determinant is 0, 1 or -1. Definition: A Totally Unimodular matrix is a matrix whose every non-singular square submatrix is unimodular. Unimodular / Totally Unimodular