You are on page 1of 21

INGB 472: DECISION-SUPPORT SYSTEMS

Study Unit 3: Integer linear Programming (ILP)


WHAT IS INTEGER LINEAR PROGRAMMING
• We know that an LP (linear programming) model can be used to solve for
either a maximum or minimum outcome.
• Say the outcome or some of the outcomes are required to be integer
numbers. How can the mathematical model to ‘forced’ to solve for integer
outcomes?
• What different types of integer programming can one typically expect?
INTEGER PROGRAMMING
There are three main groups when looking at integer programming, namely:
1) pure integer programming;
2) mixed integer programming;
3) binary programming (typically decision-making).
BRANCH AND BOUND METHOD
• In order to solve for integer outcomes, we require a method that forces the
solution(s) to be of integer nature.
• This might sound simple, but might turn out to be an exceptional long
numerical process in order to solve for integer solutions.
BRANCH AND BOUND METHOD
• The concept behind the Branch and Bound is to keep adding additional
constraints to the original problem, and therefore, forcing integer solutions.
• Important to note is that a number of sub-problems arise, where each is
required to be solved through the Simplex method.
• It’s therefore possible that millions of LP’s are required to be solved through the
Simplex method before a feasible integer solution is obtained!
• You should already be familiar with the branch-and-bound and the simplex
method. If you are not, please ensure that you familiarise yourself as soon as
possible
PURE INTEGER PROGRAMMING
Taylor furniture company produces tables and chairs. Each table takes 4 hours of
carpentry; 2 hours painting & varnishing. Each chair takes 3 and 1 hours
respectively.
Furthermore, 240 carpentry hours and 100 painting & varnishing hours are
available per month.
PURE INTEGER PROGRAMMING
A table yields a profit of R 70 and a chair R 50.
• What is the maximum (optimal) monthly profit that can be made by Taylor?
The solution is 30 chairs and 40 tables. Note that, for instance, 30.3 chairs and 39.8
tables would not have made sense. Our solution solved for integers, so we were
‘lucky’ in that sense. This luck is typically not present in real world problems, so
that further techniques are required.
MIXED INTEGER PROGRAMMING
• Company A produces product I and II with source X , Y and Z. Product I is sold
in quantities of 50 and product II in any quantity.
• If income from I is 85 per 50 quantities and II is 1.5 per quantity, determine the
maximum income if the following holds:
MIXED INTEGER PROGRAMMING

Amount for Amount for Available


I per II per single
quantity of quantity
50
X 30 0.5 2000
Y 18 0.4 800
Z 2 0.1 200
MIXED INTEGER PROGRAMMING
max(85𝑋𝑋1 + 1.5𝑋𝑋2 )
subject to:
30𝑋𝑋1 + 0.5𝑋𝑋2 ≤ 2000
18𝑋𝑋1 + 0.4𝑋𝑋2 ≤ 800
2𝑋𝑋1 + 0.1𝑋𝑋2 ≤ 200
𝑋𝑋1 , 𝑋𝑋2 ≥ 0
MIXED INTEGER PROGRAMMING
Solving the LP yields:
(44+4/9)x50 quantities of I and
0 of II, with a objective value of R3777.78.

However, only integer values are allowed for quantity I, since it is sold in quantities
of 50. The solution is therefore not realistic.
Further solving techniques show that the maximum realistic (feasible) profit will be
reached at 44x50 quantities of I and 20 quantities for II.
BINARY PROGRAMMING
Let’s revisit an LP from previous (formulation) slides:
A company explores the possibility to invest in turbines for energy recovery from
excess steam. No more than two turbines may be invested in and R100 million is
available. Which turbine selections will maximise the net present value (NPV) of
the funds available, given the following information?
BINARY PROGRAMMING

Turbine Cost (R Income year Income year Income year


million) I (R million) II (R million) III (R million)
I 20 5 10 11
II 30 7 16 17
III 50 10 23 26
IV 60 15 28 35
V 80 19 35 40
BINARY PROGRAMMING
Let 𝑋𝑋𝑖𝑖 denote investment into turbine 𝑖𝑖.
max[ 6 𝑋𝑋1 + 10 𝑋𝑋2 + 9 𝑋𝑋3 + 18 𝑋𝑋4 + 14 𝑋𝑋5 ]
subject to:
20𝑋𝑋1 + 30𝑋𝑋2 + 50𝑋𝑋3 + 60𝑋𝑋4 + 80𝑋𝑋5 ≤ 100
𝑋𝑋1 + 𝑋𝑋2 + 𝑋𝑋3 + 𝑋𝑋4 + 𝑋𝑋5 ≤ 2
𝑋𝑋𝑖𝑖 = 0 𝑜𝑜𝑜𝑜 1 ∀𝑖𝑖.
BINARY PROGRAMMING
• Note that every 𝑋𝑋𝑖𝑖 is defined as a binary number; either 0 or 1. This is a classic
binary decision making variable formulation.
• Further note that this is also a pure integer LP, since all variables are integers.
• A single question should be asked for all of these examples. How can one solve
for integer values when required?
BRANCH AND BOUND
• One of these solving techniques is the Branch and Bound method. This method
is used to ‘force’ our mathematical solutions to yield integer numbers where
required.
• The Branch and Bound method is a numerical technique and will be discussed
in the follow-up work.
HOMEWORK
An oil company produces 2 grades of gasoline; R (regular) and E (economy) by
mixing oils I and II. The table provides information regarding the oils. Note that all
barrels contain 200 litres.

Oil Ingredient A% Ingredient B% Cost/barrel

I 35 55 30.00

II 60 25 34.80
HOMEWORK
• Answer the following questions separately to formulate a linear programming
problem. At no instance should you go back to previous questions (except for
the costs given in 1). Use only the current provided information and what is
given at each question.
HOMEWORK
1) Given that a barrel of R sells for R100, and a barrel E sells for R150, write out the
objective function to maximise the profit.
2) The maximum budget is R10 000 000.
3) Nor barrels R nor barrels E may comprise more than 90% of the total produced
barrels.
4) For barrel E ingredient A must be between 40% and 50%, but taking into
consideration that ingredient B may not be more than 46%.
HOMEWORK
5) If more than 20 000 barrels of E are sold the market starts to get saturated. There
is a logarithmic decrease in the price, but for practicality you decided to model it
linearly. Every barrel above 20 000 of E can only be sold for R135 and every barrel
above 30 000 of E can only be sold for R130. Rewrite the objective function with
additional constraints (if relevant).
HOMEWORK
6) A clerk was at error, a barrel of Oil II is not the standard 200-liter barrel, but 130
liter. Rewrite the objective function by taking this information into account.

You might also like