270 likes | 300 Views
Linear Programming – Max Flow – Min Cut. Orgad Keller. Linear Programming. We have an objective function: Subject to constraints:. Linear Programming. Given all parameters we want to find the optimal. Linear Programming. It is easier to present the problem with a matrix and vectors:.
E N D
Linear Programming – Max Flow – Min Cut Orgad Keller
Linear Programming • We have an objective function: • Subject to constraints: Orgad Keller - Algorithms 2
Linear Programming • Given all parameters • we want to find the optimal Orgad Keller - Algorithms 2 -
Linear Programming • It is easier to present the problem with a matrix and vectors: Orgad Keller - Algorithms 2 -
The Dual Problem • Given the Primal Problem: • It’s Dual Problem is defined as: Orgad Keller - Algorithms 2 -
Strong Duality Theorem • 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. Orgad Keller - Algorithms 2 -
Maximum Flow • 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 Orgad Keller - Algorithms 2 -
Maximum Flow • But, we are subject to some rules: • What goes in must come out: • Capacity restrictions: Orgad Keller - Algorithms 2 -
Max Flow with Linear Programming • We’ll show by a simple example: 1 3 1 3 2 Orgad Keller - Algorithms 2 -
Max Flow with Linear Programming • We want to present the example in the form: • Subject to: Orgad Keller - Algorithms 2 -
3 1 1 3 2 But we don’t permit equalities Max Flow with Linear Programming • Formally: Orgad Keller - Algorithms 2 -
∞ Max Flow with Linear Programming 3 1 1 • So we’ll add another edge, and change the problem’s representation a little. 3 2 Orgad Keller - Algorithms 2 -
Minimum Cut • 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 . Orgad Keller - Algorithms 2 -
Minimum Cut • In other words: • We’ll choose , where: , , such that the cut value, is minimal. Orgad Keller - Algorithms 2 -
Min Cut with Linear Programming • Going back to the example: 1 3 1 3 2 Orgad Keller - Algorithms 2 -
3 1 1 3 2 This look like And we know that Min Cut with Linear Programming • What about: • Is that enough? • We haven’t ensured paths from to are cut. Orgad Keller - Algorithms 2 -
3 1 1 3 2 Min Cut with Linear Programming • Beside a variable for every edge , we’ll want a variable for every vertex , such that: Orgad Keller - Algorithms 2 -
3 1 1 3 2 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 2 -
3 1 1 3 2 In order to ensure Max Flow with Linear Programming • Formally: Orgad Keller - Algorithms 2 -
Max Flow – Min Cut Theorem • We now see that the problems are dual • So also according to the Strong Duality Theorem, Max Flow = Min Cut Orgad Keller - Algorithms 2 -
Integer Values • 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. Orgad Keller - Algorithms 2 -
Unimodular / Totally Unimodular • 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. Orgad Keller - Algorithms 2 -