100 likes | 210 Views
ADVANCED COMPUTATIONAL MODELS AND ALGORITHMS. Instructor: Dr. Gautam Das March 10, 2009 Class notes by Alexandra Stefan. Topics covered . Linear Programming (LP) Problem instance: Set of n real variables Set of restrictions in the form of linear inequalities
E N D
ADVANCED COMPUTATIONAL MODELS AND ALGORITHMS Instructor: Dr. Gautam Das March 10, 2009 Class notes by Alexandra Stefan
Topics covered • Linear Programming (LP) • Problem instance: • Set of n real variables • Set of restrictions in the form of linear inequalities • Goal/optimizing function • Integer Programming (IP) • Set of n integer variables • Set of restrictions in the form of linear inequalities • Goal/optimizing function
Linear programming • Example: • Find real values x,y, s.t. • Constraints: (1) x+y <= 5 (2) x + 2y <= 6 (3) x >= 0 (4) y >= 0.2 • Goal: (G) 4x + y is maximized • Solution for this problem: (x,y) = (5, 0)
Geometric interpretation of the linear problem y (3) = 0 G (solution plane) 5 4 (1) = 0 3 Feasible region 2 Solution point 1 (4) = 0 0.2 x 1 2 3 4 5 6 (2) = 0 (G) = 0 (G) = 4
Feasible region is convex • Convex region: given any two points from the region, the line segment between them is part of the region • Proof idea: the feasible region is the intersection of half-planes which are convex regions. • Each constraint generates at most one edge in the feasible region • Intuition on finding the solution: • as you move the goal line, G, to increase it’s value, the point that will maximize it is one of the ‘corners’.
Naive algorithm– special case (n =2) • Problem definition: • 2 variables and m constraints • Solution: • For all pairs of constraints ci,cj • Find the intersection point: pij (pij satisfies both ci and cj) • Check whether pij is part of the feasible region If yes, apply goal function. Keep track of which point gave maximum value for the goal function. • Complexity: O(m3) • O(m2) pairs (ci, cj). For each pair perform O(m) evaluations to see if the point pij satisfies all the m constraints
Naive algorithm – general case • General problem definition: • n variables and m constraints, • Solution • A corner is now defined by intersecting n hyper-planes (that is satisfying n constraints) • This gives a total of m choose n corners => complexity O(mn) (exponential in n)
Methods that solve LP • Simplex (by George B. Dantzig, 1947) • Finds optimum: (because feasible region is convex) • Runtime: average time is linear; worst case time is exponential (covers all feasible corners) • Ellipsoidal method (by Leonid Khachiyan, 1839) • Runtime: polynomial • Theoretical value; not useful in practice • Interior point method (by Narendra Karmarkar, 1984) • Runtime : polynomial • Practical value
Simplex • Start from a corner • Note that note all corners are part of the feasible region. The algorithm will find a feasible one. • Look at the neighboring corners • Intuition of how you find the neighboring corners: remove one constraint and add another • Move to the one that gives the highest value to the goal function • STOPPING condition • : none of the neighboring points gives a higher value than the current one.
Integer Programming (IP) • Integer Programming (IP) • Set of n integer variables • Set of restrictions in the form of linear inequalities • Goal/optimizing function • IP is NP-Complete • Decision problem: • Input: IP and a target value C • Output: is there a point in the region that evaluates the goal function to a value greater than C? • Easy to verify it is NP • NP-Complete • reduce Vertex Cover to IP