200 likes | 654 Views
Christopher Zonca 02/07/2008. Linear Programming The Simplex Method. What is Linear Programming?. “...finding the maximum or minimum of linear functions in which many variables are subject to constraints.” (dictionary.com)
E N D
Christopher Zonca 02/07/2008 Linear ProgrammingThe Simplex Method
What is Linear Programming? “...finding the maximum or minimum of linear functions in which many variables are subject to constraints.” (dictionary.com) A linear program is a “problem that requires the minimization of a linear form subject to linear constraints...” (Dantzig vii)
Try and Imagine… • A very large, convex polyhedron • A plane intersecting this polyhedron
What does this mean? The polyhedron is a set of inequalities. The plane is a linear function we need to maximize.
Important Note Linear programming requires linear inequalities In other words, first degree inequalities only! Good: ax + by + cz < 3 Bad: ax2 + log2y > 7
Brief History Was not prominent until around 1947 Emerging computers made mathematical modeling in decision making attractive. (Dantzig vii)
Lets look at an example... • Farm that produces Apples (x) and Oranges (y) • Each crop needs land, fertilizer, and time. • 6 acres of land: 3x + y < 6 • 6 tons of fertilizer: 2x + 3y < 6 • 8 hour work day: x + 5y < 8 • Apples sell for twice as much as oranges • We want to maximize profit (z): 2x + y = z • We can't produce negative: x > 0, y > 0
Traditional Method Graph the inequalities Look at the line we're trying to maximize. x = 1.71 y = .86 z = 4.29
Problems... More variables? Cannot eyeball the answer?
Simplex Method George B. Dantzig in 1951 Need to convert equations Slack variables
Performing the Conversion -z + 2x + y = 0 (Objective Equation) s1 + x + 5y = 8 s2 + 2x + 3y = 6 s3 + 3x + y = 6 Initial feasible solution
More definitions Non-basic: x, y Basic variables: s1, s2, s3, z Current Solution: Set non-basic variables to 0 -z + 2x + y = 0 => z = 0 Valid, but not good!
Next step... Select a non-basic variable -z + 2x + 1y = 0 x has the higher coefficient Select a basic variable s1 + 1x + 5y = 8 1/8 s2 + 2x + 3y = 6 2/6 s3 + 3x + y = 6 3/6 3/6 is the highest, use equation with s3
New set of equations Solve for x x = 2 - (1/3)s3 -(1/3)y Substitute in to other equations to get... -z – (2/3)s3 +(1/3)y = -4 s1– (1/3)s3 + (14/3)y = 6 s2 – (2/3)s3 +(7/3)y = 2 x + (1/3)s3 +(1/3)y = 2
Redefine everything... Update variables Non-Basic: s3 and y Basic: s1, s2, z, and x Current Solution: -z – (2/3)s3 +(1/3)y = -4 => z = 4 x + (1/3)s3 +(1/3)y = 2 => x = 2 y = 0 Better, but not quite there.
Do it again! Repeat this process Stop repeating when the coefficients in the objective equation are all negative.
Not perfect Huge number of pivot stages Worst case exponential
Improvements Different kinds of inequalities Minimized instead of maximized L. G. Kachian algorithm proved polynomial
References Dewdney, A.K. “Linear Programming”. The New Turing Omnibus. Computer Science Press, 1989. Dantzig, G. B. Linear Programming and Extensions. Princeton University Press, 1963 Dictionary.com. Linear Programming. Retrieved February 6th, 2008 from http://www.dictionary.com Wikipedia. Polyhedron. Retrieved February 6th, 2008 from http://en.wikipedia.org/wiki/polyhedron
Questions Who discovered the Simplex Method? Which basic and non-basic variable would you choose if you wanted to perform one more iteration of the Simplex Method on the previous example?