220 likes | 410 Views
Introduction to Linear and Integer Programming. Lecture 9: Feb 14. Mathematical Programming . Input: An objective function f: R n -> R A set of constraint functions: g i : R n -> R A set of constraint values: b i. Goal: Find x in R n which: maximizes f(x)
E N D
Introduction to Linear and Integer Programming Lecture 9: Feb 14
Mathematical Programming • Input: • An objective function f: Rn -> R • A set of constraint functions: gi: Rn -> R • A set of constraint values: bi • Goal: • Find x in Rn which: • maximizes f(x) • satisfies gi(x) <= bi
Linear Programming • Input: • A linear objective function f: Rn -> R • A set of linear constraint functions: gi: Rn -> R • A set of constraint values: bi • Goal: • Find x in Rn which: • maximizes f(x) • satisfies gi(x) <= bi Integer linear program requires the solution to be in Zn
Perfect Matching (degree constraints) Every solution is a perfect matching!
Maximum Satisfiability Goal: Find a truth assignment to satisfy all clauses NP-complete!
Different Forms canonical form standard form The general form (with equalities, unconstrained variables) can be reduced to these forms.
Linear Programming Relaxation Replace By Surprisingly, this works for many problems!
Geometric Interpretation Goal: Optimize over integers! Linear inequalities as hyperplanes Objective function is also a hyperplane Not a good relaxation!
Good Relaxation Every “corner” could be the unique optimal solution for some objective function. So, we need every “corner” to beintegral!
Vertex Solutions This says we can restrict our attention to vertex solutions.
Basic Solutions This provides an efficient way to check whether a solution is a vertex. A basic solution is formed by a set B of m linearly independent columns, so that
Basic Solutions Tight inequalities: inequalities achieved as equalities Basic solution: unique solution of n linearly independent tight inequalities
Questions Prove that the LP for perfect matching is integral for bipartite graphs. What about general matching? Write a linear program for the stable matching problem.
Algorithms for Linear Programming • (Dantzig 1951)Simplex method • Very efficient in practice • Exponential time in worst case • (Khachiyan 1979)Ellipsoid method • Not efficient in practice • Polynomial time in worst case
Simplex Method Simplex method: A simple and effective approach to solve linear programs in practice. It has a nice geometric interpretation. Idea: Focus only on vertex solutions, since no matter what is the objective function, there is always a vertex which attains optimality.
Simplex Method • Simplex Algorithm: • Start from an arbitrary vertex. • Move to one of its neighbours • which improves the cost. Iterate. Key: local minimum = global minimum Global minimum Moving along this direction improves the cost. There is always one neighbour which improves the cost. We are here
Simplex Method • Simplex Algorithm: • Start from an arbitrary vertex. • Move to one of its neighbours which improves the cost. Iterate. Which one? There are many different rules to choose a neighbour, but so far every rule has a counterexample so that it takes exponential time to reach an optimum vertex. MAJOR OPEN PROBLEM: Is there a polynomial time simplex algorithm?
Ellipsoid Method Goal: Given a bounded convex set P, find a point x in P. Key: show that the volume decreases fast enough • Ellipsoid Algorithm: • Start with a big ellipsoid which contains P. • Test if the center c is inside P. • If not, there is a linear inequality ax <=b for which c is violated. • Find a minimum ellipsoid which contains the intersection of the previous ellipsoid and ax <= b. • Continue the process with the new (smaller) ellipsoid.
Ellipsoid Method Goal: Given a bounded convex set P, find a point x in P. Why it is enough to test if P contains a point? Because optimization problem can be reduced to this testing problem. Do binary search until we find an “almost” optimal solution.
Ellipsoid Method Important property: We just need to know the previous ellipsoid and a violated inequality. This can help to solve some exponential size LP if we have a separation oracle. Separation orcale: given a point x, decide in polynomial time whether x is in P or output a violating inequality.
Looking Forward • Prove that many combinatorial problems have an integral LP. • Study LP duality and its applications • Study primal dual algorithms