You are on page 1of 23

A Branch-Price-and-Cut Algorithm for a Maritime

Inventory Routing Problem

Faramroze Engineer 1
Kevin Furman 2
George Nemhauser 3
Martin Salvelsbergh 3
Jin-Hwa Song 2

1 University

of Newcastle
Research and Engineering
3 Georgia Institute of Technology

2 ExxonMobil

CARMA Workshop

Newcastle, November 1st, 2009

Outline

IRP in maritime transportation

Problem description

A Time-indexed Column Generation Formulation

The Pricing Problem

problem characteristics

Cut generation

extended VRP cuts

new mixed 0-1 cuts

Branching
Computational results
Engineer, F. G.

Branch-Price-and-Cut for a Maritime IRP

2/22

Problem Description

Supply Point
Demand Point

Engineer, F. G.

Branch-Price-and-Cut for a Maritime IRP

3/22

Problem Description (Supply/Load Ports)


Q: Given a production profile for a port, when and how much inventory
should be picked up by a vessel?
Supply port constraints:
Port storage capacity and safety stock
Min and Max load limits per day

Port Inventory

max storage capacity


max load/day

min load/day

Time

safety stock

load points
Engineer, F. G.

Branch-Price-and-Cut for a Maritime IRP

4/22

Problem Description (Demand/discharge Ports)


Q: Given a demand profile for a supply port, when and how much inventory
should be dropped-off by a vessel?
Demand port constraints:
Port storage capacity and safety stock
Min and Max discharge limits per day

Port Inventory

max storage capacity

max discharge/day

min discharge/day
safety stock

Time
discharge points

Engineer, F. G.

Branch-Price-and-Cut for a Maritime IRP

5/22

Problem Description (Vessel)


Q: Given a time window of operation, how to route a vessel so that it is
available at a port to load/discharge when required?
Vessel constraints:
Vessel storage capacity
Draft limits
No inventory left at the end of voyage

Vessel Inventory

storage capacity

draft limit

Time

Engineer, F. G.

Branch-Price-and-Cut for a Maritime IRP

6/22

A Time-indexed Column Generation Formulation


The Master Problem
cost of voyage r

min

amount loaded/discharged
at port j and time t

r r

v V r Rv

s.t.
inventory at port
j and time t
production/demand
at port j and time t

I j,t

I j,t

b j,t

f jr,t r , j JS , t

1,..., T,

f jr,t r , j JD , t

1,..., T,

v V r Rv

I j,t

I j,t

b j,t

v V r Rv

0 Ij,t
r
r Rv
r

Q j,t ,

j JS

1,

V,

v
v

V, r R v
V, j JS

0,
zrj,t

{0,1},

JD , t

1,..., T,

JD , t

1,..., T.

r Rv

0-1 indicator of voyage r


loading/discharging at
port j and time t

Engineer, F. G.

Branch-Price-and-Cut for a Maritime IRP

7/22

A Time-indexed Column Generation Formulation


The Pricing Problem
Find min cost route and determine quantity loaded/discharged at each port
that is visited so that vessel capacity, draft limits, and min/max load/discharge
quantities are not exceeded.

Location

j1
j2

j3
jn
1

Time

Engineer, F. G.

Branch-Price-and-Cut for a Maritime IRP

8/22

The Pricing Problem: Characteristics


P
n0

e1

fe

Un1
n1

e2

fe

Un2
n2

e3

fe

Un3
n3

eK

fe

UnK
nK

For a given path P , A(P) {e1,..., eK },


and N(P) {n0 , n1,..., nK } , an optimal
allocation of load quantities can be
obtained by solving the linear relaxation of
the Multi-period Knapsack Problem (LPMKP):

min

c ei fei
i 1,...,K

s.t.

fei

Un j for all j 1,...,K , and

i 1,...,j

lei

fei

uei for all i 1,...,K .

Engineer, F. G.

Branch-Price-and-Cut for a Maritime IRP

9/22

The Pricing Problem: Characteristics


P
n0

e1

fe

Un1
n1

e2

fe

Un2
n2

e3

fe

Un3
n3

eK

fe

Proposition

UnK
nK

LP-MKP can be solved by:

For a given path P , A(P) {e1,..., eK },


and N(P) {n0 , n1,..., nK } , an optimal
allocation of load quantities can be
obtained by solving the linear relaxation of
the Multi-period Knapsack Problem (LPMKP):

1.

Initializi ng fe to le for all i 1,..., K, and

2.

increase load quantity on arcs greedily (i.e.


non-decreasing order of c ei ) until we either

i. reach the upper limit uei , or


ii. reach some limit Un on the total
i

amount of inventory allowed


before entering node ni .

min

c ei fei

Corollary

i 1,...,K

s.t.

fei

Un j for all j 1,...,K , and

i 1,...,j

lei

fei

uei for all i 1,...,K .

There exists an optimal allocation fe*i i 1,..., K


such that for each i 1,..., K either :
1. fe*i {le , ue }, or
i

2.

fe*i

fe* j for some k

Unk

i and

j {1,...,k } \ {i}

fe* j
Engineer, F. G.

{le j , ue j } for all j i 1,..., k.

Branch-Price-and-Cut for a Maritime IRP

10/22

Cuts for IRP: Port capacity cuts


Given port j and time interval [t1,t2], compute min number of loads/discharges
based on excess/deficit inventory and max load/discharge per day.
lP2=1/2

P1
j

+
t1

+
t1+1

t1+2

P2

Engineer, F. G.

3/2 loads at j
during [t1,t2].

t2+

lP1=1/2

Branch-Price-and-Cut for a Maritime IRP

11/22

Cuts for IRP: Port capacity cuts


Given port j and time interval [t1,t2], compute min number of loads/discharges
based on excess/deficit inventory and max load/discharge per day.
lP2=1/2

P1
j

+
t1

+
t1+1

3/2 loads at j
during [t1,t2].

t2+

t1+2

P2

lP1=1/2

Inventory before t1
Production during [ t1, t 2 ]

Ij,t1

b j,t

50
25 6 150

t t1,...,t 2

Capacity at j at t 2
Excess inventory
Max load per day
Min no. of loads at j during [t1,t 2]
Engineer, F. G.

Q j,t 2
50 150 75
Fjmax
125
75

Branch-Price-and-Cut for a Maritime IRP

75
125
75
2

12/22

Cuts for IRP: Port capacity cuts


Given port j and time interval [t1,t2], compute min number of loads/discharges
based on excess/deficit inventory and max load/discharge per day.
I j,t1
zrj,t

z j ( t1, t 2 )

v V r R v t t1,...,t 2

Engineer, F. G.

b j,t

Q j,t 2

t t1,...,t 2
max
j

Branch-Price-and-Cut for a Maritime IRP

13/22

Cuts for IRP: Port capacity cuts


Given port j and time interval [t1,t2], compute min number of loads/discharges
based on excess/deficit inventory and max load/discharge per day.
I j,t1
zrj,t

z j ( t1, t 2 )

b j,t

t t1,...,t 2
max
j

v V r R v t t1,...,t 2

0 I j,t1

Q j,t 2

Q j,t1

z j ( t1, t 2 )

Integer
feasible region
Continuous
feasible region

I j,t

Engineer, F. G.

b j,t
t t1,...,t 2

Branch-Price-and-Cut for a Maritime IRP

Q j,t 2

14/22

Cuts for IRP: Timing cuts


Given port j and time interval [t1,t2], compute timing of departures based on
excess/deficit inventory, production/demand rate, and vessel capacity.
P1

P2

P3

P4

+75
t1

At least 2 loads at j during


[t1,t2]
+75

t1+1

lP1=1

+75

t1+2 t2=t1+3

lP2=1/3

Engineer, F. G.

At least 2 visits at j during


[t1,t2]

+75

lP3=1/3

lP4=1/3

0+(1+2+3)/3=2 days wait


since t1 to pickup 150 units
of inventory during [t1,t2].

Branch-Price-and-Cut for a Maritime IRP

15/22

Cuts for IRP: Timing cuts


Given port j and time interval [t1,t2], compute timing of departures based on
excess/deficit inventory, production/demand rate, and vessel capacity.
P1

P2

P3

P4

+75

t1

At least 2 loads at j during


[t1,t2]
+75

t1+1

lP1=1

+75

At least 2 visits at j during


[t1,t2]

+75

t1+2 t2=t1+3

lP2=1/3

Inventory loaded during [ t1, t 2 ]

lP3=1/3

0+(1+2+3)/3=2 days wait


since t1 to pickup 150 units
of inventory during [t1,t2].

lP4=1/3

f jr,t

f j ( t1, t 2 )

150

v V r R v t t1,...,t 2

Inventory before t1

Ij,t1

Max load per day


Vessel capacity

Fj
Q

75
100

Production rate during [ t1, t 2 ]

b j,t

25

50

At least 2 visits required and at least one of these must load on or after t1 3
To load 150 units of inventory sum of last load time over all vessels t1 3
Engineer, F. G.

Branch-Price-and-Cut for a Maritime IRP

16/22

Cuts for IRP: Timing cuts


Given port j and time interval [t1,t2], compute timing of departures based on
excess/deficit inventory, production/demand rate, and vessel capacity.
If (k 1)Q

f j ( t1, t 2 ) I j,t1

kQ then :

1. at least k visits are required, and


Amount of inventory loaded
at j during [t1,t2] in excess of
what is available at t1-1

2. at least i visits must load on or after

t1

f j ( t1, t 2 ) I j,t1

for all i 1,...,k.

Engineer, F. G.

(i 1)Q

bmax
( t1, t 2 )
j

Constant overestimation of
production rate at j during [t1,t2]

Branch-Price-and-Cut for a Maritime IRP

17/22

Cuts for IRP: Timing cuts


Given port j and time interval [t1,t2], compute timing of departures based on
excess/deficit inventory, production/demand rate, and vessel capacity.
If (k 1)Q

f j ( t1, t 2 ) I j,t1

kQ then :

1. at least k visits are required, and


Amount of inventory loaded
at j during [t1,t2] in excess of
what is available at t1-1

2. at least i visits must load on or after

t1

f j ( t1, t 2 ) I j,t1

(i 1)Q

bmax
( t1, t 2 )
j

Constant overestimation of
production rate at j during [t1,t2]

Cumulative time of last load since


t1 to load fj(t1,t2) units of inv

for all i 1,...,k.

Integer
feasible region
Continuous
feasible region

f j ( t1, t 2 ) I j,t

k=1
Engineer, F. G.

k=2

k=3

k=4

Branch-Price-and-Cut for a Maritime IRP

18/22

Branching for IRP


1. Partition follow-on ports

2. Partition location/timing of first/last


load/discharge
j1

j2

j1

j1

j1

0-Branch

0-Branch

j3

j1

j2

j2

j2

j2

j3

j3

j3

j3

j4

1-Branch

j5

1-Branch
j4

j4

j4

0-Branch

3. Partition arc cut-set within network


t
j1

j4

1-Branch

4. Partition decision to load/discharge


at port and time

0-Branch

zrj,t

j2

{0,1},

r Rv

j3

1-Branch

j4

0-Branch 1-Branch
Engineer, F. G.

Branch-Price-and-Cut for a Maritime IRP

19/22

Computational Experiments: LP relaxation Results


Avg. % gap closed after
Inst.
Class

No. inst.

Avg. LP
gap (%)

+Cuts
+PP

+BC

PCC
only

VCC
only

TC only

All

(4,2,2,*)

45

10

10

23

33

59

65

(5,2,3,*)

142

14

65

67

(5,3,2,*)

114

39

43

(5,3,3,*)

24

17

24

29

34

59

62

(6,3,4,*)

66

15

17

26

26

61

65

(6,4,3,*)

48

14

16

18

20

49

50

(6,4,4,*)

27

14

19

30

34

45

49

(6,4,6,*)

10

14

17

44

54

32

62

(6,6,4,*)

28

11

13

26

32

31

45

PP Preprocessing, BC Boundary constraints, PCC Port capacity cuts,


VCC Vessel capacity cuts, TC Timing cuts

Engineer, F. G.

Branch-Price-and-Cut for a Maritime IRP

20/22
9/22

Computational Experiments: IP Results

Inst. Class

No. solved inst.

No.
inst.

Avg. gap (%)

Avg. time (s)

B&C

B&C+

BP&C

B&C

B&C+

BP&C

B&C

B&C+

BP&C

(4,2,2,*)

7,584

38

11

(5,2,3,*)

71

14

21,097

9,621

908

(5,3,2,*)

58

44

29,925

14,476

1,199

(5,3,3,*)

28

15

1.3

36,000

30,033

22,092

(6,3,4,*)

49

40

11

36,000

36,000

31,844

(6,4,3,*)

83

63

12

36,000

36,000

36,000

(6,4,4,*)

47

35

9.3

36,000

36,000

36,000

(6,4,6,*)

13

1.7

36,000

36,000

28,722

(6,6,4,*)

37

29

36,000

36,000

32,404

12

B&C Default CPLEX11.1


B&C+ - CPLEX11.1 + branching and cut enhancements
BP&C Our branch-price-and-cut algorithm
Note: 10 hour time limit used
Engineer, F. G.

Branch-Price-and-Cut for a Maritime IRP

21/22
9/22

Summary
A time-indexed column generation formulation
Demurrage time and costs (i.e. vessel idle and holding costs)
Capacities and production/consumption rates fluctuate over time
Enforce draught limits and require no inventory on the vessel at the end of its
voyage

A unique mixed 0-1 pricing problem


Extract properties amiable for solving exactly and efficiently through DP

Cuts
Extend VRP capacity cuts to mixed 0-1 case
Developed new mixed 0-1 cuts specifically for IRP

Computational results compare very favorably in terms of


producing strong lower bounds as compared to an alternative arcflow formulation and branch-and-cut approach.

Engineer, F. G.

Branch-Price-and-Cut for a Maritime IRP

22/22

Questions?

Engineer, F. G.

You might also like