Professional Documents
Culture Documents
A Variable Neighborhood Search For The Multi-Product Inventory Routing Problem
A Variable Neighborhood Search For The Multi-Product Inventory Routing Problem
com
Abstract
We address a multi-product inventory routing problem, and propose a two-phase
variable neighborhood search (VNS) metaheuristic to solve it. In the first phase,
VNS is used to solve a capacitated vehicle routing problem, period by period, to find
an initial solution without taking into account the inventory. In the second phase,
VNS iteratively improves the initial solution while minimizing both the transporta-
tion and inventory costs. We propose an efficient heuristic to determine the amount
of products to collect from each supplier at each time period. This heuristic is
applied at each local search move, and during the exploration we use priority rules
of suppliers and vehicles, based on the current delivery schedule over the planing
horizon. Computational results show the efficiency of the two-phase approach pro-
posed.
Keywords: Inventory, Routing, Metaheuristic, VNS.
1 Introduction
In this paper, we address the multi-product inventory routing problem (IRP),
which is an integrated distribution problem, concerned with the relation of
two important activities of the supply chain, the management of both routes
1571-0653/$ – see front matter © 2012 Elsevier B.V. All rights reserved.
doi:10.1016/j.endm.2012.10.013
92 A. Mjirda et al. / Electronic Notes in Discrete Mathematics 39 (2012) 91–98
and inventory [5,6]. It therefore combines a vehicle routing problem, where the
vehicle routes to visit suppliers must be determined, and an inventory problem,
concerning the management of the quantities of product to be collected at each
supplier, at each time period. We propose a Variable Neighborhood Search
(VNS) algorithm for this problem. VNS [4] is a metaheuristic based on the
systematic exploration of different neighborhood structures, within a local
search routine. This method has been used in numerous classes of problems,
namely in different variants of vehicle routing problems (for example [3]).
Surveys of some of these applications can be found in [1,2]. We consider a
time horizon composed by T different periods. At each time period t ∈ τ =
{1, . . . , T }, an assembly plant has a demand of dit units of product i ∈ N =
{1, . . . , n}. Each product is available at the corresponding supplier i. There
is a fleet of vehicles v ∈ M = {1, . . . , m}, with a capacity C. At each period
t, vehicle v departs from the depot 0, visits a set of n(t, v) ≤ n suppliers and
goes to the assembly plant n + 1. The number of vehicles used in period t is
denoted by m(t). Let N(t, v) = {1, . . . , n(t, v)}, N − (t, v) = N(t, v)−{n(t, v)},
N + (t, v) = N(t, v) + {n(t, v) + 1} and M(t) = {1, . . . , m(t)}. There are three
different costs to be taken into account. A fixed cost, F , for using one vehicle
in one period, the cost of traveling from supplier i to supplier j, cij , and the
inventory cost, hi , of keeping one unit of product from supplier i, for one
period of time, in the assembly plant. The paper is organized as follows. In
section 2, we describe our two-phase variable neighborhood search approach
for the IRP. In section 3, we present computational results and, finally, in
section 4 we draw some conclusions.
ΨDrop (Stv , i) = {Stv | ∀j ∈ N − (t, v), Stvj
= Stvj ; if j < i, Stvj = Stv(j+1) if
j ≥ i};
0
ΨAdd (Stv , i, Stvk ) = {Stv | ∀j ∈ N + (t, v), Stvj
= Stvj if j < i, Stvj = Stv(j−1) if
0
j > i; Stvi = Stvk };
0 0
ΨChange (Stv , i, Stvk ) = {Stv | Stvi = Stvk ; ∀j ∈ N(t, v) − {i}, Stvj = Stvj }.
Using these three elementary moves on routes, we define seven different neigh-
borhood structures within the solution space:
Shift neighborhood
A neighbor of a solution S is obtained by changing the order on which a
supplier is visited, in one route of the solution.
N1 (S) = {S | ∀t ∈ τ, ∀v ∈ M(t), ∀i1 , i2 ∈ N(t, v), Stv
= ΨAdd (ΨDrop (Stv , i1 ),
i2 , Stvi1 )}.
Exchange neighborhood
A neighbor of a solution S is obtained by exchanging a supplier of one route
by another supplier of a route of the same period.
N2 (S) = {S | ∀t ∈ τ, ∀v1 , v2 ∈ M(t), ∀i1 ∈ N(t, v1 ), ∀i2 ∈ N(t, v2 ), Stv
1
=
ΨChange (Stv1 , i1 , Stv2 i2 ); Stv2 = ΨChange (Stv2 , i2 , Stv1 i1 )}.
Drop neighborhood
A neighbor of a solution S is obtained by dropping a supplier of a route.
N3 (S) = {S | ∀t ∈ τ, ∀v ∈ M(t), ∀i ∈ N(t, v), Stv
= ΨDrop (Stv , i)}.
Insertion neighborhood
A neighbor of a solution S is obtained by inserting any supplier in a route.
0q
N4 (S) = {S | ∀t ∈ τ, ∀v ∈ M(t), ∀i1 ∈ N(t, v), ∀i2 ∈ N, Stvk
0
= (i2 , Stvk ),
0
Stv = ΨAdd (Stv , i1 , Stvk )}.
Replacement neighborhood
A neighbor of a solution S is obtained by replacing a supplier of one route
by any supplier.
N5 (S) = {S | ∀t ∈ τ, ∀v ∈ M(t), ∀i1 ∈ N(t, v), ∀i2 ∈ N, Stvk ∗
= ( i2 ,
∗q ∗
Stvk ), Stv = ΨAdd (ΨDrop (Stv,i1 ), i1 , Stvk )}.
Shift periodic neighborhood
A neighbor of a solution S is obtained by eliminating one supplier of a route
and inserting it in a route of any period.
N6 (S) = {S | ∀t1 , t2 ∈ τ, ∀v1 ∈ M(t1 ), ∀v2 ∈ M(t2 ), ∀i1 ∈ N(t1 , v1 ), ∀i2 ∈
N(t2 , v2 )}, St1 v1 = ΨDrop (St1 v1 , i1 ), Stv
2
= ΨAdd (Stv2 , i2 , St1 v1 )}.
Exchange periodic neighborhood
A neighbor of a solution S is obtained by exchanging two suppliers of two
94 A. Mjirda et al. / Electronic Notes in Discrete Mathematics 39 (2012) 91–98
In the first phase, VNS is used to solve a capacitated vehicle routing problem,
period by period, to find an initial solution, without taking into account the
inventory. This means that ∀t ∈ τ , v ∈ M, ∀i ∈ N, the quantity of product to
collect at each supplier is equal to its demand for the considered period, i.e,
ind t . We use two different local search methods, LS1 and LS2 , as sub-
q
Stvi = dStvi
routines in our general algorithm for the first phase VNS. Function LS1 (S, N )
corresponds to a local search algorithm, where S is the initial solution and
N is the neighborhood explored with a first improvement strategy. Function
LS2 (S, N , N ) corresponds to a local search algorithm, where S is the initial
solution and N and N are two different neighborhoods. It is described as
follows.
Repeat
S ← LS1 (S, N );
S ← LS1 (S , N );
Δ ← f (S ) − f (S );
S ← S ;
until Δ ≥ 0
Return: S
S ← LS2 (S , N1 , N2 )
if f (S ) < f (S) then
S ← S ; k ← 1;
else
k ← k + 1;
end if
end while
end for
Return: S
The solution obtained with VNS corresponds to the initial solution to be used
in the second phase of our method, described in the following section. Again,
this solution does not consider having inventory products at any period, and
thus has an inventory cost equal to zero.
its products are to be allocated to the existing vehicles visiting it at that same
period. Again, we define priority rules for this allocation. For that, we begin
by calculating an estimation of the average cost on which we incur if one unit of
product is not delivered
by vehicle v, during time period t. This estimation is
∗ i∈N(t,v) (dit +Ii(t+1) )Pit
given by hvt = , with Iit representing the inventory level of
i∈N(t,v) (dit +Ii(t+1) )
product from supplier i at time instant t, i.e., the amount of product i in stock
at the beginning of period t. Finally, the priority vehicle v at each time period
t is the one with the smallest P Vvt = h∗vt max{ i∈N (t,v) (dit + Ii(t+1) ) − C, 0}.
Algorithm 3: LSIM(S, N )
k ← 1;
Repeat
S ← S;
S ← LSIM(S , N [k]);
if Δ = (f (S ) − f (S)) < 0 then S ← S ; k ← 1;
else k ← k + 1;
until k > |Nset|
Return: S
A. Mjirda et al. / Electronic Notes in Discrete Mathematics 39 (2012) 91–98 97
3 Computational Results
We tested our method on a set of 14 benchmark instances, the same ones
used in [5], and report the best and average results obtained on 5 runs of the
algorithm for each instance. The algorithm was implemented in C++ and
Table 1
Computational Results
GA 2P-VNS
∗ ∗
Inst f ∗ #v t∗ f ∗ #v t∗ f #v t Δ
4 Conclusions
We propose a two-phase heuristic based on Variable Neighborhood Search for
a variant of the inventory routing problem where both the transportation and
98 A. Mjirda et al. / Electronic Notes in Discrete Mathematics 39 (2012) 91–98
inventory costs are minimized. The first phase constructs an initial solution
by solving a VRP problem for each period with VNS while minimizing only
the transportation cost. The second phase improves this initial solution with
VND while minimizing both the inventory and transportation costs. Compu-
tational results confirm the efficiency of VND, particularly for medium size
instances, comparing to the genetic algorithm. However, for large scale in-
stances VND stops at a local optimum that is worse than the one obtained by
GA. Some preliminary experiments, not reported in this paper, show that the
replacement of VND by VNS provides new best solutions.
Acknowledgements
This work was supported by the Centre National de la Recherche Scientifique
(CNRS), by the Campus interdisciplinaire de recherche, d’innovation tech-
nologique et de formation Internationale sur la Sécurité et l’Intermodalité des
Transports (CISIT), and by the Laboratoire d’Automatique, de Mécanique et
d’Informatique industrielles et Humaines (LAMIH) of the Université de Va-
lenciennes et du Hainaut-Cambrésis.
References