You are on page 1of 35

INTEGER LINEAR

PROGRAMMING

ANTONIO CONEJO

JUNE 1997
Integer Linear Programming

CONTENTS

1. REFERENCES

2. INTEGER LINEAR PROGRAMING

 PURE INTEGER LINEAR PROGRAMMING

 BRANCH AND BOUND

 MIXED INTEGER LINEAR PROGRAMMING

 BRANCH AND BOUND

 GOMORY CUTS

3. AVAILABLE SOFTWARE

2
Integer Linear Programming

REFERENCES

1. R.S. GARFINKEL, G.L. NEMHAUSER. “LINEAR


PROGRAMMING”. JOHN WILEY AND SONS. NEW YORK,
1972

2. G.L. NEMHAUSER, L.A. WOLSEY. “INTEGER AND


COMBINATORIAL OPTIMIZATION”. JOHN WILEY AND
SONS. NEW YORK, 1988

3. S.P. BRADLEY, A.C. HAX, T.L. MAGNANTI. “APPLIED


MATHEMATICAL PROGRAMMING”. ADDISON-WESLEY
PUBLISHING COMPANY. READING, MASSACHUSETTES,
1977

3
Integer Linear Programming

INTEGER LINEAR PROGRAMMING (1/2)

n
MINIMIZE  c jx j
j1

n
SUBJECT TO  aij x j  bi i  12
, ,,m
j1

xj  0 j  12
, ,,n

x j  I for all or some j  12


, ,,n

4
Integer Linear Programming

INTEGER LINEAR PROGRAMMING (2/2)

POSSIBILITIES

1) PURE INTEGER LINEAR PROGRAMMING

2) MIXED INTEGER LINEAR PROGRAMMING

3) 0/1 MIXED INTEGER LINEAR PROGRAMMING

SOLUTION METHODS

1) BRANCH AND BOUND

2) GOMORY CUTS

5
Integer Linear Programming

6
Integer Linear Programming

PURE INTEGER LINEAR PROGRAMMING


VIA
BRANCH AND BOUND

7
Integer Linear Programming

PROCEDURE

1. SET UP OF BOUNDS

2. BRANCHING STRATEGY

3. SYSTEMATIC SOLUTION OF FURTHER CONSTRAINED


LP PROBLEMS

4. TITHING OF BOUNDS

z  z  z

8
Integer Linear Programming

OBSERVATIONS

1. AN UPPER BOUND OF THE SOLUTION (OBJECTIVE


FUNCTION VALUE) OF AN INTEGER LINEAR
PROGRAMMING PROBLEM IS THE LOWEST VALUE OF ANY
FEASIBLE INTEGER SOLUTION ENCOUNTERED

2. A LOWER BOUND OF THE SOLUTION OF AN INTEGER


LINEAR PROGRAMMING PROBLEM IS THE OPTIMAL
SOLUTION OF THE ASSOCIATED LINEAR PROGRAMMING
PROBLEM

9
Integer Linear Programming

BRANCHING (1/3)

IF x j IS NOT INTEGER


BRANCHING

x j  a. b

xj  a xj  a  1

x j  3
x j  3.75  
x j  4

10
Integer Linear Programming

BRANCHING (2/3)

LP 0

x j = a.b

xj  a xj  a+1

LP 1 LP 2

11
Integer Linear Programming

BRANCHING (3/3)

PROCEDURE

1. BY SYSTEMATIC BRANCHING TIGHTER BOUNDS OF


THE FORM

z  z  z

ARE PROGRESSIVELY GENERATED

2. THE BRANCHING REQUIRES THE SOLUTION OF


MULTIPLE LP'S WITH ADDITIONAL CONSTRAINTS

THEREFORE THE DUAL SIMPLEX ALGORITHM


SHOULD BE USED

12
Integer Linear Programming

THE PRIMAL PROBLEM

WITH AN ADDITIONAL CONSTRAINT

x 
MINIMIZE  3 5  1 
 x2 

 1 0  4 
 0 2  x   12
SUBJECT TO  3 2  1    18
   x2   
 0 1  4 

 x1   2
 x    6 INFEASIBLE
 2

13
Integer Linear Programming

THE DUAL PROBLEM

WITH AN ADDITIONAL CONSTRAINT

 -4 
 -12
MAXIMIZE  ,  , 
1 2 3 4   -18
 
 -4 

 1 0
 0 2
SUBJECT TO  ,  , 
1 2 3 4   3 2   3, - 5
 
 0 1

 ,  , 
1 2 3 
4   0, 0, 0 0

 1 
    0 
 2   3 1/ 2
 3     
FEASIBLE BUT NOT OPTIMAL
    0 

 4 

14
Integer Linear Programming

CUTTING RULES

IT IS NOT REQUIRED TO FURTHER SUBDIVIDE BRANCH Lj IF

1) THE LP OVER Lj IS INFEASIBLE

2) THE OPTIMAL LP SOLUTION OVER Lj IS INTEGER

3) THE OPTIMAL LP SOLUTION zj IS SUCH THAT

zj  z

(A VALUE LARGER THAN THE CURRENT UPPER BOUND)

IT IS SAID THAT Lj IS "FATHOMED" BY

1) INFEASIBILITY

2) INTEGRALITY

3) BOUNDS

15
Integer Linear Programming

OBSERVATION

IF ALL OBJETIVE FUNCTION COEFICIENTS ARE INTEGER AND


ALL VARIABLES ARE INTEGER, THE BOUND

z*  - a.b

IS EQUIVALENT TO THE BOUND

z*  - a

AND THE BOUND

z*  a.b

IS EQUIVALENT TO THE BOUND

z*  a + 1

16
Integer Linear Programming

EXAMPLE (1/2)

MINIMIZE -5 x1 -8 x2 = z

SUBJECT TO x1 + x2  6

5 x1 +9 x2  45

x1  0, INTEGER

x2  0, INTEGER

17
Integer Linear Programming

EXAMPLE (2/2)
L0
x 1 = 2.25 z*  - 41.25
x 2 = 3.75
z = - 41.25

x  4 x2  3
2

L1 L2
z*  - 41 x 1 = 1.8 x 1= 3
x 2= 4 x 2= 3
z = - 41 z = - 39

* z*  - 39
x1  2 x1  1

L3 L4
x 1= 1
INFEASIBLE x 2= 4.44
z*  - 40.55
z = - 40.55

* x 4 x2  5
2

L5 L6
x 1= 1 x 1= 0
z*  - 37 x 2= 4 x 2= 5
z = - 37 z = - 40
* z*  - 40
*
z* = - 40
x1* = 0

x2* = 5
18
Integer Linear Programming

19
Integer Linear Programming

MIXED INTEGER LINEAR PROGRAMMING


VIA
BRANCH AND BOUND

20
Integer Linear Programming

MIXED INTEGER LINEAR PROGRAMMING

JUST THE SAME THING THAT PURE INTEGER LINEAR


PROGRAMMING BUT BRANCHING ONLY THOSE
VARIABLES WHICH HAVE TO BE INTEGER

21
Integer Linear Programming

EXAMPLE (1/2)

MINIMIZE 3x1 +2x2 -10 = z

SUBJECT TO x1 -2x2 +x3 = 5/2

2x1 +x2 +x4 = 3/2

x1  0

x2  0

x3  0

x4  0

x2, x3 INTEGER

22
Integer Linear Programming

EXAMPLE (2/2)

L0
x 1= 0 , x 2= 0
z*  -10
x 3= 2.5 , x 4= 1.5
z = -10

x3  2 x3  3

L1 L2
x 1 = 0 .5, x 2= 0 x 1= 0 , x 2= 0.25
z*  -9.5
z*  - 8.5 x 3= 2 , x 4= 0.5 x 3= 3 , x 4= 1.25

z = -8.5 z = -9.5

* x2  0 x2  1

L3 L4
x 1= 0 , x 2= 1
INFEASIBLE x 3= 4.5 , x 4= 0.5
z = -8
(z*  -8)
* *
z* = -8.5

*
x1 = 0.5
*
x2 = 0
*
x3 = 2
*
x4 = 0.5

23
Integer Linear Programming

MIXED INTEGER LINEAR PROGRAMMING


VIA
GOMORY CUTS

24
Integer Linear Programming

GOMORY ALGORITHM (1/2)

CONSTRAINTS

Ax  b

 xB 
 B  N     b
 xN 

BxB  NxN  b

xB  B1NxN  B1b

 xB 
 I  B1N     B1b
 xN 

 xB 
I  Y     b~
 xN 

~
xB  YxN  b

25
Integer Linear Programming

GOMORY ALGORITHM (2/2)

 SELECT xBi NONINTEGRAL, THEN

~
xBi   YijxNj  bi (1)

~
BECAUSE xNj ARE NON BASIC, bi IS NONINTEGRAL

~
 EACH Yij AND bi IS WRITTEN AS THE SUM OF AN INTEGER
AND A NONNEGATIVE FRACTION LESS THAN 1, SO
Yij  Iij  Fij
~ ~ ~
bi  ii  f i
~
SOME Fij MAY BE 0, BUT f i IS GUARANTEED TO BE
POSITIVE

 EQUATION (1) BECOMES

xBi   Iij  Fij xNj  i  f i


~ ~
i

OR
~ ~
xBi   IijxNj  i i  f i   FijxNj (2)

26
Integer Linear Programming

GOMORY OBSERVATION

 IF EACH VARIABLE IS REQUIRED TO BE INTEGRAL, THE


LEFT-HAND SIDE OF (2) SHOULD BE INTEGRAL, AND AS A
RESULT THE RIGHT-HAND SIDE TOO

 EACH Fij AND xNj IS NONNEGATIVE, SO TOO

 FijxNj

 THEN, THE RIGHT-HAND SIDE OF (2) IS AN INTEGER


WHICH IS SMALLER THAN A POSITIVE FRACTION LESS
THAN ONE; THAT IS, A NONPOSITIVE INTEGER

~
f i   FijxNj  0

OR

~
 FijxNj  f i  0 (3)

 (3) IS THE SO CALLED GOMORY CUT

27
Integer Linear Programming

GOMORY ALGORITHM (1/2)

STEP 1 SELECT ONE (ANYONE) NONINTEGRAL BASIC


VARIABLE, AND WITHOUT ASSIGNING ZERO
VALUES TO THE NONBASIC VARIABLES,
CONSIDER THE CONSTRAINT EQUATION
REPRESENTED BY THE ROW OF THE SELECTED
VARIABLE

STEP 2 REWRITE EACH FRACTIONAL COEFFICIENT AND


CONSTANT IN THE CONSTRAINT EQUATION
OBTAINED FROM STEP 1 AS THE SUM OF AN
INTEGER AND A POSITIVE FRACTION BETWEEN 0
AND 1

28
Integer Linear Programming

GOMORY ALGORITHM (2/2)

STEP 3 THEN, REWRITE THE EQUATION SO THAT THE


LEFT-HAND SIDE CONTAINS ONLY TERMS WITH
FRACTIONAL COEFFICIENTS AND A FRACTIONAL
CONSTANT, WHILE THE RIGHT-HAND SIDE
CONTAINS ONLY TERMS WITH INTEGRAL
COEFFICIENTS AND AN INTEGRAL CONSTANT

STEP 4 REQUIRE THE LEFT-HAND SIDE OF THE


REWRITTEN EQUATION TO BE NONNEGATIVE.
THE RESULTING INEQUALITY IS THE NEW
CONSTRAINT

29
Integer Linear Programming

MODELING (1/4)

ALTERNATIVE CONSTRAINTS

AT LEAST ONE OF THE CONSTRAINTS BELOW SHOULD BE


MET

a1T x  b1
a T2 x  b 2

THIS IS EXPRESSED AS

a1T x  B1y1  b1
a T2 x  B2y2  b2
y1  y2  1
y1, y2  0,1

AND

B1 SO THAT a1T x  B1  b1
B2 SO THAT a T2 x  B2  b2

30
Integer Linear Programming

MODELING (2/4)

DISCONTINUITY

THE FUNCTION

 0 x0
f(x)  
k  cx x  0

IS EXPRESSED AS

f(x)  ky  cx
x  By
x0
y  0,1

AND

B SO THAT x  B

31
Integer Linear Programming

MODELING (3/4)

PIECE-WISE LINEAR NONCONVEX FUNCTION

THE FUNCTION

x 0xa

f(x)  a  (x  a) axb
a  (b  a)   (x  b) b  x  c

WHERE


 , ,   0
a, b, c  0

IS EXPRESSED AS

f ( x )  x 1   x 2   x 3

x  x1  x 2  x 3

aw 1  x1  a
w 2 (b  a)  x 2  (b  a)w 1
0  x 3  (c  b)w 2

w1  w 2

w 1, w 2  0,1

32
Integer Linear Programming

MODELING (4/4)
PIECE-WISE LINEAR NONCONVEX FUNCTION WITH INITIAL
DISCONTINUITY

THE FUNCTION

0 0xa
f   (x  a) axb

f(x)   0
f0   (b  a)  (x  b) bxc
f0   (b  a)  (c  b)   (x  c) cxd

WHERE

 , ,   0
a, b, c, d  0

IS EXPRESSED AS

33
Integer Linear Programming

f(x)  vf0  x1   x 2  x 3

x  va  x1  x 2  x 3

w 1(b  a)  x1  (b  a)v
w 2 (c  b)  x 2  (c  b)w 1
0  x 3  (d  c)w 2

v  w1
w1  w 2

v, w 1 , w 2  0,1

34
Integer Linear Programming

AVAILABLE SOFTWARE

 LINDO

 GAMS

 ZOOM

35

You might also like