Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Polyhedral Optimization Lecture 2 – Part 2 M. Pawan Kumar Slides available online"— Presentation transcript:

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?


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

Similar presentations


Ads by Google