Download presentation
Presentation is loading. Please wait.
Published byTobias Allison Modified over 8 years ago
1
Polyhedral Optimization Lecture 2 – Part 2 M. Pawan Kumar pawan.kumar@ecp.fr Slides available online http://cvn.ecp.fr/personnel/pawan/
2
Flows and Cuts Bipartite Matching and Vertex Cover Outline
3
Functions on Arcs v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 D = (V, A) Arc capacities c(a) Function f: A Reals 3 2 110 3 Excess function E f (v) Incoming value - Outgoing value 4
4
Functions on Arcs v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 D = (V, A) Arc capacities c(a) Function f: A Reals 3 2 110 3 Excess function E f (v) Σ a in-arcs(v) f(a) - Outgoing value 4
5
Functions on Arcs v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 Function f: A Reals 3 2 110 3 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)
6
Functions on Arcs v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 Function f: A Reals 3 2 110 3 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)
7
Functions on Arcs v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 Function f: A Reals 3 2 110 3 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)
8
Excess Functions of Vertex Subsets v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 3 2 110 3 Excess function E f (U) Incoming Value - Outgoing Value 4
9
Excess Functions of Vertex Subsets v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 3 2 110 3 Excess function E f (U) Σ a in-arcs(U) f(a) - Outgoing Value 4
10
Excess Functions of Vertex Subsets v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 3 2 110 3 Excess function E f (U) Σ a in-arcs(U) f(a) - Σ a out-arcs(U) f(a) 4
11
Excess Functions of Vertex Subsets v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 3 2 110 3 Excess function E f (U) f(in-arcs(U)) - f(out-arcs(U)) E f ({v 1,v 2 }) 4 8
12
Excess Functions of Vertex Subsets v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 3 2 110 3 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 }) 4 -6 + 14
13
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
14
s-t Flow v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 2 Function flow: A R Flow of arc ≤ arc capacity Flow is non-negative For all vertex expect s,t Incoming flow = Outgoing flow
15
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 v4v4 6 5 3 s t 18 7 3 2
16
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 v4v4 6 5 3 s t 18 7 3 2
17
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 v4v4 6 5 3 s t 18 7 3 2
18
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 v4v4 6 5 3 s t 18 7 3 2
19
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 v4v4 6 5 3 s t 18 7 3 2
20
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 v4v4 6 5 3 s t 18 7 3 2
21
s-t Flow v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 2 Function flow: A R flow(a) ≤ c(a) flow(a) ≥ 0 For all v V \ {s,t} E flow (v) = 0 3 110 3 4 ✗
22
s-t Flow v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 2 Function flow: A R flow(a) ≤ c(a) flow(a) ≥ 0 For all v V \ {s,t} E flow (v) = 0 ✗
23
s-t Flow v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 2 Function flow: A R flow(a) ≤ c(a) flow(a) ≥ 0 For all v V \ {s,t} E flow (v) = 0 1 1 1 ✓
24
Value of s-t Flow Outgoing flow of s - Incoming flow of s v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 2
25
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 v4v4 6 5 3 s t 18 7 3 2
26
Value of s-t Flow v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 2 Σ (s,v) A flow((s,v)) - Σ (u,s) A flow((u,s)) -E flow (s)E flow (t) 1 1 1 Value = 1
27
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
28
Cut v1v1 v2v2 v3v3 v4v4 10 5 3 2 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
29
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 )} ? ✓ 10 5 3 2
30
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 )} ? ✓ 10 5 3 2
31
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 v4v4 10 5 3 2
32
Cut C = out-arcs(U) D = (V, A) v1v1 v2v2 v3v3 v4v4 10 5 3 2
33
Capacity of Cut Sum of capacity of all arcs in C v1v1 v2v2 v3v3 v4v4 10 5 3 2
34
Capacity of Cut Σ a C c(a) v1v1 v2v2 v3v3 v4v4 10 5 3 2
35
Capacity of Cut 3 v1v1 v2v2 v3v3 v4v4 U V\U 10 5 3 2
36
Capacity of Cut 15 V\U U v1v1 v2v2 v3v3 v4v4 10 5 3 2
37
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 v4v4 6 5 3 s t 18 7 3 2
38
Capacity of s-t Cut Σ a C c(a) v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 2
39
Capacity of s-t Cut 5 v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 2
40
17 v1v1 v2v2 v3v3 v4v4 6 5 3 s t 18 7 3 2
41
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
42
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
43
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))
44
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
45
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
46
Incidence Matrix v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 n x m matrix
47
Incidence Matrix v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 1 0 0 n x m matrix
48
Incidence Matrix v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 10 01 00 n x m matrix
49
Incidence Matrix v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 10 011 000 n x m matrix
50
Incidence Matrix v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 0 10 011 0 000 1 n x m matrix
51
Incidence Matrix v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 00 10 0 011 0 000 11 n x m matrix
52
Incidence Matrix v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 00 10 0 011 0 000 11 n x m matrix
53
Incidence Matrix v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 00 10 0 011 0 000 11 n x m matrix ?
54
Incidence Matrix v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 00 101 0 01 0 000 11 n x m matrix
55
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
56
Property Digraph D = (V,A) Incidence matrix M M is a TUM Proof?
57
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
58
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
59
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
60
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
61
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
62
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices Variable x of size m x 1 Flow in arc ‘a i ’ is x i x ≥ 0 Linear constraint
63
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices Capacity vector c Linear constraint 2 4 3 1 2 x ≤
64
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 00 10 0 011 0 000 11 Incidence Matrix M
65
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices v1v1 a1a1 a2a2 a3a3 a4a4 a5a5 10 0 x x1x1 - x 3 - x 4 Incoming Flow Outgoing Flow -
66
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices v1v1 a1a1 a2a2 a3a3 a4a4 a5a5 10 0 x x1x1 - x 3 - x 4 Excess Flow
67
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 00 10 0 011 0 000 11 Incidence Matrix M
68
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices v2v2 a1a1 a2a2 a3a3 a4a4 a5a5 011 0 x x2x2 +x 3 - x 5 Incoming Flow Outgoing Flow -
69
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices v2v2 a1a1 a2a2 a3a3 a4a4 a5a5 011 0 x x2x2 +x 3 - x 5 Excess Flow
70
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 00 10 0 011 0 000 11 Incidence Matrix M
71
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 00 10 0 011 0 000 11 Incidence Submatrix M’ Is M’ a TUM?YES
72
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 00 10 0 011 0 000 11 M’x = 0Flow conversation Linear constraint
73
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 00 10 0 011 0 000 11 Any other constraints?
74
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 00 10 0 011 0 000 11 Objective function? w
75
Max-Flow Problem v1v1 v2v2 3 s t 24 12 m arcs n vertices s v1v1 v2v2 t a1a1 a2a2 a3a3 a4a4 a5a5 0 00 10 0 011 0 000 11 max x w T x w
76
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
77
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
78
Dual of Max-Flow Problem max x w T x s.t. 0 ≤ x ≤ c M’x = 0 y ≥ 0 z
79
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
80
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?
81
Proof Sketch Let a i = (v j,v k ) ∈ out-arcs(C) v1v1 v2v2 3 s t 24 12 10 0 011 0 000 11 M’ = w = y* ≥ 0y* T + z* T M’ ≥ w T
82
Proof Sketch Let a i = (v j,v k ) ∈ out-arcs(C) v1v1 v2v2 3 s t 24 12 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*
83
Proof Sketch Let a i = (v j,v k ) ∈ out-arcs(C) v1v1 v2v2 3 s t 24 12 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*
84
Proof Sketch Let a i = (v j,v k ) ∈ out-arcs(C) v1v1 v2v2 3 s t 24 12 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*
85
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*
86
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
87
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
88
Flows and Cuts Bipartite Matching and Vertex Cover Outline
89
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
90
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 }
91
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 }
92
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?
93
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
94
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
95
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
96
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
97
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
98
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
99
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
100
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?
101
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?
102
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?
103
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?
104
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?
105
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?
106
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
107
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
108
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?
109
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?
110
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?
111
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?
112
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?
113
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?
114
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
115
Question Matching M ⊆ EVertex Cover C ⊆ V |M| ≤ |C|? |C| ≤ |M|? Graph G = (V, E)Not necessarily bipartite
116
Question Matching M ⊆ EVertex Cover C ⊆ V |M| ≤ |C| Proof? Graph G = (V, E)Not necessarily bipartite
117
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
118
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
119
Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices
120
Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices V1V1
121
Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices V2V2
122
Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 n x m matrix
123
Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 1 0 1 0 n x m matrix
124
Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 11 00 10 01 n x m matrix
125
Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 110 001 101 010 n x m matrix
126
Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 110 0 001 1 101 0 010 1 n x m matrix
127
Incidence Matrix v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 110 0 001 1 101 0 010 1 n x m matrix
128
Incidence Matrix v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 110 0 001 1 101 0 010 1 V1V1 One 1 per column
129
Incidence Matrix v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 110 0 001 1 101 0 010 1 V2V2 One 1 per column
130
Incidence Matrix v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 110 0 001 1 101 0 010 1 V2V2 1 x V1V1 -1 x Add rows to get a vector of zeros Linearly dependent, determinant = 0
131
Property Bipartite graph G = (V,E) Incidence matrix M M is a TUM Proof?
132
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
133
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
134
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
135
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
136
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
137
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
138
Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 110 0 001 1 101 0 010 1 Incidence Matrix A
139
Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 110 0 x Number of edges incident on v 0 x 1 + x 2
140
Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 110 0 001 1 101 0 010 1 Incidence Matrix A
141
Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v3v3 001 1 Number of edges incident on v 3 x x 3 + x 4
142
Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 110 0 001 1 101 0 010 1 Incidence Matrix A x
143
Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 110 0 001 1 101 0 010 1 Ax ≤ 1 x Linear constraint
144
Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 110 0 001 1 101 0 010 1 Any other constraints?
145
Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 110 0 001 1 101 0 010 1 Objective function?
146
Maximum Matching Problem v1v1 v2v2 v0v0 v3v3 m edges n vertices v0v0 v3v3 v1v1 v2v2 e1e1 e2e2 e3e3 e4e4 110 0 001 1 101 0 010 1 max x 1 T x
147
Maximum Matching Problem max x 1 T x s.t. 0 ≤ x ≤ 1 Ax ≤ 1 Integer polyhedron? YES x ∈ {0,1} m
148
Maximum Matching Problem max x 1 T x s.t. 0 ≤ x ≤ 1 Ax ≤ 1 Integer polyhedron? YES Maximum bipartite matching is “easy”
149
Maximum Matching Problem max x 1 T x s.t. 0 ≤ x Ax ≤ 1 Integer polyhedron? YES Maximum bipartite matching is “easy” Why?
150
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
151
Dual of Maximum Matching Problem max x 1 T x s.t. 0 ≤ x Ax ≤ 1 y ≥ 0 z ≥ 0
152
Dual of Maximum Matching Problem min (y,z) 1 T z s.t. 0 ≤ z z T A - y T = 1 T 0 ≤ y
153
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*
154
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
155
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
156
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”
157
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
158
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
159
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
160
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 +
161
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?
162
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 +
163
b-Matching Problem max x w T x s.t. 0 ≤ x Ax ≤ b Integer polyhedron? YES x is integer
164
b-Matching Problem max x w T x s.t. 0 ≤ x Ax ≤ b Integer polyhedron? YES b-matching is “easy”
165
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”
166
Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.