Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Spdspds (20110304)

Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

Page 1 of 24

SYMMETRIC PRIMAL DUAL SIMPLEX PIVOTING DECISION STRATEGY


(spdspds) FOR LINEAR PROGRAMMING

Dr. Keshava Prasad Halemane, I. Muthuvel Murugan
#
, Suresan Pareth
kph(dot)macs(dot)nitk(at)gmail(dot)com
Department of Mathematical And Computational Sciences
National Institute of Technology Karnataka, Surathkal
Srinivasnagar, Mangalore 575025, India.
(# Cisco Systems (India) Pvt. Ltd., Chennai - 600096, India.)


ABSTRACT

The Symmetric Primal-Dual Simplex Pivoting Decision Strategy (spdspds) is a
novel iterative algorithm to solve linear programming (LP) problems. Each iteration is
based on a systematic selection and application of one among the newly identified set of
four (or possibly six) distinct types of simplex pivots defined over a symmetric primal-
dual pair of LP. The two (or possibly four) types of classical (standard) simplex pivots
are the Primal Standard Pivot with positive (or zero) indicator, and the Dual Standard
Pivot with negative (or zero) indicator. The two newly identified pivot types are: the
Primal Tricky Pivot with positive indicator and the Dual Tricky Pivot with negative
indicator. If more than one candidate pivot element/cell is of the same type, then a
selection among them can be made based on a measure of goodness that is defined as the
decrease in the infeasibility index of such cells. If further pivoting is not possible, then
the tableau is checked for the terminal type to facilitate the problem classification.

For notational convenience, this algorithm is discussed using the Tuckers
Compact Symmetric Tableau (CST) for Linear Programming problems expressed in the
standard (canonical) form representing the Symmetric Primal-Dual Pair. An analysis of
the evolution of the Tableau data entries pattern observed as the iterations proceed is also
presented. A classification of the LP problem into one of the six types is identified based
on the data entries pattern observed in the final Tableau.


1. INTRODUCTION

Linear Programming (LP) problem represents one of the most widely used class of
numerical/quantitative computational models, for which any possible improved solution
technique would certainly be highly desirable. Of course, there has been several
alternative solution strategies suggested including the classical simplex method of
Dantzig [1] and several variations thereof, followed by recent polynomial time
algorithms, namely the Ellipsoid Method of Khachiyan [2], [3] and the Karmarkar
Algorithm [4] both classified now as belonging to Interior Point Algorithms.

In this paper, a novel generalization of the classical Simplex Method of Dantzig is
presented. The fundamental concept in Dantzigs Simplex Method [1] consists of
Page 2 of 24

moving from one basis (tableau) to a neighbouring basis (tableau), by a single exchange
between a non-basic (entering) variable and a basic (leaving) variable, appropriately
selected. The term Simplex Algorithm is associated for this method because this
fundamental feature is being preserved. The proposed algorithm is an enhancement over
the Dantzigs Simplex Method, in terms of providing a wider scope for the selection of
the pivots, as can be seen in the ensuing discussions. This proposed algorithm is mainly
based on the identification of a set of possibly four (or even six) distinct types of simplex
pivot selections, maintaining a sense of symmetry between the primal and the dual
problems. Also, for expressional efficiency or at least convenience, the solution strategy
and the analysis thereof are all based on the Tuckers Compact Simplex Tableau for LP
expressed in the standard (canonical) form representing the symmetric primal-dual pair.
Hence, the chosen name for the present algorithm Symmetric Primal-Dual Simplex
Algorithm for Linear Programming is justified.


2. TUCKER'S COMPACT SIMMETRIC TABLEAU

We will go through some well known preliminaries for the sake of establishing the
notational conventions used in this paper, as used in an earlier report [5], [6] by this
author.

The Symmetric Primal-Dual Pair of LP in the Standard Canonical Form is as follows.

Primal Problem:
maximize c.x = f
s.t. A.x b (1)
x 0
Dual Problem:
minimize v.b = g
s.t. v.A c (2)
v 0


The matrix-dimensional descriptions for each of the problem parameters/data in (1) and
(2) above are as follows:

x Primal decision variables n x 1 vector
c Primal objective function coefficients 1 x n vector
f Primal objective function value 1 x 1 scalar
A Primal constraint coefficient matrix m x n matrix
b Primal constraint upper bound m x 1 vector
v Dual decision variables 1 x m vector
g Dual objective function value 1 x 1 scalar

We introduce the m x l vector of slack variables to (1) and the 1 x n vector u of surplus
variables to (2) to write the symmetric primal-dual pair in canonical form as follows:

Page 3 of 24


Primal Problem:
maximize c.x + 0.y = f
s.t. A.x + I
m
.y = b (3)
x, y 0

Dual Problem:
minimize v.b + u.0 = g
s.t. v.A u.I
n
= c (4)
v, u 0


This Symmetric Primal-Dual pair is represented in the Compact Symmetric Tableau
(CST) as shown in Figure-1.











Figure-1: Initial Compact Symmetric Tableau (T
0
)

For the LP problem pair (1) & (2) or equivalently (3) & (4) the above tableau represents
the initial tableau indicating the initial basic solution (IBS) wherein y
i
are the primal basic
variables in the initial basis associated (one to one permanent association) with v
i
the dual
non-basic variables, and x
j
are the primal non-basic variables associated (one to one
permanent association) with u
j
the dual basic variables, in the initial basis.

Note that x
j
(and the 1) are column-labels and v
i
(and the 1) are row labels in the
tableau, and the way to interpret (read) the tableau is as follows


Primal Problem:

a
ij
. x
j
b
i
= y
i
, i e R (row index)
je C
(5)

c
j
. x
j
0 = f (function to be maximized)
je C


x
j
1

v
i


a
ij


b
i


= y
i

1 c
j
0 = f

=

=


u
j
g
Page 4 of 24


Dual Problem:

v
i
. a
ij
c
j
= u
j
, j e C (Column index)
ie R
(6)

v
i
. b
i
0 = g (function to be minimized)
ie R

wherein the variables x
j
, y
i
, v
i
, u
j
are all considered to be non-negative.


3. ALGEBRA (ARITHMETIC) OF SIMPLEX PIVOTING PROCESS

With the Tucker's Compact Symmetric Tableau (CST) representation for Linear
Programming, in its standard/canonical form, one can observe that once a pivot element
is selected, the actual pivoting process (the algebra and hence the arithmetic operations)
is the same irrespective of the pivot selection; for example whether it is a primal pivot or
a dual pivot. Hence it suffices to present here a single (common) set of operations
representing that pivoting process. This expressional elegance and computational
efficiency and/or convenience are the reasons why the above representation has been
selected for the purpose of our study; motivated by [7].

For the sake of generality, let us imagine that we are somewhere in the middle of solving
a LP problem (say after the k
th
iteration), and have the system model represented by a
tableau (T
k
) as shown in Figure-2.











Figure-2: Compact Symmetric Tableau (T
k
) after k iterations


By the nature of the sequence of elementary row (column) operations being performed
during any pivoting process, the system model represented by the above is equivalent to
that represented by the initial tableau which corresponds to the primal-dual pair (5) & (6).
The transformed version of the primal-dual pair directly expressed by the above tableau
is as follows:

z
j
N
1

w
i
N


ij


i



= z
i
B


1
j
= f

=

=


w
j
B
g
Page 5 of 24


Primal Problem:
z
i
B
=
i


ij
. z
j
N
, i e R (row index)
j e C
(7)
f =

+


j


. z
j
N
, (function to be maximized)
j e C

Dual Problem:
w
j
B
=
j
+

w
i
N

.
ij
, j e C (column index)
i e R

(8)
g = +

w
i
N

.
i
(function to be minimized)
i e R


The effect of a pivoting operation on (7) & (8) performed with a chosen pivot element
IJ

is exactly to affect an exchange between the variables indicated by I and J in (7) and (8).
That is, z
J
N
is entered into primal basis in exchange for z
I
B
in (7), and w
I
N
is entered into
dual basis in exchange for w
J
B
in (8). Suppose we have chosen the pivot element
IJ
using
some appropriate pivot selection scheme, and we would like to derive the resulting
tableau (T
k+1
). Let the resulting tableau (T
k+1
) be indicated in Figure-3.












Figure-3: Compact Symmetric Tableau (T
k+1
) after (k+1) iterations

The arithmetic (algebra) of deriving the above table from the previous table is detailed
below:
(
IJ
) (1/
IJ
) ; (
Ij
) (
Ij
)/
IJ
; (
I
) (
I
/
IJ
) ;
(
iJ
) (
iJ
/
IJ
) ; (
J
) (
J
/
IJ
) ;
(
ij
)
ij


(
Ij
/
IJ
)
iJ
; (
i
)
i
(
I
/
IJ
)
iJ
;
(
j
)
j


(
Ij
/
IJ
)
J
; () (
I
/
IJ
)
J
;

followed by an exchange of label associated with row I and column J; that is effectively:
(z
j
N
) 1

(w
i
N
)


(
ij
)


(
i
)


= (z
i
B
)

1 (
j
) () = (f)

=

=



(w
j
B
) (g)

Page 6 of 24


(z
J
N
) z
I
B
; (z
I
B
) z
J
N
; (z
j
N
) z
j
N
; (z
i
B
) z
i
B
; and
(w
J
B
) w
I
N
; (w
I
N
) w
J
B
; (w
j
B
) w
j
B
; (w
i
N
) w
i
N
;

for i R \ {I} and j C \ {J}.


4. SIMPLEX PIVOT SELECTION SCHEMES:

There are four (two pairs) fundamental types of pivot selection schemes namely Primal
Standard Pivot (PSP), Dual Standard Pivot (DSP), Primal Tricky Pivot (PTP) and Dual
Tricky Pivot (DTP). Further a primal/dual standard pivot can again be classified into one
with positive/negative indicator (that is PSPPI and DSPNI) and one with zero indicator
(that is PSPZI and DSPZI), thus resulting in a set of possible six distinct types of pivot
selection schemes, that are available for simplex pivoting process in solving linear
programming problems. The algebra of the pivot selection schemes are given below in
Figure-4, along with a schematic representation of the Tableau data entries pattern that
leads to such pivot selection.

It can be easily observed that a primal (dual) tricky pivot with zero indicator is essentially
the same as dual (primal) standard pivot with negative (positive) indicator, wherein the
resultant minimum-ratio comes out to be zero.


5. EFFECT OF PIVOTING OPERATION:

It is useful at this point to make a few observations regarding the effect of pivoting
operation, in each of the above pivot selection schemes.

DSPNI brings about an immediate improvement in the primal feasibility w.r.t. the
pivot row, without deterioration of dual feasibility. The extent of this improvement in
primal feasibility can be measured by the corresponding improvement (decrease) in the
value of the dual objective function, given by
I

J
/
IJ
.

PSPPI brings about an immediate improvement in the dual feasibility w.r.t. the
pivot column, without deterioration of primal feasibility. The extent of this improvement
in dual feasibility can be measured by the corresponding improvement (increase) in the
value of the primal objective function, given by
I

J
/
IJ
.

PTPPI brings about an immediate improvement in the primal feasibility w.r.t. the
pivot row, without any concern to the dual feasibility. The extent of this improvement in
primal feasibility can be measured by the corresponding improvement (increase) in the
value of the primal objective function, given by
I

J
/
IJ
.

DTPNI brings about an immediate improvement in the dual feasibility (w.r.t. the
pivot column, at least) without any concern to the primal feasibility. The extent of this
Page 7 of 24

improvement in dual feasibility can be measured by the corresponding improvement
(decrease) in the value of the dual objective function, given by
I

J
/
IJ
.

(a) Dual Standard Pivot with Negative Indicator, DSPNI:

I e { i e R
i
< 0};
J arg-min {(
j
/

Ij
)
I
< 0;

j s
0;

Ij
< 0}
;

j e C



(b) Primal Standard Pivot with Positive Indicator, PSPPI:


J e { j e C
j
> 0};
I arg-min {(
i
/

iJ
)
i
0;

J
>

0;

iJ
> 0};


i e R


(c) Primal Tricky Pivot (with Positive Indicator), PTPPI:


J e { j e C
j
> 0};
I arg-max {(
i
/

iJ
)
i
< 0;

J
>

0;

iJ
< 0}
;

i e R



(d) Dual Tricky Pivot (with Negative Indicator), DTPNI:

I e { i e R
i
< 0};
J arg-max {(
j
/

Ij
)
I
< 0;

j
>

0;

Ij
> 0}
;

jeC



(e) Dual Standard Pivot with Zero Indicator, DSPZI:


I e { i e R
i
= 0};
J arg-min {(
j
/

Ij
)
I
= 0;

j s
0;

Ij
< 0}
;

j e C



(f) Primal Standard Pivot with Zero Indicator, PSPZI:


J e { j e C
j
= 0};
I arg-min {(
i
/

iJ
)
i
0;

J
=

0;

iJ
>0};


i e R


Figure-4:. Six types of Simplex Pivot Selection Schemes
negative; 0 zero; + positive; non-positive; * any value; non-negative; - un-analyzed



-

- -

+
-


- -

+
-

+
-



-

- -

+
-


+
-

- -

+
-


- -

-
0
- -
+
+
-


- - -

- +
-

+ 0
-


Page 8 of 24

The other two types of pivot selections namely PSPZI and DSPZI are utilized to affect a
change in the basis, in situations with multiple-solutions and/or degeneracy, and do not in
any way affect the primal or dual feasibilities. However, they certainly play an important
role in the overall solution strategy.

From the above, one can observe that as a general, uniform and common basis for a local
effectiveness measure (lem) of a particular pivoting operation (applicable for any and
every iteration, for both primal and dual) we can use the absolute value of the change in
the value of the objective function, given by lem(I, J) = abs(
I

J
/
IJ
). Although it is not
specifically suggested here, one can opt to choose a pivot possibly to maximize this local
effectiveness measure (lem) in every iteration; among the possible pivots of a particular
type, or even among of all the possible pivots of all the possible types. Even, if done so,
it cannot be guaranteed (as per worst case analysis) to minimize the overall number of
iterations required for reaching an optimum solution. It requires further research work to
thoroughly understand, analyze and incorporate the concept of a possible local
effectiveness measure (lem) for a single simplex pivoting operation to the fullest extent,
that would in effect achieve a guaranteed improvement in some corresponding "global
effectiveness measure" (gem) defined appropriately for the given LP problem; in
developing an efficient solution strategy. Further research investigations are under way,
in this regard, and will be reported in due course. For now, let us come to the main
algorithm itself.


6. CELL TYPE

Each potential pivot element/cell in the Compact Symmetric Tableau is characterized by
a cell-type. The cell type of a cell in I
th
row and J
th
column consists of three
components. They are the sign of
IJ
(either 0, + or ), the sign of
I
(either Z, P
or N) and the sign of
J
(either z, p or n). Hence there will be a total of 27 different
cell types, but when is zero, it will not be a potential pivoting cell. Hence pivoting will
not be performed on such cells. Hence the nine cell types with = 0 are combined
together and the new cell type given is 0**. Hence there are 19 cell types.


7. INFEASIBILITY INDEX : AS A MEASURE OF GOODNESS

Infeasibility index of a given tableau indicates the number of basic variables in primal
and dual which are infeasible in the given tableau, and can be used as an inverse measure
of goodness to assess the progress in the iteration scheme.

Infeasibility Index = Number of rows with < 0 + Number of columns with > 0;
i.e.
Infeasibility Index = Number of rows with z
i
B
< 0 + Number of columns with w
j
B
< 0.

If the Infeasibility Index of the given tableau equals to zero then it indicates that the
tableau is the terminal tableau which is feasible and optimal. By the definition of the
Page 9 of 24

Infeasibility Index, it can never be negative, nor can it be more than the sum of the
number of columns and the number of rows in the Compact Symmetric Tableau.

Given a tableau, the change in the infeasibility index can be associated with each cell that
can be a potential candidate pivot (i.e. 0). This change in the infeasibility index
consists of two components, one is the change in the infeasibility index due to the primal
() and the other is the change in the infeasibility index due to the dual (). Then,
Change in the Infeasibility Index = + .


7.1 Calculation of the change in the infeasibility index due to the primal ()

For each column j, the ratio R
ij
= |
i
/o
ij
is calculated for all rows i = 1, 2, , m. The ratio
can either be positive or negative. It can be represented as in Figure-5.

Let
IJ
be the chosen pivot element, then after pivoting the values of are given by

(
I
) (
I
/
IJ
) and
(
i
)
i
(
I
/
IJ
)
iJ
and R
IJ
=
I
/
IJ




Figure-5: Ordered pattern of (
i
/
iJ
) value for i = 1, 2, , m
* => (p, n or z)


The calculation of can be divided into three different cases depending upon the value of
R
IJ
. = 0 is considered as feasible.

+N*
P*
+P*
N*
+Z*
Z*
| > 0, o > 0
| < 0, o < 0 | > 0, o < 0
| < 0, o > 0
| = 0 o < 0
o > 0 | = 0
R > 0 R < 0
1 2
3 4
0
Page 10 of 24


(i) R
IJ
= 0 (i.e.
I
= 0)

Here there will not be any change in the values, and therefore there will not be any
change in the infeasibility index. Hence, = 0.

(ii) R
IJ
> 0 (
I
0,
IJ
> 0 or
I
< 0,
IJ
< 0)

R
iJ
< 0 will not affect the change in the infeasibility index. R
iJ
< 0 can occur in two
situations.

One of them is when
i
< 0 and
iJ
> 0. In this case, it can be seen from the expression
for (
i
) given above, that (
i
) will continue to be negative; hence the change in the
infeasibility index is not affected.

The other is when
i
> 0 and
iJ
< 0. In this case, it can be seen from the expression for
(
i
) given above, that (
i
) will continue to be positive; hence the change in the
infeasibility index is not affected.

R
iJ
> 0 will affect the change in the infeasibility index. R
iJ
> 0 can occur in two situations.
One is when
i
0 and
iJ
> 0. In this case, it can be seen from the expression for (
i
)
given above, that (
i
) will continue to be positive for the ratios R
iJ
> R
IJ
, (
i
) will be
zero for the ratios R
iJ
= R
IJ
, (
I
) will continue to be positive, and (
i
) will become
negative for the ratios R
iJ
< R
IJ
. Hence the change in the infeasibility index is increased
by the number of ratios R
iJ
which are less than R
IJ
and greater than or equal to zero.
The other is when
i
< 0 and
iJ
< 0. In this case, it can be seen from the expression for
(
i
) given above, that (
i
) will continue to be negative for the ratios R
iJ
> R
IJ
, (
i
) will
become zero for the ratios R
iJ
= R
IJ
, (
I
) will become positive, and (
i
) will become
positive for the ratios R
iJ
< R
IJ
. Hence the change in the infeasibility index is decreased
by the number of ratios R
iJ
which are less than or equal to R
IJ
and strictly greater than
zero. Therefore,

1
= No. of rows i with
i
0,
iJ
> 0 and 0 R
iJ
< R
IJ


4
= No. of rows i with
i
< 0,
iJ
< 0 and 0 < R
iJ
R
IJ

=
1

4


(iii) R
IJ
< 0 (
I
0,
IJ
< 0 or
I
< 0,
IJ
> 0)

R
iJ
> 0 will not affect the change in the infeasibility index. R
iJ
> 0 can occur in two
situations.

One of them is when
i
0 and
iJ
> 0. In this case, it can be seen from the expression for
(
i
) given above, that (
i
) will continue to be positive; hence the change in the
infeasibility index is not affected.

Page 11 of 24

The other is when
i
< 0 and
iJ
< 0. In this case, it can be seen from the expression for
(
i
) given above, that (
i
) will continue to be negative; hence the change in the
infeasibility index is not affected.

R
iJ
<0 will affect the change in the infeasibility index. R
iJ
< 0 can occur in two situations.
One is when
i
0 and
iJ
< 0. In this case, it can be seen from the expression for (
i
)
given above, that (
i
) will continue to be positive for the ratios R
iJ
< R
IJ
, (
i
) will be
zero for the ratios R
iJ
= R
IJ
, (
I
) will become negative, and (
i
) will become negative for
the ratios R
iJ
> R
IJ
. Hence the change in the infeasibility index is increased by the number
of ratios R
iJ
which are greater than R
IJ
and less than or equal to zero (one more, if
I
is
positive, since it will become negative).
The other is when
i
< 0 and
iJ
> 0. In this case, it can be seen from the expression for
(
i
) given above, that (
i
) will continue to be negative for the ratios R
iJ
< R
IJ
, (
i
) will
become zero for the ratios R
iJ
= R
IJ
, (
I
) will become negative, and (
i
) will become
positive for the ratios R
iJ
> R
IJ
. Hence the change in the infeasibility index is decreased
by the number of ratios R
iJ
which are greater than or equal to R
IJ
and strictly less than
zero (one less, if
I
is negative, since it will continue to be negative). Therefore,

3
= No. of rows i with
i
0,
iJ
< 0 and R
IJ
< R
iJ
0

2
= No. of rows i with
i
< 0,
iJ
> 0 and R
IJ
R
iJ
< 0
= (
3
+ 1)
2
if (
I
> 0) or
=
3
(
2
1) if (
I
< 0)
Therefore,
=
3

2
+ 1


7.2 Calculation of the change in the infeasibility index due to the dual ()

For each row i, the ratio R
ij
=
j
/o
ij
is calculated for all columns j = 1, 2, , n.
The ratio can either be positive or negative. It can be represented as in Figure-6.

Let
IJ
be the chosen pivot element, then after pivoting the values of are given by

(
J
) (
J
/
IJ
) and
(
j
)
j
(
J
/
IJ
)
Ij
and R
IJ
=
J
/
IJ

The calculation of can be divided into three different cases depending upon the value of
R
IJ
. = 0 is considered as feasible.

(i) R
IJ
= 0 (i.e.
J
= 0)

Here there will not be any change in the values, and therefore there will not be any
change in the infeasibility index. Hence, = 0.



Page 12 of 24




Figure-6: Ordered pattern of (
j
/
Ij
) value for j = 1, 2, , n
* => (P, N or Z)


(ii) R
IJ
> 0 (
J
0,
IJ
< 0 or
J
> 0,
IJ
> 0)

R
Ij
< 0 will not affect the change in the infeasibility index. R
Ij
< 0 can occur in two
situations.

One of them is when
j
< 0 and
Ij
> 0. In this case, it can be seen from the expression for
(
j
) given above, that (
j
) will continue to be negative; hence the change in the
infeasibility index is not affected.

The other is when
j
> 0 and
Ij
< 0. In this case, it can be seen from the expression for
(
j
) given above, that (
j
) will continue to be positive; hence the change in the
infeasibility index is not affected.

R
Ij
> 0 will affect the change in the infeasibility index. R
Ij
> 0 can occur in two situations.
One is when
j
0 and
Ij
< 0. In this case, it can be seen from the expression for (
j
)
given above, that (
j
) will continue to be negative for the ratios R
Ij
> R
IJ
, (
j
) will be
zero for the ratios R
Ij
= R
IJ
, (
J
) will continue to be negative, and (
j
) will become
positive for the ratios R
Ij
< R
IJ
. Hence the change in the infeasibility index is increased by
the number of ratios R
Ij
which are less than R
IJ
and greater than or equal to zero.
The other is when
j
> 0 and
Ij
> 0. In this case, it can be seen from the expression for
(
j
) given above, that (
j
) will continue to be positive for the ratios R
Ij
> R
IJ
, (
j
) will
become zero for the ratios R
Ij
= R
IJ
, (
J
) will become negative, and (
j
) will become
negative for the ratios R
Ij
< R
IJ
. Hence the change in the infeasibility index is decreased
+*n
*p
+*p
*n
+*z
*z
> 0, o > 0
< 0, o < 0 > 0, o < 0
< 0, o > 0
o < 0 = 0
= 0 o > 0
R > 0 R < 0
4 3
2 1
0
Page 13 of 24

by the number of ratios R
Ij
which are less than or equal to R
IJ
and strictly greater than
zero. Therefore,

1
= No. of columns j with
j
0,
Ij
> 0 and 0 R
Ij
< R
IJ


4
= No. of columns j with
j
< 0,
Ij
< 0 and 0 < R
Ij
R
IJ

=
1

4

(iii) R
IJ
< 0 (
J
0,
IJ
> 0 or
J
> 0,
IJ
< 0)

R
Ij
> 0 will not affect the change in the infeasibility index. R
Ij
> 0 can occur in two
situations.

One of them is when
j
< 0 and
Ij
< 0. In this case, it can be seen from the expression for
(
j
) given above, that (
j
) will continue to be negative; hence the change in the
infeasibility index is not affected.

The other is when
j
> 0 and
Ij
> 0. In this case, it can be seen from the expression for
(
j
) given above, that (
j
) will continue to be positive; hence the change in the
infeasibility index is not affected.

R
Ij
<0 will affect the change in the infeasibility index. R
Ij
< 0 can occur in two situations.
One is when
j
0 and
Ij
> 0. In this case, it can be seen from the expression for (
j
)
given above, that (
j
) will continue to be negative for the ratios R
Ij
< R
IJ
, (
j
) will be
zero for the ratios R
Ij
= R
IJ
, (
J
) will become positive, and (
j
) will become positive for
the ratios R
Ij
> R
IJ
. Hence the change in the infeasibility index is increased by the number
of ratios R
Ij
which are greater than R
IJ
and less than or equal to zero (one more, if
J
is
negative, since it will become positive).
The other is when
j
> 0 and
Ij
< 0. In this case, it can be seen from the expression for
(
j
) given above, that (
j
) will continue to be positive for the ratios R
Ij
< R
IJ
, (
j
) will
become zero for the ratios R
Ij
= R
IJ
, (
J
) will become positive, and (
j
) will become
negative for the ratios R
Ij
> R
IJ
. Hence the change in the infeasibility index is decreased
by the number of ratios R
Ij
which are greater than or equal to R
IJ
and strictly less than
zero (one less, if
J
is positive, since it will continue to be positive). Therefore,

3
= No. of columns j with
j
0,
Ij
> 0 and R
IJ
< R
Ij
0

2
= No. of columns j with
j
> 0,
Ij
< 0 and R
IJ
R
Ij
< 0
= (
3
+ 1)
2
if (
J
< 0) or
=
3
(
2
1) if (
J
> 0)
Therefore,
=
3

2
+ 1.


7.3 Calculating and with perturbation

If more than one pivot element/cell in a particular row (column) are having the same
value of / (/) ratio, then it will result in degeneracy/multiplicity which may cause
cycling. To avoid this, perturbation method can be used. We shall perturb the and
values each by distinctly different amounts
1
,
2
, ,
m+n
. More precisely, we shall
Page 14 of 24

choose a very small
i
and then make
i+1
much smaller than the preceding
i
, or in other
words,

0 <
m+n
<<
m+n-1
<< ... <<
2
<<
1
<< 1.

Usually,
1
,
2
, ,
m+n
are chosen as powers
1
,
2
, ... ... ,
m+n
of some small >0.


The Compact Symmetric Tableau before applying perturbation is as shown in Figure-7.










Figure-7: Compact Symmetric Tableau before Perturbation



After perturbation, the Compact Symmetric Tableau will be as shown in Figure-8.










Figure-8: Compact Symmetric Tableau after Perturbation



z
j
N
1

w
i
N


ij


i



= z
i
B


1
j
= f

=

=


w
j
B
g

j
N
1

i
N


ij


i



=
i
B


1
j
= f

=

=



j
B
g
Page 15 of 24


where

i
B
= z
i
B

i
;
j
N
= z
j
N

j
;
j
B
= w
j
B

j
;
i
N
= w
i
N

i
;

i
B
=
i
E
ij
.
j
N
;
j e N
(z
i
B

i
)

=
i
E
ij
(z
j
N

j
) ;
j e N
(z
i
B

i
)

=
i
+ E
il
c
l

iJ
z
J
N
;
l e N
z
J
N
=
i
/
iJ
+ c
i
/
iJ
+ E (
il
/
iJ
) c
l
;

l e N

Similarly,

j
B
=
j
+ E
ij
.
j
N
;
j e M
(w
j
B

j
)

=
j
+ E
ij
(w
i
N

i
) ;
i e M
(w
j
B

j
)

=
j
E
lj
c
l
+
Ij
w
I
N
;
l e M
w
I
N
=
j
/
Ij
+ (c
j
/
Ij
) + E (
l j
/
Ij
) c
l
;

l e M

Therefore, if for more than one cell have the same / (/) value, then the coefficient of

l
is checked in the increasing order of l, in order to establish a strict ordering among
those potential pivot elements, in the process of deciding on the next pivot. This is
equivalent to a lexicographic ordering.


8. SYMMETRIC PRIMAL DUAL SIMPLEX PIVOTING DECISION STRATEGY

There are four (two pairs) fundamental types of pivot selection schemes namely Primal
Standard Pivot (PSP), Dual Standard Pivot (DSP), Primal Tricky Pivot (PTP) and Dual
Tricky Pivot (DTP). Further a primal/dual standard pivot can again be classified into one
with positive/negative indicator (that is PSPPI and DSPNI) and one with zero indicator
(that is PSPZI and DSPZI), thus resulting in a set of possible six distinct types of pivot
selection schemes, that are available for simplex pivoting process in solving linear
programming problems. It can be easily observed that a primal (dual) tricky pivot with
zero indicator is essentially the same as dual (primal) standard pivot with negative
(positive) indicator, wherein the resultant minimum-ratio comes out to be zero. Table-1
gives the pivot element/cell types corresponding to the above mentioned pivot types.

Page 16 of 24

The six distinct types of pivot selections may for example be considered in the following
default preference order:

{{DSPNI, PSPPI}, {PTPPI, DTPNI}, {DSPZI, PSPZI}}

At every iteration, an attempt is made to select a pivot element/cell, by checking the
possible pivot selections belonging to one of the above six types of pivot selection
schemes in the default preference order as specified above.


Pivot Type Element / Cell Type
DSPNI
(Dual Standard Pivot with Negative Indicator)
Nn / Nz
PSPPI
(Primal Standard Pivot with Positive Indicator)
+Pp / +Zp
DSPZI
(Dual Standard Pivot with Zero Indicator)
Zn / Zz
PSPZI
(Primal Standard Pivot with Zero Indicator)
+Pz / +Zz
DTPNI
(Dual Tricky Pivot (with Negative Indicator))
+Np
PTPPI
(Primal Tricky Pivot (with Positive Indicator))
Np

Table-1: Pivot Element / Cell Types


That is, a pivoting operation is executed with a pivot cell/element of the type -
i. DSPNI if possible,
ii. PSPPI only if none of DSPNI is possible,
iii. PTPPI only if none of DSPNI nor PSPPI is possible,
iv. DTPNI only if none of DSPNI, PSPPI, PTPPI is possible,
and when none of the above four is possible, go for
v. DSPZI and/or
vi. PSPZI in order to explore the possible alternative basic solutions.

It is to be noted that depending upon the actual data entries in the Tableau, a pivot
selection of specific type which was not possible in an earlier iteration, can become
possible in a later iteration, sometimes even in the very next following iteration. That is
why it is a crucial part of the algorithm to check in each (and every) iteration, for each of
the six types of possible pivot selection schemes preferably in a pre-specified order. At
each step mentioned above, if there are more than one pivot elements of that particular
cell type, then the change in the infeasibility index is used as a measure of goodness. If
there is a tie in the change in the infeasibility index, then the change in the infeasibility
Page 17 of 24

index with perturbation among the tied elements is taken as the measure of goodness; the
selection being done to achieve the minimum in the infeasibility index.


9. SIGNATURE OF A COMPACT SYMMETRIC TABLEAU

Signature of a Compact Symmetric Tableau is a string of length n + m (number of
columns + number of rows). For the initial tableau, the first n entries are chosen from the
characters n, p or z depending up on whether the value is negative, positive or zero
respectively. The next m entries are chosen from the characters N, P or Z depending up
on whether the value is negative, positive or zero respectively. The positions of these
entries are fixed with respect to the initial tableau.

For every tableau, the signature is generated and it is compared with the
signatures of the previous tableaus. If the same signature exists already, then this tableau
has been reached already, and this indicates a cycle, since each signature uniquely
identifies a tableau and each tableau has a unique signature.


10. EVOLUTION OF TABLEAU DATA ENTRIES PATTERN:

As a means to show the convergence of the algorithm to one of the possible six
termination patterns (discussed later), an analysis of the evolution of the Tableau data
entries pattern is given here. Figure-9 gives the six different patterns applicable when
each of the six different pivot selection schemes may be chosen as a possibility in some
iteration during the process of solving a LP problem.

Figure-9 needs to be read keeping in mind the algebra of the pivoting process and the
details regarding the nature of the pivot selection itself. To facilitate the analysis of the
possible termination patterns, it is useful to look at a systematic classification of all the 27
possible combinations of Tableau data entries pattern as shown in Figure-10. Here, the
possible situations that would lead to a successful pivoting are indicated- they add up to
ten, including the four situation corresponding to multiplicity/degeneracy. Others
wherefor no pivot selection is possible, are marked according to the nature of the
termination, by indicating F for basic-feasible-finite, for infeasible and for non-
basic-feasible-infinite, corresponding to both primal and dual variables. Note that this
classification is as per the quite well established approach, although a refinement is
indicated to distinguish the case wherein primal (dual) has an infinite non-basic optimum
with finite value for the objective function while the dual (primal) has a feasible-finite
optimum. This distinction from the classical approach arises because we give primary
emphasis on the classification based on the nature of the decision variables at
termination, and give secondary emphasis on the finiteness (or otherwise) of the objective
function value.



Page 18 of 24


(a) DSPNI (b) PSPPI
* *
* * + *
+ * + *


(c) PTPPI (d) DTPNI
+
* *
+ * + *


(e) DSPZI (f) PSPZI
0 0
0 + * 0
* * + + * +
+ 0 * + 0 *

Figure-9. Evolution of Tableau data entries pattern
negative; 0 zero; + positive;
non-positive; * any value; non-negative


Thus the seventeen (out of the total of twenty seven) situations that lead to non pivoting
termination can be classified into six distinct classes as follows -

i) Six situations with P = F, D = F
ii) One situation with P = F, D =
iii) One situation with P = , D = F
iv) Four situations with P = , D =
v) Four situations with P = , D =
vi) One situation with P = , D =

Four among the remaining ten (out of the total of twenty seven) situations that indicate
pivoting possibilities can be included in case (i) above and treated as possible termination
situations because further pivoting would be useful only to the extent of discovering
Page 19 of 24

multiple optima for the primal/dual. The other six correspond to the six types of pivot
selection schemes indicated. Figure-11 summarizes these observations.




0 0 0 F 0 + F + + 0 F + + F
* * * * * *
F F F

PSPZI PSPZI
0 0 0 F 0 + F + + 0 F + + F
0 * 0 * 0 * 0 * 0 * 0 *
F F F F

DTPNI PSPPI PSPPI
0 0 0 0 + + + 0 + +
+ * + * + * + * + * + *



DSPNI DSPZI
0 F + F
* *
F F


DSPNI DSPZI
0 F +
0 * 0 * 0 *
F F


PTPPI
0 +
+ * + * + *


Figure-10. Twenty seven distinct combinations of Tableau data entries pattern.
negative; 0 Zero; + positive; * any value






Page 20 of 24


From the above discussion and the observations presented in Figures 9, 10, and 11, it is
clear that the algorithm converges to one of the six distinct classes of termination
situations and the given LP-Problem can be classified accordingly.



D = F D = D =
P = F






* 0 * + 0
* + * +
0 0
6+4 1

P =
* 0


* + *
0 +

1

4

P =
0
* *
+
4 1

Figure-11. Six categories for Tableau data entries pattern at termination.
negative; 0 zero; + positive;
non-positive; * any value; non-negative; - un-analyzed



11. ALGORITHM TERMINATION - TERMINAL TABLEAU TYPES

When further pivoting is not possible, the tableau is checked for the terminal type. There
are six different terminal types identified when no pivot selection is possible. These
terminal tableau types are marked in Figure-11 according to the nature of the termination,
by indicating F for basic-feasible-finite, for infeasible and for non-basic-feasible-
infinite, corresponding to both primal and dual variables. Note that this classification is
as per the quite well established approach, although a refinement is indicated to
distinguish the case wherein primal (dual) has an infinite non-basic optimum with finite
value for the objective function while the dual (primal) has a feasible-finite optimum.
Page 21 of 24

This distinction from the classical approach arises because we give primary emphasis on
the classification based on the nature of the decision variables at termination, and give
secondary emphasis on the finiteness (or otherwise) of the objective function value.


12. SOME GENERAL COMMENTS:

It is worth noting here that using the above proposed algorithm one can solve any
LP problem, by first converting it into the standard/canonical form and then applying the
proposed algorithm. In performing such transformation, it is possible to enhance the
overall efficiency by the following approach:

(i) Free variables can be replaced by non-negative variables not double in number, but
only just one extra in number;
(ii) Equations can be replaced by inequalities not double in number, but only just one
extra in number;
(iii) No need for use of artificial variables;
(iv) The initial basic solution need not necessarily be feasible.

Degeneracy and possible cycling are handled, by lexicographic ordering of the variables
(equivalent to the concept of polynomial perturbations technique).

It is possible to have alternative (rather than the suggested default) ordering of the pivot
selection schemes incorporated in the algorithm (within each of the three subsets
indicated in section 8 above, although the relative ordering of these three subsets
themselves may not to be altered).

13. RESULTS

The following problems have been taken from netlib [8].


Name Rows Cols Zeros
Rows
(CST)
Cols
(CST)
No. of
Iterations
Optimal Value
Afiro 28 32 88 28 32 14 -464.75314285714273
Sc50b 51 48 119 51 48 57 -69.99999999999996
Sc50a 51 48 131 51 48 45 -64.57507705856452
Kb2 44 41 291 53 41 168 -1749.9001298897167
Sc105 106 103 281 106 103 104 -52.20206121170725
Adlittle 57 97 465 57 97 185 225494.96316386625
Stocfor1 118 111 478 118 111 147 -41131.97621943791
Blend 75 83 521 75 83 189 -30.81214984583497

Table-2: Test Problems from netlib[8] and solutions (Feasible)

Page 22 of 24


Name Rows Cols Zeros
Rows
(CST)
Cols
(CST)
No. of
Iterations
Terminal Tableau Type
Primal Dual
Itest2 10 4 17 9 4 11 D
Galenet 9 8 16 17 8 13 D
Itest6 12 8 23 12 8 8 D
Bgprtr 21 34 90 21 34 63 D
Forest 67 95 270 72 95 113 D
Klein1 55 54 696 54 54 206 D
Stocfor1 118 111 478 118 111 147 D
Blend 75 83 521 75 83 189 D

Table-3: Test Problems from netlib[8] (Infeasible)
D for degenerate; for infeasible

Examples to show the different terminal tableau types:

Initial Tableau Terminal Tableau Primal Dual

F F
02.00 01.00 16.00 00.50 00.50 08.00
01.00 01.00 10.00 -00.50 00.50 02.00
06.00 03.00 00.00 -03.00 00.00 -48.00


F
01.00 01.00 00.25 01.00 01.00 00.25
-01.00 -04.00 -01.00 03.00 04.00 00.00
02.00 04.00 00.00 -02.00 -04.00 -01.00


F
-01.00 01.00 02.00 -00.75 -00.25 01.00
-01.00 04.00 04.00 -00.25 00.25 01.00
-00.25 01.00 00.00 00.00 -00.25 -01.00



01.00 -02.00 -01.00 00.20 -00.40 00.20
-02.00 -01.00 -01.00 -00.40 -00.20 00.60
06.00 -04.00 00.00 -02.80 01.60 01.20



-01.00 01.00 -05.00 01.00 01.00 -09.00
02.00 -01.00 -04.00 02.00 01.00 -14.00
01.00 01.00 00.00 -03.00 -02.00 23.00



01.00 -01.00 01.00 01.00 -01.00 01.00
-01.00 01.00 -02.00 01.00 00.00 -01.00
02.00 -01.00 00.00 -02.00 01.00 -02.00


Table-4: Examples For Terminal Types
F for basic-feasible-finite, for infeasible and for non-basic-feasible-infinite

Page 23 of 24


14. CONCLUSION

The performance of the algorithm on the test problems has been found to be encouraging.
The total number of iterations is quite small when compared with the sum of number of
rows and columns (m + n). Although rigorous mathematical analysis of the
computational complexity of this algorithm is yet to be studied in detail, it seems very
likely to perform at least as good as (if not better than) the existing solution techniques
for linear programming. Additionally, this algorithm provides an extended frame work to
consider various alternative types of simplex pivots which were not the case in other
approaches; retaining all the desirable characteristics of the classical simplex method
(particularly in terms of its efficacy and convenience in dealing with sensitivity /
parametric analysis, etc.) while enhancing the overall computational efficiency in
problem solving.

The ideal situation strategy would be to perform a thorough analysis of the initial /
starting Tableau in order to detect, identify and label the non-basic / basic variables that
can be kept as such without shifting them to the other category (basic / non-basic)
through the simplex pivoting process. This approach would lead to a pivot selection
strategy with minimum number of iterations. The upper bound on the number of
iterations in such an ideal pivot selection strategy would ideally be given the lower of the
two numbers indicating the number of rows and number of columns in the Tucker's
Compact Symmetric Tableau representing the problem in the standard / canonical form.

Arriving at this ideal strategy may require significant amount of theoretical work as well
as numerical experimentation. Further research investigations are presently being taken
up in this direction, with some very promising indications of achieving that ideal desired
goal of an all time lowest number of simplex iteration steps for linear programming,
which will be reported in due course of time.



7. REFERENCES

1. Dantzig, G. B.
Linear Programming and Extensions
Princeton University Press, 1963.

2. Khachiyan L. G.
A Polynomial algorithm in linear programming (in Russian)
Doklady Akademi i Nauk SSSR Vol. 244 (1979) pp 1093 1096.
[English Translation: Soviet Mathematics Doklady, Vol. 20 (1979) pp 191 194].

3. Khachiyan L. G.
Polynomial Algorithms in Linear Programming (in Russian)
Page 24 of 24

Zhurnal Vychislitelinoi Mathematiki i Mathematicheskai Fiziki, vol. 20 (1980) pp
51-68.
[English Translation: USSR Computational Mathematics and Mathematical
Physics, Vol. 20 (1980) pp 53-72].

4. Karmarkar N.
A new polynomial Algorithm for linear programming
Combinatorica, Vol. 4 (1984) pp 373-395.

5. Keshava Prasad Halemane
Symmetric Primal-Dual Simplex Algorithm for Linear Programming
KREC Research Bulletin (ISSN-0971-3603) Vol.9, No.1, June 2000, pp16-26.

6. I. Muthuvel Murugan
"An Implementation of Symmetric Primal-Dual Simplex Algorithm For Linear
Programming"
M.Tech.(SACA) Thesis / Project Work Report; N.I.T.K. Surathkal, 2005.

7. R. T. Rockafellar
"Network Flows and Monotropic Optimization"
Athena Scietific, 1998.

8. http://www.netlib.org/lp/data

You might also like