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: ax
2
+ log
2
y > 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)
s
1
+ x + 5y = 8
s
2
+ 2x + 3y = 6
s
3
+ 3x + y = 6
Initial feasible solution
More definitions
Non-basic: x, y
Basic variables: s
1
, s
2
, s
3
, 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
s
1
+ 1x + 5y = 8 1/8
s
2
+ 2x + 3y = 6 2/6
s
3
+ 3x + y = 6 3/6
3/6 is the highest, use equation with s
3

New set of equations
Solve for x
x = 2 - (1/3)s
3
-(1/3)y
Substitute in to other equations to get...
-z (2/3)s
3
+(1/3)y = -4


s
1
(1/3)s
3
+ (14/3)y = 6
s
2
(2/3)s
3
+(7/3)y = 2
x + (1/3)s
3
+(1/3)y = 2
Redefine everything...
Update variables
Non-Basic: s
3
and y
Basic: s
1
, s
2
, z, and x
Current Solution:
-z (2/3)s
3
+(1/3)y = -4 => z = 4
x + (1/3)s
3
+(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 6
th
, 2008 from http://www.dictionary.com
Wikipedia. Polyhedron. Retrieved February 6
th
, 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