simplex algorithm

simplex algorithm

The

simplex algorithm

is used as part of the simplex
method (due to George B. Dantzig) to solve

linear programming problems

.
The

algorithm

is applied to a linear programming problem that
is in canonical form.

A

canonical system

of equations has an ordered subset of variables
(called the

basis

) such that for each

i

, the

i

t

⁢

h

basic
variable has a unit coefficient in the

i

t

⁢

h

equation and zero coefficient
in the other equations.

As an example

x

1

,

…

,

x

r

are basic variables in the following
system of

r

equations:

x

1

+

a

1

,

r

+

1

⁢

x

r

+

1

+

⋯

+

a

1

,

n

⁢

x

n

=

b

1

x

2

+

a

2

,

r

+

1

⁢

x

r

+

1

+

⋯

+

a

2

,

n

⁢

x

n

=

b

2

…

x

r

+

a

r

,

r

+

1

⁢

x

r

+

1

+

⋯

+

a

r

,

n

⁢

x

n

=

b

r

The simplex algorithm is used as one phase of the simplex method.

Suppose that we have a canonical system with basic variables

x

1

,

…

,

x

m

,

-

z

and we seek to find nonnegative

x

i

i

=

1

,

…

,

n

such that

z

is

minimal

. That is, we have

x

i

+

∑

j

=

m

+

1

n

a

i

⁢

j

⁢

x

j

=

b

i

i

=

1

,

…

,

m

-

z

+

∑

j

=

m

+

1

n

c

j

⁢

x

j

=

-

z

o

where

a

i

⁢

j

,

b

j

,

c

j

,

z

o

are constants,
and

b

j

≥

0

,

j

=

1

,

…

,

m

.

Notice that if we set

x

m

+

1

=

0

,

…

,

x

n

=

0

we will have a feasible
solution with

z

=

z

o

.

. Hence, any optimal solution will have

z

≤

z

o

.
The algorithm can now be described as follows:

Step 1. Set

N

=

{

m

+

1

,

…

,

n

}

and

B

=

{

1

,

…

,

m

}

.
Put

c

j

=

0

for

j

∈

B

.

Step 2. If there an index

j

∈

N

such that

c

j

<

0

then
choose

s

∈

N

such that

c

s

=

min

j

∈

N

⁡

c

j

else
stop. The solution is given by

x

i

=

0

for

i

∈

N

and

x

i

=

b

i

for

i

∈

B

,

z

=

z

o

.

Step 3. If

a

i

⁢

s

≤

0

for all

i

then stop. The value of

z

has no lower bound.
Else, let

b

r

a

r

⁢

s

=

min

a

i

⁢

s

>

0

⁡

b

i

a

i

⁢

s

.
If there is more than one choice for

r

it does not matter which one
is chosen

unless

b

i

=

0

. This is the so-called degenerate case.
In this case, one can choose uniformly at random from among those

i

for which

b

i

=

0

.

Step 4. (Pivot on

a

r

⁢

s

). Multiply the

r

t

⁢

h

equation by

1

a

r

⁢

s

and for each

i

=

1

,

…

,

m

,

i

≠

r

replace equation

i

by the sum of equation

i

and the (replaced) equation

r

multiplied by

-

a

i

⁢

s

. Replace the equation for

z

by
the sum of the equation for

z

and the (replaced) equation

r

multiplied by

-

c

s

. Note: The replacement operations of course
change the coefficients

a

i

⁢

j

and

c

j

. As the algorithm proceeds
it is of course necessary to use the changed coefficients.

Step 5. (Update

B

and

N

) Put

s

into

B

and

r

into

N

and remove

s

from

N

and

r

from

B

. Go to step 2.

There are examples where the algorithm does not terminate in a finite
number of steps; but if there is non-degeneracy at each

iteration

,
the algorithm will terminate in a finite number of steps.

Title

simplex algorithm

Canonical name

SimplexAlgorithm

Date of creation

2013-03-22 13:35:21

Last modified on

2013-03-22 13:35:21

Owner

Mathprof (13753)

Last modified by

Mathprof (13753)

Numerical id

22

Author

Mathprof (13753)

Entry type

Algorithm

Classification

msc 90C05

Synonym

simplex method

Generated on Sat Feb 10 13:36:50 2018 by

LaTeXML