1706
1706
1706
, r) to be the
number of time periods it takes for a vessel from the last terminal of route r
) D(r
, r) +
1}, ..., t 1, where p
0
is the rst time period in the whole time horizon. The set T
trr
is used
to forbid two routes to be used simultaneously by one vessel. In other words, T
trr
is the set of
time periods that a vessel will need from the beginning shipment port of route r
to the beginning
shipment port of route r, if the route r starts in time period t. See Figure 4 for an example.
Note that we in both the denition of I
jt
and the denition of T
trr
assume that all vessels
have the same velocity. This is for simplicity in notation, dierences in velocity can be taken into
account if we instead dene these sets (and the functions L and D) with respect to vessel or vessel
properties.
We use continuous variables to model storage volumes in terminals, shipment ports and customer
locations, direct ows from pulp mills to customers, ows between harbour terminals and inland
terminals and ows from terminals to customers. These variables are dened as
8
Routes
Time periods
}
}
}
D(r,r)
}
L(r)
r
r
t
p
0
}
T
trr
t-1 t-3
Figure 4: Illustration of the set T
trr
. In the gure two dierent routes are shown. Each bar is a
route starting at a certain time. If a vessel begins route r in time period t, then it cannot use the
route r
in any period t
T
trr
= {t 3, t 2, t 1}.
l
H
jpt
, l
L
jpt
,
l
M
jpt
, l
C
jpt
= quantity stored in location j of product p P at (the end of)
time period t T in harbour terminal (H),
inland terminal (L), shipment port (M) or in customer location (C)
y
jrpt
= direct ow from shipment port j M to customer r C with
product p P in time period t T
u
krpt
= ow from terminal k J to customer r C of product p P in
time period t T
w
hkpt
= ow from harbour terminal h H to inland terminal k L of
product p P in time period t T
The variables l
H
jp0
,l
L
jp0
,l
M
jp0
and l
C
jp0
are the initial storage volumes respectively, in location j of
product p P. There is one binary variable in the model for every vessel (including the spot
vessels), route and time period in combination. Let I denote the set of all route ow indices and
dene the route variables as
z
srt
= 1 if vessel s V uses route r R in time period t T, 0 otherwise
x
sip
= ow on vessel s V , index i I with product p P
There are parameters for supply, demand, capacities:
9
S
jpt
= supply of product p P in shipment port j M in time period t T
D
rpt
= demand of product p P by customer r C in time period t T
B
k
= handling capacity in shipment port / terminal k M J per time period
K
s
= shipping capacity of vessel s V
The constraints are as follows,
l
M
jpt
= l
M
jp,t1
sV
iI
jt
x
sip
rC
y
jrpt
+S
jpt
, j M, p P, t T (1)
l
H
jpt
= l
H
jp,t1
+
sV
iI
jt
x
sip
rC
u
jrpt
kL
w
jkpt
, j H, p P, t T (2)
sV
iI
kt
pP
x
sip
B
k
, k H M, t T (3)
hH
pP
w
hkpt
B
k
, k L, t T (4)
l
L
kpt
= l
L
kp,t1
+
hH
w
hkpt
rC
u
krpt
, p P, k L, t T (5)
l
C
rpt
= l
C
rp,t1
+
jM
y
jrpt
+
jJ
u
jrpt
D
rpt
, r C, p P, t T (6)
iI
R
rt
pP
x
sip
K
s
z
srt
, s V, r R, t T (7)
rR
z
srt
1, s V
C
, t T (8)
z
srt
= 1
T
trr
z
sr
t
, r R, s V
C
, t T (9)
10
We have ow conservation in the shipment ports (1) and ow conservation in the harbour
terminals (2). Next follows capacity constraints for harbour terminals and shipment ports (3) and
capacity constraints at inland terminals (4). There are ow conservation constraints for inland
terminals in (5) and ow conservation in customer destinations, (6). The variable u
khpt
in (5)
and the variables y
jrpt
and u
jrpt
in (6) can in the constraints be delayed with the delivery time,
although it is (for simplicity in notation) left out in the formulation above. The route scheduling
denitions are comprised in the constraints (7), (8) and (9). In (7) the constraints simply allow
ow up to maximum capacity for vessel s on route r in time period t, if the route is used, that is
if z
srt
= 1. All vessels, including spot vessels comply with the constraints in (7). The constraints
in (8) treat the case that a vessel can not begin more than one route in the same time period.
These constraints together with the constraints in (9) force the vessels in V
C
to use a route in
every time period, either on water or ported in a shipment port on a trivial route. The vessel s in
(9) either begins the route r in period t or began a route r
sV
C
c
return
|T|
rR
tT
L(r)z
srt
where c
return
is the cost per period on water and |T| is the length of the whole time horizon.
The total number of return periods is expressed within the bracket. The problem is
min
jM
pP
tT
c
M
j
l
M
jpt
+
jH
pP
tT
c
H
j
l
H
jpt
+
jL
pP
tT
c
L
j
l
L
jpt
+
jC
pP
tT
c
C
j
l
C
jpt
+
jM
rC
pP
tT
c
Y
jr
y
jcpt
+
kJ
rC
pP
tT
c
U
kr
u
kcpt
+
hH
kL
pP
tT
c
W
hk
w
hkpt
+
sV
iI
pP
c
X
si
x
sip
+
sV
rR
tT
c
Z
sr
z
srt
s.t. the constraints (1) (9)
all variables 0
z {0, 1}
The coecients c
M
j
, c
H
j
, c
L
j
and c
C
j
are dependent on if the storage facilities are owned by Sodra
Cell, where they are located and approximations of changes in market prices. The c
Y
j
, c
U
j
and c
W
hk
are estimated from historical data and depend on distances and delivery agreements. The xed
costs for routes, c
Z
sr
, are determined by port contracts, distances (with the return costs) and vessel
dependent costs. The coecient c
X
si
includes the loading and unloading cost for the pulp volume
and is dependent on port and vessel contracts.
11
Solution Method
The idea of the algorithm is to repeatedly solve a limited MIP using a branch and bound search
algorithm. Each limited MIP comprises of a short time horizon, and the overall problem is solved
when all time periods have been considered in at least one limited MIP.
In practise we begin with a selection of an initial set of periods. To this solution range we add
an extension, where the binary variables are relaxed, that serves as a forecast range. Ideally we
would like to include the full remaining period in order to get information about the demand over
the entire planning period. In most cases, however, the demand prole is rather stable and we can
keep it down and focus on avoiding problems (with low future exibility at the integer solution to
be xed) in a local sense. Over the current horizon (the solution range with the forecast range), we
solve the underlying MIP using branch and bound. Then an in advance dened part of the obtained
solution, the frozen periods, is saved and considered as determined. We continue by moving the
solution range to a new set of time periods. The new solution range extends the horizon with new
time periods but keeps a common interval with the previous range (all but its frozen periods). In
Figure 5 we illustrate a schedule for one vessel and the overlapping horizons.
Time periods
P
o
r
t
s
current horizon
forecast range frozen periods
solution range
Figure 5: The rolling time horizon for an example of a schedule for one vessel.
The frozen periods dene new initial storage volumes. The routes that begin in the overlapping
periods are set free, non xed, while the routes being xed dene a starting position for the vessels,
see Figure 6. In the gure the route r
1
is not xed, while r
2
and r
3
are considered as determined.
In the case of r
1
it is necessary to model frozen periods from the previous range in the current
horizon. In the model this is included by letting the constraints in (9) consider all the relevant
time periods.
The repeated solving continues until the whole planning horizon is covered. Finally, keeping the
(binary) route variables xed, we solve the linear program for the whole horizon to nd optimal
ows.
All routes are generated in advance by looping through all combinations of shipment ports and
harbour terminals (with a maximum number of ports and terminals). Depending on the data set,
12
Time periods r
1
r
2
Forecast range
r
3
frozen periods
Previous
Frozen periods
Figure 6: Routes that overlap between the solution ranges.
for instance what the demanded products from one particular customer are, the model size can be
signicantly reduced. Therefore a preprocessing phase initializes the model. It includes reduction
of constraints and variables without model simplications. The reduction handles questions like,
Only available products at a pulp mill throughout the horizon can be supplied from the mill.
Only products demanded from a customer can be transported to the customer.
A terminal can only handle products that can be delivered to a customer from the terminal.
A route can only carry products that can be supplied from one of the visited mills and
delivered to one of the visited harbour terminals.
Unexpected infeasibilities and inconsistencies in data are treated with dummy variables d
rpt
,
dummy ow to customer r with product p in time period t. The dummy variables are included
with high cost in the objective function and in the ow conservation constraints for customers, (6).
There are two main reasons to use these variables. First, and most important, is that, in practice,
there often, if not always, are errors in the large set of data coming from the company database.
By having these dummy variables makes it very easy to identify these problems so that they can
be xed. Second, in our tests we sometimes got a solution that was slightly infeasible. In all cases
the reason was that a very small volume of some product was missing. In practice this is easily
xed once the solution process terminates as the supply and demand only are estimates. Also, in
practice trucks can be used for quick deliveries.
Algorithm summary
Step 0 Set a period length and generate the set of routes. Initialize the algorithm with the last
time period of the whole time horizon P
N
, a rst start period p
0
and the solution range T
with length p. Let p
1
:= p
0
be the rst period of the solution range. Dene F as the set of
frozen periods and let q be the number of periods to x in each iteration.
13
Step 1 Solve the MIP over T = {p
1
, ..., p
1
+ p 1} with the additional forecast range
Step 2 Fix variables in F = {p
1
, ..., p
1
+ q 1}
Step 3 If p
1
+p +q > P
N
then goto step 4, else let p
1
= p
1
+q, update T and F and goto step 1
Step 4 If p
1
+ p 1 = P
N
then goto step 5, else let p
1
= P
N
p + 1, update T and F and goto
step 1
Step 5 Unx all ow variables and solve LP with T = {p
0
, ..., P
N
}. Stop.
The most time consuming step is step 1, where the MIP is solved, either to optimality or until
a stop criteria (MIP-gap or time limit) is fullled. In Step 5 all routes are xed and only an LP
problem is solved.
The condition in step 3 is true if the current or the next solution range is the nal range. In
step 4, if the condition p
1
+p1 = P
N
is not satised, we include the remaining time periods. Here
the forecast range can either be included, if data is available, or be excluded completely. There is
no guarantee for optimal nor feasible solutions as soon as the solution range is shorter than the
whole time horizon.
Computational Results
Five problem instances have been used for computational experiments and a total number of 60
runnings were performed using dierent parameters for the instances. We followed Sodras manual
planning horizon and set the time discretization in all instances to daily level (24 hours) and the
whole horizon length to 40 days. The algorithm is implemented in AMPL version 10.6 with the
solver CPLEX 7.0 and we used a Pentium 4, 1700 MHz, 1 GB RAM computer running windows NT.
In our implementation we set up the problem for the whole time horizon in AMPL, though we
considered only the current horizon while solving. To include the whole horizon had the advantage
to let us calculate the objective function value of the LP relaxation.
Cases
Most of the data was taken from a real world case (computed by sta at Sodra Cell) from the
planning period April to June 2003. Some of the spot vessel costs were estimations, including costs
for ows on spot routes. Initial storages were estimated from an average storage volume and all
vessel velocities were set to the average speed of the TC-vessels. The demand was approximated
from the actual deliveries made by Sodra during the time considered.
Depending on the time discretization dierent capacities apply to the ports. To load a vessel
with a maximum capacity of 5600 tonnes takes around eight hours. With two feasible eight hour
shifts in a port, and assuming that only one vessel can be ported at the time, this gives an upper
bound of 11 200 tonnes of pulp per day. In all instances we had two spot vessels dened, with a
14
maximum capacity of 2600 tonnes of pulp. They were modeled as TC-vessels without return costs
to restrict the number of available spot vessels.
All routes were generated as a list of ports and every port was given a time oset relative to
the rst port in the route. The length of a route (in average 3 to 10 days) was set to the sum of
travel time, loading and unloading time at ports. This estimated time was rounded up to nearest
number of time periods. Due to this, a route never visited two ports in the same time period.
The instances are shown in Table 1 as well as the size of the problems in terms of variables and
constraints. The column variables includes the binary variables. The numbers in all columns
refer to the problem modeled for the whole planning horizon.
Instance |R| |J| |S| |C| |P| |M| #Binaries #Variables #Rows
1a,1b,1c 27 3 2 101 12 3 3 984 36 890 10 500
2a,2b,2c 36 3 2 101 12 3 5 240 58 318 12 770
3 360 8 2 110 12 4 62 630 478 557 128 341
4 660 11 2 118 12 4 112 090 873 397 227 798
5 1253 31 3 269 30 4 211 340 1 273 194 431 611
Table 1: Problem instances. The columns are; number of routes (|R|), terminals (|J|), TC-vessels
(|S|), customers locations (|C|), products (|P|) and mills (|M|). The number of variables and rows
for the instances 1a, 1b and 1c is the average number, as well as for 2a, 2b and 2c.
The instances 1 to 4 are based on a reduced set of data, with no dierences between the
instances 1 and 2 except in the number of routes modeled. For the instances 1a-c we generated
direct routes (one shipment port to one terminal) and all combinations of two shipment ports and
one terminal. The instances 2a-c also include the combinations of one shipment port and two
terminals. The third and the fourth instances are slightly larger. They have more ports, some
routes with four ports and more customers. The fth instance correspond to the real world case
and includes the routes with up to four ports in sequence. Among the routes with two terminals
we included only the combination that gave the shortest distance, measured in time periods. To
take the limited supply into account we let all combinations of shipment ports be included and in
the case that more than one combination gave the same time, both were included.
In the problem instances one to four, there are two TC-vessels scheduled on long term contract
whereas in the instance ve all three TC-vessels are included.
Solution quality
The instances 1 and 2 have been solved with three dierent sets of data, selected from dierent
planning periods. In Table 2 these planning periods are numbered a to c. The table displays the
objective function values obtained with dierent parameters for the algorithm. Row LBD is the
best known lower bound for the problem for the whole horizon. The row (40/*/1) is the solution
from the branch and bound search over the whole time horizon. This correspond to solve the
whole model in one instance. The following rows are the objective function values obtained for
dierent parameter settings (Le/Fr/Gap), in order, the length of the solution range (excluding the
ve forecast periods), the number of frozen periods and the maximum MIP-gap accepted. Some
15
parameter settings gave infeasible solution marked with inf in the table. The instance 5 was only
solved with the maximum MIP-gap 4%. In this case we could not solve the entire model directly.
(Le/Fr/Gap) 1a 1b 1c 2a 2b 2c 3 4 5
40/*/1 2 216 2 213 2 332 2 199 2 208 2 330 3 543 4 767 -
20/5/4 2 263 2 304 2 428 2 319 2 380 2 469 3 672 4 881 13 367
20/5/1 2 246 2 247 2 335 2 250 2 290 2 331 3 635 4 897 -
20/10/4 2 237 2 253 2 365 2 357 2 319 2 372 inf 4 812 13 254
20/10/1 2 223 2 198 2 279 2 253 2 254 2 296 inf 4 815 -
10/5/4 2 216 2 252 2 298 2 212 2 273 2 348 3 506 inf 13 218
10/5/1 2 214 2 229 2 285 2 223 2 199 2 287 3 501 4 805 -
LBD 2 181 2 179 2 256 2 178 2 177 2 253 3 489 4 719 13 111
Table 2: Objective function values for dierent problem instances and parameter settings. The rst
row (40/*/1) is the objective from the the branch and bound search on the problem instances over
the whole time horizon. The last rows (LBD) is the objectives of the strengthened LP relaxation.
The inf means that dummy variables were active in the solution found within time limit.
Better results were obtained with the short solution range of 10 time periods and a 4% MIP-gap
than with the 20 periods range with a 4% MIP-gap for all instances, except for the fourth instance
where no feasible solution was obtained with the setting. In the cases when no solution were found
it may be due to the fact that a rather large proportion of the horizon was frozen together with
relatively long routes. Compared to the settings with a 1% gap, the solution quality is higher with
a lower gap, and for the instances 1b and 1c the setting 20/10/1 obtained the overall best solution.
For only two instances the B&B search over the entire horizon obtained the best solution. Cases
2a, 2b, 2c have larger solution space (more routes) as compared to 1a, 1b and 1c respectively. The
fact that the solutions from case 1 often have better solutions comes with the fact that the solver
stops directly once the convergence tolerance in the solver is met. The same argument holds for
the fact that row (40/*/1) theoretically should have the best solution.
Solution time
The time limit for each branch and bound search was set to one hour, except for the whole horizon,
which was limited to two hours (or a MIP-gap of one percent). Table 3 shows the solution time in
seconds used by the algorithm for every instance and parameter setting. The italic entry in every
column is the time for the setting that obtained the best solution found. The settings where one
or more branch and bound search exceeded the time limit is shown in the table as >2 hours.
1a 1b 1c 2a 2b 2c 3 4 5
40/*/1 2h 2h 2h 2h 2h 2h 2h 5 130
20/5/4 140 45 18 385 188 30 815 1 432 1 655
20/5/1 739 657 102 1 562 762 213 1 338 1 931 -
20/10/4 108 49 37 57 176 46 >2h 1 551 2 383
20/10/1 384 4 120 4 926 632 >2h >2h >2h 3 447 -
10/5/4 19 17 25 23 28 50 2 710 1 044 1 485
10/5/1 146 520 1 272 267 1 314 1 996 >2h 1 950 -
Table 3: Solution time in seconds for each instance and parameter group.
16
There were large dierences between the time requirements for the instances 1a, 1b and 1c and
between 2a, 2b and 2c. That is, the variation in solution time was dependent on the problem size
and also on the considered planning period. The setting 20/10 compared to 20/5 was more time
consuming, even though the number of evaluated horizons was less.
Concluding remarks
We have proposed a mixed integer programming model for a dicult combined distribution and
ship scheduling problem. The problem includes many products and multiple pick up and deliveries.
The model is chosen such that we can identify errors and in the data and always guarantee a near
feasible solution. Based on feed back from the manual planners we know that the model accurately
describe the actual real problem.
The solution method is based on a rolling time horizon and branch and bound to nd good
feasible schedules and optimal pulp ows for large scale practical problems. The approach is
insensitive to problem size as there is a possibility to control the size of the underlying optimization
problem. The computational experiments are worked out on a set of small test cases that are
compared with a direct approach with branch and bound, and on a full scale real world case.
The formulated problem with the suggested solution approach was solved and we obtained
acceptable solutions within reasonable time limits. The algorithm is very ecient compared to
manual planning. Although there was no guarantee that the suggested algorithm nds solutions,
the computational results indicated that even with very short solution ranges (in the algorithm)
feasible schedules are obtained.
The selection of parameters in the approach such as length of a time period, current horizon,
frozen period, forecast range is depending on a number of aspects. Some are route lengths, varia-
tions in demand and supply and type of operations. It is therefore dicult to establish a general
set of parameter values. Instead these need to be adjusted for each application. This is however
not a dicult issue as it is rather easy to nd a suitable set of values (and there is only a few
parameters) once the application and case is known.
An interesting future study involves the possibility to speed up the solution process by starting
with a limited set of potential routes and once a feasible one is found the set is dynamically
increased.
References
1 J.F. Shapiro (ed) (2001) Modeling the Supply Chain. Duxbury
2 A. Drexl and A. Kimms (1997). Lot sizing and scheduling - survey and extensions, European
Journal of Operational Research 99: 221235
3 M. Christiansen, K. Fagerholt and D. Ronen (2004). Ship Routing and Scheduling: Status and
Perspectives, Transportation Science 38: 118
17
4 L.H. Appelgren (1969). A column generation algorithm for a ship scheduling problem, Trans-
portation Science 3: 5368
5 L.H. Appelgren (1971). Integer programming methods for a vessel scheduling problem, Trans-
portation Science 5: 6478
6 K. Fagerholt (2001). Ship scheduling with soft time windows - An optimisation based approach,
European Journal of Operational Research 131: 559571
7 K. Fagerholt and M. Christiansen (2000). A combined ship scheduling and allocation problem,
Journal of the Operational Research Society 51: 834842
8 D. Carlsson and M. Ronnqvist (1999) Wood ow problems in Swedish forestry, Edited by G.
Frumerie, Report No. 1, The Forestry Research Institute of Sweden, 48 pages, Sweden
9 D. Bredstrom, J.T. Lundgren, R. Ronnqvist, D. Carlsson and A. Mason (2004). Supply chain
optimization in the pulp mill industry - IP models, column generation and novel constraint
branches, European Journal of Operational Research 156: 222
10 D. Bredstrom, J.T. Lundgren, M. Ronnqvist, D. Carlsson and A. Mason (2001). Supply chain
optimization in the pulp mill industry, Proceedings of the Logistics Research Network 6th
Annual Conference, Heriot-Watt University, 13-14 September, 6774
11 W.J. Bell, L.M. Dalberto, M.L. Fisher, A.J. Greeeld, R. Jaikumar, P. Keida, R.J. Mack
and P.J. Prutzman (1983). Improving the Distribution of Industrial Gases with an On-line
Computerized Routing and Scheduling Optimizer, Interfaces 13: 423
12 R.C. Larson (1988). Transporting Sludge to the 106-Mile Site: An Inventory/Routing Model
for Fleet Sizing and Logistics System Design, Transportation Science 22 186198
13 E.J. Beltrami and L.D. Bodin (1974). Networks and Vehicle Routing for Municipal Waste
Collection, Networks 4: 6594
14 M. Christiansen (1999). Decomposition of a Combined Inventory and Time Constrained Ship
Routing Problem, Transportation Science 33 316
15 D.E. Blumenfeld, L.D. Burns, C.F. Daganzo, M.C. Frick and R.W. Hall (1987). Reducing
Logistics Costs at General Motors, Interfaces 17: 2647
16 B. Karami, S.M.T. Fatemi Ghomi and J.M. Wilson (2003). The capacitated lot sizing problem:
a review of models and algorithms, Omega 31: 365378
17 C. Merce and G. Fontan (2003). MIP-based heuristics for capacitated lotsizing problems, In-
ternation Journal of Production Economics 85 97111
18 P. Eveborn and M. Ronnqvist (2004). Scheduler A system for sta planning, Annals of
Operations Research, 128, 2145
19 A.D. Dimitriadis, N. Shah and C.C. Pantelides (1997). RTN-based Rolling Horizon Algorithms
for Medium Term Scheduling of Multipurpose Plants, Computers chem. Enginering 21: 1061
1066
20 S. Axsater and C. Schneewiess (eds) (1986) Hierarchical production planning: Tuning aggre-
gate planning with sequencing and scheduling, Multistage production planning and inventory
control. Berlin
18