Linear Programming and Simplex Algorithm Reference: Numerical Recipe Sec. 10.8 Content • • • • Linear programming problems Simplex algorithm QSOpt solver LP Applications – Collision detection – Melodic similarity – Underdetermined linear systems 2 The Diet Problem • Dietician preparing a diet consisting of two foods, A and B. A B Cost 0.60 0.40 Protein 20 30 Fat Carbohydrate 12 30 6 15 Minimum requirement: protein 60g; fat 24g; carbohydrate 30g Looking for minimum cost diet 3 Linear Programming min C 0.60x1 0.40x2 s.t. 20x1 30x2 60 12x1 6 x2 24 30x1 15x2 30 where x1 , x2 0 Cp. NLP min f ( x) subject to h( x ) 0 g ( x) 0 4 The Problem Maximize Subject to N: dimension of x M: number of constraints (M = m1+m2+m3) 5 Theory of Linear Optimization Terminology: Feasible vector Feasible basic vector Optimal feasible vector 6 Theory (cont) • Feasible region is convex and bounded by hyperplanes • Feasible vectors that satisfy N of the original constraints as equalities are termed feasible basic vectors. • Optimal occur at boundary (gradient vector of objective function is always nonzero) • Combinatorial problem: determining which N constraints (out of the N+M constraints) would be satisfied by the optimal feasible vector 7 Simplex Algorithm (Dantzig 1948) • A series of combinations is tried to increase the objective function • Number of iterations less than O(max(M,N)) • Worst case complexity is exponential (in number of variables); yet has polynomial smoothed complexity (and works well in practice) 8 The Canonical Problem Maximize Subject to N: dimension of x M: number of constraints (M = m1+m2+m3) I. II. III. 9 QSopt [ref] • Contains a GUI and a callable library 11 LP Format Example min C 0.60x1 0.40x2 s.t. 20x1 30x2 60 12x1 6 x2 24 30x1 15x2 30 where x1 , x2 0 Somehow x1 >= 0 x2 >= 0 Doesn’t work!? Problem smallExample Minimize obj: 0.60x1 + 0.40x2 Subject to c1: 12x1 + 6x2 >= 24 30x1 + 15x2 >= 30 Bounds 0 <= x1 0 <= x2 End BNF for QSOpt scripts 12 QSOpt Examples 13 Duality • Primal problem • Dual problem 14 15 Duality • If a linear program has a finite optimal solution then so does the dual. Furthermore, the optimal values of the two programs are the same. • If either problem has an unbounded optimal solution, then the other problem has no feasible solutions. 16 Diet Problem min C 0.60x1 0.40x2 maxC 0.60x1 0.40x2 s.t. 20x1 30x2 60 s.t. 20x1 30x2 s1 60 12x1 6 x2 24 12x1 6 x2 s2 24 30x1 15x2 30 30x1 15x2 s3 30 where x1 , x2 0 where x1 , x2 , s1 , s2 , s3 0 17 Applications The Problem Ax b min x Under-determined system (infinite number of solutions) Find the solution with minimum magnitude (i.e., closest to origin) 19 Example 2 x1 x2 x2 x3 0 Approach 1: find complete solution 1 1 0 0 1 1 2 0 1 2 xn c 1, x p 0 1 0 xc x p xn (-2,0,0) subtract its projection along (1,-1,1) (-2,0,0) (1,-1,1) 1 1 1 1 1 T 1 24 q 1, qq 1 1 1 9 3 3 1 1 1 1 2 1 1 1 2 2 23 34 1 0 0 2 2 0 1 1 1 3 3 3 0 1 1 1 0 0 23 23 20 d Linear Programming Solution Ax b min a where xi ,x 0 • Most simplex algorithm assume nonnegative variables • Set xi yi zi where yi 0 and zi 0 xi R 21 Example min 3 subject to: z1 y1 z2 y2 2 z 2 y 2 z 3 y3 0 zi yi , i 1,2,3 zi yi , i 1,2,3 0, yi 0, zi 0 xi zi yi 2 x1 x2 x2 x3 0 min 3 y1 z1 0 y2 z 2 0 y3 z 3 0 y1 z1 0 y2 z 2 0 y3 z 3 0 y1 z1 y2 z2 2 y 2 z 2 y3 z 3 0 22 Solved by QSopt d 3 The real minimum (-4/3, -2/3, 2/3) The LP constraint is not exactly ||x||2 (but ||x||) This problem can also be solved by SVD (singular value decomposition) 23 LP in CD (narrow phase, ref) • A pair of convex objects: each facet represented by the plane inequality aix+biy+ciz di • If two sets of inequality (from two convex objects) define a feasible region, then a collision is detected • The type of optimization (min|max) and the objective function used is irrelevant. 24 LP for CD Convert to dual problem for better efficiency(?!) 25 Transportation Distance as a Measure to Melodic Similarity Ref: Typke et al. 2003 Example Partially matched 27 Earth Mover Distance A a1 ,, am weightedpointset ai xi , wi , xi R 2 , wi R {0} W wi B b1 ,, bn weightedpointset b j y j , u j , y j R 2 , u j R {0} U u j f ij : flow of weight from xi to y j over thedistanced ij 28 EMD as Linear Program Solve by simplex algorithm 29 EMD for Melodic Similarity • Ground distance: Euclidean distance dij t t p p 2 i j 2 i j • Scale time coordinate (so that they are comparable) • Transposition: transpose one of the melodies so that the weighted average pitch is equal (not optimum but acceptable) 30 HW: Verify planar CD using LP Warning: Non-negative assumption (for some solvers)!! 31 Verify planar CD using LP. 5 2 1. y 3 [II] y s1 3 2. x 3 [II] x s2 3 3. x y 11[I] x y s3 11 6 4. y 5 5. x 10 4 1 [II] y s4 5 [I] x s5 10 6. x y 0[II] x y s5 0 3 32 LP Solvers • Lp_solve: MILP • QSopt • GLPK 33 QSopt [ref] • Contains a GUI and a callable library 35 LP Format Example min C 0.60x1 0.40x2 s.t. 20x1 30x2 60 12x1 6 x2 24 30x1 15x2 30 where x1 , x2 0 [weird] Somehow x1 >= 0 x2 >= 0 Doesn’t work!? Problem smallExample Minimize obj: 0.60x1 + 0.40x2 Subject to c1: 12x1 + 6x2 >= 24 30x1 + 15x2 >= 30 Bounds 0 <= x1 0 <= x2 End 36 LP format BNF definition1 37 LP format BNF definition2 38 QSOpt API Scenario: Read and Solve 40 Accessing a Solution • value: objective function • x: solution vector (columns) • pi: dual variables • slack: slack variables • rc: reduced cost • In our applications, we don’t really care about pi, slack, and rc. • Set them to NULL 41 QS_MAX or QS_MIN cm at 3.1 2.3 1.4 5.0 1.1 0 cmatind 0 0 0 1 1 # of nonzeros in jth column Location of start entry 42 Modify an LP Problem • • • • • • • • • • QSnew_row QSadd_rows QSnew_col QSadd_cols QSdelete_row QSdelete_col QSchange_coef QSchange_objcoef QSchange_rhscoef QSchange_sense • See reference manuals for more details (Ch.5) • Use QSwrite_prob to verify the change 43