Next Article in Journal
Convex Quadratic Programming for Computing Geodesic Distances on Triangle Meshes
Previous Article in Journal
In Memory of Prof. Dr. Yuri V. Mitrishkin (1946–2024)
Previous Article in Special Issue
A New Class of Irregular Packing Problems Reducible to Sphere Packing in Arbitrary Norms
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Iterated Local Search Approach to a Single-Product, Multiple-Source, Inventory-Routing Problem

by
Federico Alonso-Pecina
1,*,
Irma Yazmín Hérnandez-Báez
2,
Roberto Enrique López-Díaz
2 and
Martin H. Cruz-Rosales
1
1
Faculty of Accounting, Administration & Informatics, Universidad Autónoma del Estado de Morelos, Cuernavaca 62209, Mexico
2
Academic Direction of Engineering Information Technologies, Universidad Politécnica del Estado de Morelos, Jiutepec 62550, Mexico
*
Author to whom correspondence should be addressed.
Mathematics 2024, 12(7), 991; https://doi.org/10.3390/math12070991
Submission received: 29 February 2024 / Revised: 24 March 2024 / Accepted: 25 March 2024 / Published: 27 March 2024

Abstract

:
We address an inventory-routing problem that arises in a liquid oxygen-producing company. Decisions must be made for the efficient transport of the product from sources to destinations by means of a heterogeneous fleet of trucks. This combinatorial problem has been stated as a constrained minimization one, whose objective function is the quotient of the operating cost divided by the total amount of delivered product. The operating cost comes from the distances traveled, the drivers’ salary, and the drivers’ overnight accommodation. The constraints include time windows for drivers and destinations, inventory safety levels, lower bounds for the quantity of product delivered to destinations, and maximum driving times. To approximate the optimal solution of this challenging problem, we developed a heuristic algorithm that first finds a feasible solution, and then iteratively improves it by combining the Metropolis criterion with local search. Our results are competitive with the best proposals in the literature.

1. Introduction

In this paper we address the inventory routing problem (IRP) proposed in the ROADEF/EURO Challenge 2016 [1], which belongs to the general class of so-called inventory-routing problems. In the IRP, a schedule of truck drivers along a planning horizon is sought so as to deliver liquid oxygen (single product) to customers, minimizing the logistic ratio, and subject to the full satisfaction of operating constraints. The logistic ratio, a performance index for fluid transportation industries, is defined as the quotient of the operating cost and the amount of delivered product. The relevant costs come from the distance traveled by trucks, the drivers’ salary, and the overnight accommodation for drivers (referred to as layover). Thus, in the IRP it is required to determine optimal itineraries for drivers (who, when, where), as well as the quantity of product to deliver at stops. For some customers, it is mandatory to keep their local inventory levels above prescribed safety stocks, while for others (known as ‘call-in’) special orders specify the amount and time for the delivery.
To approximate the optimal solution of the IRP, we propose here an Iterated Local Search (ILS) [2] approach consisting of two phases: the first one finds from scratch a feasible solution, the second iteratively improves it by performing a Metropolis cycle and a local search procedure employing various neighborhoods.
The rest of the paper is organized as follows: In Section 2 we succinctly comment on related work. A detailed description of the problem is provided in Section 3. Then, Section 4 and Section 5 are devoted to describe the first and the second phase of our approach, respectively. The corresponding computational experiments are presented in Section 6, followed by our conclusions in Section 7.

2. Related Work

Originally proposed by Bell et al. [3] in 1983, IRP has been the subject of much research, motivating a rich and varied literature. For a discussion on the most relevant articles published on the subject until 2013, we highly recommend the book by Coelho et al. [4]. Lenstra and Rinooy Kan [5] proved that, in general, IRP belongs to the NP-hard class, so exact solution methods are scarce, such as the branch-and-cut algorithm of Coelho and Laporte [6], who addressed the case with multiple trucks and products.
In regard to early heuristic approaches, it is worth mentioning the one by Dror and Levy [7] in two steps: a solution is first found by dealing with a Vehicle Routing Problem, then a route improvement procedure is applied.
Recently, a plethora of modern heuristic approaches have been proposed to solve different versions of the IRP; here some are mentioned briefly. The one by Adulyasak, Cordeau, and Jans [8] consists of an adaptive large neighborhood search to find initial solutions, followed by branch-and-cut algorithms. Cordeau et al. [9] developed a three-phase heuristic for a multiple-product problem, including replenishment plans, delivery sequence, and routing. In Shao et al. [10], a solution was heuristically obtained, based on a rolling time algorithm plus a greedy randomized adaptive search procedure, and neighborhood search.
Etebaria and Dabirib [11] analyzed a hybrid heuristic method involving five steps: initialization, demand generation, demand adjustment, inventory routing, and neighborhood search, all embedded in a simulated annealing framework. Shaabani and Kamalabadi [12] considered a case of multi-retailer perishable products, proposing a population-based simulated annealing algorithm. In the paper by Cheng, Wang, and Zhang [13], a series of mixed integer nonlinear programming models was constructed, together with linearization methods; then, a hybrid genetic algorithm based on allocation first and routing second was employed to find near-optimal solutions of these models.
Among the latest investigations those undertaken by C. Archetti, M.G. Speranza, and collaborators are outstanding; we briefly mention three of them. In [14], two policies were compared: Retailer-Managed Inventory (RMI) and Vendor-Managed Inventory (VMI). In the first policy, the customer controls the time and the quantities to be delivered; in the second policy the supplier monitors the customer’s product levels, and makes decisions on the time and amount to deliver so as to avoid stock-outs. From computational experiments on 120 instances, they found that the second policy yielded the lowest costs.
Contrary to most previous studies, in [15] the considered objective function is the minimization of the logistic ratio, defined as the quotient of the total cost and the total quantity of product delivered. An advantage of using this objective function is that, in general, the customer inventory levels do not tend to be too low along the planning horizon.
Ref. [16] deals with the case when bounds are added to the amount to load or unload product. The proposed solution method comprises three phases: generation of initial solution, tabu search, and final improvement, obtaining good results in most of the considered 880 benchmark instances.
In the literature, there are few papers working in the same IRP tackled here. One of them, ref. [17], developed a branch-cut-and-price algorithm was developed. They used a surrogate relaxation in the constraints. They were able to obtain a feasible solution in the most of the instances proposed in [1]. In [18], a matheuristic was developed. They combined mathematical programming with a local search. They divided the problem into two phases: one to design the routes and other to decide the quantity to deliver and fit the route in the time windows. In [19], a fixed sequence subproblem was identified and tackled with a model to check if, with a sequence of visits given, there exists a feasible plan to deliver the liquid. Given a feasible sequence, this model optimizes the timing and quantity in the visits. They used greedy heuristics and a mathematical model to design a sequence using column generation. Their method is efficient for small instances, and even improved the best results known in some instances. In [20], a hyperheuristic was developed to the IRP. The hyperheuristic was used to choose a low-level heuristic in every step of the search. They used hidden Markov chain to choose the heuristic. They obtained the best results in the ROADEF Challenge of 2016.

3. The Problem: Nomenclature and Notation

Throughout the planning horizon, a heterogeneous truck fleet, driven by an also heterogeneous staff of drivers, is used to transport liquid oxygen (the product) from a set of sources (production sites) to a set of destinations (customers). The depot, the sources, and the destinations are all interconnected by a road network within a geographical region.
In the IRP discussed here, it is required to determine optimal itineraries for drivers and trucks through the road network, as well as the time and quantity of product delivery at the destinations, all subject to a set of logistical and contractual constraints. For example, although for most customers, hereinafter referred to as ‘regular’, local inventory levels should be maintained above the safety stocks along the planning horizon, for some customers—called ‘special’—it is a must-do for orders specifying quantity and time for deliveries.
In this section we describe the IRP as a combinatorial optimization problem, making explicit its objective function and constraints, as well as the required nomenclature and notation.

3.1. The Drivers

Let A be the set of drivers, all initially located in the depot d. The following data are given to each driver a A :
  • A non-empty set W ( a ) of availability time windows;
  • A cost C 1 ( a ) per each time unit on duty;
  • A lower bound κ ( a ) for resting time between any two itineraries;
  • An upper bound ψ ( a ) for uninterrupted driving time.

3.2. The Trucks

Let Θ denote the set of trucks, all initially located at the depot d . For each truck σ Θ , let C 2 ( σ ) be the cost per traveled distance unit, and w ( σ ) its volume capacity. Also, the binary constant ρ a σ is equal to one if and only if driver a A is allowed to drive truck σ .

3.3. The Product Sources

The production sites are referred to here as sources, their set is denoted O, and j is the loading time at source j O . Also, the binary constant m σ j is equal to one if and only if truck σ Θ is allowed to load product at source j O .

3.4. The Destinations

Let D = R S be the set of destinations, where R corresponds to the set of ‘regular’ customers, and S corresponds to the set of ‘special’ customers. For each destination d R the following information is provided:
  • Deliveries can only occur within a given set of time windows.
  • ν d is the quantity of product in the tank of destination d at time zero.
  • The consumption forecast along the planning horizon in an hourly basis.
  • The unloading time d , and the safety stock υ ̲ d .
  • The lower bound γ d for the amount to deliver at each visit of any truck.
  • A binary constant u σ d , which is equal to one if and only if truck σ Θ is allowed to unload product at destination d R .
For each destination d S a set of specific orders is given, indicating lower and upper bounds on the quantities to be delivered, as well as the corresponding time windows.
A layover enables a driver to travel for an extended duration, covering a larger area. A number of destinations, called layover destinations, cannot be served in a single day because they are too far from the depot. When serving those destinations, it is possible to include into a shift, a resting time φ (called layover time) in any location (not necessarily a layover destination), incurring a constant cost C 3 . No shift can include two or more layovers.

3.5. The Objective Function

The objective function of the IRP is to minimize the Logistic Ratio, namely, the quotient of the total cost (which comes from the drivers on duty, the traveled distances, and the layovers) and the quantity of product delivered over the planning horizon. The cost related to the driver’s salary is proportional to the duration of the shifts, which includes the driving time, the idle time, and the loading/unloading times. On the other hand, the cost due to the traveled distances is mainly related to the fuel consumption of trucks, and each layover has a fixed cost, covering the hotel fare.

3.6. The Model

Let V : = O D { d}, where d denotes the depot, O the set of sources, and D = R S the set of destinations; R and S being, respectively, the set of ‘regular’ and ‘special’ customers. The elements of V are indexed 0 , 1 , , n , and referred to as locations. Also, L D is the set of layover destinations.
The length of the planning horizon is denoted L .
The time for a truck to cover the distance between locations i , j V in either direction is denoted h ( i , j ) . Recall  j is the required time to load (or unload) product at location j. A tour is a quadruple λ = ( u , t , t , x ) where
  • u is a finite sequence of locations u = ( u 0 , u 1 , , u n ) , n 2 , where either
    -
    u 0 = u n = d (u starts and ends at the depot) and u j V , for j = 1 , , n 1 (the depot is not an intermediate location in u), or;
    -
    u 0 = d (u starts at the depot) and u j V , for j = 1 , , n (the depot is only at the beginning of the sequence), or;
    -
    u n = d (u ends at the depot) and u j V , for j = 0 , , n 1 (the depot is only at the end of the sequence.
  • t = ( t 0 , t 1 , , t n ) and t = ( t 0 , t 1 , , t n ) contain timing information on u as follows. The departure time from u 0 is t 0 0 , the arrival time to u n is t n L , and for j = 1 , , n 1 , the time of arrival to (resp. departure from) location  u j is t j (resp. t j = t j + j ), such that the interval [ t j , t j ] is completely contained in a time window of location  u j ; also t j t j 1 + h ( u j 1 , u j ) , for j = 1 , , n . We consider t 0 and t n as being immaterial.
  • x = ( x 0 , x 1 , , x n ) , where x j 0 ( j = 1 , , n 1 ) is the amount of unloaded product at location u j . Clearly, if u j O { d} then x j = 0 .
In the sequel Ω denotes the set of tours. For each tour λ = ( u , t , t , x ) Ω , sets O ( λ ) : = { j 0 j n , u j O } and D ( λ ) : = { j 0 j n , u j D } correspond, respectively, to the visited sources and destinations, θ ( λ ) is the total traveled distance, χ ( λ ) : = j = 1 n 1 x j is the amount of the delivered product, and δ ̲ ( λ ) : = t 0 and δ ¯ ( λ ) : = t n are its time limits.
Now, recall A and Θ are the sets of drivers and trucks, respectively, and define a route as a triple ( a , σ , λ ) A × Θ × Ω , where λ = ( u , t , t , x ) and u = ( u 0 , u 1 , , u n ) , simultaneously satisfying
  • ρ a σ = 1 [driver a A is allowed to drive truck σ Θ ];
  • ξ σ u j = 1 for all j O ( λ ) [truck σ is allowed to load product at every source in tour λ ];
  • u σ u j = 1 for all j D ( λ ) [truck σ is allowed to unload product at every destination in tour λ ];
  • t n t 0 ψ ( a ) [driver a does not exceed his/her maximum allowed driving time ψ ( a ) in tour λ ];
  • The period of time [ t 0 , t n ] , denoted ϵ ( a , σ , λ ) , is entirely contained in a time window of driver a.
Let Δ denote the set of possible routes, which we classify as round, forward, and backward. A round route starts and ends at the depot, a forward route starts at the depot and ends at some other location, a backward route starts at some source or destination and ends at the depot. A shift is either a round route or a pair of routes—one forward, one backward—such that
  • They share a driver and truck, and;
  • A layover destination is visited in either route, and;
  • The forward route ends at the same location where the backward route starts, allowing enough resting time for the driver, namely, no less than  φ .
Every couple of shifts are compatible unless:
  • They share driver or truck and they intersect in time, or
  • they share driver, say driver a, and between them there is no κ ( a ) time for rest, or
  • they share some destination, and their visiting time overlaps.
At time zero: (1) an unlimited amount of product is available in each source, (2) all drivers and trucks are available at the depot, with trucks holding some amount 0 of product in their tank, and (3) each regular destination has some amount of product above their safety stock. Moreover, the (not necessarily constant) consumption rate along the planning horizon is known for each regular destination, and for each special destination a set of specific orders is provided, each consisting of a lower and an upper bound on the quantity to be delivered as well as a corresponding time window. A program is a non-empty set of pairwise compatible shifts satisfying the following constraints:
  • Each truck σ loads product to maximum capacity w ( σ ) at every visited source.
  • The quantity unloaded by a truck at destination d R is always γ ( d ) , and less than or equal to what it carries.
  • Along the study horizon, the inventory level at each destination d R is kept between safety stock υ ̲ ( d ) and local capacity υ ¯ ( d ) .
  • The quantities unloaded from trucks at each destination d S satisfy the lower and upper bounds established in the corresponding specific orders.
Thus, the aim of the IRP is to determine a program P minimizing the logistic ratio z = ( C d + C f + C l ) / Q , where Q is the total amount of oxygen (the delivered product), and costs C d , C f , C l , arise from the in-service drivers, the distance traveled by trucks, and the carried-out layovers, respectively. As
C d = a A C 1 ( a ) ( a , σ , λ ) P ϵ ( a , σ , λ ) , C f = σ T C 2 ( σ ) ( a , σ , λ ) P θ ( λ ) , C l = C 3 · | F | , and Q = ( a , σ , λ ) P χ ( λ ) ,
we obtain
z = a A C 1 ( a ) ( a , σ , λ ) P ϵ ( a , σ , λ ) + σ T C 2 ( σ ) ( a , σ , λ ) P θ ( λ ) + C 3 · | F | ( a , σ , λ ) P χ ( λ ) .

4. Finding a Feasible Solution

For any truck σ Θ , we recall w ( σ ) is the maximum capacity of its tank. Thus, an upper bound on the amount that truck σ can deliver in any visit to any destination d R , is ζ d min { w ( σ ) , υ ¯ ( d ) υ ̲ ( d ) } , where υ ¯ ( d ) and υ ̲ ( d ) denote, respectively, the storage capacity and safety stock at destination d. Our strategy to find an initial feasible solution consists in successively selecting—in a rotating manner—an element μ { 0.9 , 0.8 , 0.7 , 0.6 , 0.5 , 0.4 , 0.3 , 0.2 , 0.1 } . Then, for each chosen μ a set of routes is produced such that every time destination d is served by truck σ no less than μ × ζ d units are delivered.
In the Algorithm 1, μ is the parameter passed to the algorithm that tries to find a feasible solution, with all its deliveries of at least μ × ζ i units. Although in our experiments, we set M A X 10 , 000 , for most times the algorithm obtains a feasible solution in very few iterations. The following algorithm iteratively chooses a driver–truck combination, and tries to construct a route.
Algorithm1: Finding a feasible solution
(1)
      μ { 0.9 , 0.8 , 0.7 , 0.6 , 0.5 , 0.4 , 0.3 , 0.2 , 0.1 } ;
(2)
      b a n f a l s e ; i 0 ;
(3)
     While i M A X and s o l = = do
(4)
             k ( i mod 9 ) ;
(5)
             s o l F e a s i b l e _ S o l u t i o n ( μ [ k ] ) ;
(6)
             i i + 1 ;
(7)
     EndWhile
(8)
     return s o l ;
At the beginning of the Algorithm 2, many variables are initialized (line 1), including the list of routes (the empty set at the beginning), the time when the trucks are available (all trucks are available at time zero), the time when the drivers are available (when their first time window starts), etc.
Algorithm 2:  F e a s i b l e _ S o l u t i o n ( μ )
(1)
      I n i t i a l i z e _ v a r i a b l e s ( ) ;
(2)
      o r d e r _ d e s t i n a t i o n s ( ) ;
(3)
      d c h o o s e _ d r i v e r ( ) ;
(4)
     While d do
(5)
             t i m e _ s l o t d G e t _ n e x t _ t i m e _ s l o t ( d ) ;
(6)
             σ c h o o s e _ t r u c k ( d ) ;
(7)
             t i n i c a l c u l a t e _ t i m e _ i n i t i a l ( ) ;
(8)
             L [ d ] [ t i m e _ s l o t d ] c a l c u l a t e _ r o u t e ( μ ) ;
(9)
             U p d a t e _ d e s t i n a t i o n s ( L [ d ] [ t i m e _ s l o t d ] ) ;
(10)
            o r d e r _ d e s t i n a t i o n s ( ) ;
(11)
            d c h o o s e _ d r i v e r ( ) ;
(12)
   EndWhile
(13)
   If F e a s i b l e _ S o l u t i o n ( L ) then
(14)
            s o l L ;
(15)
   else
(16)
            s o l ;
(17)
    endif
(18)
    return s o l ;
For c R , let ν ¯ c be the time when safety level υ ̲ c is attained—easily computed from the initial inventory ν c , and the forecasted consumption rate for c—and denote π c , d ( π c , d ν ¯ c ) the latest time in which driver d A can arrive to c with the product to deliver, allowing delivery within one time window of c, and one time window of d.
For every destination i D we calculate t i m i as the time when the product in the destination tank attains its safety level or, in case of a special destination, the time of their next order. However, if t i m i does not fit in a time window of i, then t i m i is decreased until it fits in the preceding time window, leaving enough time to unload, and provided that the driver is allowed to serve it. Then, we order the set { t i m i i D } in a non-decreasing order by means of the function o r d e r _ d e s t i n a t i o n s ( ) (lines 2 and 10 of the algorithm).
Now, the algorithm chooses the earliest available driver d, and in case of ties one is randomly chosen. Hereupon, the earliest available truck σ that d is allowed to be used is chosen (lines 3 and 11). We denote t c as the earliest time when the couple (d, σ ) is available. The function returns the empty set if there is no driver that can work in the time interval or when some destination needs a service to maintain their tank level above the minimum allowed before drivers are able to serve them (the special orders are also considered).
For the selected driver, we obtain the number of the next route to calculate (line 5). For driver d, if we have more than one possible truck for the driver, we choose the truck available at the earliest time; in case of ties, one is randomly chosen (line 6). In line 7 we obtain the time t i n i when the combination of driver d and truck σ can operate.
To determine the route we proceed as follows: We obtain the first destination i 1 that needs to be served. If time t i n i is lower than the first destination i that needs to be served with a difference of at least ψ + κ d + 60 minutes, then the first destination chosen is the first one available in the time period when it can be served by σ . Otherwise, the first destination is chosen according to the order of the urgent list of the destinations.
The list L [ d ] [ t i m e _ s l o t d ] (or l δ ) is the order in which the destinations assigned to driver d are served, which are initialized with the empty set. For the remaining destinations we proceed as follows: the algorithm tries to assign the next destination in the ordered list that can be visited by the truck, if it succeeds, it tries the next destination that can be visited in the list; if it succeeds, the algorithm assigns the destination to the driver, otherwise it continues with the next destination until it can no longer add any destinations (seeks through the list looking for candidates). Every time we try to aggregate a new destination, we try all the possibilities in the list.
Once we add one destination to the route, we compute the maximum time by which the destination needs to be served again, in order to maintain feasibility, so when we try to add a new destination, this maximum time cannot be reduced (the amount that the truck served can be reduced). At each visit, the quantity of product delivered to a destination is the minimum between the product available in the truck and the capacity of the destination’s tank; the minimum amount served to all destinations will be μ × ζ i .
At the beginning of each scheduling of a truck, if it has less than 50% of available product, it recharges in a source. If the truck is out of product after visiting a destination, and the driver has enough time, it goes to the nearest source to recharge. At the end of the route, if the driver has enough time, they try to refill the truck.
When the schedule of the combination driver-truck-time is assigned, a reordering of destinations is performed, considering new deliveries of the product. At the end of cycle, if the solution is feasible, it is returned, otherwise the empty set is returned.
With the algorithm described in this section, we were able to find feasible solutions in few seconds for all the instances.

5. Improving the Solution

The second stage makes intensive use of seven neighborhoods in order to explore the space solution. For ξ = 1 , , 7 , neighborhood N ξ ( Y ) consists of all feasible solutions obtained from a feasible solution Y by:
  • Swapping two destinations of some pair of routes, if ξ = 1 .
  • Removing an element from some route, if ξ = 2 .
  • Removing an element from some route, and adding this element to another route, if ξ = 3 .
  • Altering in some route the order in which the destinations are visited, within a prescribed time period, if ξ = 4 .
  • Adding to some route a new destination, if ξ = 5 .
  • Eliminating one route, if ξ = 6 .
  • Delaying the starting time of some route, if ξ = 7 .
All the neighbours are generated keeping feasibility, so, infeasible neighbours are discarded.
In Algorithm 3, the following schema is used in to improve the solution.
Algorithm 3: Iterated Local Search
(1)
      b e s t _ s o l s o l F i n d _ F e a s i b l e _ S o l u t i o n ( ) ;
(2)
      c o n t 0 ;
(3)
     While c o n t M A X T R I E S and t a c t u a l l e M A X T I M E do
(4)
             s o l SimulatedAnnealing( s o l );
(5)
             s o l LocalSearch( s o l );
(6)
            If f ( s o l ) < f ( b e s t _ s o l ) then
(7)
                  b e s t _ s o l s o l ;
(8)
                  c o n t 0 ;
(9)
            else
(10)
                  c o n t c o n t + 1 ;
(11)
            EndIf
(12)
     EndWhile
(13)
      s o l Double( s o l );
(14)
      P r i n t ( b e s t _ s o l ) ;
In (1), an initial feasible solution is obtained with the procedure described in Section 4. Lines (3)–(12) contain the main loop of the algorithm. In (3), as long as the number of attempts does not reach MAXTRIES or the time limit is not reached, the algorithm will try to improve the solution. In (4)–(5), the procedures SimulatedAnnealing and LocalSearch are successively performed attempting to improve the initial solution. In (6)–(11), if the current best solution is improved, then the new solution is accepted, otherwise the counter c o n t is increased. In (13), the procedure Double( s o l ) randomly produces two neighbors, one after the other; the first one, say y, belongs to j = 1 , 2 , 3 , 5 , 7 N j ( s o l ) , the second one belongs to j = 1 , 2 , 3 , 4 , 5 , 7 N j ( y ) . Finally, in (14) the best solution found is rendered together with its cost. In Algorithm 4, the Simulated Annealing procedure is described.
In line (1) of the Simulated Annealing procedure, the initial temperature is calculated as the sum of the number of drivers | A | , the number of destinations | D | , the number of hours in the planning horizon, and the number of trucks | Θ | . Here, ι stands for the system temperature, and the parameters T o , T f , α , ν , denote, respectively, the initial and the final temperature, the cooling factor, and the internal cycle length. The procedure Neighbor ( S ) randomly produces a feasible solution by iteratively looking at neighborhoods N 1 ( S ) , N 2 ( S ) , N 3 ( S ) , N 5 ( S ) , and Rand delivers a uniformly distributed random number in the interval (0, 1). The algorithm exits as soon as an improvement on the best solution in the internal cycle is found. The procedure LocalSearch( s o l ) considers one by one all elements of j = 1 j = 7 N j ( s o l ) rendering the first improving solution found. All these procedures will be executed until the time limit is reached.
Algorithm 4: SimulatedAnnealing(S)
(1)
      T 0 | D | + | C | + u n i t s + n h
(2)
      ι T 0 ;;
S * S ; b a n t r u e ;
(3)
     While ι T f and b a n do
(4)
             k 0 ; b a n f a l s e
(5)
            While k ν do
(6)
                      S Neighbor ( S ) ;
(7)
                      δ z ( S ) z ( S ) ;
(8)
                     If Rand ( 0 , 1 ) < e δ / σ or  ( δ < 0 ) then
(9)
                          S S ;
(10)
                     EndIf
(11)
                      k k + 1 ;
(12)
                     If S < S * then
(13)
                            S * S ;;
k 0 ; b a n t r u e ;
(14)
                     EndIf
(15)
            EndWhile
(16)
             ι α ι ;
(17)
     EndWhile

6. Results

Our algorithms were executed in a computer with the following features: Windows 10, Intel i64470 processor, 3.4 GHZ, 16 GB, and Visual Studio 2012 under C++ language.
To test the algorithm we used the 31 instances published in [1]. These are all the instances available to the specific IRP tackled in this paper. Table 1 and Table 2 show general information for the 31 instances. Instances of Table 1 are smaller than those of Table 2, and correspond to a simplified version of the IRP: there is a single source, every driver is associated with only one truck, there are neither special customers nor layovers nor unloading lower bounds, and destinations have only one time window. Instances in Table 2 have all possible constraints and features of the problem.
The values of the best results obtained by running our algorithm 100 times are shown in Table 3 and Table 4. For each simplified instance k, columns 2 and 3 of Table 3 indicate, respectively, the value of the best known solution, and the value of the best results obtained by running our algorithm 100 times are shown in Table 3 and Table 4. For each simplified instance k, columns 2 and 3 of Table 3 indicate, respectively, the value of the best known solution obtained in [1], and the best value obtained by us. In the Table 4, HBCP is the Heuristic Branch-Cut-and-Price Algorithm developed in [17]. They used a computer with Intel(R) Core(TM) i7-5600U CPU @ 2.60 GHz and Cplex 12.6 to run their algorithm. HBCP uses different time limits to its execution: three, six, and twelve hours; these times are in function of the instance size. MA is the matheuristic algorithm published in [18]; this algorithm was programmed in C++ and compiled by Visual C++ 2015 the models used were solved using Gurobi 6.5.2 ×64. MA was tested in two runs using a time limit of 1800 s and 3 h, respectively. MFSR is the matheuristic with fixed sequence reoptimization of [19] it was coded in C++ and solved by CPLEX 12.7.0 with one single thread, and the running time of the algorithm in every instance was 1800 s. Finally, HSS is the Heuristic Sequence Selection designed by Kheiri [20]; he used 1800 s as a time limit too. Although there were more competitors in the ROADEF Challenge [1] these are the only papers published, and we included the best solutions known. Each run of our algorithm in Table 3 and Table 4 took 1800 s.
In Table 4, we can observe that in general, the results of the ILS are competitive and obtains the third place among the algorithms proposed in the literature. Particularly, in the instances 31 (or X5), when we ran the algorithm for 3 h like [18], we obtained a result of 0.012687, improving the best result known in the literature. The feasibility and value of the solutions obtained by ILS were verified by the checker provided by [1].

7. Conclusions

We have presented above an original approach to the IRP problem which consists of two main procedures. While the former is intended to produce an initial feasible solution with little computational effort, the second provides heuristics that iteratively improve the initial solution. Our approach is compared with other approaches to this challenging problem, obtaining competitive results. We improved the best result known for the instance X5. We observe that, in general, it is better to serve the destinations as few times as possible, each time with product quantities as big as possible. A future heuristic could take advantage of this observation.

Author Contributions

Conceptualization F.A.-P.; methodology, F.A.-P. and I.Y.H.-B.; validation, F.A.-P.; formal analysis, I.Y.H.-B. and R.E.L.-D.; resources, administrated by F.A.-P. and I.Y.H.-B.; writing, F.A.-P. and M.H.C.-R.; supervision, R.E.L.-D. and I.Y.H.-B.; project administration, M.H.C.-R. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Data Availability Statement

Dataset available on request from the authors.

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. ROADEF/EURO Challenge 2016: Inventory Routing Problem. Available online: https://www.roadef.org/challenge/2016/en/index.php (accessed on 22 March 2024).
  2. Lourenço, H.R.; Martin, O.C.; Stützle, T. Iterated local search. In Handbook of Metaheuristics; Springer: New York, NY, USA, 2003; pp. 320–352. [Google Scholar]
  3. Bell, W.J.; Dalberto, L.M.; Fisher, M.L.; Greenfield, A.J.; Jaikumar, R.; Kedia, P.; Mack, R.G.; Prutzman, P.J. Improving the distribution of industrial gases with an on-line computerized routing and scheduling optimizer. Interfaces 1983, 13, 4–23. [Google Scholar] [CrossRef]
  4. Coelho, L.C.; Cordeau, J.-F.; Laporte, G. Thirty years of inventory routing. Transp. Sci. 2013, 48, 1–19. [Google Scholar] [CrossRef]
  5. Lenstra, J.K.; Rinnooy Kan, A.H.G. Complexity of vehicle routing and scheduling problems. Networks 1981, 11, 221–227. [Google Scholar] [CrossRef]
  6. Coelho, L.C.; Laporte, G. A branch-and-cut algorithm for the multi-product multi-vehicle inventory-routing problem. Int. J. Prod. Res. 2013, 51, 7156–7169. [Google Scholar] [CrossRef]
  7. Dror, M.; Levy, L. A vehicle routing improvement algorithm comparision of a greedy and a matching implementation for inventory routing. Comput. Oper. Res. 1986, 13, 33–45. [Google Scholar] [CrossRef]
  8. Adulyasak, Y.; Cordeau, J.-F.; Jans, R. Formulations and branch-and-cut algorithms for multivehicle production and inventory routing problems. INFORMS J. Comput. 2013, 26, 103–120. [Google Scholar] [CrossRef]
  9. Cordeau, J.-F.; Lagana, D.; Musmanno, R.; Francesca, F. A decomposition-based heuristic for the multiple-product inventory-routing problem. Comput. Oper. Res. 2015, 55, 153–166. [Google Scholar] [CrossRef]
  10. Shao, Y.; Furman, K.C.; Geol, V.; Hoda, S. A hybrid heuristic strategy for liquified natural gas inventory routing. Transp. Res. 2015, C 53, 151–171. [Google Scholar]
  11. Etebari, F.; Dabiri, N. A hybrid heuristic for the inventory routing problem under dynamic regional pricing. Comput. Chem. Eng. 2016, 95, 231–239. [Google Scholar] [CrossRef]
  12. Shaabani, H.; Kamalabadi, I.N. An efficient population-based simulated annealing algorithm for the multi-product multi-retailer perishable inventory routing problem. Comput. Ind. Eng. 2016, 99, 189–201. [Google Scholar] [CrossRef]
  13. Cheng, C.; Qi, M.; Wang, X.; Zhang, Y. Multi-period inventory routing problem under carbon emission regulations. Int. J. Prod. Econ. 2016, 182, 263–275. [Google Scholar] [CrossRef]
  14. Archetti, C.; Speranza, M.G. The inventory routing problem: The value of integration. Int. Trans. Oper. Res. 2016, 23, 393–407. [Google Scholar] [CrossRef]
  15. Archetti, C.; Desaulniers, G.; Speranza, M.G. Minimizing the logistic ratio in the inventory routing problem. EURO J. Transp. Logist. 2017, 6, 289–306. [Google Scholar] [CrossRef]
  16. Archetti, C.; Boland, N.; Speranza, M.G. A metaheuristic for the multivehicle inventory routing problem. INFORMS J. Comput. 2017, 29, 377–387. [Google Scholar] [CrossRef]
  17. Absi, N.; Cattaruzza, D.; Feillet, D.; Ogier, M.; Semet, F. A heuristic branch-cut-and-price algorithm for the ROADEF/EURO challenge on Inventory Routing. Transp. Sci. 2020, 54, 313–329. [Google Scholar] [CrossRef]
  18. Su, Z.; Lü, Z.; Wang, Z.; Qi, Y.; Benlic, U. A matheuristic algorithm for the inventory routing problem. Transp. Sci. 2020, 54, 330–354. [Google Scholar] [CrossRef]
  19. He, Y.; Artigues, C.; Briand, C.; Jozefowiez, N.; Ngueveu, S.U. A matheuristic with fixed-sequence reoptimization for a real-life inventory routing problem. Transp. Sci. 2020, 54, 355–374. [Google Scholar] [CrossRef]
  20. Kheiri, A. Heuristic sequence selection for inventory routing problem. Transp. Sci. 2020, 54, 302–312. [Google Scholar] [CrossRef]
Table 1. General data of simplified instances of the IRP.
Table 1. General data of simplified instances of the IRP.
InstanceNameNumber of DestinationsNumber of DriversNumber of TrucksNumber of Hours
1V_1.11222720
2V_1.21222720
3V_1.35311240
4V_1.46422240
5V_1.55422240
6V_1.65422840
7V_1.79966240
8V_1.8996682
9V_1.99966840
10V_1.108933240
11V_1.118933840
Table 2. General data of complex instances of the IRP.
Table 2. General data of complex instances of the IRP.
InstanceNameNumber of DestinationsNumber of DriversNumber of TrucksNumber of SourcesNumber of Hours
12V2.1232413151240
13V2.1353551240
14V2.1453551840
15V2.15134431240
16V2.16.2184741240
17V2.17134431840
18V2.18134431840
19V2.1953551840
20V2.20.2184741840
21V2.21.2184741840
22V2.2232413151504
23V2.2332413151504
24V2.2432562240
25V2.2532562840
26V2.2632562840
27X132413151240
28X2184741240
29X3134431840
30X432413151504
31X532413151504
Table 3. Results of our algorithm on simplified instances of the IRP.
Table 3. Results of our algorithm on simplified instances of the IRP.
InstanceBest KnownValue Yielded
kValue [1]by ILS q(k)
10.0274660.027619
20.0273040.027536
30.0132790.014919
40.0154950.019625
50.0118770.012021
60.0128120.013306
70.0128900.013860
80.0077560.008169
90.0152790.015418
100.0189410.019625
110.0286660.029427
Table 4. Results of our algorithm on complex instances of the IRP. All the algorithms ran for 1800 s.
Table 4. Results of our algorithm on complex instances of the IRP. All the algorithms ran for 1800 s.
InstanceBest SolutionILSHBCPMAMFSRHSS
kof [1] [17][18][19][20]
120.0100240.0107760.0162900.0133040.0100460.010266
130.0288750.0347840.0348030.0342620.0297890.030768
140.0349720.0482440.0476370.0446460.0369960.037582
150.0249930.0313170.0345280.0338680.0258940.026608
160.0117830.0144390.0168260.0167280.0122070.012420
170.0321300.0376110.0498130.0422330.0312600.031538
180.0318820.0375240.0475470.0431160.0327000.033018
190.0340220.0476240.0414870.0439500.0351830.036018
200.0174860.0195840.0260950.0208640.0184890.018656
210.0168060.0199550.0253740.0204360.0170510.017210
220.0126670.0136550.0188190.0162290.0126670.012992
230.0126030.0134880.0168250.0130030.013311
240.0112190.0157780.0141750.0137050.0125230.013033
250.0114510.0165230.0131940.0144850.0121370.012411
260.0112810.0160380.0135800.0139740.0126910.012866
270.0100420.0109040.0159740.0130780.0100100.010234
280.0117990.0142220.0168860.0161800.0122140.012410
290.0307600.0380880.0427130.0315840.031905
300.0126330.0135970.0183250.0169640.0126900.013015
310.0129650.0133340.0181010.0162840.0136810.013994
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Alonso-Pecina, F.; Hérnandez-Báez, I.Y.; López-Díaz, R.E.; Cruz-Rosales, M.H. Iterated Local Search Approach to a Single-Product, Multiple-Source, Inventory-Routing Problem. Mathematics 2024, 12, 991. https://doi.org/10.3390/math12070991

AMA Style

Alonso-Pecina F, Hérnandez-Báez IY, López-Díaz RE, Cruz-Rosales MH. Iterated Local Search Approach to a Single-Product, Multiple-Source, Inventory-Routing Problem. Mathematics. 2024; 12(7):991. https://doi.org/10.3390/math12070991

Chicago/Turabian Style

Alonso-Pecina, Federico, Irma Yazmín Hérnandez-Báez, Roberto Enrique López-Díaz, and Martin H. Cruz-Rosales. 2024. "Iterated Local Search Approach to a Single-Product, Multiple-Source, Inventory-Routing Problem" Mathematics 12, no. 7: 991. https://doi.org/10.3390/math12070991

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop