1 / 17

Theory of Computing

Theory of Computing. Lecture 13 MAS 714 Hartmut Klauck. Application: Matching. For simplicity we consider the bipartite matching problem G=(L [ R,E) is a bipartite graph A matching is a set M µ E, in which no two edges share a vertex A perfect matching (assuming |L|=|R|) has |L| edges

Download Presentation

Theory of Computing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Theory of Computing Lecture 13 MAS 714 Hartmut Klauck

  2. Application: Matching • For simplicity we consider the bipartite matching problem • G=(L[R,E) is a bipartite graph • A matching is a set Mµ E, in which no two edges share a vertex • A perfect matching (assuming |L|=|R|) has |L| edges • Edges have weights W(u,v) • A maximum matching is a matching with the maximum total edge weight

  3. Flow networkforbipartitematching • G=(L[R,E) is a bipartite graph (unweighted) • Add two extra vertices s, t • connect s to all vertices of L, weight 1 • keep the edges in E (directed from L to R), weight 1 • connect all vertices in R to t, weight1 • Then the maximum flow in the new graph is equal to the maximum matching • We will prove this later, it is obvious that a matching leads to a flow but not the other way around

  4. Computing Max Matchings • Reduce the problem to Max Flow

  5. Finding large matchings • The Max Flow Min Cut theorem implies that the maximum flow in the graph is equal to the maximum matching: • A maximum matching of size s implies a flow of size s • The max flow is equal to the min s,t-cut • Find a cut that is smaller than the maximum matching

  6. The Cut • Define • U: matched vertex pairs connected to unmatched vertices in R (or to no unmatched vertices) • V: matched vertex pairs connected to unmatched vertices in L • U and V are disjoint, otherwise the matching is not maximum

  7. The Cut

  8. Finding large matchings • Problem: flows across edges are not integers • Definition: a flow is integral, if all f(u,v) are integers • Claim: • If M is a matching in G, then there is an integral flow f in the flow network for G, such that |f|=|M| • Conversely, for an integral flow f there is a matching with |f|=|M|

  9. Proof 1) Matching to Flow • Define flow as follows: • f(u,v)=1 if (u,v) in the matching, also f(v,u)=-1, f(s,u)=1, f(v,t)=1 etc. • all other edges: f(u,v)=0 • This is a legal flow • Value is |M|

  10. Proof 2) Flow to Matching • Let f be an integral flow • Set M={(u,v) with f(u,v)> 0} • C(s,u)=1, hence f(s,u)2{0,1} • f(u,v)2{0,1} • For u there is at most one v with f(u,v)=1 • M is a matching • |M|= |f|

  11. Integrality • TheoremIf all C(u,v) are integers, and a maximum flow is computed with Ford Fulkerson, then |f| and all f(u,v) are integers • Corollary: Maximum Bipartite Matchings can be computed in time O(m2n) And even in time O(mn):Ford Fulkerson has time O(|f|m) for a max flow f, and |f|· n • Better algorithm can do it in O(m n0.5) (Hopcroft Karp) • Proof: • Induction over the iterations • First iteration: there is an augmenting path with integral capacity Cp(f) • Nf is also a network with integral capacities

  12. Linear Programming • Linear Programming is the most powerful optimization problem that can be solved in polynomial time • Some generalizations [semidefinite programming] can be much more appropriate • Fast LP solvers exist • Write an LP, solve it • Fast in theory/fast in practice... • Important theoretical tool • Duality

  13. Linear Programming • Definition • A Linear Program (LP) is an optimization problem over real variables x1,…,xn • Maximizes/minimizes a linear function of x:max/min C(x)=i cixi ( ci are real coefficients) • Constraints: feasible solutions are those that satisfy a system of linear inqualities: • A is a real m£ n matrix, b a vector • All x with Ax ·b are feasible • We are looking for a feasible x with maximum C(x)

  14. Geometry • The set of x that satisfy a linear inequality is a half-space • The set of feasible solutions to an LP is an intersection of halfspaces • This is a convex polytope • To solve an LP it is sufficient to be able to find a feasible solution • I.e. find a point inside a convex polytope

  15. Example: Max Flow • Graph G with capacities C(u,v) • G has m edges (u,v), use m variables f(u,v) • Inequalities: • f(u,v)· C(u,v) for all edges (u,v) • v f(u,v)=v f(v,u) for all u except s,t • f(u,v)¸ 0 for all edges • Maximize v f(s,v) • The program has m variables and m+n inequalities/equations • By definition the maximum is a maximum flow

  16. Example: Shortest Path • Variables: d(v) for all vertices v • Objective function: Minimize d(t) • Constraints: d(v)· d(u)+W(u,v) for all edges (u,v) d(s)=0

  17. Standard form • Constraints using ¸, ·and = are possible • Easy to reduce to the standard form: • max cTx • Constraints: • Ax· b • x¸0

More Related