Antonio Espuña, Moisès Graells and Luis Puigjaner (Editors), Proceedings of the 27th European Symposium on Computer Aided Process Engineering – ESCAPE 27 October 1st - 5th, 2017, Barcelona, Spain © 2017 Elsevier B.V. All rights reserved. http://dx.doi.org/10.1016/B978-0-444-63965-3.50233-6
A decomposition framework for distribution of fluid products by a vendor-managed-inventory methodology. Mariana Cóccolaa, Carlos A. Mendeza, Rodolfo Dondoa a
INTEC (Universidad Nacional del Litoral - CONICET) Güemes 3450 (3000) Santa Fe- Argentina
Abstract Vendor-Managed Inventory (VMI) is a business practices based on the cooperation between a supplier and its customers in which demand and inventory information from the customers are shared with the supplier. The practice is based on the inventoryrouting problem (IRP), which integrates inventory management, vehicle routing, and delivery scheduling decisions. Because of the large expenses in distribution and inventorying of chemical products, it is attractive to make use of optimization tools for exploiting as many degrees of freedom as possible in order to save costs. So, we propose a nested column generation (CG) algorithm for a problem related to the distribution of multiple chemicals fluids according to the VMI-modality. Our approach builds on a CG algorithm in which, for each delivery route, the patterns of delivery of fluids are also produced by CG. We describe our implementation and give computational results for a test instance. Keywords: multi-commodity vendor-managed-inventory, nested column generation, inventory routing.
1. Introduction The VMI modality is a successful business practice based on the cooperation between a supplier and its customers in which demand and inventory information from the customers are shared with the supplier. Under this modality, the supplier is responsible for managing the inventory level of the customers, deciding when and how much to deliver to each customer. So, the supplier can better integrate visits to several customers and smooth production, inventory, and distribution efforts (Andersson et al. 2010). In order to operate according such a strategy, the supplier has to solve an IRP, which combines over a multi-period horizon inventory management and vehicle routing. Therefore, the supplier has to make three simultaneous decisions: (i) when to serve a given customer, (ii) how much to deliver to this customer, and (iii) how to combine customers visits into vehicle routes. The aim is to find the optimal trade-off between vehicle routing and inventory holding costs. This work deals with a VMI modality tailored for the optimal distribution and inventorying of several fluid products as fuels. Since a situation that may involve a split delivery for each commodity is considered, we deal with a complex problem that must simultaneously fix visiting decisions and quantities to deliver to each customer. To overcome this difficult we decide to decouple the routing part from the delivering part of the problem. I.e. we first construct a route and then find the corresponding quantities to be delivered at each customer. So, a nested CG procedure based on a decomposition into three levels is proposed. On the bottom
M. Cóccola et al.
1388
level we compute several delivery patterns for each route generated on the middle level. Routes and cargo patterns are coordinated on the top-level master problem.
2. Formulation of the VMI modality Consider a set of suppliers, denoted by I+= {i1+, i2+, . . . in+}. Each supplier produces a known quantity pitk of commodity k ∈ K during the period t of the planning horizon T = {t1, t2, . . ., tt }. By using a fleet of vehicles with a known capacity qvehicle, the supplier serves a set of customers I- = {i1-, i2-,…,in-}. Each supplier i ∈ I+(customer i ∈ I-) produces(consumes) a known quantity ditk of commodity k ∈ K during the period t ∈ T. Both the suppliers and the customers have multi-compartment storing tanks with a storing capacity (IikMax - IikMin) where IikMax is the maximum storing capacity and IikMin is the minimum storing capacity. In addition, for each product k ∈ K, a known initial inventory Iik0 is available both for suppliers i ∈ I+ and customers i ∈ I-. Suppliers and customers are connected trough a network represented by a graph G (I+ ҐI-, A ) where A is the set of minimum-distance arcs interconnecting plants and customers. Associated to every arc a Ѯ A, there are a distance-based traveling cost cij and a travel time tij Visiting times to locations i ∈ I+ ҐI- are denoted by sti.Vehicles have a stated fixed utilization cost cfv a unit travelling cost cvv. The problem consists on finding the optimal set of delivery routes during each period such that, for each product and for each supplier(customer) no stock-outs occur and the maximum storing capacity is respected. The objective is to minimize the sum of vehicle travelling costs and inventory holding costs. We consider here that holding costs are considered negligible with respect to routing costs. To determine the minimum cost solution, the problem can be formulated as follows: Minimize
¦ ¦c
rt
t∈T r∈Rt
§ −1 · ¨ K ¦ ¦ X trp ¸ ¨ ¸ k∈K p∈Pr ∩ Pk © ¹
(1)
subject to:
§ −1 · airt ¨¨ K ¦ ¦ X trp ¸¸ ≥ Vi ¦ ¦ t∈T r∈Rt k∈K p∈Pr ∩ Pk © ¹ 0 I ik − ¦ ditk + ¦ ¦ ¦α itkrp X trp ≤ I ikMax ½
(2) +
∀i ∈ I ∪ I
−
(3.a)
° ° t '∈T :t '≤t t '∈T :t '≤t r∈Rt p∈Pr ∩Pk ® 0 Min ¾ ° I ik − ¦ ditk + ¦ ¦ ¦α itkrp X trp ≥ I ik ° t '∈T :t '≤t t '∈T :t '≤t r∈Rt p∈Pr ∩Pk ¯ ¿ 0 I ik + ¦ pitk − ¦ ¦ ¦ α itkrp X trp ≤ I ikMax ½ ° ° t '∈T :t '≤t r∈Rt p∈Pr ∩ Pk t '∈T :t '≤t ® 0 Min ¾ ° I ik + ¦ pitk − ¦ ¦ ¦ α itkrp X trp ≥ I ik ° t '∈T :t '≤t t '∈T :t '≤t r∈Rt p∈Pr ∩ Pk ¯ ¿ k ¦ X trp = X rt
∀r ∈ R, t ∈ T , k ∈ K
(5.a)
X rtk = X rt
∀r ∈ R, t ∈ T , k ∈ K
(5.b)
−
∀i ∈ I , t ∈ T , k ∈ K (3.b) (4.a) +
∀i ∈ I , t ∈ T , k ∈ K (4.b)
p∈Pr ∩ Pk
X rt ∈ {0,1}
A decomposition framework for distribution of fluid products by a vendor-managed-inventory methodology
1389
where Xrt is a binary variable used to denote that feasible route r of time-period t belongs to the optimal solution (Xrt = 1) or not (Xrt = 0); Xrtk is a continuous variable that take the value of Xrt and is used to assign the weight Xrtp to the delivery pattern p Pr ŀ Ik of route r on period t. Binary parameter airt = 1 indicates that site i ∈ I+ ҐI- is visited by route r on period t while continuous parameter Įitkrp indicates the quantity of product k picked(delivered) from(to) plant(customer) i by route r on period t by pattern p. The objective (1) minimizes the total traveling costs. Constraints (2) states that the number of visits to a location over the whole planning horizon T must be at least the minimum number Vi (see appendix). Constraints (3) balances the inventory of product k at each customer i ∈ I- during each period t stating that the sum of the quantities of the product delivered to the customer plus the initial product-inventory minus the total consumption of the product up to the current time period must be larger than the minimum allowed stock and smaller than the maximum storage capacity. Constraints (4) are constraints mirroring eqs. (3) aimed at balancing product stocks on suppliers i ∈ I+. Eq. (5.a) makes the continuous variable Xkrt = 1 for each product k ∈ K just in case Xrt = 1. Then, due to eq. (5.b), the best delivery patterns corresponding to the product k would arise as a convex combination of all generated patterns included in Pr ŀ Pk. R denotes the set of all feasible routes but usually this formulation is applied to a subset R’ and new profitable routes are dynamically added via CG.
3. Solution procedure The CG approach is currently a very effective optimization algorithm used for solving routing problems. CG is carried out in two phases: the slave problem generates feasible tours, named columns and then in the master problem all columns are brought together to find the optimal subset of routes. Due to the complexity of simultaneously computing routes and delivery patterns, here a new lower level is introduced. So, the algorithm is based on a decomposition into three levels: On the bottom level we generate several cargo patterns for each route generated on the intermediate level problem. Route and cargo patterns together form what we call cargo-routes that are coordinated on the top level master problem. The following three subsections describe the three levels in more detail. 3.1. The master problem Each time a new route is added to the above formulation, constraint (5.a)-(5.b) need to be added as well. This is counter-productive because the number of feasible routes is exponential with respect to the number of visited customers but the master problem is defined by eqs (1) to (4) while constraints (5) are dropped according the proposal by Hennig et al (2012). After finding the optimal solution to the relaxed master problem defined by eqs. (1)-(4) with 0 Xtrp 1, the dual variables values (ʌi+, ʌi-, ʌitk+ ʌitk-) for constraints (2)-(4) can be passed to the pricing problem in order to produce more profitable routes and patterns. At each iteration, the linear problem defined by (1)-(4) is solved on the current set of routes and its associated cargo patterns and afterwards new routes (and associated patterns) are generated and added to the master problem. 3.2. Pricing or slave problems (mid level) In order to generate useful routes, we pivot on each plant i ∈ I+ and on each time-period t ∈ T to solve the following problem:
1390
M. Cóccola et al.
Minimize
(
Min Crt − π i+ − ¦ π itkMax + + π itk + t∈T
)¦ Q
+ itk
p∈Pr
§ Min − ¦ ¨¨ Yiπ i− + ¦ π itkMax − + π itk − − k∈K i∈I ©
(
)¦ Q
itk
p∈P
· ¸ ¸ ¹
(6)
subject to:
Di ≥ d ij
∀i ∈ I − , j ∈ I + : j = pivot
° ½° D j ≥ Di + d ij − M D (1 − Sij ) ® ¾ °¯Di ≥ D j + dij − M D Sij − M D (2 − Yi − Y j )°¿
Crt ≥ cf v + cvv (Di + d j i ) − M C (1 − Yi )
−
+
∀i ∈ I , j ∈ I : j = pivot +
∀i ∈ I : i = pivot ∀i ∈ I + : i ≠ pivot
Yi = 1 Yi = 0
¦¦ Q
i∈I − k∈K
∀(i, j) ∈ I − : i < j
itk
Crt t r +
≤ qvehicle
¦ Y st +
i∈I ∪ I
−
i
i
≤ t max
(7) (8.a) (8.b) (9) (10.a) (10.b) (11) (12)
Yi ∈ {0,1}
The objective function (6) is the cost Crt of the route minus the collected prices associated to the visit to customers i ∈ I- and the plant i ∈ I+ and prices associated to the upper and lower bounds on the quantity of products available during each period. Eq. (7) computes the minimum distance travelled to reach customers i ∈ I-. Eqs. (8.a)-(8.b) fix the accumulated distance up to each visited site. I.e. if nodes i and j are allocated to the generated route (Yi = Yj = 1), the visiting ordering for both sites is determined by the value of the sequencing variable Sij. If location i is visited before j (Sij = 1), according to (8.a), the travelled distance up to the location j (Dj) must be larger than Di by at least dij. In case node j is visited earlier, (Sij = 0), the reverse statement holds and eq. (8.b) becomes active. MD is an upper bound for variables Di. Eq (9) computes the cost Crt. Constraints (10) fix the plant to allocate the vehicle travelling the generated route. Capacity constraints are stated by eq. (11) while eq. (12) state that the total traveling time must be smaller than the maximum allowed routing time tmax. The objective (6) depend both on visiting-decision variables Yi and on quantities Qitk. Optimal quantities Qitk are here computed as a convex combination of extreme cargo patterns. They may be directly generated according to the idea of Desaulniers (2010) but the situation here is more complicated because of the multi-commodity nature of the problem (Hennig et al., 2010). So, we propose to generate the minimum number of patterns again by CG at the lowest level of the procedure. 3.3. Pattern generation problem (lower level) Master problem: Minimize:
¦X
(13)
r p
p∈Pr
subject to:
(qitk ) −1 ¦ Qitkrp X pr ≥ 1
∀i ∈ I − : Yi = 1, k ∈ K
p∈Pr
0 ≤ X pr ≤ 1
(14)
1391
A decomposition framework for distribution of fluid products by a vendor-managed-inventory methodology
Eq. (13) minimizes the number of generated patterns and eq. (14) states that at least one pattern must deliver the maximum quantity qitk (see appendix) to each customer. Slave problem: Patterns are dynamically generated by minimizing the objective (15), subject to constraints (16) stating that the sum of quantities associated to the generated pattern cannot exceed the vehicle capacity. Prices associated to constraints (14) are stated by IJik. Minimize: (15) Q
1 − ¦ ¦τ ik
itkrp
qitk
−
i∈I k ∈K
subject to:
Qitkrp ≤ qvehicle
¦ ¦Q
k ∈K i∈I −
itkrp
(16.a)
∀i ∈ I − : Yi = 1, k ∈ K
≤ qvehicle
(16.b)
3.4. Algorithm setup The 3-level algorithm has been coded in GAMS 23.6.2 and used CPLEX 12 as integer solver. It starts with a feasible solution used to solve the restricted master problem (1)(4) for obtaining dual variables associated to constraints (2)-(4) that are passed to the mid-level problems for generating a tour and just one delivery pattern. To find all extreme patterns associated to the tour, the pattern generation problem is solved. The route and its associated patterns are then feed to the master problem and the procedure repeats until no a route-pattern combination with a negative reduced cost can be found by the mid-level problem. Finally, the integer problem defined by eqs. (1)-(5) is solved for finding the best set of routes.
4. A small illustrative example We applied the algorithm to an example involving a plant producing two industrial gases (LIN, LOX) for supplying ten customers on a planning horizon spanning over three days. Data about customer locations, daily demands, storing capacities, initial inventories and vehicle characteristics are summarized in the appendix. The instance was solved on a 2-cores 2.8-Ghz 16-Mbytes RAM PC in a total CPU time of 107.4 s. Thirty routes and its associated delivery patterns were dynamically generated and added to the initial sixty-routes bank. The resolution of the final IP master problem (1)-(5) selected ten routes. The solution is detailed in the next table: Table 1: Solution to the illustrative example Day Mon
Route (LIN load; LOX load) P (+18.5; +4.0) – i8 (-2.0; -2.0) – i10 (0; -2.0) – i3 (-16.5; 0.0) – P P (+16.5; +6.0) – i6 (-2.0; -2.0) – i9 (0; -2.0) – i7 (-2.0; -2.0) – i3 (-12.5; 0.0) – P Tue P (+14.5; +8.0) – i1 (-2.0; -2.0) – i5 (-11.5; 0.0) – i2 (-1.0; -3.0) – i3 (0.0; 3.0) – P P (+14.5; +8.0) – i7 (-8.5; -4.0) – i8 (-3.0; -3.0) – i9 (-2.0; 0.0) – i4 (-1.0; 1.0) – P P (+14.5; +8.0) – i10 (-2.0; -4.0) – i6 (-12.5; -4.0) – P Wed P (+19.07; +3.43) – i1 (-13.57; -3.43) – i5 (-3.0; 0.0) – i2 (-2.5; 0.0) –P P (+8.93; +13.47) –i6 (-4.93; -7.0) – i4 (-4.0; -3.0) – i1 (0.0; -3.57) – P P (+8.5; +14.0) – i7 (-8.0; -6.0) –i2 (-0.5; -8.0) – P P (+4.5; +18.0) – i8 (-4.5; -4.0) – i10 (0.0; -6.0) – i3 (0.0; -8.0) – P P (+22.5; 0.0) – i6 (-7.07; 0.0) –i3 (-15.43; 0.0) – P Total cost
Time 5.88
Cost 2.38
6.42
2.42
6.39
2.39
6.48 6.37 6.39 6.37 5.83 5.88 6.42
2.48 2.37 2.39 2.37 2.33 2.38 2.42 23.93
1392
M. Cóccola et al.
Appendix Minimum number of visits to source and sink nodes ª ª ª § · º º ∀i ∈ I − 0 min « « « max ¨ ¦ d itk − (I ik − I ik ) ; 0 ¸ » » 1 vi = « « nc « «
© t ∈T
¦« k∈K « « «
1 vi = « « nc « «
¹ »» »» »» »»
qc
ª § · ºº max 0 « max¨ ¦ pitk − I ik − I ik ; 0 ¸ » » t ∈ T © ¹ »» ¦« qc »» k ∈K « »» « »» «
(
)
∀i ∈ I +
Upper bound on the quantity to pickup/deliver from/to source/sink nodes § ¨ q itk = min ¨ ¨ ©
· · § ¸ ¨ max ¸ 0 max 0 − − − I I d ; I I ; n q ¸ ¦ ik ik it k ik ik c c ' ¨ ¸ t '∈T : ¨ ¸ ¸ t '≤ t © ¹ ¹
§ ¨ qitk = min ¨ ¨ ©
· § · ¸ ¨ 0 ¸ min max 0 ¨ I ik − I ik + ¦ d it ' k ¸ ; I ik − I ik ; nc qc ¸ t '∈T : ¨ ¸ ¸ t '≤ t © ¹ ¹
(
)
(
∀i ∈ I − , k ∈ K , t ∈ T
)
∀i ∈ I + , k ∈ K , t ∈ T
Table A1: Parameters for the illustrative example Plant Xcoord Ycoord Demands LIN-Mon LOX-Mon LIN-Tue LOX-Tue LIN-Wed LOX-Wed ILIN0 ILOX0
5 0
i1 0 5
i2 5 8
i3 10 5
i4 0 0
Customers i5 i6 0 2 9 -2
i7 2 -4
i8 1 -6
i9 -1 -3
i10 6 -2
-45 -35 -40 -30 -40 -25 45 12
10 5 11 5 11 7 10 5
2 5 2 5 2 7 3 4
6 5 7 5 9 7 8 4
3 2 3 2 4 2 4 3
5 1 2 1 3 1 6 4
3 2 3 2 3 3 0 0
1 1 1 1 1 1 0 0
0 1 2 0 0 0 0 0
0 2 5 2 0 4 0 0
cfv =10
cvv =1
5 2 5 3 7 4 0 0
qvehiculo = 22.5
sti = 0.5
5. Conclusion We presented a solution strategy for the distribution of fluids according to the VMI modality. We approach this problem with a nested CG algorithm decomposing the problem into three levels in order to avoid convergence issues arising from a slave problem that should simultaneously fix routing decisions and quantities to deliver to each customer. Since the solution to the problem is currently found by solving the integer master problem on the pool of generated routes, the solution found may not be optimal. So, the next task should be embedding this algorithm into a branch & price procedure able to find the optimal solution. A more accurate description of the realworld problem considering visiting times dependant on the quantities delivered and costs related to quantities delivered should be also considered.
References Andersson H., Hoff M., Christiansen M., Halse G. Lokketangen A., 2010, Computers and operations research, 37(9), 1515-1536. Desaulniers G., 2010, Operations research 58 (1), 179-192 Hennig F., Nygreen B., Lübbecke M., 2012, Naval Research Logistics 59 (3-4), 298-310