You are on page 1of 20

Linear Programming

The Simplex Method


Christopher Zonca 02/07/2008

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
x = 1.71 y = .86 z = 4.29

Graph the inequalities Look at the line we're trying to maximize.

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 s + 3x + y = 6 3/6 3 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?

You might also like