You are on page 1of 19

Exercise sessions for the module

Decision Making for Industrial Management


(B-KUL-H0T99A)
Prof Johan W. Joubert

Contents
Integer linear program, Chapter 9 1
Winston (2004), Section 9.2, Problem A9† . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Winston (2004), Section 9.2, problem A20† . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Winston (2004), Section 9.2, Problem B31† . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Winston (2004), Section 9.2, Problem B38† . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Winston (2004), Chapter 9, Review problem A3† . . . . . . . . . . . . . . . . . . . . . . . 9
Winston (2004), Chapter 9, Review problem A5† . . . . . . . . . . . . . . . . . . . . . . . 10
Winston (2004), Chapter 9, Review problem B21† . . . . . . . . . . . . . . . . . . . . . . . 11
Winston (2004), Section 9.3, Problem A4† . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Winston (2004), Section 9.5, Problem A2† . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Winston (2004), Section 9.6, Problem B11† . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Acronyms 18

[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
Integer linear program (ILP), Chapter 9
Winston (2004), Section 9.2, Problem A9†
How can integer programming be used to ensure that the variable x can assume only the values 1,
2, 3, and 4?

One can add the following constraints.

x = y1 + 2y2 + 3y3 + 4y4


y1 + y2 + y3 + y4 = 1
yi ∈ {0, 1} ∀i ∈ {1, 2, 3, 4}
x≥0

This requires 4 integer variables and is generalisable to any values that are not necessarily
consecutive. Alternatively, and probably even simpler.

x≥1
x≤4
x ≥ 0 and integer

1
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
Winston (2004), Section 9.2, problem A20†
WSP Publishing sells textbooks to college students. WSP has two sales reps available to assign to
the A–G state area. The number of college students (in thousands) in each state is given in Figure 1.
Each sales rep must be assigned to two adjacent states. For example, a sales rep could be assigned

B 29

E 56

A 43

F 18
C 42

G 71
D 21

Figure 1: State layout and student numbers

to A and B, but not A and D. WSP ’s goal is to maximize the number of total students in the states
assigned to sales reps. Formulate an ILP whose solution will tell you where to assign the sales reps,
then use LINGO to solve your formulation.

The simplest formulation is probably the following. Denote with A the set of pairs, (i, j), where i, j ∈
{1, 2, . . . , 7}, such that A = {(A, B), (A, C), (B, C), (B, D), (B, E), (C, D), (D, E), (D, F ), (D, G), (E, F ), (F, G)},
are all adjacent states that a salesman could be assigned to. We then let
(
1 if a sales rep is assigned to state areas i and j, where (i, j) ∈ A .
xij ≜
0 otherwise.
ci ≜ the given number (in thousands) of college students in state i ∈ {A, B, . . . , G}.
Then we formulate the problem as follows.
X
max z = (ci + cj ) xij (Assigned students)
A
(i,j)∈A

subject to
X
xij = 2 (Sales reps)
A
(i,j)∈A

xAB + xAC ≤ 1 (State A)


xAB + xBC + xBD + xBE ≤ 1 (State B)
xAC + xBC + xCD ≤ 1 (State C)
xBD + xCD + xDE + xDF + xDG ≤ 1 (State D)
xBE + xDE ≤ 1 (State E)
xDF + xEF + xF G ≤ 1 (State F)
xDG + xF G ≤ 1 (State G)
xij ∈ {0, 1} ∀(i, j) ∈ A (Binary)

2
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
The state constraints could have been formulated more generally as follows.
X
(xij + xji ) ≤ 1 ∀i ∈ {1, . . . , 7} (State)
A
(i,j)∈A

I don’t know if this is the most efficient way, but here’s my approach. I’m sure there are alternatives.
I let A be the set of pairs, (i, j), where i, j ∈ {1, 2, . . . , 7} are all adjacent states that a salesman
could be assigned to. Then

1 if rep k is assigned to states i and j, where i, j = {1, . . . , 7}|(i, j) ∈ A ,




xijk ≜ and k = {1, 2}
0 otherwise


ci ≜ the given number (in thousands) of college students in state i,
where i = {1, . . . , 7}
I formulated the ILP as follows.
2
X X
max z = (ci + cj ) xijk (1)
k=1 (i,j)∈A
A

subject to
X
xijk ≤ 1 ∀k ∈ {1, 2} (2)
A
(i,j)∈A
2
X 7
X
xijk ≤ 1 ∀i ∈ {1, . . . , 7} (3)
k=1 j=1
i̸=j
(i,j)∈AA
2
X 7
X
xijk ≤ 1 ∀j ∈ {1, . . . , 7} (4)
k=1 i=1
i̸=j
(i,j)∈AA

xijk ∈ {0, 1} ∀(i, j) ∈ A , k ∈ {1, 2} (5)

The formulation seems straight forward, with the objective function in (1). Each rep may only be
assigned to two states according to (2). What is a bit trickier is that states can only be covered
once, according to the combination of (3) and (4), and both are needed, not just one of the two.
Finally, variable restrictions are enforced with (5).

First Lingo code for Winston (2004, Section 9.2, Problem 20).

Model:

Title: Winston and Venkataramanan - Section 9-2 - Problem 20;

Sets:
state/1..7/: c;
rep/1..2/;
A(state,state)/ 1,2 1,3
2,3 2,4 2,5
3,4
4,5 4,6 4,7
5,6

3
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
6,7/;
assign(A,rep): x;
Endsets

Data:
c = 43 29 42 21 56 18 71;
Enddata

! Objective function; [Objective]


Max = @Sum(assign(i,j,k): (c(i) + c(j))*x(i,j,k));

! Only two reps, each assigned only two states;


@For(rep(k): [Rep_]
@Sum(A(i,j): x(i,j,k)) = 1;
);

! No overlapping of states between reps;


@For(state(i): [State_]
@Sum(rep(k): @Sum(A(l,j)|l #EQ# i: x(l,j,k))) <= 1;
@Sum(rep(k): @Sum(A(j,l)|l #EQ# i: x(j,l,k))) <= 1;
);

! Binary variables;
@For(assign: @Bin(x));

End

4
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
Winston (2004), Section 9.2, Problem B31†
A Sunco oil delivery truck contains five compartments, holding up to 2700, 2800, 1100, 1800, and
3400 gallons of fuel, respectively. The company must deliver three types of fuel (super, regular, an
unleaded) to a customer. The demands, penalty per gallon short, and the maximum allowed shortage
are given in Table 1. Each compartment of the truck can carry only one type of gasoline. Formulate

Table 1: Information for the fuel delivery problem

Cost per Maximum allowed


Type of gasoline Demand gallon short ($) shortage
Super 2900 10 500
Regular 4000 8 500
Unleaded 4900 6 500

an IP whose solution will tell Sunco how to load the truck in a way that minimises shortage costs.

First, let us denote with I = {1, 2, 3} the set of gasoline types such that i = 1 represents super,
i = 2 represents regular, and i = 3 represents unleaded. Also, denote with J = {1, . . . , 5} the set of
compartments. We then define two sets of decision variables, namely
xij ≜ the quantity (gallons) of gasoline of type i loaded into compartment j, where ,
and where j = {1, . . . , 5}
1 if type i gasoline is loaded into compartment j, where i = {1, 2, 3}, and


yij ≜ j = {1, . . . , 5}
0 otherwise

We need both sets as we need to know how much to load in each compartment, but to ensure that
no fuel types are mixed in a single compartment, we also need to track whether a specific fuel type
is loaded into a given compartment. We also define

si ≜ the quantity (gallons) of fuel type i delivered short of the demand, where i =
{1, 2, 3}
di ≜ the given demand for gasoline of type i, where i = {1, 2, 3}
cj ≜ the given capacity of compartment j, where j = {1, . . . , 5}

In my formulation, and definition of decision variables, I assume that no surplus is delivered. We


proceed to formulate the model.

min z = 10s1 + 8s2 + 6s3 (6)

subject to
5
X
xij + si = di ∀i ∈ {1, 2, 3} (7)
j=1

si ≤ 500 ∀i ∈ {1, 2, 3} (8)


3
X
yij ≤ 1 ∀j ∈ {1, . . . , 5} (9)
i=1

5
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
3
X
xij ≤ cj ∀j ∈ {1, . . . , 5} (10)
i=1
xij ≤ cj yij ∀i ∈ {1, 2, 3}, j ∈ {1, . . . , 5} (11)
si ≥ 0 ∀i ∈ {1, 2, 3} (12)
xij ≥ 0 ∀i ∈ {1, 2, 3}, j ∈ {1, . . . , 5} (13)
yij ∈ {0, 1} ∀i ∈ {1, 2, 3}, j ∈ {1, . . . , 5} (14)

The objective in (6) is to minimise the total shortage, which is calculated in (7), and limited in (8).
We ensure that no mixing takes place by introducing (9). We limit each compartment’s capac-
ity by (10). The quantity (xij ) and binary variables (yij ) are linked in (11). Constraints (12)
through (14) enforces sign and binary restrictions.
We do not define a surplus amount to load into a compartment. This is a practical constraint
as the excess can neither be offloaded at the client (they may not have capacity) nor be transported
back (as it can cause handling problems for the truck).
The following assessment criteria are used:

The following criteria are assessed using a 0-1-2-3 rubric:

1. Definition of decision variables.


2. Objective function.
3. Calculate and limit shortages.
4. Ensure no mixing takes place.
5. Limit compartment capacity.
6. Linking of variables.
7. Accessibility of information.

Lingo code for Winston (2004, Section 9.2, Problem 31).

Model:

Title: Winston and Venkataramanan - Section 9-2 - Problem 31;

Sets:
fuel/1..3/: penalty, s, dem;
compartment/1..5/: cap;
load(fuel,compartment): x, y;
Endsets

Data:
cap = 2700 2800 1100 1800 3400;
dem = 2900 4000 4900;
penalty = 10 8 6;
Enddata

! Objective function;
[Objective]
Min = @Sum(fuel(i): penalty(i)*s(i));

! Calculate limited shortage;


@For(fuel(i):
[Short] @Sum(compartment(j): x(i,j)) + s(i) = dem(i);
[Lim_Short] s(i) <= 500;
);

6
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
! Enforce "no mixing" and compartment capacity;
@For(compartment(j):
[Mix] @Sum(fuel(i): y(i,j)) <= 1;
[Capacity] @Sum(fuel(i): x(i,j)) <= cap(j);
);

! Link the x and y set variables;


@For(load(i,j):
[Link] x(i,j) <= BigM*y(i,j);
);

! Binary constraint;
@For(load(i,j):
@Bin(y(i,j));
);

End

7
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
Winston (2004), Section 9.2, Problem B38†
A company sells seven types of boxes, ranging in volume from 17 to 33 cubic feet. The demand and
size of each box are given in Table 2. The variable cost (in dollars) of producing each box is equal

Table 2

Box
1 2 3 4 5 6 7
Size 33 30 26 24 19 18 17
Demand 400 300 500 700 200 400 200

to the box’s volume. A fixed cost of $ 1,000 is incurred to produce any of a particular box. If the
company desires, demand for a box may be satisfied by a box of a larger size. Formulate and solve
(with Lindo, Lingo, or Excel Solver ) an integer program (IP) whose solution will minimize the cost
of meeting demand of boxes.

In formulating the problem we denote with I = {1, . . . , 7} the set of box sizes, and define the
following parameters. We let:
si ≜ the given size (in ft3 ), and unit cost (in US$) of a box of type i ∈ I .
di ≜ the given demand (in units) of boxes of type i ∈ I .
Our main decision variable then, given that boxes of larger size may be used to fulfill the demand
of smaller box sizes, is:
xij ≜ the number of boxes of type i ∈ I used to fulfill demand of boxes of type
j ∈ I |j ≥ i.
(
1 if any boxes of type i ∈ I are produced,
yi ≜
0 otherwise.
By definition now, we cannot use a box of one type to fulfill the demand for boxes of a larger type,
because such variables are simply not defined. We can now proceed to formulate the problem.
 
X X7
min z = 1000yi + si xij  (15)
i∈II j=i

subject to
7
X
xij ≤ M yi ∀i ∈ I (16)
j=i
j
X
xij ≥ dj ∀j ∈ I (17)
i=1
xij ≥ 0 ∀i, j ∈ I |j ≥ i (18)
yi ∈ {0, 1} ∀i ∈ I (19)

The first term of the cost minimisation objective in (15) represents the fixed setup costs, while
variable costs are addressed with the second term. With the introduction of (16) we ensure that
if we produce a box to fulfill demand of any smaller box, that particular box’s fixed cost will be
incurred. In an extreme case, it would be possible to use only box type 1 for all demand, and hence
a good value for M would be a value higher than the sum of demand, for example 3,000. Demand
is met by introducing (17). Variable restrictions are enforced with (18) and (19).

8
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
Winston (2004), Chapter 9, Review problem A3†
The Transylvania Olympic Gymnastics Team consists of six people. Transylvania must choose three
people to enter both the balance beam and floor exercises. They must also enter a total of four
people in each event. The score that each individual gymnast can attain in each event is shown in
Table 3. Formulate an ILP to maximize the total score attained by the Transylvania gymnasts.

Table 3

Balance Beam Floor Exercise


Gymnast 1 8.8 7.9
Gymnast 2 9.4 8.3
Gymnast 3 9.2 8.5
Gymnast 4 7.5 8.7
Gymnast 5 8.7 8.1
Gymnast 6 9.1 8.6

We define the set G = {1, 2, . . . , 6} to be the given set of gymnasts, and then let
(
1 if gymnast i ∈ G enters only in the balance beam (BB)
xi ≜
(0 otherwise
1 if gymnast i ∈ G enters only in the floor exercise (FE)
yi ≜
(0 otherwise
1 if gymnast i ∈ G enters in both the balance beam and floor exercise
zi ≜
0 otherwise
bi ≜ the given score gymnast i ∈ G can attain on the balance beam.
fi ≜ the given score gymnast i ∈ G can attain on the floor exercise.
The formulation of the problem is then the following.
X
max z = (bi xi + fi yi + (bi + fi ) zi )
G
i∈G
X
s.t. xi = 1 (Balance beam only)
G
i∈G
X
yi = 1 (Floor only)
G
i∈G
X
zi = 3 (Both events)
G
i∈G
xi + yi + zi = 1 (Only one option per gymnast)
xi , yi , zi ∈ {0, 1} ∀i ∈ G

9
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
Winston (2004), Chapter 9, Review problem A5†
The Cubs are trying to determine which of the following free agent pitchers should be signed: Rick
Sutcliffe (RS), Bruce Sutter (BS), Dennis Eckersley (DE), Steve Trout (ST), Tim Stoddard (TS).
The cost of signing each pitcher and the number of victories each pitcher will add to the Cubs are
shown in Table 4 .
Table 4

Pitcher Cost of Signing Pitcher ($) Millions Victories Added to Cubs


RS 6 6 (righty)
BS 4 5 (righty)
DE 3 3 (righty)
ST 2 3 (lefty)
TS 2 2 (righty)

Subject to the following restrictions, the Cubs want to sign the pitchers who will add the most
victories to the team.
a) At most, $12 million can be spent.
b) If DE and ST are signed, then BS cannot be signed.
c) At most two right-handed pitchers can be signed.
d) The Cubs cannot sign both BS and RS.
Formulate an IP to help the Cubs determine who they should sign. Solve using LINDO/LINGO, or
some other optimisation software.

We define the set of players, P = {1, 2, . . . , 5}, such that player 1 refers to Rick Sutcliffe, player 2
refers to Bruce Sutter, etc. We then let
(
1 if player i ∈ P is signed,
xi ≜
0 otherwise.
We formulate the problem as follows.

max z = 6x1 + 5x2 + 3x3 + 3x4 + 2x5


s.t. 6x1 + 4x2 + 3x3 + 2x4 + 2x5 ≤ 12 (Limited budget)
x2 + x3 + x4 ≤ 2 (Combination limit (b))
x1 + x2 + x3 + x5 ≤ 2 (right-handed pitchers)
x1 + x2 ≤ 1 (Combination limit (d))
xi ∈ {0, 1} ∀i ∈ P

The solution of this ILP can be found with optimisation software: z = 12, x1 = x3 = x4 = 1,
x2 = x5 = 0. So, Rick Sutcliffe, Dennis Eckersley, and Steve Trout should be signed.

10
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
Winston (2004), Chapter 9, Review problem B21†
Gotham City has been divided into eight districts. The time (in minutes) it takes an ambulance to
travel from one district to another is shown in Table 5. The population of each district is given at

Table 5: Distance table for the Gotham City problem

To district
From district 1 2 3 4 5 6 7 8
1 10 3 4 6 8 9 8 10
2 3 0 5 4 8 6 12 9
3 4 5 0 2 2 3 5 7
4 6 4 2 0 3 2 5 4
5 8 8 2 3 0 2 2 4
6 9 6 3 2 2 0 3 2
7 8 12 5 5 2 3 0 2
8 10 9 7 4 4 2 2 0
Population 40 30 35 20 15 50 45 60

the bottom of Table 5. The city has only two ambulances and wants to maximize the number of
people who live within two minutes of an ambulance. Formulate an IP to accomplish this goal.

We let
(
1 if an ambulance is based in district j, where j = {1, 2, . . . , 8}
xj ≜
0 otherwise
nij ≜ the number of people serviced in district i by an ambulance based in district j
that is within a two minute radius, where i, j = {1, 2, . . . , 8}
pi ≜ the given population in district i, where i = {1, 2, . . . , 8}
tij ≜ the given travel time between districts i and j, where i, j = {1, 2, . . . , 8}

8 X
X 8
max z = nij (20)
i=1 j=1

subject to
8
X
xi ≤ 2 (21)
i=1
8
X
nij ≤ M xj ∀j ∈ {1, . . . , 8} (22)
i=1
8
X
nij ≤ pi ∀i ∈ {1, . . . , 8} (23)
j=1

11
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
nij ≤ M (aij ) ∀i, j ∈ {1, . . . , 8} (24)
tij − 2 ≤ M (1 − aij ) ∀i, j ∈ {1, . . . , 8} (25)
xi ∈ {0, 1} ∀i ∈ {1, . . . , 8} (26)
aij ∈ {0, 1} ∀i, j ∈ {1, . . . , 8} (27)
nij ≥ 0 ∀i, j ∈ {1, . . . , 8} (28)

In (20) we maximize the number of people within 2 minutes drive from an ambulance, while (21)
limits the number of ambulances. The link is made in (22) and (23) that if anyone is service by an
ambulance in j, then an ambulance must be based in j. The population limits the number of serviced
individuals in (23). The combination of (24) and (25) enforces the relationship that if tij > 2, then
nij ≤ 0, where M represents a significantly large value.

12
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
Winston (2004), Section 9.3, Problem A4†
Solve the following IP using the branch-and-bound algorithm.

max z = 4x1 + 3x2

subject to

4x1 + 9x2 ≤ 26
8x1 + 5x2 ≤ 17
x1 , x2 ≥ 0 and integer

The branch-and-bound tree is indicated in Figure 2. The optimal solution is x1 = 2, x2 = 0, with


an optimal objective function value of z = 8.
LP0

z =9.846
x1 =0.442
x2 =2.692
x1 ≤0 x1 ≥1
LP1
LP2
z =8.666•
z =9.400
x1 =0.000
x1 =1.000
x2 =2.888• x2 =1.800
x2 ≤2 x2 ≥3
LP7
x2 ≤1 x2 ≥2
LP8
LP3 LP4
z =6.000 Infeasible
x1 =0.000 z =9.000 Infeasible

x2 =2.000 x1 =1.500
x2 =1.000
Fathomed on lower
bound
x1 ≤1 x1 ≥2
LP5 LP6

z =7.000 z =8.600
x1 =1.000 x1 =2.000
x2 =1.000 x2 =0.200
Candidate
Lower bound =7
x2 ≤0 x2 ≥1
LP9 LP10
z =8.500 Infeasible
x1 =2.125
x2 =0.000

x1 ≤2 x1 ≥3
LP11 LP12
z =8.000 Infeasible

x1 =2.000
x2 =0.000
Candidate
Lower bound = 8

Figure 2: Branch-and-bound tree

13
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
Winston (2004), Section 9.5, Problem A2†
I am moving from New Jersey to Indiana and have rented a truck that can haul up to 1,00 cu f t
of furniture. The volume and value of each item I am considering moving on the truck are given
in Table 6. Which items should I bring to Indiana? To solve this problem as a knapsack problem,

Table 6: Volume and value for furniture problem

Volume
Item Value ($) (cubic feet)
Bedroom set 60 800
Dining room set 48 600
Stereo 14 300
Sofa 31 400
TV set 10 200

what unrealistic assumptions must we make?

The unrealistic assumptions relate to the fact that whatever don’t fit into the moving truck is
not moved. We let:
(
1 if item i is loaded onto the moving truck, where i = {1, . . . , 5}
xi ≜
0 otherwise
vali ≜ the given value of item i where i = {1, . . . , 5}
voli ≜ the given volume of item i, where i = {1, . . . , 5}

We then formulate the problem as follows.


5
X
max z = val1 xi (29)
i=1

subject to
5
X
voli xi ≤ 1100 (30)
i=1
xi ∈ {0, 1} ∀i ∈ {1, . . . , 5} (31)

We relax the binary variables x, and solve using the branch-and-bound algorithm as indicated in
Figure 3, using a backtracking approach.

14
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
LP0

z = 86.5
x1 = 0.125
x2 = 1
x4 = 1 x1 ≥ 1
x1 ≤ 0

LP1 LP10
z = 84 z = 84
x2 = 1 x1 = 1
x4 = 1 x2 = 0.5
x5 = 0.5
x5 ≤ 0 x2 ≤ 0 x2 ≥ 1
x5 ≥ 1
LP2 LP5 LP11 LP14

z = 83.66 • z = 81.25 z = 83.25 Infeasible

x2 = 1 x2 = 1 x1 = 1
x3 = 0.333• x4 = 0.75 x4 = 0.75
x4 = 1 x5 = 1
x4 ≤ 0 x4 ≥ 1
x3 ≤ 0 x3 ≥ 1 x4 ≤ 0 x4 ≥ 1
LP3 LP4 LP6 LP7 LP12 LP13

z = 79 z = 77.5 z = 72 z = 81 z = 74.66 •
Infeasible

x2 = 1 x2 = 1 x2 = 1 x2 = 0.833 •
x1 = 1
x4 = 1 x3 = 1 x3 = 1 x4 = 1 x3 = 0.33•
Candidate x4 = 0.5 x5 = 1 x5 = 1 x5 = 1
Lower bound = 79
Exceed lower Exceed lower Exceed lower
bound bound bound
x2 ≤ 0 x2 ≥ 1
LP8 LP9

z = 55 Infeasible

x3 = 1
x4 = 1
x5 = 1

Exceed lower
bound

Figure 3: Branch-and-bound tree

15
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
When using the Cutting Plane algorithm, we start of by writing the relaxed LP in its standard
form
5
X
max z = val1 xi (32)
i=1

subject to
5
X
voli xi + s1 = 1100 (33)
i=1
x1 + s2 = 1 (34)
x2 + s3 = 1 (35)
x3 + s4 = 1 (36)
x4 + s5 = 1 (37)
x5 + s6 = 1 (38)
xi ≥ 0 ∀i ∈ {1, . . . , 5} (39)
sj ≥ 0 ∀i ∈ {1, . . . , 6} (40)

After four simplex iterations, we find that the LP-relaxation is not optimal for the IP, and we
create the following cut from row 2, although row 3 could also have been used.

0.125 − 0.375x3 − 0.25x5 − 0.0013s1 − 0.25s3 − 0.5s5 ≤ 0 (41)

After four simplex iterations again, we find that the LP-relaxation plus the first cut is not optimal
for the IP, and we create the following cut from row 3, although row 2 could also have been used.

0.8750 − 0.625x3 − 0.75x5 − 0.9987s1 − 0.75s3 − 0.5s5 ≤ 0 (42)

And yet again, after four tiresome iterations we still do not have an IP solution. . . Cutting Plane
suck — but ten again the problem’s Branch-and-Bound solution wasn’t that easy either. I’ll mark
any attempt.

16
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
Winston (2004), Section 9.6, Problem B11†
Four jobs must be processed on a single machine. The time required to perform each job, the due
date, and the penalty (in dollars) per day the job is late are given in table 7. Use branch and

Table 7

Time Due Date Penalty


Job 1 4 days day 4 4
Job 2 5 days day 2 5
Job 3 2 days day 13 7
Job 4 3 days day 8 2

bound to determine the order of performing the jobs that will minimize the total penalty costs due
to delayed jobs.

Refer to section 9.6. We could let set I = {1, 2, 3, 4} denote the set of jobs and set J = {1, 2, 3, |II |}
of positions to place each job. Then we let
(
1 if job i ∈ I is in the j th ∈ J position,
xij ≜
0 otherwise.
The sequence of the jobs can be determined with the branch and bound technique. First, the job
that will be sequenced as last is determined, then the job for the 3rd position, etc.
Before we start with constructing the tree, it is interesting to determine an upper bound (ub)
for the solution. The penalty cost of a random solution can be used, for instance, job sequence
1→2→3→4. The total penalty cost for this sequence is 0 × 4 + 7 × 5 + 0 × 7 + 6 × 2 = 47. Also,
note that job 2 always will cause a penalty cost. The minimum penalty cost of job 2 is 3 × 5 = 15.
Every node can be represented by the start time of the last scheduled job, a lower bound on the
total penalty cost for the (incomplete) job sequence and the current upper bound. The branch and
bound tree is then given in Figure 4.
There are two optimal solutions; the job sequences 1→2→3→4 and 2→1→3→4 both have a
penalty cost of 47.

17
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •
start=14
ub=47
lb=0

x44 = 1
x14 = 1 x24 = 1 x34 = 1

start=10 start=9 start=12 start=11


ub=47 ub=47 ub=47 ub=47
lb=40 lb=60 lb=7 lb=12
Stop Stop
x13 = 1 x23 = 1 x43 = 1 x13 = 1 x23 = 1 x33 = 1

start=8 start=7 start=9 start=7 start=6 start=9


ub=47 ub=47 ub=47 ub=47 ub=47 ub=47
lb=39 lb=57 lb=15 lb=40 lb=57 lb=12
Stop Stop Stop Stop
lb+15>ub lb+15>ub
x12 = 1 x22 = 1 x12 = 1 x22 = 1

start=5 start=4 start=5 start=4


ub=47 ub=47 ub=47 ub=47
x21 = 1 lb=50 lb=50 x11 = 1 x21 = 1 lb=47 lb=47 x21 = 1

Not better Not better Best Best

Figure 4

Acronyms
ILP integer linear program

References
Winston, W. L. (2004). Operations Research: Applications and Algorithms. Brooks/Cole, Cengage
Learning, 4th edition.

18
[git] • Branch: main @ 71bc1d9; Author: Johan W. Joubert; Date: 2023-11-06 08:45:37 +0100 •

You might also like