A Branch-and-Price Approach for a Ship Routing Problem ... - gerad
A Branch-and-Price Approach for a Ship Routing Problem ... - gerad
A Branch-and-Price Approach for a Ship Routing Problem ... - gerad
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
A <strong>Branch</strong>-<strong>and</strong>-<strong>Price</strong> <strong>Approach</strong><br />
<strong>for</strong> a <strong>Ship</strong> <strong>Routing</strong> <strong>Problem</strong><br />
with Multiple Products <strong>and</strong><br />
Inventory Constraints<br />
Rutger de Mare 1<br />
Dennis Huisman 2,3<br />
1. ORTEC, Gouda<br />
2. Econometric Institute <strong>and</strong> ECOPT, Erasmus Univ. Rotterdam<br />
3. Dept. of Logistics, Netherl<strong>and</strong>s Railways<br />
1
Outline<br />
• Practical Application<br />
• <strong>Problem</strong> description<br />
• Mathematical Formulation<br />
• Column generation algorithm<br />
2
Practical Application<br />
Oil Company<br />
• 1 refinery (no inventory constraints)<br />
• ±12 depots (one per harbor)<br />
• ± 8 grades<br />
• ± 7 ships<br />
• compartments (differ in size, 3-6)<br />
15<br />
10<br />
40 30<br />
10<br />
3
15<br />
10<br />
40 30<br />
10<br />
4
Practical Application<br />
• There is a schedule<br />
• Question: Can we adjust the schedule due<br />
to changes in the data?<br />
• We construct an “optimal” schedule from<br />
scratch<br />
5
<strong>Problem</strong> Description<br />
• <strong>Ship</strong>s<br />
– Compartments with capacities<br />
– Travel times <strong>for</strong> each possible trip<br />
– Fixed (un)loading times<br />
– Wait at harbor is possible<br />
• Harbor<br />
– Inventory constraints<br />
6
Inventory levels<br />
Upper Alarm<br />
Zone<br />
Preferred<br />
Inventory Zone<br />
Lower Alarm<br />
Zone<br />
Unpumpables<br />
Hard Maximal<br />
Inventory Level<br />
(tank top/capacity)<br />
Soft Maximal<br />
Inventory Level<br />
(Alarm Level +)<br />
Actual Inventory<br />
Level<br />
Soft Minimal<br />
Inventory Level<br />
(Alarm Level -)<br />
Hard Minimal<br />
Inventory Level<br />
(Unpumpable Level)<br />
0<br />
Ullage<br />
7
Inventory levels<br />
8
Notation (Christiansen, 1998)<br />
• (i,m): harbor i, number of arrival m<br />
• (i,m,j,n): traveling from (i,m) to (j,n)<br />
• V: set of ships<br />
• H: set of harbors<br />
• G: set of grades<br />
• C: set of compartments<br />
9
Decision Variables<br />
• λ cr: compartment c travels schedule r<br />
• θ igs: harbor i follows <strong>for</strong> grade g<br />
sequence s<br />
10
Mathematical Formulation (1)<br />
min<br />
∑∑<br />
c∈Cr∈R c<br />
Sailing cost route r<br />
(only <strong>for</strong> c=1)<br />
C<br />
cr<br />
∑∑ ∑<br />
C λ + C θ<br />
cr<br />
i∈Hg∈G s∈S<br />
S ig<br />
HG<br />
igs<br />
Penalties <strong>for</strong> violating<br />
alarm levels<br />
igs<br />
11
Mathematical Formulation (2)<br />
c∈C<br />
∑∑<br />
v∈Vr∈R<br />
∑<br />
r∈R<br />
c<br />
∑<br />
c<br />
B<br />
Q<br />
imc<br />
*<br />
v<br />
r<br />
C<br />
imcgr<br />
λ<br />
c<br />
*<br />
v<br />
cr<br />
r<br />
+<br />
−<br />
∑<br />
s∈S<br />
∑<br />
s∈S<br />
ig<br />
Y<br />
Q<br />
imgs<br />
HG<br />
imgs<br />
igs<br />
igs<br />
= 1<br />
=<br />
0<br />
∀i,<br />
m,<br />
1 if (i,m) is in schedule r to serve g 0 if (i,m) is in sequence s to (un)load g<br />
λ<br />
Quantity of g (un)loaded at (i.m)<br />
in schedule r<br />
θ<br />
θ<br />
∀i,<br />
m,<br />
g<br />
g<br />
Quantity of g (un)loaded at (i,m)<br />
in sequence s<br />
12
Mathematical Formulation (3)<br />
∑∑<br />
v∈Vr∈R<br />
∑<br />
r∈R<br />
c<br />
*<br />
v<br />
c<br />
*<br />
v<br />
T<br />
T<br />
C<br />
imc<br />
C<br />
imc<br />
*<br />
v<br />
r<br />
*<br />
v<br />
r<br />
λ<br />
λ<br />
Time (un)loading starts at (i,m)<br />
in schedule r, first compartment<br />
c<br />
*<br />
v<br />
r<br />
c<br />
*<br />
v<br />
r<br />
−<br />
Time (un)loading starts at (i,m)<br />
in schedule r, first compartment<br />
−<br />
r∈R<br />
s∈S<br />
∑<br />
∑<br />
c<br />
ig<br />
T<br />
T<br />
C<br />
imcr<br />
HG<br />
imgs<br />
λ<br />
θ<br />
cr<br />
igs<br />
=<br />
= 0<br />
0<br />
∀i,<br />
m,<br />
g<br />
Time (un)loading starts at (i,m)<br />
in sequence s<br />
∀v,<br />
i,<br />
m,<br />
c<br />
Time (un)loading starts at (i,m)<br />
in schedule r, compartment c<br />
13
14<br />
Mathematical Formulation (3)<br />
)<br />
,<br />
,<br />
,<br />
(<br />
,<br />
}<br />
1<br />
,<br />
0<br />
{<br />
,<br />
,<br />
0<br />
,<br />
0<br />
,<br />
1<br />
1<br />
n<br />
j<br />
m<br />
i<br />
c<br />
X<br />
s<br />
g<br />
i<br />
r<br />
c<br />
g<br />
i<br />
c<br />
c<br />
ig<br />
c<br />
R<br />
r<br />
cr<br />
imjncr<br />
igs<br />
cr<br />
S<br />
s<br />
igs<br />
R<br />
r<br />
cr<br />
∀<br />
∈<br />
∀<br />
≥<br />
∀<br />
≥<br />
∀<br />
=<br />
∀<br />
=<br />
∑<br />
∑<br />
∑<br />
∈<br />
∈<br />
∈<br />
λ<br />
θ<br />
λ<br />
θ<br />
λ
<strong>Branch</strong>-<strong>and</strong>-<strong>Price</strong> Framework<br />
Add initial columns to RMP<br />
Solve LP relaxation of the RMP<br />
Solve HGP <strong>for</strong> each HG Solve CP <strong>for</strong> each C<br />
Find good columns<br />
<strong>for</strong> each Harbour-Grade<br />
Add new columns<br />
to RMP<br />
Good columns found?<br />
Yes No<br />
Find good columns<br />
<strong>for</strong> each Compartment<br />
Find integer<br />
solution RMP<br />
15
Compartment Sub problem<br />
• Node: harbor arrival plus quantity per grade<br />
• Reduced cost per arc:<br />
– Fixed<br />
– Time dependent<br />
16
Compartment Sub problem<br />
s<br />
• Shortest path from s to any other node (taking<br />
into account time aspect)<br />
• Can be solved with Dynamic Programming<br />
(Christiansen, 1998/9)<br />
17
<strong>Branch</strong>ing<br />
• Arcs in the network<br />
• Aggressive 1-branch<br />
18
Implementation Issues<br />
• Pricing problem: exact or heuristically?<br />
• Difficult to get a feasible solution of the<br />
model: relax <strong>and</strong> penalize constraints?<br />
• Cycles in the compartment sub problem<br />
(generates redundant columns)<br />
19
Results<br />
• Will follow<br />
20
Questions?<br />
21