Linear Programming - University of Washington

118
Linear Programming Lecture 7: Does the Simplex Algorithm Work? Lecture 7: Does the Simplex Algorithm Work? Linear Programming 1 / 36

Transcript of Linear Programming - University of Washington

Page 1: Linear Programming - University of Washington

Linear Programming

Lecture 7: Does the Simplex Algorithm Work?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 1 / 36

Page 2: Linear Programming - University of Washington

1 Does the Simples Algorithm Work?

2 Choosing Entering and Leaving Variables

3 Unbounded LPs

4 Degeneracy

5 Overcoming Degeneracy

6 Cycling

7 The Basis-Dictionary Correspondence

8 Bland’s Rule for Pivoting

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 2 / 36

Page 3: Linear Programming - University of Washington

What Can Go Wrong with Simplex Algorithm?

Initialization:

The simplex algorithm pivots between feasible dictionaries(equivalently, feasible tableaus). The pivoting process moves us from one BFS toanother BFS having a greater objective value.

Hence, in order to pivot, we need an initial feasible dictionary.

How do we obtain the first feasible dictionary?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 3 / 36

Page 4: Linear Programming - University of Washington

What Can Go Wrong with Simplex Algorithm?

Initialization: The simplex algorithm pivots between feasible dictionaries(equivalently, feasible tableaus). The pivoting process moves us from one BFS toanother BFS having a greater objective value.

Hence, in order to pivot, we need an initial feasible dictionary.

How do we obtain the first feasible dictionary?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 3 / 36

Page 5: Linear Programming - University of Washington

What Can Go Wrong with Simplex Algorithm?

Initialization: The simplex algorithm pivots between feasible dictionaries(equivalently, feasible tableaus). The pivoting process moves us from one BFS toanother BFS having a greater objective value.

Hence, in order to pivot, we need an initial feasible dictionary.

How do we obtain the first feasible dictionary?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 3 / 36

Page 6: Linear Programming - University of Washington

What Can Go Wrong with Simplex Algorithm?

Initialization: The simplex algorithm pivots between feasible dictionaries(equivalently, feasible tableaus). The pivoting process moves us from one BFS toanother BFS having a greater objective value.

Hence, in order to pivot, we need an initial feasible dictionary.

How do we obtain the first feasible dictionary?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 3 / 36

Page 7: Linear Programming - University of Washington

What Can Go Wrong with Simplex Algorithm?

Iteration:

Can we always choose variables to enter and leave the basis in anunambiguous way?

Can there be multiple choices or no choice?

Are there ambiguities in the choice of these variables, and if so, can they besatisfactorily?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 4 / 36

Page 8: Linear Programming - University of Washington

What Can Go Wrong with Simplex Algorithm?

Iteration: Can we always choose variables to enter and leave the basis in anunambiguous way?

Can there be multiple choices or no choice?

Are there ambiguities in the choice of these variables, and if so, can they besatisfactorily?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 4 / 36

Page 9: Linear Programming - University of Washington

What Can Go Wrong with Simplex Algorithm?

Iteration: Can we always choose variables to enter and leave the basis in anunambiguous way?

Can there be multiple choices or no choice?

Are there ambiguities in the choice of these variables, and if so, can they besatisfactorily?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 4 / 36

Page 10: Linear Programming - University of Washington

What Can Go Wrong with Simplex Algorithm?

Iteration: Can we always choose variables to enter and leave the basis in anunambiguous way?

Can there be multiple choices or no choice?

Are there ambiguities in the choice of these variables, and if so, can they besatisfactorily?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 4 / 36

Page 11: Linear Programming - University of Washington

What Can Go Wrong with Simplex Algorithm?

Termination:

Does the simplex algorithm terminate after a finite number ofpivots?

Does it terminate at a solution when a solution exists?

Does it terminate for unbounded problems?

Can it stall, or can it go on pivoting forever without ever solving the problem?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 5 / 36

Page 12: Linear Programming - University of Washington

What Can Go Wrong with Simplex Algorithm?

Termination: Does the simplex algorithm terminate after a finite number ofpivots?

Does it terminate at a solution when a solution exists?

Does it terminate for unbounded problems?

Can it stall, or can it go on pivoting forever without ever solving the problem?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 5 / 36

Page 13: Linear Programming - University of Washington

What Can Go Wrong with Simplex Algorithm?

Termination: Does the simplex algorithm terminate after a finite number ofpivots?

Does it terminate at a solution when a solution exists?

Does it terminate for unbounded problems?

Can it stall, or can it go on pivoting forever without ever solving the problem?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 5 / 36

Page 14: Linear Programming - University of Washington

What Can Go Wrong with Simplex Algorithm?

Termination: Does the simplex algorithm terminate after a finite number ofpivots?

Does it terminate at a solution when a solution exists?

Does it terminate for unbounded problems?

Can it stall, or can it go on pivoting forever without ever solving the problem?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 5 / 36

Page 15: Linear Programming - University of Washington

What Can Go Wrong with Simplex Algorithm?

Termination: Does the simplex algorithm terminate after a finite number ofpivots?

Does it terminate at a solution when a solution exists?

Does it terminate for unbounded problems?

Can it stall, or can it go on pivoting forever without ever solving the problem?

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 5 / 36

Page 16: Linear Programming - University of Washington

Choosing the Entering Variable

Assume we are given a feasible dictionary:

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

(DB)

where bi ≥ 0, i ∈ B.

Entering Variable:A nonbasic variable xj0 , j0 ∈ N can enter the basis if cj0 > 0.

There may be many such nonbasic variables, but all of them have the potential toincrease the value of the objective variable z .

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 6 / 36

Page 17: Linear Programming - University of Washington

Choosing the Entering Variable

Assume we are given a feasible dictionary:

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

(DB)

where bi ≥ 0, i ∈ B.

Entering Variable:

A nonbasic variable xj0 , j0 ∈ N can enter the basis if cj0 > 0.

There may be many such nonbasic variables, but all of them have the potential toincrease the value of the objective variable z .

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 6 / 36

Page 18: Linear Programming - University of Washington

Choosing the Entering Variable

Assume we are given a feasible dictionary:

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

(DB)

where bi ≥ 0, i ∈ B.

Entering Variable:A nonbasic variable xj0 , j0 ∈ N can enter the basis if cj0 > 0.

There may be many such nonbasic variables, but all of them have the potential toincrease the value of the objective variable z .

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 6 / 36

Page 19: Linear Programming - University of Washington

Choosing the Entering Variable

Assume we are given a feasible dictionary:

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

(DB)

where bi ≥ 0, i ∈ B.

Entering Variable:A nonbasic variable xj0 , j0 ∈ N can enter the basis if cj0 > 0.

There may be many such nonbasic variables, but all of them have the potential toincrease the value of the objective variable z .

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 6 / 36

Page 20: Linear Programming - University of Washington

Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Suppose xj0 , j0 ∈ N is the entering variable.

The leaving variable is that basic variable whose non-negativity places the greatestrestriction on increasing the value of the entering variable xj0 .

The leaving variable attains the minimum value among the ratios

biaij0

for aij0 > 0 i ∈ B.

If xi0 , i0 ∈ B is the leaving variable, then

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 7 / 36

Page 21: Linear Programming - University of Washington

Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Suppose xj0 , j0 ∈ N is the entering variable.

The leaving variable is that basic variable whose non-negativity places the greatestrestriction on increasing the value of the entering variable xj0 .

The leaving variable attains the minimum value among the ratios

biaij0

for aij0 > 0 i ∈ B.

If xi0 , i0 ∈ B is the leaving variable, then

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 7 / 36

Page 22: Linear Programming - University of Washington

Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Suppose xj0 , j0 ∈ N is the entering variable.

The leaving variable is that basic variable whose non-negativity places the greatestrestriction on increasing the value of the entering variable xj0 .

The leaving variable attains the minimum value among the ratios

biaij0

for aij0 > 0 i ∈ B.

If xi0 , i0 ∈ B is the leaving variable, then

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 7 / 36

Page 23: Linear Programming - University of Washington

Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Suppose xj0 , j0 ∈ N is the entering variable.

The leaving variable is that basic variable whose non-negativity places the greatestrestriction on increasing the value of the entering variable xj0 .

The leaving variable attains the minimum value among the ratios

biaij0

for aij0 > 0 i ∈ B.

If xi0 , i0 ∈ B is the leaving variable, then

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 7 / 36

Page 24: Linear Programming - University of Washington

Hazards in Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Two potential problems:

(i) There is no i ∈ B for which aij0 > 0.

(ii) There is more than one i0 ∈ B for which

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

If (i) occurs, then we can increase the value of the entering variable xj0 , as muchas we want without violating feasibility.That is, we can increase the value of z as much as we want.Hence the LP is unbounded.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 8 / 36

Page 25: Linear Programming - University of Washington

Hazards in Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Two potential problems:

(i) There is no i ∈ B for which aij0 > 0.

(ii) There is more than one i0 ∈ B for which

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

If (i) occurs, then we can increase the value of the entering variable xj0 , as muchas we want without violating feasibility.That is, we can increase the value of z as much as we want.Hence the LP is unbounded.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 8 / 36

Page 26: Linear Programming - University of Washington

Hazards in Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Two potential problems:

(i) There is no i ∈ B for which aij0 > 0.

(ii) There is more than one i0 ∈ B for which

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

If (i) occurs, then we can increase the value of the entering variable xj0 , as muchas we want without violating feasibility.That is, we can increase the value of z as much as we want.Hence the LP is unbounded.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 8 / 36

Page 27: Linear Programming - University of Washington

Hazards in Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Two potential problems:

(i) There is no i ∈ B for which aij0 > 0.

(ii) There is more than one i0 ∈ B for which

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

If (i) occurs, then we can increase the value of the entering variable xj0 , as muchas we want without violating feasibility.That is, we can increase the value of z as much as we want.Hence the LP is unbounded.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 8 / 36

Page 28: Linear Programming - University of Washington

Hazards in Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Two potential problems:

(i) There is no i ∈ B for which aij0 > 0.

(ii) There is more than one i0 ∈ B for which

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

If (i) occurs, then we can increase the value of the entering variable xj0 , as muchas we want without violating feasibility.

That is, we can increase the value of z as much as we want.Hence the LP is unbounded.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 8 / 36

Page 29: Linear Programming - University of Washington

Hazards in Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Two potential problems:

(i) There is no i ∈ B for which aij0 > 0.

(ii) There is more than one i0 ∈ B for which

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

If (i) occurs, then we can increase the value of the entering variable xj0 , as muchas we want without violating feasibility.That is, we can increase the value of z as much as we want.

Hence the LP is unbounded.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 8 / 36

Page 30: Linear Programming - University of Washington

Hazards in Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Two potential problems:

(i) There is no i ∈ B for which aij0 > 0.

(ii) There is more than one i0 ∈ B for which

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

If (i) occurs, then we can increase the value of the entering variable xj0 , as muchas we want without violating feasibility.That is, we can increase the value of z as much as we want.Hence the LP is unbounded.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 8 / 36

Page 31: Linear Programming - University of Washington

Unbounded LPs

Fact: If there exists j0 ∈ N in the dictionary DB for which cj0 > 0 and aij0 ≤ 0 forall i ∈ B, then the LP

maximize cT xsubject to Ax ≤ b, 0 ≤ x

is unbounded, i.e., the optimal value is +∞.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 9 / 36

Page 32: Linear Programming - University of Washington

Unbounded LPs

maximize x1 +x2 +x3

subject to 3x1 +x2 −2x3 ≤ 5

4x1 +3x2 ≤ 70 ≤ x1, x2, x3

3 1 −2 1 0 0 54 3 0 0 1 0 71 1 1 0 0 0 0

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 10 / 36

Page 33: Linear Programming - University of Washington

Unbounded LPs

maximize x1 +x2 +x3

subject to 3x1 +x2 −2x3 ≤ 5

4x1 +3x2 ≤ 70 ≤ x1, x2, x3

3 1 −2 1 0 0 54 3 0 0 1 0 71 1 1 0 0 0 0

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 10 / 36

Page 34: Linear Programming - University of Washington

Hazards in Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Two potential problems:

(i) There is no i ∈ B for which aij0 > 0.

(ii) There is more than one i0 ∈ B for which

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

(ii) is VERY BAD for the simplex algorithm!We show why by example.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 11 / 36

Page 35: Linear Programming - University of Washington

Hazards in Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Two potential problems:

(i) There is no i ∈ B for which aij0 > 0.

(ii) There is more than one i0 ∈ B for which

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

(ii) is VERY BAD for the simplex algorithm!

We show why by example.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 11 / 36

Page 36: Linear Programming - University of Washington

Hazards in Choosing the Leaving Variable

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,

Two potential problems:

(i) There is no i ∈ B for which aij0 > 0.

(ii) There is more than one i0 ∈ B for which

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}.

(ii) is VERY BAD for the simplex algorithm!We show why by example.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 11 / 36

Page 37: Linear Programming - University of Washington

Example

maximize 2x1 − x2 + 8x3subject to 2x1 − 4x2 + 6x3 ≤ 3

−x1 + 3x2 + 4x3 ≤ 22x3 ≤ 1

0 ≤ x1, x2, x3

x =

0

0

0

2

−1

0

−4

3

0

6

4

1

0

0

0

1

0

0

0

1

3

2

1

Note that any oneof these rowscould serve as thepivot row!

z = 0 2 −1 8 0 0 0 0

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 12 / 36

Page 38: Linear Programming - University of Washington

Example

maximize 2x1 − x2 + 8x3subject to 2x1 − 4x2 + 6x3 ≤ 3

−x1 + 3x2 + 4x3 ≤ 22x3 ≤ 1

0 ≤ x1, x2, x3

x =

0

0

0

2

−1

0

−4

3

0

6

4

1

0

0

0

1

0

0

0

1

3

2

1

Note that any oneof these rowscould serve as thepivot row!

z = 0 2 −1 8 0 0 0 0

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 12 / 36

Page 39: Linear Programming - University of Washington

Example

x =

0

0

0

2

−1

0

−4

3

0

6

4

1

0

0

0

1

0

0

0

1

3

2

1

Note that any oneof these rowscould serve as thepivot row!

z = 0 2 −1 8 0 0 0 0

x =

0

0

12

−1

0

−4

3

0

0

0

1

1

0

0

0

1

0

−3

−2

12

0

0

12

Note that bypivoting on thistableau we do notchange theobjective value

z = 4 2 −1 0 0 0 −4 −4

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 13 / 36

Page 40: Linear Programming - University of Washington

Example

x =

0

0

12

−1

0

−4

3

0

0

0

1

1

0

0

0

1

0

−3

−2

12

0

0

12

Note that bypivoting on thistableau we do notchange theobjective value

z = 4 2 −1 0 0 0 −4 −4

x =

0

0

12

1

0

0

−2

0

0

0

1

12

12

0

0

1

0

− 32

− 72

12

0

0

12

Note that we havenot changed thepoint identified bythis tableau

z = 4 0 3 0 −1 0 −1 −4

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 14 / 36

Page 41: Linear Programming - University of Washington

Example

x =

0

0

12

1

0

0

−2

0

0

0

1

12

12

0

0

1

0

− 32

− 72

12

0

0

12

Note that we havenot changed thepoint identified bythis tableau

z = 4 0 3 0 −1 0 −1 −4

x =

0

0

12

1

0

0

0

1

0

0

0

1

32

12

0

2

1

0

− 172

− 72

12©

0

0

12

Again no change.

z = 4 0 0 0 − 52−3 19

2−4

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 15 / 36

Page 42: Linear Programming - University of Washington

Example

x =

0

0

12

1

0

0

0

1

0

0

0

1

32

12

0

2

1

0

− 172

− 72

12©

0

0

12

Again no change.

z = 4 0 0 0 − 52−3 19

2−4

x =

172

72

0

1

0

0

0

1

0

17

7

2

32

12

0

2

1

0

0

0

1

172

72

1

Finally, we breakout to optimality.

z = 272

0 0 -19 − 52−3 0 − 27

2

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 16 / 36

Page 43: Linear Programming - University of Washington

Degeneracy

Observations:

(1) If on a given pivot, there is more than one choice of variable to leave thebasis, then the subsequent tableau will set one or more of the basic variablesequal to zero in the associated basic feasible solution.

A dictionary in which one or more of the basic variables is set to zero in theassociated basic feasible solution is called a “degenerate dictionary”.Correspondingly, a tableau in which one or more of the basic variables is set tozero in the associated basic feasible solution is called a “degenerate tableau”.

(2) It is possible that a pivot on a degenerate dictionary (or tableau) does notchange the associated basic feasible solution and the value of the objectivevariable z .

Such a pivot is called a “degenerate pivot”.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 17 / 36

Page 44: Linear Programming - University of Washington

Degeneracy

Observations:

(1) If on a given pivot, there is more than one choice of variable to leave thebasis, then the subsequent tableau will set one or more of the basic variablesequal to zero in the associated basic feasible solution.

A dictionary in which one or more of the basic variables is set to zero in theassociated basic feasible solution is called a “degenerate dictionary”.Correspondingly, a tableau in which one or more of the basic variables is set tozero in the associated basic feasible solution is called a “degenerate tableau”.

(2) It is possible that a pivot on a degenerate dictionary (or tableau) does notchange the associated basic feasible solution and the value of the objectivevariable z .

Such a pivot is called a “degenerate pivot”.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 17 / 36

Page 45: Linear Programming - University of Washington

Degeneracy

Observations:

(1) If on a given pivot, there is more than one choice of variable to leave thebasis, then the subsequent tableau will set one or more of the basic variablesequal to zero in the associated basic feasible solution.A dictionary in which one or more of the basic variables is set to zero in theassociated basic feasible solution is called a “degenerate dictionary”.

Correspondingly, a tableau in which one or more of the basic variables is set tozero in the associated basic feasible solution is called a “degenerate tableau”.

(2) It is possible that a pivot on a degenerate dictionary (or tableau) does notchange the associated basic feasible solution and the value of the objectivevariable z .

Such a pivot is called a “degenerate pivot”.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 17 / 36

Page 46: Linear Programming - University of Washington

Degeneracy

Observations:

(1) If on a given pivot, there is more than one choice of variable to leave thebasis, then the subsequent tableau will set one or more of the basic variablesequal to zero in the associated basic feasible solution.A dictionary in which one or more of the basic variables is set to zero in theassociated basic feasible solution is called a “degenerate dictionary”.Correspondingly, a tableau in which one or more of the basic variables is set tozero in the associated basic feasible solution is called a “degenerate tableau”.

(2) It is possible that a pivot on a degenerate dictionary (or tableau) does notchange the associated basic feasible solution and the value of the objectivevariable z .

Such a pivot is called a “degenerate pivot”.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 17 / 36

Page 47: Linear Programming - University of Washington

Degeneracy

Observations:

(1) If on a given pivot, there is more than one choice of variable to leave thebasis, then the subsequent tableau will set one or more of the basic variablesequal to zero in the associated basic feasible solution.A dictionary in which one or more of the basic variables is set to zero in theassociated basic feasible solution is called a “degenerate dictionary”.Correspondingly, a tableau in which one or more of the basic variables is set tozero in the associated basic feasible solution is called a “degenerate tableau”.

(2) It is possible that a pivot on a degenerate dictionary (or tableau) does notchange the associated basic feasible solution and the value of the objectivevariable z .

Such a pivot is called a “degenerate pivot”.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 17 / 36

Page 48: Linear Programming - University of Washington

Degeneracy

Observations:

(1) If on a given pivot, there is more than one choice of variable to leave thebasis, then the subsequent tableau will set one or more of the basic variablesequal to zero in the associated basic feasible solution.A dictionary in which one or more of the basic variables is set to zero in theassociated basic feasible solution is called a “degenerate dictionary”.Correspondingly, a tableau in which one or more of the basic variables is set tozero in the associated basic feasible solution is called a “degenerate tableau”.

(2) It is possible that a pivot on a degenerate dictionary (or tableau) does notchange the associated basic feasible solution and the value of the objectivevariable z .Such a pivot is called a “degenerate pivot”.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 17 / 36

Page 49: Linear Programming - University of Washington

Degeneracy

Observation (2) is particularly troublesome since it opens the door to thepossibility of an infinite sequence of degenerate pivots never terminating withoptimality.

Unfortunately, this can occur leading to the failure of the method. An example ofthe phenomenon is given in the text.

Our goal is to understand how such a pathological situation can occur and then todevise methods to overcome the problem.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 18 / 36

Page 50: Linear Programming - University of Washington

Degeneracy

Observation (2) is particularly troublesome since it opens the door to thepossibility of an infinite sequence of degenerate pivots never terminating withoptimality.

Unfortunately, this can occur leading to the failure of the method. An example ofthe phenomenon is given in the text.

Our goal is to understand how such a pathological situation can occur and then todevise methods to overcome the problem.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 18 / 36

Page 51: Linear Programming - University of Washington

Degeneracy

Observation (2) is particularly troublesome since it opens the door to thepossibility of an infinite sequence of degenerate pivots never terminating withoptimality.

Unfortunately, this can occur leading to the failure of the method. An example ofthe phenomenon is given in the text.

Our goal is to understand how such a pathological situation can occur and then todevise methods to overcome the problem.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 18 / 36

Page 52: Linear Programming - University of Washington

Cycling

Assume the algorithm is operating with iron clad pivoting rules.

That is, non-optimal feasible dictionaries have unique pivots.

Example:

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,(DB)

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 19 / 36

Page 53: Linear Programming - University of Washington

Cycling

Assume the algorithm is operating with iron clad pivoting rules.That is, non-optimal feasible dictionaries have unique pivots.

Example:

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,(DB)

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 19 / 36

Page 54: Linear Programming - University of Washington

Cycling

Assume the algorithm is operating with iron clad pivoting rules.That is, non-optimal feasible dictionaries have unique pivots.

Example:

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,(DB)

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 19 / 36

Page 55: Linear Programming - University of Washington

Cycling

Assume the algorithm is operating with iron clad pivoting rules.That is, non-optimal feasible dictionaries have unique pivots.

Example:

xi = bi −∑j∈N

aijxj i ∈ B

z = z +∑j∈N

cjxj ,(DB)

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 19 / 36

Page 56: Linear Programming - University of Washington

Cycling

Largest-Coefficient Largest-Subscript Rule

Choice of Entering Variable: Among all those variables xj with j ∈ N suchthat cj = max{ck : k ∈ N} > 0 choose xj0 so that j0 is largest.

Choice of Leaving Variable: Among all those variables xi with i ∈ B such

that biaij0

= min{

bkakj0

: k ∈ B, akj0 > 0}

choose xi0 so that i0 is largest.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 20 / 36

Page 57: Linear Programming - University of Washington

Cycling

Largest-Coefficient Largest-Subscript Rule

Choice of Entering Variable: Among all those variables xj with j ∈ N suchthat cj = max{ck : k ∈ N} > 0 choose xj0 so that j0 is largest.

Choice of Leaving Variable: Among all those variables xi with i ∈ B such

that biaij0

= min{

bkakj0

: k ∈ B, akj0 > 0}

choose xi0 so that i0 is largest.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 20 / 36

Page 58: Linear Programming - University of Washington

Cycling

Largest-Coefficient Largest-Subscript Rule

Choice of Entering Variable: Among all those variables xj with j ∈ N suchthat cj = max{ck : k ∈ N} > 0 choose xj0 so that j0 is largest.

Choice of Leaving Variable: Among all those variables xi with i ∈ B such

that biaij0

= min{

bkakj0

: k ∈ B, akj0 > 0}

choose xi0 so that i0 is largest.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 20 / 36

Page 59: Linear Programming - University of Washington

How Many Possible Bases?

How many possible ways are there to choose a set of basic indices?

Since every basis must contain m variables and there are only n + m variablesaltogether, the total number of possible sets of basic indices equals the number ofpossible ways to choose m distinct elements from a collection of n + m objects.

(n + mm

)=

(n + m)!

m!n!.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 21 / 36

Page 60: Linear Programming - University of Washington

How Many Possible Bases?

How many possible ways are there to choose a set of basic indices?

Since every basis must contain m variables and there are only n + m variablesaltogether, the total number of possible sets of basic indices equals the number ofpossible ways to choose m distinct elements from a collection of n + m objects.

(n + mm

)=

(n + m)!

m!n!.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 21 / 36

Page 61: Linear Programming - University of Washington

How Many Possible Bases?

How many possible ways are there to choose a set of basic indices?

Since every basis must contain m variables and there are only n + m variablesaltogether, the total number of possible sets of basic indices equals the number ofpossible ways to choose m distinct elements from a collection of n + m objects.

(n + mm

)=

(n + m)!

m!n!.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 21 / 36

Page 62: Linear Programming - University of Washington

Cycling

infinite pivot sequence ⇒ infinite dictionary sequence.

At least one dictionary, say D1, has a basis B appearing twice.Suppose B is also the basis for DN+1.Let

. . .D1, . . . ,DN ,DN+1,DN+2,DN+2, . . .

be the sequence of pivots where D1 and DN+1 have the same basis.If each basis is associated with a unique dictionary, then D1 = DN+1. But then,

D2 = DN+2, D3 = DN+3, . . . , D1 = D2N , D2 = D2N+2, . . .

That is, the same sequence of dictionaries appear over and over again. If thisoccurs we say that the sequence of dictionaries cycles.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 22 / 36

Page 63: Linear Programming - University of Washington

Cycling

infinite pivot sequence ⇒ infinite dictionary sequence.

At least one dictionary, say D1, has a basis B appearing twice.

Suppose B is also the basis for DN+1.Let

. . .D1, . . . ,DN ,DN+1,DN+2,DN+2, . . .

be the sequence of pivots where D1 and DN+1 have the same basis.If each basis is associated with a unique dictionary, then D1 = DN+1. But then,

D2 = DN+2, D3 = DN+3, . . . , D1 = D2N , D2 = D2N+2, . . .

That is, the same sequence of dictionaries appear over and over again. If thisoccurs we say that the sequence of dictionaries cycles.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 22 / 36

Page 64: Linear Programming - University of Washington

Cycling

infinite pivot sequence ⇒ infinite dictionary sequence.

At least one dictionary, say D1, has a basis B appearing twice.Suppose B is also the basis for DN+1.

Let. . .D1, . . . ,DN ,DN+1,DN+2,DN+2, . . .

be the sequence of pivots where D1 and DN+1 have the same basis.If each basis is associated with a unique dictionary, then D1 = DN+1. But then,

D2 = DN+2, D3 = DN+3, . . . , D1 = D2N , D2 = D2N+2, . . .

That is, the same sequence of dictionaries appear over and over again. If thisoccurs we say that the sequence of dictionaries cycles.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 22 / 36

Page 65: Linear Programming - University of Washington

Cycling

infinite pivot sequence ⇒ infinite dictionary sequence.

At least one dictionary, say D1, has a basis B appearing twice.Suppose B is also the basis for DN+1.Let

. . .D1, . . . ,DN ,DN+1,DN+2,DN+2, . . .

be the sequence of pivots where D1 and DN+1 have the same basis.

If each basis is associated with a unique dictionary, then D1 = DN+1. But then,

D2 = DN+2, D3 = DN+3, . . . , D1 = D2N , D2 = D2N+2, . . .

That is, the same sequence of dictionaries appear over and over again. If thisoccurs we say that the sequence of dictionaries cycles.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 22 / 36

Page 66: Linear Programming - University of Washington

Cycling

infinite pivot sequence ⇒ infinite dictionary sequence.

At least one dictionary, say D1, has a basis B appearing twice.Suppose B is also the basis for DN+1.Let

. . .D1, . . . ,DN ,DN+1,DN+2,DN+2, . . .

be the sequence of pivots where D1 and DN+1 have the same basis.If each basis is associated with a unique dictionary, then D1 = DN+1.

But then,

D2 = DN+2, D3 = DN+3, . . . , D1 = D2N , D2 = D2N+2, . . .

That is, the same sequence of dictionaries appear over and over again. If thisoccurs we say that the sequence of dictionaries cycles.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 22 / 36

Page 67: Linear Programming - University of Washington

Cycling

infinite pivot sequence ⇒ infinite dictionary sequence.

At least one dictionary, say D1, has a basis B appearing twice.Suppose B is also the basis for DN+1.Let

. . .D1, . . . ,DN ,DN+1,DN+2,DN+2, . . .

be the sequence of pivots where D1 and DN+1 have the same basis.If each basis is associated with a unique dictionary, then D1 = DN+1. But then,

D2 = DN+2, D3 = DN+3, . . . , D1 = D2N , D2 = D2N+2, . . .

That is, the same sequence of dictionaries appear over and over again. If thisoccurs we say that the sequence of dictionaries cycles.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 22 / 36

Page 68: Linear Programming - University of Washington

Cycling

infinite pivot sequence ⇒ infinite dictionary sequence.

At least one dictionary, say D1, has a basis B appearing twice.Suppose B is also the basis for DN+1.Let

. . .D1, . . . ,DN ,DN+1,DN+2,DN+2, . . .

be the sequence of pivots where D1 and DN+1 have the same basis.If each basis is associated with a unique dictionary, then D1 = DN+1. But then,

D2 = DN+2, D3 = DN+3, . . . , D1 = D2N , D2 = D2N+2, . . .

That is, the same sequence of dictionaries appear over and over again. If thisoccurs we say that the sequence of dictionaries cycles.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 22 / 36

Page 69: Linear Programming - University of Washington

The Basis-Dictionary Correspondence

Fact : Every basis uniquely determines its associated dictionary.

Corollary:The simplex algorithm fails to terminate if and only if it cycles. The simplexalgorithms can only cycle between degenerate dictionaries (or tableaus) with eachdictionary (or tableau) in the cycle being associated with the same basic feasiblesolution and objective value.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 23 / 36

Page 70: Linear Programming - University of Washington

Proof

We show each basis yields a unique dictionary.

xi = bi −∑

j∈N aijxj , i ∈ B

z = zi +∑

j∈N cjxj(D1)

andxi = b∗i −

∑j∈N a∗ijxj , i ∈ B

z = z∗ +∑

j∈N c∗j xj(D2)

Two dictionaries with the same basis B.Show all coefficients are identical.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 24 / 36

Page 71: Linear Programming - University of Washington

Proof

We show each basis yields a unique dictionary.

xi = bi −∑

j∈N aijxj , i ∈ B

z = zi +∑

j∈N cjxj(D1)

andxi = b∗i −

∑j∈N a∗ijxj , i ∈ B

z = z∗ +∑

j∈N c∗j xj(D2)

Two dictionaries with the same basis B.

Show all coefficients are identical.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 24 / 36

Page 72: Linear Programming - University of Washington

Proof

We show each basis yields a unique dictionary.

xi = bi −∑

j∈N aijxj , i ∈ B

z = zi +∑

j∈N cjxj(D1)

andxi = b∗i −

∑j∈N a∗ijxj , i ∈ B

z = z∗ +∑

j∈N c∗j xj(D2)

Two dictionaries with the same basis B.Show all coefficients are identical.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 24 / 36

Page 73: Linear Programming - University of Washington

Proof

(D1) (D2)

xi = bi −∑

j∈N aijxj , i ∈ B

z = zi +∑

j∈N cjxj

xi = b∗i −∑

j∈N a∗ijxj , i ∈ B

z = z∗ +∑

j∈N c∗j xj

D1 and D2 have identical solution sets.

Let j0 ∈ N and set xj0 = t and xj = 0 for j ∈ N, j 6= j0.Then

bi − aij0t = xi = b∗i − a∗ij0t for i ∈ B

z + cj0t = z = z∗ + c∗j0t.

Setting t = 0, we have

bi = b∗i i ∈ B and z = z∗.

Then, setting t = 1, we have

aij0 = a∗ij0 for i ∈ B.

Repeating for all j ∈ N.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 25 / 36

Page 74: Linear Programming - University of Washington

Proof

(D1) (D2)

xi = bi −∑

j∈N aijxj , i ∈ B

z = zi +∑

j∈N cjxj

xi = b∗i −∑

j∈N a∗ijxj , i ∈ B

z = z∗ +∑

j∈N c∗j xj

D1 and D2 have identical solution sets.Let j0 ∈ N and set xj0 = t and xj = 0 for j ∈ N, j 6= j0.Then

bi − aij0t = xi = b∗i − a∗ij0t for i ∈ B

z + cj0t = z = z∗ + c∗j0t.

Setting t = 0, we have

bi = b∗i i ∈ B and z = z∗.

Then, setting t = 1, we have

aij0 = a∗ij0 for i ∈ B.

Repeating for all j ∈ N.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 25 / 36

Page 75: Linear Programming - University of Washington

Proof

(D1) (D2)

xi = bi −∑

j∈N aijxj , i ∈ B

z = zi +∑

j∈N cjxj

xi = b∗i −∑

j∈N a∗ijxj , i ∈ B

z = z∗ +∑

j∈N c∗j xj

D1 and D2 have identical solution sets.Let j0 ∈ N and set xj0 = t and xj = 0 for j ∈ N, j 6= j0.Then

bi − aij0t = xi = b∗i − a∗ij0t for i ∈ B

z + cj0t = z = z∗ + c∗j0t.

Setting t = 0, we have

bi = b∗i i ∈ B and z = z∗.

Then, setting t = 1, we have

aij0 = a∗ij0 for i ∈ B.

Repeating for all j ∈ N.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 25 / 36

Page 76: Linear Programming - University of Washington

Degeneracy and Cycling

We have established that the simplex algorithm can only fail to terminate if itcycles, and that it can only cycle in the presence of degeneracy. In order to assurethat the simplex algorithm successfully terminates we need to develop a pivotingrule that avoids cycling.

There are many anti-cycling pivoting rules. We present the smallest subscript rule,also known as Bland’s Rule.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 26 / 36

Page 77: Linear Programming - University of Washington

Degeneracy and Cycling

We have established that the simplex algorithm can only fail to terminate if itcycles, and that it can only cycle in the presence of degeneracy. In order to assurethat the simplex algorithm successfully terminates we need to develop a pivotingrule that avoids cycling.

There are many anti-cycling pivoting rules. We present the smallest subscript rule,also known as Bland’s Rule.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 26 / 36

Page 78: Linear Programming - University of Washington

Bland’s Rule

xi = bi −∑

j∈N aijxj i ∈ B

z = z +∑

j∈N cjxj .(DB)

Choice of entering variable: xj0 for j0 ∈ N is the entering variable if cj0 > 0and j0 ≤ j whenever cj > 0.

Choice of leaving variable: xi0 for i0 ∈ B is the leaving variable if

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}

and

i0 ≤ i wheneverbi0ai0j0

=biaij0

i ∈ B.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 27 / 36

Page 79: Linear Programming - University of Washington

Bland’s Rule

xi = bi −∑

j∈N aijxj i ∈ B

z = z +∑

j∈N cjxj .(DB)

Choice of entering variable: xj0 for j0 ∈ N is the entering variable if cj0 > 0and j0 ≤ j whenever cj > 0.

Choice of leaving variable: xi0 for i0 ∈ B is the leaving variable if

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}

and

i0 ≤ i wheneverbi0ai0j0

=biaij0

i ∈ B.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 27 / 36

Page 80: Linear Programming - University of Washington

Bland’s Rule

xi = bi −∑

j∈N aijxj i ∈ B

z = z +∑

j∈N cjxj .(DB)

Choice of entering variable: xj0 for j0 ∈ N is the entering variable if cj0 > 0and j0 ≤ j whenever cj > 0.

Choice of leaving variable: xi0 for i0 ∈ B is the leaving variable if

bi0ai0j0

= min

{biaij0

: i ∈ B, aij0 > 0

}

and

i0 ≤ i wheneverbi0ai0j0

=biaij0

i ∈ B.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 27 / 36

Page 81: Linear Programming - University of Washington

Bland’s Rule

Theorem: [R.G. Bland (1977)]The simplex algorithm terminates as long as the choice of variable to enter orleave the basis is made according to the smallest subscript rule.

We abbreviate the Bland’s rule to SSR (smallest subscript rule).

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 28 / 36

Page 82: Linear Programming - University of Washington

Bland’s Rule

Theorem: [R.G. Bland (1977)]The simplex algorithm terminates as long as the choice of variable to enter orleave the basis is made according to the smallest subscript rule.

We abbreviate the Bland’s rule to SSR (smallest subscript rule).

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 28 / 36

Page 83: Linear Programming - University of Washington

Proof

Prove Bland’s rule prevents cycling.

Assume to the contrary that a cycle exists:

D0,D1, . . . ,DN = D0 .

Since all the pivots in the cycle are degenerate, the minimum ratio is zero in eachpivot, and so each dictionary in the cycle D0, . . . ,DN identifies the same BFS.

If a variable enters (leaves) the basis in one of the dictionaries D0, . . . ,DN , then itmust depart (return) from (to) the basis in another of these dictionaries.

We call the variables that leave the basis in any of the dictionaries D0, . . . ,DN

fickle since they move in and out of the basis.

Denote the set of fickle variables by F .

All fickle variables must take the value zero in the BFS associated with this cyclesince they take the value zero when they are not in the basis.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 29 / 36

Page 84: Linear Programming - University of Washington

Proof

Prove Bland’s rule prevents cycling.

Assume to the contrary that a cycle exists:

D0,D1, . . . ,DN = D0 .

Since all the pivots in the cycle are degenerate, the minimum ratio is zero in eachpivot, and so each dictionary in the cycle D0, . . . ,DN identifies the same BFS.

If a variable enters (leaves) the basis in one of the dictionaries D0, . . . ,DN , then itmust depart (return) from (to) the basis in another of these dictionaries.

We call the variables that leave the basis in any of the dictionaries D0, . . . ,DN

fickle since they move in and out of the basis.

Denote the set of fickle variables by F .

All fickle variables must take the value zero in the BFS associated with this cyclesince they take the value zero when they are not in the basis.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 29 / 36

Page 85: Linear Programming - University of Washington

Proof

Prove Bland’s rule prevents cycling.

Assume to the contrary that a cycle exists:

D0,D1, . . . ,DN = D0 .

Since all the pivots in the cycle are degenerate, the minimum ratio is zero in eachpivot, and so each dictionary in the cycle D0, . . . ,DN identifies the same BFS.

If a variable enters (leaves) the basis in one of the dictionaries D0, . . . ,DN , then itmust depart (return) from (to) the basis in another of these dictionaries.

We call the variables that leave the basis in any of the dictionaries D0, . . . ,DN

fickle since they move in and out of the basis.

Denote the set of fickle variables by F .

All fickle variables must take the value zero in the BFS associated with this cyclesince they take the value zero when they are not in the basis.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 29 / 36

Page 86: Linear Programming - University of Washington

Proof

Prove Bland’s rule prevents cycling.

Assume to the contrary that a cycle exists:

D0,D1, . . . ,DN = D0 .

Since all the pivots in the cycle are degenerate, the minimum ratio is zero in eachpivot, and so each dictionary in the cycle D0, . . . ,DN identifies the same BFS.

If a variable enters (leaves) the basis in one of the dictionaries D0, . . . ,DN , then itmust depart (return) from (to) the basis in another of these dictionaries.

We call the variables that leave the basis in any of the dictionaries D0, . . . ,DN

fickle since they move in and out of the basis.

Denote the set of fickle variables by F .

All fickle variables must take the value zero in the BFS associated with this cyclesince they take the value zero when they are not in the basis.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 29 / 36

Page 87: Linear Programming - University of Washington

Proof

Prove Bland’s rule prevents cycling.

Assume to the contrary that a cycle exists:

D0,D1, . . . ,DN = D0 .

Since all the pivots in the cycle are degenerate, the minimum ratio is zero in eachpivot, and so each dictionary in the cycle D0, . . . ,DN identifies the same BFS.

If a variable enters (leaves) the basis in one of the dictionaries D0, . . . ,DN , then itmust depart (return) from (to) the basis in another of these dictionaries.

We call the variables that leave the basis in any of the dictionaries D0, . . . ,DN

fickle since they move in and out of the basis.

Denote the set of fickle variables by F .

All fickle variables must take the value zero in the BFS associated with this cyclesince they take the value zero when they are not in the basis.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 29 / 36

Page 88: Linear Programming - University of Washington

Proof

Prove Bland’s rule prevents cycling.

Assume to the contrary that a cycle exists:

D0,D1, . . . ,DN = D0 .

Since all the pivots in the cycle are degenerate, the minimum ratio is zero in eachpivot, and so each dictionary in the cycle D0, . . . ,DN identifies the same BFS.

If a variable enters (leaves) the basis in one of the dictionaries D0, . . . ,DN , then itmust depart (return) from (to) the basis in another of these dictionaries.

We call the variables that leave the basis in any of the dictionaries D0, . . . ,DN

fickle since they move in and out of the basis.

Denote the set of fickle variables by F .

All fickle variables must take the value zero in the BFS associated with this cyclesince they take the value zero when they are not in the basis.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 29 / 36

Page 89: Linear Programming - University of Washington

Proof

Prove Bland’s rule prevents cycling.

Assume to the contrary that a cycle exists:

D0,D1, . . . ,DN = D0 .

Since all the pivots in the cycle are degenerate, the minimum ratio is zero in eachpivot, and so each dictionary in the cycle D0, . . . ,DN identifies the same BFS.

If a variable enters (leaves) the basis in one of the dictionaries D0, . . . ,DN , then itmust depart (return) from (to) the basis in another of these dictionaries.

We call the variables that leave the basis in any of the dictionaries D0, . . . ,DN

fickle since they move in and out of the basis.

Denote the set of fickle variables by F .

All fickle variables must take the value zero in the BFS associated with this cyclesince they take the value zero when they are not in the basis.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 29 / 36

Page 90: Linear Programming - University of Washington

Proof

Let ` be the largest subscript in F , and let

D xi = bi −∑j /∈B

aijxj , i ∈ B

z = v +∑j /∈B

cjxj

be a dictionary in the cycle where x` is leaving the basis and let xe denote theentering variable: x` leaves D and xe enters.

Since xe is also fickle, e < ` (` is largest in F), ce > 0, and a`e > 0.

Let D∗ be a dictionary in the cycle with x` entering the basis.Since each dictionary in the cycle identifies the same BFS, the objective value vstays constant throughout the cycle.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 30 / 36

Page 91: Linear Programming - University of Washington

Proof

Let ` be the largest subscript in F , and let

D xi = bi −∑j /∈B

aijxj , i ∈ B

z = v +∑j /∈B

cjxj

be a dictionary in the cycle where x` is leaving the basis and let xe denote theentering variable: x` leaves D and xe enters.

Since xe is also fickle, e < ` (` is largest in F), ce > 0, and a`e > 0.

Let D∗ be a dictionary in the cycle with x` entering the basis.Since each dictionary in the cycle identifies the same BFS, the objective value vstays constant throughout the cycle.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 30 / 36

Page 92: Linear Programming - University of Washington

Proof

Let ` be the largest subscript in F , and let

D xi = bi −∑j /∈B

aijxj , i ∈ B

z = v +∑j /∈B

cjxj

be a dictionary in the cycle where x` is leaving the basis and let xe denote theentering variable: x` leaves D and xe enters.

Since xe is also fickle, e < ` (` is largest in F), ce > 0, and a`e > 0.

Let D∗ be a dictionary in the cycle with x` entering the basis.

Since each dictionary in the cycle identifies the same BFS, the objective value vstays constant throughout the cycle.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 30 / 36

Page 93: Linear Programming - University of Washington

Proof

Let ` be the largest subscript in F , and let

D xi = bi −∑j /∈B

aijxj , i ∈ B

z = v +∑j /∈B

cjxj

be a dictionary in the cycle where x` is leaving the basis and let xe denote theentering variable: x` leaves D and xe enters.

Since xe is also fickle, e < ` (` is largest in F), ce > 0, and a`e > 0.

Let D∗ be a dictionary in the cycle with x` entering the basis.Since each dictionary in the cycle identifies the same BFS, the objective value vstays constant throughout the cycle.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 30 / 36

Page 94: Linear Programming - University of Washington

Proof

Since each dictionary in the cycle identifies the same BFS, the objective value vstays constant throughout the cycle.

Write the objective row of D∗ (x` entering) as

z = v +m+n∑j=1

c∗j xj ,

where c∗j = 0 if xj is basic in D∗. Note, c∗j ≤ 0 ∀ j ∈ F \ {`} and c∗` > 0.Since the solution sets to D and D∗ coincide, the solution to D obtained bysetting xe = t, xj = 0 (j /∈ B, j 6= e) giving

xi = bi − aiet (i ∈ B) and z = v + cet

must satisfy D∗.

Hence v + cet = v + c∗e t +∑

i∈B c∗i (bi − aiet) for all t.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 31 / 36

Page 95: Linear Programming - University of Washington

Proof

Since each dictionary in the cycle identifies the same BFS, the objective value vstays constant throughout the cycle.

Write the objective row of D∗ (x` entering) as

z = v +m+n∑j=1

c∗j xj ,

where c∗j = 0 if xj is basic in D∗. Note, c∗j ≤ 0 ∀ j ∈ F \ {`} and c∗` > 0.

Since the solution sets to D and D∗ coincide, the solution to D obtained bysetting xe = t, xj = 0 (j /∈ B, j 6= e) giving

xi = bi − aiet (i ∈ B) and z = v + cet

must satisfy D∗.

Hence v + cet = v + c∗e t +∑

i∈B c∗i (bi − aiet) for all t.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 31 / 36

Page 96: Linear Programming - University of Washington

Proof

Since each dictionary in the cycle identifies the same BFS, the objective value vstays constant throughout the cycle.

Write the objective row of D∗ (x` entering) as

z = v +m+n∑j=1

c∗j xj ,

where c∗j = 0 if xj is basic in D∗. Note, c∗j ≤ 0 ∀ j ∈ F \ {`} and c∗` > 0.Since the solution sets to D and D∗ coincide, the solution to D obtained bysetting xe = t, xj = 0 (j /∈ B, j 6= e) giving

xi = bi − aiet (i ∈ B) and z = v + cet

must satisfy D∗.

Hence v + cet = v + c∗e t +∑

i∈B c∗i (bi − aiet) for all t.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 31 / 36

Page 97: Linear Programming - University of Washington

Proof

Since each dictionary in the cycle identifies the same BFS, the objective value vstays constant throughout the cycle.

Write the objective row of D∗ (x` entering) as

z = v +m+n∑j=1

c∗j xj ,

where c∗j = 0 if xj is basic in D∗. Note, c∗j ≤ 0 ∀ j ∈ F \ {`} and c∗` > 0.Since the solution sets to D and D∗ coincide, the solution to D obtained bysetting xe = t, xj = 0 (j /∈ B, j 6= e) giving

xi = bi − aiet (i ∈ B) and z = v + cet

must satisfy D∗.

Hence v + cet = v + c∗e t +∑

i∈B c∗i (bi − aiet) for all t.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 31 / 36

Page 98: Linear Programming - University of Washington

Proof

v + cet = v + c∗e t +∑i∈B

c∗i (bi − aiet) for all t.

Grouping terms gives(ce − c∗e +

∑i∈B

c∗i aie

)t =

∑i∈B

c∗i bi for all t.

Since the right hand side is constant, it must be 0 as is the coefficient on the left:

ce − c∗e = −∑i∈B

c∗i aie .

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 32 / 36

Page 99: Linear Programming - University of Washington

Proof

v + cet = v + c∗e t +∑i∈B

c∗i (bi − aiet) for all t.

Grouping terms gives(ce − c∗e +

∑i∈B

c∗i aie

)t =

∑i∈B

c∗i bi for all t.

Since the right hand side is constant, it must be 0 as is the coefficient on the left:

ce − c∗e = −∑i∈B

c∗i aie .

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 32 / 36

Page 100: Linear Programming - University of Washington

Proof

v + cet = v + c∗e t +∑i∈B

c∗i (bi − aiet) for all t.

Grouping terms gives(ce − c∗e +

∑i∈B

c∗i aie

)t =

∑i∈B

c∗i bi for all t.

Since the right hand side is constant, it must be 0 as is the coefficient on the left:

ce − c∗e = −∑i∈B

c∗i aie .

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 32 / 36

Page 101: Linear Programming - University of Washington

Proof

ce − c∗e = −∑i∈B

c∗i aie

xe enters in D ⇒ ce > 0

x` enters in D∗ and e < ` ⇒ c∗e ≤ 0 by the SSR

Therefore, ce − c∗e > 0.

Consequently,∑

i∈B c∗i aie < 0, so for some s ∈ B,

c∗s ase < 0 .

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 33 / 36

Page 102: Linear Programming - University of Washington

Proof

ce − c∗e = −∑i∈B

c∗i aie

xe enters in D ⇒ ce > 0

x` enters in D∗ and e < ` ⇒ c∗e ≤ 0 by the SSR

Therefore, ce − c∗e > 0.

Consequently,∑

i∈B c∗i aie < 0, so for some s ∈ B,

c∗s ase < 0 .

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 33 / 36

Page 103: Linear Programming - University of Washington

Proof

ce − c∗e = −∑i∈B

c∗i aie

xe enters in D ⇒ ce > 0

x` enters in D∗ and e < ` ⇒ c∗e ≤ 0 by the SSR

Therefore, ce − c∗e > 0.

Consequently,∑

i∈B c∗i aie < 0, so for some s ∈ B,

c∗s ase < 0 .

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 33 / 36

Page 104: Linear Programming - University of Washington

Proof

ce − c∗e = −∑i∈B

c∗i aie

xe enters in D ⇒ ce > 0

x` enters in D∗ and e < ` ⇒ c∗e ≤ 0 by the SSR

Therefore, ce − c∗e > 0.

Consequently,∑

i∈B c∗i aie < 0, so for some s ∈ B,

c∗s ase < 0 .

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 33 / 36

Page 105: Linear Programming - University of Washington

Proof

ce − c∗e = −∑i∈B

c∗i aie

xe enters in D ⇒ ce > 0

x` enters in D∗ and e < ` ⇒ c∗e ≤ 0 by the SSR

Therefore, ce − c∗e > 0.

Consequently,∑

i∈B c∗i aie < 0, so for some s ∈ B,

c∗s ase < 0 .

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 33 / 36

Page 106: Linear Programming - University of Washington

Proof

for some s ∈ B, c∗s ase < 0.

Since s ∈ B, xs is basic in D, and since c∗s 6= 0, xs is nonbasic in D∗, so xs ∈ Fwhich implies that s ≤ ` (since ` is largest).

We claim that s < `.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 34 / 36

Page 107: Linear Programming - University of Washington

Proof

for some s ∈ B, c∗s ase < 0.

Since s ∈ B, xs is basic in D, and since c∗s 6= 0, xs is nonbasic in D∗, so xs ∈ Fwhich implies that s ≤ ` (since ` is largest).

We claim that s < `.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 34 / 36

Page 108: Linear Programming - University of Washington

Proof

for some s ∈ B, c∗s ase < 0.

Since s ∈ B, xs is basic in D, and since c∗s 6= 0, xs is nonbasic in D∗, so xs ∈ Fwhich implies that s ≤ ` (since ` is largest).

We claim that s < `.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 34 / 36

Page 109: Linear Programming - University of Washington

Proof

s ∈ B c∗s ase < 0 xs not basic in D∗

Show s < `.

x` leaves in D with xe entering, so a`e > 0.

x` enters in D∗, so c∗` > 0.

Consequently, c∗` a`e > 0, so s < `.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 35 / 36

Page 110: Linear Programming - University of Washington

Proof

s ∈ B c∗s ase < 0 xs not basic in D∗

Show s < `.

x` leaves in D with xe entering, so a`e > 0.

x` enters in D∗, so c∗` > 0.

Consequently, c∗` a`e > 0, so s < `.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 35 / 36

Page 111: Linear Programming - University of Washington

Proof

s ∈ B c∗s ase < 0 xs not basic in D∗

Show s < `.

x` leaves in D with xe entering, so a`e > 0.

x` enters in D∗, so c∗` > 0.

Consequently, c∗` a`e > 0, so s < `.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 35 / 36

Page 112: Linear Programming - University of Washington

Proof

s ∈ B c∗s ase < 0 xs not basic in D∗

Show s < `.

x` leaves in D with xe entering, so a`e > 0.

x` enters in D∗, so c∗` > 0.

Consequently, c∗` a`e > 0, so s < `.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 35 / 36

Page 113: Linear Programming - University of Washington

Proof

Since s < `, xs cannot be a candidate to enter the basis in D∗ by SSR, that is,c∗s < 0.

But then ase > 0, since c∗s ase < 0.

xs ∈ F and s ∈ B, so the value of xs in the BFS is zero, (bs = 0).

Since bs = 0 and ase > 0, we have bsase

= 0 which is the minimum ration in D.That is, xs is a candidate for leaving in D.

But x` leaves in D with s < `.

This contradicts the SSR, so no cycle can exist.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 36 / 36

Page 114: Linear Programming - University of Washington

Proof

Since s < `, xs cannot be a candidate to enter the basis in D∗ by SSR, that is,c∗s < 0.

But then ase > 0, since c∗s ase < 0.

xs ∈ F and s ∈ B, so the value of xs in the BFS is zero, (bs = 0).

Since bs = 0 and ase > 0, we have bsase

= 0 which is the minimum ration in D.That is, xs is a candidate for leaving in D.

But x` leaves in D with s < `.

This contradicts the SSR, so no cycle can exist.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 36 / 36

Page 115: Linear Programming - University of Washington

Proof

Since s < `, xs cannot be a candidate to enter the basis in D∗ by SSR, that is,c∗s < 0.

But then ase > 0, since c∗s ase < 0.

xs ∈ F and s ∈ B, so the value of xs in the BFS is zero, (bs = 0).

Since bs = 0 and ase > 0, we have bsase

= 0 which is the minimum ration in D.That is, xs is a candidate for leaving in D.

But x` leaves in D with s < `.

This contradicts the SSR, so no cycle can exist.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 36 / 36

Page 116: Linear Programming - University of Washington

Proof

Since s < `, xs cannot be a candidate to enter the basis in D∗ by SSR, that is,c∗s < 0.

But then ase > 0, since c∗s ase < 0.

xs ∈ F and s ∈ B, so the value of xs in the BFS is zero, (bs = 0).

Since bs = 0 and ase > 0, we have bsase

= 0 which is the minimum ration in D.That is, xs is a candidate for leaving in D.

But x` leaves in D with s < `.

This contradicts the SSR, so no cycle can exist.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 36 / 36

Page 117: Linear Programming - University of Washington

Proof

Since s < `, xs cannot be a candidate to enter the basis in D∗ by SSR, that is,c∗s < 0.

But then ase > 0, since c∗s ase < 0.

xs ∈ F and s ∈ B, so the value of xs in the BFS is zero, (bs = 0).

Since bs = 0 and ase > 0, we have bsase

= 0 which is the minimum ration in D.That is, xs is a candidate for leaving in D.

But x` leaves in D with s < `.

This contradicts the SSR, so no cycle can exist.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 36 / 36

Page 118: Linear Programming - University of Washington

Proof

Since s < `, xs cannot be a candidate to enter the basis in D∗ by SSR, that is,c∗s < 0.

But then ase > 0, since c∗s ase < 0.

xs ∈ F and s ∈ B, so the value of xs in the BFS is zero, (bs = 0).

Since bs = 0 and ase > 0, we have bsase

= 0 which is the minimum ration in D.That is, xs is a candidate for leaving in D.

But x` leaves in D with s < `.

This contradicts the SSR, so no cycle can exist.

Lecture 7: Does the Simplex Algorithm Work? Linear Programming 36 / 36