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?