Polyhedral Optimization Lecture 2 – Part 2 M. Pawan Kumar Slides available online

Slides:



Advertisements
Similar presentations
1 LP Duality Lecture 13: Feb Min-Max Theorems In bipartite graph, Maximum matching = Minimum Vertex Cover In every graph, Maximum Flow = Minimum.
Advertisements

Totally Unimodular Matrices
1 Maximum flow sender receiver Capacity constraint Lecture 6: Jan 25.
EMIS 8374 Vertex Connectivity Updated 20 March 2008.
C&O 355 Lecture 20 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.
Lectures on Network Flows
Totally Unimodular Matrices Lecture 11: Feb 23 Simplex Algorithm Elliposid Algorithm.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 4 Tuesday, 10/2/01 Graph Algorithms: Part 2 Network.
Linear programming maximize x 1 + x 2 x 1 + 3x 2  3 3x 1 + x 2  5 x 1  0 x 2  0.
Linear Programming – Max Flow – Min Cut Orgad Keller.
CSE 421 Algorithms Richard Anderson Lecture 22 Network Flow.
Polyhedral Optimization Lecture 3 – Part 2
C&O 355 Mathematical Programming Fall 2010 Lecture 17 N. Harvey TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A.
Polyhedral Optimization Lecture 5 – Part 1 M. Pawan Kumar Slides available online
C&O 355 Mathematical Programming Fall 2010 Lecture 19 N. Harvey TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A.
Theory of Computing Lecture 13 MAS 714 Hartmut Klauck.
C&O 355 Mathematical Programming Fall 2010 Lecture 18 N. Harvey TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A A A.
Based on slides by Y. Peng University of Maryland
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A A A A A A Image:
Polyhedral Optimization Lecture 4 – Part 2 M. Pawan Kumar Slides available online
Discrete Optimization Lecture 4 – Part 1 M. Pawan Kumar Slides available online
CSCI-256 Data Structures & Algorithm Analysis Lecture Note: Some slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved. 25.
1 EE5900 Advanced Embedded System For Smart Infrastructure Static Scheduling.
CSEP 521 Applied Algorithms Richard Anderson Lecture 8 Network Flow.
CSE 421 Algorithms Richard Anderson Lecture 22 Network Flow.
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.
TU/e Algorithms (2IL15) – Lecture 12 1 Linear Programming.
Discrete Optimization Lecture 3 – Part 1 M. Pawan Kumar Slides available online
Submodularity Reading Group Matroid Polytopes, Polymatroid M. Pawan Kumar
Fundamental Graph Theory (Lecture 1) Lectured by Hung-Lin Fu 傅 恆 霖 Department of Applied Mathematics National Chiao Tung University.
TU/e Algorithms (2IL15) – Lecture 8 1 MAXIMUM FLOW (part II)
Submodularity Reading Group Matroids, Submodular Functions M. Pawan Kumar
Lap Chi Lau we will only use slides 4 to 19
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
Special Graphs By: Sandeep Tuli Astt. Prof. CSE.
Submodularity Reading Group Minimum Cut, Dinic’s Algorithm
Topics in Algorithms Lap Chi Lau.
Data Structures and Algorithms (AT70. 02) Comp. Sc. and Inf. Mgmt
CS4234 Optimiz(s)ation Algorithms
Algorithm Design and Analysis
Lectures on Network Flows
Richard Anderson Lecture 23 Network Flow
Lecture 22 Network Flow, Part 2
CSCI 3160 Design and Analysis of Algorithms Tutorial 8
Discrete Inference and Learning
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
3.5 Minimum Cuts in Undirected Graphs
Flow Networks Topics Flow Networks Residual networks
Richard Anderson Lecture 23 Network Flow
Richard Anderson Lecture 23 Network Flow
Vertex Covers, Matchings, and Independent Sets
Richard Anderson Lecture 21 Network Flow
Problem Solving 4.
Max Flow Min Cut, Bipartite Matching Yin Tat Lee
Graphical Models and Learning
Flow Networks General Characteristics Applications
Systems of distinct representations
Flow Networks and Bipartite Matching
Algorithms (2IL15) – Lecture 7
Flow Feasibility Problems
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 21 Network Flow, Part 1
Richard Anderson Lecture 22 Network Flow
Lecture 21 Network Flow, Part 1
Lecture 22 Network Flow, Part 2
Vertex Covers and Matchings
Presentation transcript:

Polyhedral Optimization Lecture 2 – Part 2 M. Pawan Kumar Slides available online

Flows and Cuts Bipartite Matching and Vertex Cover Outline

Functions on Arcs v1v1 v2v2 v3v3 v4v s t D = (V, A) Arc capacities c(a) Function f: A  Reals Excess function E f (v) Incoming value - Outgoing value 4

Functions on Arcs v1v1 v2v2 v3v3 v4v s t D = (V, A) Arc capacities c(a) Function f: A  Reals Excess function E f (v) Σ a  in-arcs(v) f(a) - Outgoing value 4

Functions on Arcs v1v1 v2v2 v3v3 v4v s t Function f: A  Reals Excess function E f (v) 4 D = (V, A) Arc capacities c(a) Σ a  in-arcs(v) f(a) - Σ a  out-arcs(v) f(a)

Functions on Arcs v1v1 v2v2 v3v3 v4v s t Function f: A  Reals Excess function E f (v) f(in-arcs(v)) - f(out-arcs(v)) E f (v 1 )-6 4 D = (V, A) Arc capacities c(a)

Functions on Arcs v1v1 v2v2 v3v3 v4v s t Function f: A  Reals Excess function E f (v) E f (v 2 )14 f(in-arcs(v)) - f(out-arcs(v)) 4 D = (V, A) Arc capacities c(a)

Excess Functions of Vertex Subsets v1v1 v2v2 v3v3 v4v s t Excess function E f (U) Incoming Value - Outgoing Value 4

Excess Functions of Vertex Subsets v1v1 v2v2 v3v3 v4v s t Excess function E f (U) Σ a  in-arcs(U) f(a) - Outgoing Value 4

Excess Functions of Vertex Subsets v1v1 v2v2 v3v3 v4v s t Excess function E f (U) Σ a  in-arcs(U) f(a) - Σ a  out-arcs(U) f(a) 4

Excess Functions of Vertex Subsets v1v1 v2v2 v3v3 v4v s t Excess function E f (U) f(in-arcs(U)) - f(out-arcs(U)) E f ({v 1,v 2 }) 4 8

Excess Functions of Vertex Subsets v1v1 v2v2 v3v3 v4v s t Excess function E f (U) f(in-arcs(U)) - f(out-arcs(U)) E f (U) = Σ v  U E f (v) E f ({v 1,v 2 })

Flows and Cuts –s-t Flow –s-t Cut –Flows vs. Cuts –Incidence Matrix –Max-Flow Problem –Dual of Max-Flow Problem Bipartite Matching and Vertex Cover Outline

s-t Flow v1v1 v2v2 v3v3 v4v s t Function flow: A  R Flow of arc ≤ arc capacity Flow is non-negative For all vertex expect s,t Incoming flow = Outgoing flow

s-t Flow Function flow: A  R flow(a) ≤ c(a) Flow is non-negative For all vertex expect s,t Incoming flow = Outgoing flow v1v1 v2v2 v3v3 v4v s t

s-t Flow Function flow: A  R flow(a) ≤ c(a) For all vertex expect s,t Incoming flow = Outgoing flow flow(a) ≥ 0 v1v1 v2v2 v3v3 v4v s t

s-t Flow Function flow: A  R flow(a) ≤ c(a) flow(a) ≥ 0 For all v  V \ {s,t} Incoming flow = Outgoing flow v1v1 v2v2 v3v3 v4v s t

s-t Flow Function flow: A  R flow(a) ≤ c(a) flow(a) ≥ 0 For all v  V \ {s,t} = Outgoing flow Σ (u,v)  A flow((u,v)) v1v1 v2v2 v3v3 v4v s t

s-t Flow Function flow: A  R flow(a) ≤ c(a) flow(a) ≥ 0 For all v  V \ {s,t} = Σ (v,u)  A flow((v,u)) Σ (u,v)  A flow((u,v)) v1v1 v2v2 v3v3 v4v s t

s-t Flow Function flow: A  R flow(a) ≤ c(a) flow(a) ≥ 0 For all v  V \ {s,t} E flow (v) = 0 v1v1 v2v2 v3v3 v4v s t

s-t Flow v1v1 v2v2 v3v3 v4v s t Function flow: A  R flow(a) ≤ c(a) flow(a) ≥ 0 For all v  V \ {s,t} E flow (v) = ✗

s-t Flow v1v1 v2v2 v3v3 v4v s t Function flow: A  R flow(a) ≤ c(a) flow(a) ≥ 0 For all v  V \ {s,t} E flow (v) = 0 ✗

s-t Flow v1v1 v2v2 v3v3 v4v s t Function flow: A  R flow(a) ≤ c(a) flow(a) ≥ 0 For all v  V \ {s,t} E flow (v) = ✓

Value of s-t Flow Outgoing flow of s - Incoming flow of s v1v1 v2v2 v3v3 v4v s t

Value of s-t Flow Σ (s,v)  A flow((s,v)) - Σ (u,s)  A flow((u,s)) -E flow (s)E flow (t) v1v1 v2v2 v3v3 v4v s t

Value of s-t Flow v1v1 v2v2 v3v3 v4v s t Σ (s,v)  A flow((s,v)) - Σ (u,s)  A flow((u,s)) -E flow (s)E flow (t) Value = 1

Flows and Cuts –s-t Flow –s-t Cut –Flows vs. Cuts –Incidence Matrix –Max-Flow Problem –Dual of Max-Flow Problem Bipartite Matching and Vertex Cover Outline

Cut v1v1 v2v2 v3v3 v4v Let U be a subset of V C is a set of arcs such that (u,v)  A u  U v  V\U D = (V, A) C is a cut in the digraph D

Cut v1v1 v2v2 v3v3 v4v4 What is C? D = (V, A) U V\U {(v 1,v 2 ),(v 1,v 4 )} ? {(v 1,v 4 ),(v 3,v 2 )} ? {(v 1,v 4 )} ? ✓

Cut v1v1 v2v2 v3v3 v4v4 What is C? D = (V, A) U V\U {(v 1,v 2 ),(v 1,v 4 ),(v 3,v 2 )} ? {(v 1,v 4 ),(v 3,v 2 )} ? {(v 4,v 3 )} ? ✓

Cut What is C? D = (V, A) V\U U {(v 1,v 2 ),(v 1,v 4 ),(v 3,v 2 )} ? {(v 1,v 4 ),(v 3,v 2 )} ? {(v 3,v 2 )} ? ✓ v1v1 v2v2 v3v3 v4v

Cut C = out-arcs(U) D = (V, A) v1v1 v2v2 v3v3 v4v

Capacity of Cut Sum of capacity of all arcs in C v1v1 v2v2 v3v3 v4v

Capacity of Cut Σ a  C c(a) v1v1 v2v2 v3v3 v4v

Capacity of Cut 3 v1v1 v2v2 v3v3 v4v4 U V\U

Capacity of Cut 15 V\U U v1v1 v2v2 v3v3 v4v

s-t Cut A source vertex “s” C is a cut such that s  U t  V\U D = (V, A) C is an s-t cut A sink vertex “t” v1v1 v2v2 v3v3 v4v s t

Capacity of s-t Cut Σ a  C c(a) v1v1 v2v2 v3v3 v4v s t

Capacity of s-t Cut 5 v1v1 v2v2 v3v3 v4v s t

17 v1v1 v2v2 v3v3 v4v s t

Flows and Cuts –s-t Flow –s-t Cut –Flows vs. Cuts –Incidence Matrix –Max-Flow Problem –Dual of Max-Flow Problem Bipartite Matching and Vertex Cover Outline

Flows vs. Cuts An s-t flow function flow: A  Reals An s-t cut C such that s  U, t  V\U Value of flow ≤ Capacity of C

Flows vs. Cuts Value of flow = -E flow (s) - Σ v  U\{s} E flow (v) = -E flow (s) = -E flow (U) = flow(out-arcs(U)) - flow(in-arcs(U)) ≤ Capacity of C - flow(in-arcs(U))

Max-Flow Min-Cut Theorem Value of max flow = Capacity of min cut Ford and Fulkerson, 1958 “Combinatorial” proof We want to use polyhedral techniques

Flows and Cuts –s-t Flow –s-t Cut –Flows vs. Cuts –Incidence Matrix –Max-Flow Problem –Dual of Max-Flow Problem Bipartite Matching and Vertex Cover Outline

Incidence Matrix v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 n x m matrix

Incidence Matrix v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a n x m matrix

Incidence Matrix v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a n x m matrix

Incidence Matrix v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a n x m matrix

Incidence Matrix v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a n x m matrix

Incidence Matrix v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a n x m matrix

Incidence Matrix v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a n x m matrix

Incidence Matrix v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a n x m matrix ?

Incidence Matrix v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a n x m matrix

Incidence Matrix Each column contains exactly one +1 Each column contains exactly one -1 Rest of the column entries are 0 Linearly dependent rows, determinant = 0

Property Digraph D = (V,A) Incidence matrix M M is a TUM Proof?

Proof Sketch Consider a submatrix S of M of size k x k Mathematical induction: det(S) ∈ {0,+1,-1} Trivial for k = 1 Assume it is true for k < m

Proof Sketch Consider a submatrix S of M of size m x m Case I: S contains a column of all zeros det(S) = 0

Proof Sketch Consider a submatrix S of M of size m x m Case II: S contains a column with one non-zero Use induction assumption ±1sTsT S’0

Proof Sketch Consider a submatrix S of M of size m x m Case III: All columns contain two non-zeros Sum of column = 0 (linearly dependent rows) Hence proved

Flows and Cuts –s-t Flow –s-t Cut –Flows vs. Cuts –Incidence Matrix –Max-Flow Problem –Dual of Max-Flow Problem Bipartite Matching and Vertex Cover Outline

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices Variable x of size m x 1 Flow in arc ‘a i ’ is x i x ≥ 0 Linear constraint

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices Capacity vector c Linear constraint x ≤

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a Incidence Matrix M

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices v1v1 a1a1 a2a2 a3a3 a4a4 a5a x x1x1 - x 3 - x 4 Incoming Flow Outgoing Flow -

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices v1v1 a1a1 a2a2 a3a3 a4a4 a5a x x1x1 - x 3 - x 4 Excess Flow

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a Incidence Matrix M

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices v2v2 a1a1 a2a2 a3a3 a4a4 a5a x x2x2 +x 3 - x 5 Incoming Flow Outgoing Flow -

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices v2v2 a1a1 a2a2 a3a3 a4a4 a5a x x2x2 +x 3 - x 5 Excess Flow

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a Incidence Matrix M

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a Incidence Submatrix M’ Is M’ a TUM?YES

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a M’x = 0Flow conversation Linear constraint

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a Any other constraints?

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a Objective function? w

Max-Flow Problem v1v1 v2v2 3 s t m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a max x w T x w

Max-Flow Problem max x w T x s.t. 0 ≤ x ≤ c M’x = 0 Integer polyhedron? No, c may not be an integer vector If c ∈ Z m, there exists an integer max flow

Flows and Cuts –s-t Flow –s-t Cut –Flows vs. Cuts –Incidence Matrix –Max-Flow Problem –Dual of Max-Flow Problem Bipartite Matching and Vertex Cover Outline

Dual of Max-Flow Problem max x w T x s.t. 0 ≤ x ≤ c M’x = 0 y ≥ 0 z

Dual of Max-Flow Problem min (y,z) c T y s.t. y ≥ 0 y T + z T M’ ≥ w T Optimal integer solution (y*,z*) Integer polyhedron? YES

Dual of Max-Flow Problem Define set U ⊆ V Source s ∈ USink t ∉ Uv i ∈ U if z* i ≥ 0 Cut C separates U and V\U Capacity of C ≤ c T y* Proof?

Proof Sketch Let a i = (v j,v k ) ∈ out-arcs(C) v1v1 v2v2 3 s t M’ = w = y* ≥ 0y* T + z* T M’ ≥ w T

Proof Sketch Let a i = (v j,v k ) ∈ out-arcs(C) v1v1 v2v2 3 s t y* 1 ≥ 0 y* 1 + z* 1 ≥ 0 y* ≥ 0y* T + z* T M’ ≥ w T z* 1 < 0 y* 1 ≥ 1 Capacity included in c T y*

Proof Sketch Let a i = (v j,v k ) ∈ out-arcs(C) v1v1 v2v2 3 s t y* 3 ≥ 0 y* 3 + z* 2 - z* 1 ≥ 0 y* ≥ 0y* T + z* T M’ ≥ w T z* 1 ≥ 0, z* 2 < 0 y* 3 ≥ 1 Capacity included in c T y*

Proof Sketch Let a i = (v j,v k ) ∈ out-arcs(C) v1v1 v2v2 3 s t y* 5 ≥ 0 y* 5 - z* 2 ≥ 1 y* ≥ 0y* T + z* T M’ ≥ w T z* 2 ≥ 0 y* 5 ≥ 1 Capacity included in c T y*

Proof Sketch Let a i = (v j,v k ) ∈ out-arcs(C) z* j ≥ 0z* k < 0 y* i + z* k – z* j ≥ 0 Therefore y* i ≥ 1 Capacity of C ≤ c T y*

Max-Flow Min-Cut Theorem Capacity of any cut ≥ Value of any flow C must be the minimum cut Capacity of C ≤ c T y* = Value of max flow Strong duality

Max-Flow Min-Cut Theorem Capacity of any cut ≥ Value of any flow C must be the minimum cut Capacity of C = c T y* = Value of max flow Computing min cut is an “easy” problem Strong duality

Flows and Cuts Bipartite Matching and Vertex Cover Outline

Undirected Graph v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) Parallel edgesLoop Simple graph No parallel edges No loops

Walk G = (V, E) Sequence P = (v 0,e 1,v 1,…,e k,v k ), e i = (v i-1,v i ) v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 v 0, (v 0,v 4 ), v 4, (v 4,v 2 ), v 2, (v 2,v 5 ), v 5, (v 5,v 4 ), v 4 V = {v 1,…,v n } E = {e 1,…,e m }

Path G = (V, E) Sequence P = (v 0,e 1,v 1,…,e k,v k ), e i = (v i-1,v i ) v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 Vertices v 0,v 1,…,v k are distinct V = {v 1,…,v n } E = {e 1,…,e m }

Connected Graph v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) V = {v 1,…,v n } E = {e 1,…,e m } There exists a walk from one vertex to another Connected?

Simple Connected Graphs v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) We will assume the graph is simple We will assume the graph is connected

Bipartite Graph v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) V = V 1 ∪ V 2 V 1 ∩ V 2 = ϕ V 1 ≠ ϕ V 2 ≠ ϕ No edge (u,v) ∈ E such that u ∈ V 1 and v ∈ V 1 No edge (u,v) ∈ E such that u ∈ V 2 and v ∈ V 2

Bipartite Graph v2v2 v2v2 v4v4 v4v4 v5v5 v5v5 G = (V, E) V = V 1 ∪ V 2 V 1 ∩ V 2 = ϕ V 1 ≠ ϕ V 2 ≠ ϕ Bipartite? No edge (u,v) ∈ E such that u ∈ V 1 and v ∈ V 1 No edge (u,v) ∈ E such that u ∈ V 2 and v ∈ V 2

Bipartite Graph v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v4v4 v4v4 G = (V, E) V = V 1 ∪ V 2 V 1 ∩ V 2 = ϕ V 1 ≠ ϕ V 2 ≠ ϕ Bipartite? No edge (u,v) ∈ E such that u ∈ V 1 and v ∈ V 1 No edge (u,v) ∈ E such that u ∈ V 2 and v ∈ V 2

Bipartite Graph v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) V = V 1 ∪ V 2 V 1 ∩ V 2 = ϕ V 1 ≠ ϕ V 2 ≠ ϕ Bipartite? No edge (u,v) ∈ E such that u ∈ V 1 and v ∈ V 1 No edge (u,v) ∈ E such that u ∈ V 2 and v ∈ V 2

Flows and Cuts Bipartite Matching and Vertex Cover –Bipartite Matching –Vertex Cover –Matching vs. Cover –Incidence Matrix –Maximum Matching Problem –Dual of Maximum Matching Problem –Generalization Outline

Bipartite Matching v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) A matching is a set of disjoint edges No two edges share a vertex G is bipartite

Bipartite Matching v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) A matching is a set of disjoint edges No two edges share a vertex G is bipartite Matching?

Bipartite Matching v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) A matching is a set of disjoint edges No two edges share a vertex G is bipartite Matching?

Bipartite Matching v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) A matching is a set of disjoint edges No two edges share a vertex G is bipartite Matching?

Size of Matching v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) Number of edges in the matching G is bipartite Size?

Size of Matching v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) Number of edges in the matching G is bipartite Size?

Bipartite Matching Problem v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) Find a matching with the maximum size G is bipartite Optimal solution?

Flows and Cuts Bipartite Matching and Vertex Cover –Bipartite Matching –Vertex Cover –Matching vs. Cover –Incidence Matrix –Maximum Matching Problem –Dual of Maximum Matching Problem –Generalization Outline

Vertex Cover v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) C ⊆ V G is bipartite No edge (u,v) ∈ E such that u ∉ C and v ∉ C C covers all the edges

Vertex Cover v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) C ⊆ V G is bipartite No edge (u,v) ∈ E such that u ∉ C and v ∉ C C covers all the edges Vertex cover?

Vertex Cover v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) C ⊆ V G is bipartite No edge (u,v) ∈ E such that u ∉ C and v ∉ C C covers all the edges Vertex cover?

Vertex Cover v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) C ⊆ V G is bipartite No edge (u,v) ∈ E such that u ∉ C and v ∉ C C covers all the edges Vertex cover?

Size of Vertex Cover v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) G is bipartite Number of vertices in the vertex cover Size?

Size of Vertex Cover v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) G is bipartite Number of vertices in the vertex cover Size?

Vertex Cover Problem G = (V, E) G is bipartite Find a vertex cover with the minimum size v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 Optimal solution?

Flows and Cuts Bipartite Matching and Vertex Cover –Bipartite Matching –Vertex Cover –Matching vs. Cover –Incidence Matrix –Maximum Matching Problem –Dual of Maximum Matching Problem –Generalization Outline

Question Matching M ⊆ EVertex Cover C ⊆ V |M| ≤ |C|? |C| ≤ |M|? Graph G = (V, E)Not necessarily bipartite

Question Matching M ⊆ EVertex Cover C ⊆ V |M| ≤ |C| Proof? Graph G = (V, E)Not necessarily bipartite

Kőnig’s Theorem For bipartite graphs, Size of max matching = size of min cover Kőnig, 1931 “Combinatorial” proof We want to use polyhedral techniques

Flows and Cuts Bipartite Matching and Vertex Cover –Bipartite Matching –Vertex Cover –Matching vs. Cover –Incidence Matrix –Maximum Matching Problem –Dual of Maximum Matching Problem –Generalization Outline

Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices

Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices V1V1

Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices V2V2

Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 n x m matrix

Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e n x m matrix

Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e n x m matrix

Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e n x m matrix

Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e n x m matrix

Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e n x m matrix

Incidence Matrix v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e V1V1 One 1 per column

Incidence Matrix v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e V2V2 One 1 per column

Incidence Matrix v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e V2V2 1 x V1V1 -1 x Add rows to get a vector of zeros Linearly dependent, determinant = 0

Property Bipartite graph G = (V,E) Incidence matrix M M is a TUM Proof?

Proof Sketch Consider a submatrix S of M of size k x k Mathematical induction: det(S) ∈ {0,+1,-1} Trivial for k = 1 Assume it is true for k < m

Proof Sketch Consider a submatrix S of M of size m x m Case I: S contains a column of all zeros det(S) = 0

Proof Sketch Consider a submatrix S of M of size m x m Case II: S contains a column with one 1 Use induction assumption 1sTsT S’0

Proof Sketch Consider a submatrix S of M of size m x m Case III: All columns contain two non-zeros Incidence matrix of a bipartite graph, det(S) = 0 Hence proved

Flows and Cuts Bipartite Matching and Vertex Cover –Bipartite Matching –Vertex Cover –Matching vs. Cover –Incidence Matrix –Maximum Matching Problem –Dual of Maximum Matching Problem –Generalization Outline

Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices Variable x of size m x 1 Edge ‘e i ’ in matching if x i = 1 x i ∈ {0,1} Integer constraint Otherwise x i = 0

Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e Incidence Matrix A

Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v x Number of edges incident on v 0 x 1 + x 2

Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e Incidence Matrix A

Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v3v Number of edges incident on v 3 x x 3 + x 4

Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e Incidence Matrix A x

Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e Ax ≤ 1 x Linear constraint

Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e Any other constraints?

Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e Objective function?

Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e max x 1 T x

Maximum Matching Problem max x 1 T x s.t. 0 ≤ x ≤ 1 Ax ≤ 1 Integer polyhedron? YES x ∈ {0,1} m

Maximum Matching Problem max x 1 T x s.t. 0 ≤ x ≤ 1 Ax ≤ 1 Integer polyhedron? YES Maximum bipartite matching is “easy”

Maximum Matching Problem max x 1 T x s.t. 0 ≤ x Ax ≤ 1 Integer polyhedron? YES Maximum bipartite matching is “easy” Why?

Flows and Cuts Bipartite Matching and Vertex Cover –Bipartite Matching –Vertex Cover –Matching vs. Cover –Incidence Matrix –Maximum Matching Problem –Dual of Maximum Matching Problem –Generalization Outline

Dual of Maximum Matching Problem max x 1 T x s.t. 0 ≤ x Ax ≤ 1 y ≥ 0 z ≥ 0

Dual of Maximum Matching Problem min (y,z) 1 T z s.t. 0 ≤ z z T A - y T = 1 T 0 ≤ y

Dual of Maximum Matching Problem min z 1 T z s.t. 0 ≤ z z T A ≥ 1 T Integer polyhedron? YES Optimal integer solution z*

Define set C ⊆ V v i ∈ C if z* i > 0 C is a vertex cover of the graph Size of C ≤ 1 T z* Proof? Dual of Maximum Matching Problem For each v i ∈ C, z* i ≥ 1

Size of C ≤ 1 T z* Dual of Maximum Matching Problem = Size of maximum matching Strong Duality Size of any cover ≥ Size of any matching C must be the minimum cover

Size of C = 1 T z* Dual of Maximum Matching Problem = Size of maximum matching Strong Duality Size of any cover ≥ Size of any matching C must be the minimum cover Minimum bipartite vertex cover is “easy”

Flows and Cuts Bipartite Matching and Vertex Cover –Bipartite Matching –Vertex Cover –Matching vs. Cover –Incidence Matrix –Maximum Matching Problem –Dual of Maximum Matching Problem –Generalization Outline

b-Matching v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) G is bipartite n x 1 vector b b v : +ve integer

b-Matching v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) ∑ e = (u,v) ∈ E x(e) ≤ b v G is bipartite n x 1 vector b b v ∈ Z + b-matching is a function x : E → Z + Matching?b = 1

b-Matching Problem v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) s.t. x is a b-matching G is bipartite n x 1 vector b b v ∈ Z + max w T x Given w : E → Z +

w-Vertex Cover v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) For all e = (u,v), z(u) + z(v) ≥ w e G is bipartite m x 1 vector w w e ∈ Z + w-vertex cover is a function z : V → Z + Vertex Cover?

w-Vertex Cover Problem v1v1 v1v1 v0v0 v0v0 v2v2 v2v2 v6v6 v6v6 v4v4 v4v4 v5v5 v5v5 v3v3 v3v3 G = (V, E) G is bipartite m x 1 vector w w e ∈ Z + s.t. z is a w-vertex cover min b T z Given b : V → Z +

b-Matching Problem max x w T x s.t. 0 ≤ x Ax ≤ b Integer polyhedron? YES x is integer

b-Matching Problem max x w T x s.t. 0 ≤ x Ax ≤ b Integer polyhedron? YES b-matching is “easy”

Dual of b-Matching Problem min z b T z s.t. 0 ≤ z zA T ≥ w Integer polyhedron? YES w-vertex cover is “easy”

Questions?