430 likes | 606 Views
Linear Programming in Low Dimensions. Presented by Nati Srebro. Linear Programming. Linear Programming in 2D. Linear Programming in 2D. An Infeasible Linear Program. An Unbounded LP. An Unbounded LP. Unique optimum Optimal edge Unbounded Infeasible. Types of LPs. Find the optimum
E N D
Linear Programming in Low Dimensions Presented by Nati Srebro
Unique optimum Optimal edge Unbounded Infeasible Types of LPs • Find the optimum • Find an optimum • Find unbounded ray • Declare as unfeasible
Adding a New Constraint If its not broken– don’t fix it !
Is a bad sign…. Adding a New Constraint
Adding a New Constraint • Check is optimum is feasible • Optimum is feasible: We’re fine, don’t do anything • Optimum isn’t feasible: Find optimum on new constraint (line) No feasible points on new constraint: LP isn’t feasible O(1) O(n)
Incremental Algorithm • Add new constraints one by one,keeping track of current optimum
Initialization Find two constraints that together bound the LP
Initialization • Constraint h closest to top half-plane
Initialization • Constraint h closest to top half-plane • For every other constraint, check if it bounds the LP with h • If no constraint is good--- LP is unbounded or unfeasible because of parallel constraints
Incremental Algorithm • Find two constraints that bound LP • If none exist, LP is unbounded • Add all other constraints one by one, keeping track of current optimum O(n) O(n2)
Adding a New Constraint • Check is optimum is feasible • Optimum is feasible: We’re fine, don’t do anything • Optimum isn’t feasible: Find optimum on new constraint (line) No feasible points on new constraint: LP isn’t feasible O(1) O(n) Maybe we only rarely have to update optimum ?
Update time duringround i Update time duringround i Update at roundi Use a random permutation ! Expected time spent updating:
non-initial constraints Probability of update at round i First i constraints: Update only if ith constraint is one of two defining constraints
Expected Run-Time Analysis Update time duringround i Update time duringround i Update at roundi Expectation is over algorithm randomness, not over input Expected time spent updating:
Cool man, but what about higher dimensions ? • Incrementally add new constraints • Probability of update: d/(i-d) • On update: solve d-1 dimensional LP