Skip to main content

Section 2.3 Cycling

In this section, we discuss a potentially serious hurdle to using the Simplex Algorithm, and show how to avoid it completely.

Activity 2.3.1.

Consider the following canonical maximization tableau:
x1 x2 x3 x4 1
12.5 2 12.5 1 0 =t1
1 0.24 2 0.24 0 =t2
4 1.92 16 0.96 1 =f

(a)

Perform the following sequence of pivots, ensure each time that it is a valid pivot according to Definition 2.2.6, and keep track of the variables.
? ? ? ? 1
12.5 2 12.5 1 0 =?
1 0.24 2 0.24 0 =?
4 1.92 16 0.96 1 =f
? ? ? ? 1
? ? ? ? ? =?
? ? ? ? ? =?
? ? ? ? ? =f
? ? ? ? 1
? ? ? ? ? =?
? ? ? ? ? =?
? ? ? ? ? =f
? ? ? ? 1
? ? ? ? ? =?
? ? ? ? ? =?
? ? ? ? ? =f
? ? ? ? 1
? ? ? ? ? =?
? ? ? ? ? =?
? ? ? ? ? =f
? ? ? ? 1
? ? ? ? ? =?
? ? ? ? ? =?
? ? ? ? ? =f

(b)

Compare your final tableau to the initial tableau. Are there any similarities?

Activity 2.3.2.

Consider the canonical linear optimization problem: Maximzie f(x,y)=x+y, subject to
2x+y0x2y0x+y4x,y0.

(a)

Consider a sequence of pivots swapping xt2, yt1 t1y, t2x. In each of these cases, what is the basic solution recorded by the tableau?

Definition 2.3.3.

If a series of pivots in accordance to Definition 2.2.6 allows one to return to a set of basic variables achieved earlier in the algorithm, we call this phenomena cycling.

Definition 2.3.4.

If a pivot on a tableau gives a new tableau corresponding to the same basic solution, we call the pivot a degenerate pivot.
Cycling is bad, since potentially this allows the Simplex Algorithm to not terminate. Fortunately, there is a solution to this issue.

Proof.

For the sake of notation, we denote the initial tableau:
x1 x2 xm 1
a11 a12 a1m b1 =xm+1
a21 a22 a2m b2 =xm+2
an1 an2 anm bn =xm+n
c1 c2 cm d =f
and order the variables in the associated way. Suppose we follow Bland’s rules and still have cycling. That is, there is a sequence of pivots and bases (set of basic variables) B1B2BB1. We call a variable xj fickle if xj is in one, but not all of the bases. That is, it leaves a basis, and reenters it later during the cycle.
Note that in order for cycling to occur, each pivot must be degenerate (ask yourself why?). So if xj is fickle, xj=0 for each basic solution during the cycle.
Since the number of variables is finite, the set of fickle variables is also finite, and let xt denote the fickle variable with largest subscript. Suppose that xtBi,xtBi+1 (why must such a Bi exist?). Denote the entering variable from BiBi+1 with xs.
xs 1
ats 0 =xt
cs d =f
xt 1
? 0 =xs
? d =f
Note that xs must also be fickle (why?) and so s<t.
We call the dictionary for a basis the system of equations corresponding to that basis. So the dictionary for Bi is Di which we can write as:
xk=bkxjBiakjxj for kBi.f=xjBicjxjd.
Note that since the above pivot was valid, we must have that cs>0,ats>0 and since the pivot was degenerate, we have bt=0.
Now, because we have cycling, we must have that xt reenters the basis at some point
xt 1
? 0 =x?
ct d =f
x? 1
? 0 =xt
? d =f
Note that for this pivot to be valid, we have that ct>0. If we let D denote the dictionary before xt re-enters the basis, we have:
f=xjBcjxjd
So note that the solution space to the system of equations for both these dictionaries are the same. So we have a solution for Di (not neccessarily feasible ie non-negativity may fail) that must also be a solution to D:
xs=Zxj=0 for xjBi,xjxsxk=bkaksZ for xkBif=csZd.
So we have
csZd=f=csZd+xkBick(bkaksZ)
where ck=0 for xkB. So via algebra:
(cscs+xkBickaks)Z=xkBickbk.
The above equation holds true no matter what Z is. Thus:
cscs+xkBickaks=0.
Note that xt, NOT xs is entering the basis. If xs is already in the basis, cs=0. Otherwise, cs0, otherwise s would have entered by Bland’s Anticyling rules. We’ve also shown cs>0. Thus
xkBickaks<0
which is only possible if there is some xrBi such that
crars<0.
From this, we know that cr0. So xrB, but xrBi, so xr is fickle. Since t is the largest index of a fickle variable, r<t. Note that xr is not entering from B, so cr0. Thus ars>0.
But xr is fickle, so br=0 in Di. But then, we would have picked xr, not xt to leave.
xs 1
ats 0 =xt
ars 0 =xr
cs d =f
which is a contradiction.

Activity 2.3.6.

If we follow Theorem 2.3.5 then no basis is visited twice during the Simplex Algorithm. Note that f is non-decreasing with each pivot. Must the Simplex Algorithm terminate? Why?