simplex algorithm

33
Simplex Algorithm Linear Programming Khwaja - Sarwan - Aizaz - Ghaffar 1

Upload: khwaja-bilal-hassan

Post on 11-Jul-2015

89 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Simplex algorithm

Simplex AlgorithmLinear Programming

Khwaja - Sarwan - Aizaz - Ghaffar

1

Page 2: Simplex algorithm

Overview Introduction

Simplex Algorithm/Method

Steps For Simplex Algorithm

1. Standardization

2. Simplex Tableau

3. Pivot Column

4. Theta Ratio and Pivot Row

5. Pivoting

1. Calculate Rownew

2. Calculate Row – C.Rownew

Cycling – Bland’s Rule

Software Simulation

Efficiency

Other Variants of the Algorithm

Summary of Algorithm

Acknowledgement2

Page 3: Simplex algorithm

Simplex Method

Last week, we covered on using the graphical approach in deriving solutions

for LP problem

Question:

Can we solve all LP problems using graphical approach ?

3

Page 4: Simplex algorithm

Answer is “NO”

Why?

Consider the following scenario:

For 10 equations with 15 variables there exists a huge number ( 1015𝐶 = 3003) of basic

feasible solutions. In such a case, inspection of all the solutions one-by-one is not

practically feasible.

It is extremely difficult to use a graphical approach to find its

maximized/minimized solution.

Thus, we need another systematic approach to solve an LP problem -

known as Simplex Method/Algorithm.

4

Page 5: Simplex algorithm

Simplex Method

The most popular method used for the solution of Linear Programming Problems (LPP) is the simplex method.

The journal Computing in Science and Engineering listed it as one of the top 10 algorithms of the twentieth century.

An American Mathematical Scientist, George Bernard Dantzig is known for his development of the simplex algorithm. That’s why we also name it Dantzig’sAlgorithm.

The algorithm is derived from the geometrical concept of Simplex (plural simplexes or simplices).

Simplex Algorithm can solve an equation for many variables (dimensions).5

Page 6: Simplex algorithm

Steps for Simplex Algorithm

1. Standardization

We need to convert our equation into a standard format first.

We refer standard format here as.

It must be a maximization problem.

All constraints are in a form of “equation”

i.e. not equation of ≥ or ≤

All variables must be required to be nonnegative

6

Page 7: Simplex algorithm

Standard format

7

Consider the following 5 types of possible equation in a LP problem:

Page 8: Simplex algorithm

Standard format

8

We will tell you why we need this format later!

Where, S is a slack variable

Page 9: Simplex algorithm

Sample of an LP problem

9

Page 10: Simplex algorithm

Standard format

10

Page 11: Simplex algorithm

Difference b/w Original and Standard

11

Original LP format Standard LP format

Slack Variables!

Page 12: Simplex algorithm

More example of standard format

12

Consider the following:

We can see that min has be converted to max and slack variables are added.

Page 13: Simplex algorithm

2. Simplex Tableau

13

Page 14: Simplex algorithm

Simplex Tableau

The simplex method progresses through a series of adjacent extreme points

(basic feasible solutions) with increasing values of the objective function

Each such point can be represented by a simplex tableau, a table storing the

information about the basic feasible solution corresponding to the extreme

point.

For Example:𝑚𝑎𝑥𝑖𝑚𝑖𝑧𝑒

3𝑥 + 5𝑦 + 0𝑢 + 0𝑣𝑠𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜

𝑥 + 𝑦 + 𝑢 = 4𝑥 + 3𝑦 + + 𝑣 = 6

𝑥, 𝑦, 𝑢, 𝑣 ≥ 0.

14

Page 15: Simplex algorithm

Simplex Tableau

𝑢

𝑣

1 1 1 0 4

1 3 0 1 6

-3 -5 0 0 0

𝑥 𝑦 𝑢 𝑣

Initialized by the

coefficients of the

objective function. The

signs are reversed in this

row (objective row)

We have constraints + 1

rows and variables +1

columns

Pivot Column/Entering Variable.

In our example, its Y

15

Page 16: Simplex algorithm

Simplex Tableau

3.Pivot Column

Objective Row:

The objective row is used by the simplex method to check whether the current

tableau represents an optimal solution.

It does have the optimum solution if all the entries in the objective row—except, possibly,

the one in the last column—are nonnegative.

Pivot Column/Entering Variable:

Select the minimum number in the objective row, such a choice yields the largest

increase in the objective function’s value per unit of change in a variable’s value.

The most negative one selected will be the pivot column with an entering variable.

It is indicated by the up arrow.

16

Page 17: Simplex algorithm

Simplex Tableau4. Calculating the Theta Ratio and Departing Variable

Departing Variable:

Also called leaving variable or pivot row i.e., a basic variable to become non basic

in the next tableau. Indicated by

How to calculate:

For each positive entry in the pivot column, compute the θ-ratio by dividing the

row’s last entry by the entry in the pivot column.

The row with the smallest θ-ratio determines the departing variable, i.e., the

variable to become non basic.

If there are no positive entries in the pivot column, no θ-ratio can be computed,

which indicates that the problem is unbounded and the algorithm stops.

17

Page 18: Simplex algorithm

Simplex TableauCalculating the Theta Ratio and Departing Variable

𝑢

𝑣

1 1 1 0 4

1 3 0 1 6

-3 -5 0 0 0

𝑥 𝑦 𝑢 𝑣

Pivot Column/Entering Variable

𝜃 − 𝑟𝑎𝑡𝑖𝑜 =4

1= 4

𝜃 − 𝑟𝑎𝑡𝑖𝑜 =6

3= 2

The row with the smallest θ-ratio determines the

departing variable. For our example, it is variable v.

The intersecting element of Pivot Column and Pivot

Row is the pivot.

In the next tableau the intersected element will

become 1 and the rest of elements will become 0 in

the pivot column.

Departing Variable / Leaving Variable/ Pivot Row

18

Page 19: Simplex algorithm

5. Pivoting

To transform the current tableau into the next one and increase the value of the objective function to the next feasible solution. We have to take some steps. Called Pivoting

Pivoting, is similar to the principal step of the Gauss-Jordan elimination algorithm for solving systems of linear equations.

Steps:

1. First, divide all the entries of the pivot row by the pivot, its entry in the pivot column, to obtain Rownew

2. Then, replace each of the other rows, including the objective row, by the difference

𝑅𝑜𝑤 − 𝑐. 𝑅𝑜𝑤𝑛𝑒𝑤

Where c is the row’s entry in the pivot column.

19

Page 20: Simplex algorithm

Pivoting

1. Calculating Rownew

𝑢

𝑣

1 1 1 0 4

1 3 0 1 6

-3 -5 0 0 0

𝑥 𝑦 𝑢 𝑣

𝑅𝑜𝑤𝑛𝑒𝑤 =1

3

3

3

0

3

1

3

6

3

𝑅𝑜𝑤𝑛𝑒𝑤 =1

3, 1, 0,

1

3, 2

The pivot row will be replaced by the Rownew we calculated.20

Page 21: Simplex algorithm

Pivoting2. Calculating Row – c.Rownew

As we have calculated the 2nd row. Now we will apply this formula on the rest

of the rows. i.e. Row 1 and Row 3 in our example.

For Row 1:

Row 1 – C. Rownew where C = 1

1 − 1.1

31 − 1.1 1 − 1.0 0 − 1.

1

34 − 1.2

2

30 1 −

1

32

For Row 3:

Row 3 – C. Rownew where C = -5

−3 − −5 .1

3− 5 − (−5). 1 0 − (−5). 0 0 − (−5).

1

30 − (−5). 2

−4

30 0

5

310

Now we will replace all the rows with their new respective rows in order to make the

new tableau. 21

Page 22: Simplex algorithm

PivotingNext Tableau

𝑢

𝑦

2/3 0 1 -1/3 2

1/3 1 0 1/3 2

-4/3 0 0 5/3 10

𝑥 𝑦 𝑢 𝑣

Now we can see that the intersected element became 1 and the rest of them

became zero in pivot column.

The Entering variable Y took the place of departing variable V.

But…

We cannot finish here, because the objective row has still a negative value. We

have to eliminate it by doing further iterations.22

Page 23: Simplex algorithm

2nd Iteration

We have to go through all the steps again. Including the selection of pivot column calculating pivot row and then pivoting.

So our Rownew would be: 1 03

2−

1

23

For Other Rows:

For Row 2:

Row 2 – C. Rownew where C = 1/3

1

3−

1

3. 1 1 −

1

3. (0) 0 −

1

3. (3

2)

1

3−

1

3. (−

1

2) 2 −

1

3.. 3

0 1 −1

2

1

21

For Row 3:

Row 3 – C. Rownew where C = -4/3

−4

3− −

4

3. 1 0 − −

4

3. 0 0 − −

4

3.

3

2

5

3− −

4

3. (−

1

2) 10 − −

4

3. 3

0 0 2 1 14

Put in next tableau…23

Page 24: Simplex algorithm

2nd Iteration Tableau

𝑥

𝑦

1 0 3/2 -1/2 3

0 1 -1/2 1/2 1

0 0 2 1 14

𝑥 𝑦 𝑢 𝑣

We can see that the last row has no negative value left. We can safely stop our

iterations here.

We can conclude our maximized solution as:

𝑥 = 3𝑦 = 1𝑢 = 0𝑣 = 0

𝑀𝑎𝑥 = 14

We choose u and v equal

to 0, because their

column has all distinct

values. If they were like

x and y, they’d have

some value.

24

Page 25: Simplex algorithm

Cycling – Bland’s Rule

When an objective function’s values “stall” for several iterations in a row and

that the algorithm cycles back to a previously considered point and hence

never terminate. This phenomenon is called cycling.

Although, it rarely happens, but when it does - A simple modification of the

simplex method, called Bland’s rule, eliminates even the theoretical

possibility of cycling.

25

Page 26: Simplex algorithm

Cycling – Bland’s Rule

Assuming that the variables are denoted by a subscripted letter (e.g., x1,

x2,..., xn), this rule can be stated as follows:

1. Among the columns with a negative entry in the objective row, select the

column with the smallest subscript.

2. Resolve a tie among the smallest θ-ratios by selecting the row labeled by the

basic variable with the smallest subscript.

26

Page 27: Simplex algorithm

Software Simulation

Simplex Method has became so efficient that its calculation packages are

even available online. One of them is as follows:

For ease, we will copy the same problem to the online tool and check

whether it gives us the same result:

maximize p = 3x +5y

subject to x + y = 4, x+3y = 6

Simplex Method Online Tool

27

Page 28: Simplex algorithm

EfficiencyHow efficient is the simplex method?

28

Page 29: Simplex algorithm

Efficiency of Simplex Algorithm

Since we know that the algorithm progresses through a sequence of adjacent points of a feasible region. Right?

So, one should probably expect bad news because the number of extreme points is known to grow exponentially with the problem size.

The worst-case efficiency of the simplex method has been shown to be exponential.

But Fortunately!

More than half a century of practical experience with the algorithm has shown that the number of iterations in a typical application ranges between m and 3m, with the number of operations per iteration proportional to mn, where m and n are the numbers of equality constraints and variables, respectively.

29

Page 30: Simplex algorithm

Other Variants of the Algorithm

Ellipsoid Method:

An important mile- stone in the history of such algorithms was the proof by L. G.

Khachian showing that the ellipsoid method can solve any linear programming

problem in polynomial time.

However, ellipsoid method was much slower than the simplex method in practice

Karmarker’s Method

Narendra Karmarkar published an algorithm that not only had a polynomial worst-

case efficiency but also was competitive with the simplex method. This method

generates a sequence of feasible solutions that lie within the feasible region

rather than going through a sequence of adjacent extreme points as the simplex

method does. (Interior Point Methods).

30

Page 31: Simplex algorithm

Summary of Simplex Algorithm

Step 0

Initialization. Present a given linear programming problem in standard form and set up an initial tableau with non negative entries in the rightmost column.

Step 1

Optimality test. If all the entries in the objective row are nonnegative—stop: the tableau represents an optimal solution whose basic variables’ values are in the rightmost column and the remaining, non basic variables’ values are zeros.

Step 3

Finding the entering variable. Select the most negative entry from among the first n elements of the objective row.

Step 4

Finding the departing variable. For each positive entry in the pivot column, calculate the θ-ratio. Find the row with the smallest θ-ratio.

Step 5

Forming the next tableau. Divide all the entries in the pivot row by its entry in the pivot column. Subtract from each of the other rows, including the objective row, the new pivot row multiplied by the entry in the pivot column of the row in question. (This will make all the entries in the pivot column 0’s except for 1in the pivot row.) Replace the label of the pivot row by the variable’s name of the pivot column and go back to Step 1. 31

Page 32: Simplex algorithm

Acknowledgment

The material presented in this lecture is adopted from; Anany Levitin.

Introduction to Design and Analysis of Algorithms, 3rd Edition

32

Page 33: Simplex algorithm

Thank You!

33