100 likes | 302 Views
Introduction to the Simplex Method to solve Linear Programs. Eric Feron Spring 2001. Algorithms. The simplex algorithm: before all, an algorithm The way an algorithm works: Initialization step Iteration step Optimality test (stopping rule) Exit. No? Yes?.
E N D
Introduction to the Simplex Method to solve Linear Programs Eric Feron Spring 2001
Algorithms • The simplex algorithm: before all, an algorithm • The way an algorithm works: • Initialization step • Iteration step • Optimality test (stopping rule) • Exit No? Yes?
Assumption, basic results for simplex • If there is exactly one optimal solution, it is corner point feasible • If there are multiple optimal solutions, then at least two must be adjacent; That is, connected by an edge of the constraint polytope • There are only a finite number of feasible corner-point solutions • If a corner-point solution has no adjacent corner-point solution that is better, then it is optimal
Essence of the simplex method • Step 1: Start at a corner-point feasible solution (Initialization) • Step 2: Move to a better adjacent feasible solution • Step 3: Optimality test. The corner-point solution is optimal when no better adjacent corner-point solution can be found. • A really simple algorithm, if we have good book keeping procedures.
x4 x5 x3 • First step: Add SLACK variables • Slack variables are a way to locate the current point with respect to all the constraints • Let x=(x1, x2) • Distance from x to x2=0 is x1 • Distance from x to x1=0 is x2 • Distance from x to x1=4 is 4-x1=x3 • Distance from x to x2=6 is 6-x2=x4 Distance from x to 3x1+2x2=18 is proportional to 18-3x1-2x2=x5 Setting up the simplex method (2,6) Maximize Z=3x1 + 5x2 Subject to: x1 <= 4 x2 <= 6 3x1 + 2x2 <= 18 x1 >= 0 x2 >= 0 2 3 4 x1 x2 1 5
Salck variables (ct'd) • So we can characterize the position of any point x in the decision space by its distance to all the constraints x1, x2, x3, x4, and x5 • That's a new, generalized coordinate system (obviously highly redundant) • Any corner point is the intersection of two constraints: For example the origin 1 is the intersection of x1>= 0 and x2>=0 • In general, corner points are defined by two of the generalized coordinates vanishing to zero
(2,6) 2 3 4 1 5 Slack variables (ct'd) x2 x3 x1 x5 x4
Basic, nonbasic variables These are called nonbasic variables At the origin zero, these distances are zero: x1=0 x2=0 And the other distances are nonzero: x3 = 4 x4 = 6 x5=18 Consider now the point (2,6) (numbered 3). At that point: x4=0 x5=0 x1=2 x2=6 x3=2 These are called basic variables These are the active constraints, nonbasic variables These are the nonactive constraints, basic variables
Same problem Z=3x1+5(6-x4) x1+x3=4 x4+x2=6 3x1+2(6-x4)+x5=18 Same problem Z=30+3x1-5x4 x1+x3=4 x4+x2=6 3x1-2x4+x5=6 (2,6) x4 2 3 x1 4 x4 • (2,6)-centric coordinates: • Express x1, x2, x3, Z as functions of (x4, x5) • From (0, 6)-centric coordinates, we get • x1=6/3+2/3x4-x5/3 • x2=6-x4 • x3=4-x1=4-6-2/3x4+x5/3 • and Z=30+3x1-5x4 • =30+6+2x4-x5-5x4 • =36-3x4-x5 • Cost at (2,6) is 36 • There is no way to improve => So we're done. • (0,6)-centric coordinates • Z=30+3x1-5x4 (Z at (0,6) is 30) • (a) x1+x3=4 • (b) x4+x2=6 • (c) 3x1-2x4+x5=6 • We can obtain an improvement of Z by moving x1 up. How far up? • (a) says 4, (b) says nothing, (c) says 2=>so x1 moves to 2 => so x4 becomes the new nonbasic variable. • (2,6) is the new corner-point feasible solution. x4 1 • A problem formulation that's well adapted to start from (0,0): Can find out cost & x3, x4, x5 as a function of x1, x2 easily: "(0,0)-centric coordinates" • x1=0 and x2=0 are the current active constraints. • Let's try to move away from one of these constraints: • Either make x1>0 • Or make x2>0 • Which one do we pick? x5 • Look at the cost function. Which decision variable has best marginal gain. x2, of course. (However that's only a heuristic. Picking x1 would work too.) • Choice of x1 or x2 (ct'd) • How far can we move x2? That depends on the constraints! In our case the constraint x2=6 is hit first (that's easy to see). Thus the new corner point is • x1=0 • x4=0 5 x2,x3,x5 found easily as functions of x1, x4 New, (0,6)-centric coordinates (x1,x4) make new "natural coordinate axes" x1 x1 x1 x2 x2 Simplex method, illustrated • Rewriting the original optimization problem with x1,x2,x3,x4,x5 • Maximize: Z=3x1+5x2 • Subject to: x1+x3=4 • x2+x4=6 • 3x1+2x2+x5=18
Your example Maximize Z=4x1+3x2+6x3 Subject to 3x1+x2+3x3<=30 2x1+2x2+3x3<=40 x1>=0, x2>=0, x3>=0