You are on page 1of 7

THE CHINESE UNIVERSITY OF HONG KONG

Department of Mathematics
MAT581SS
Prepared by Dr. Jeff C.-F. WONG
Exercise 9 - 16th November, 2009

Student No.:

Name in English:

Name in Chinese:
The mathematical model of an integer linear programming problem (ILP) may be described as
max

z=

n
X

cj xj

j=1

subject to
n
X

aij xj = bi (i = 1, , m)

j=1

xj 0 (j = 1, , n)

(1)

and
xj integer for J1 J,
where J = {1, 2, , n}.
The associated LPP (say (LP )1 ) of the given ILP (1) is
max

z=

n
X

cj xj

j=1

subject to
n
X

aij xj = bi (i = 1, , m)

j=1

xj 0 (j = 1, , n).

(2)

Let us consider the ILP given by


max
subject to

z = 21x1 + 11x2
7x1 + 4x2 13
x1 , x2 0

(3)

x1 and x2 integer.

x1

(0,3)

(0,2)

(0,1)

(1,1)

(0,0)

7 x 1 + 4 x 2 = 13

x2

(1,0)

Figure 1: {(0, 0), (0, 1), (1, 0), (1, 1), (0, 2), (0, 3)}.

Consider the all integer LP


z = CT X

max
subject to

AX = b
X0
X integer,

(4)

To derive the Gomorys cut constraint,


First obtain the canonical representation of the LPP
z = CT X

max
subject to

AX = b
X 0,

(5)

for a given feasible basis matrix B.


Partition A, X and C as
A=

, X=

XB
XR

, C=

CB
CR

where the symbols have their usual meanings.


Write the system AX = b as


XB
XR

=b

i.e.
BXB + RXR = b
i.e.
XB =
i.e.
xBi = yi0

yij xj

(i = 1, , m).

(6)

jR

Here
yi0 is the ith component of the vector

yij is the ith component of the vector

j R is understood as the index j running over the index set of non-basic variables.
The m equations given at (6) are said to be the canonical representation of the system AX = b, because
each equation of (6) has only one basic variable with coefficient as one, and
all other variables in (6) are non-basic variables.

Write the objective function as


z

= CT X

CB
=

CR

XB
XR

= CTB XB + CTR XR
= CTB (B 1 b B 1 RXR ) + CTR XR
=
,
which can be written as
X
xB0 = y00
y0j xj ,

(7)

jR

where xB0 =

, y00 =

and y0j =

Therefore combining (6) and (7) we get


X
xBi = yi0
yij xj ,

(8)

jR

for i = 0, 1, , m, where
i = 0 refers to the objective function;
i = 1, , m refer to the m constraints.
Further the current b.f.s. and the current objective function value are obtained by taking xj = 0 for
j R in (8).
Thus
y00 = CTB (B 1 b) is the current objective function value;
yi0 (i = 1, , m) is the current b.f.s.,
i.e.,the ith component of the vector B 1 b.
Since equation (8) holds for any feasible solution of LPP (5), it holds for all integer feasible points of
AILP (4) as well because LPP (5) is essentially the associated LPP of AILP (4).
Now if for any real number a we define its fractional part fa as
fa =

where [a] is the greatest integer function, then we note that 0 fa < 1.
For example,
for a = 1, fa =

for a = 1.6, fa =

xBi = (yi0 + [yi0 ] [yi0 ])

(yij + [yij ] [yij ]) xj

jR

Now for each i = 0, 1, , m, (8) can be rewritten as


X
X
[yij ]xj +
(yij [yij ])xj + xBi = [yi0 ] + (yi0 [yi0 ]),
jR

jR

(9)

i.e.

jR

i.e.
X

[yij ]xj + xBi [yi0 ] = (yi0 [yi0 ])


|
{z
}

[yij ]xj + xBi [yi0 ] = fi0

jR

=fi0

jR

(yij [yij ]) xj ,
{z
}
|
=fij

(9)

fij xj .

jR

But
as (9) holds for all feasible points of the LPP (4) and so for all integer feasible points of the
given AILP,
the L.H.S. of (9) is an integer.
Therefore the R.H.S. of (9) must also be an integer.

This gives that for each i = 0, 1, , m,


fi0

fij xj

jR

must be an integer.
i = 0 is also included because for the AILP, the objective function is also constrained to be
integer.
Now fij 0 and xj 0 for j R. Therefore
X
fij xj 0.

(10)

jR

Also fi0 < 1 and so (10) gives


X
fi0
fij xj < 1.

(11)

jR

Thus fi0

fij xj is an integer which is less than one, and therefore

fij xj 0.

jR

fi0

(12)

jR

Show that the inequality (12) is satisfied by every integer feasible point of the given AILP (4).
Now assume that the current b.f.s. XB is not an integer,
i.e. it does not meet the integer requirements of AILP (4).
In that case, we note that the inequality (12), i.e.,
X
fi0
fij xj 0
jR

is not satisfied by the point XB for some i.


This is because for some i,
xBi is not integer with fi0 > 0.
But for the current b.f.s. XB , (12) gives fi0 0, which is a contradiction.

Thus the constraint (12) is satisfied by every integer feasible point of AILP but certainly not satisfied
at least by the current b.f.s. XB .
In other words
it certainly deletes a part of the feasible region of the associated LPP (at least the current
b.f.s. XB and may be many more points)
but does not delete any feasible point with integer coordinates.
Hence (12), i.e.,
fi0

fij xj 0

jR

is a valid cut constraint.


(12) is called the Gomorys cut constraint.
Write the Gomorys cut constraint (12)
fi0

fij xj 0.

jR

as
fi0 = si

fij xj

(13)

jR

where si is known as the Gomorian slack and append the same to the associated LPP, (LP )1 , to get the
new LPP, (LP )2 . Therefore we solve (LP )2 and repeat the procedure.

The stepwise description of the Gomorys cutting plane method for AILP is as follows
Step 1
Solve the associated LPP, say (LP )1 , by the simplex method.
Set k = 1.
Step 2
If the optimal solution obtained at Step 1 is integer, stop as an optimal solution of the given AILP
is at hand.
Otherwise go to Step 3.
Step 3
For any updated constraint i whose yi0 value is fractional (including i = 0, i.e. the objective
function), generate the Gomorys cut constraint as given as (12), i.e.,
X
fi0
fij xj 0.
jR

A common procedure here is to select that value of i, 0 i m, for which fi0 value is maximum.
Theoretically we can choose any i for which fi0 > 0 but the maximum of fi0 is chosen with the
hope that it may give a deeper cut.

Step 4
Append the Gomorys cut constraint derived at Step 3 above to (LP )k to get the new LPP
(LP )k+1 .
Solve (LP )k+1 by the dual simplex method and return to Step 2.

You might also like