21.12.2012 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!