Skip to main content

Multi-Echelon Supply Chains with Lead Times and Uncertain Demands

A Lot-Sizing Formulation and Solutions

Abstract

The aim of this work is to formulate a multi-echelon supply chain and schedule the productions, transportations, and inventories in this supply chain. This supply chain consists of a production echelon, a warehouse echelon, and a retailer echelon. Each echelon consists of multiple nodes. There are challenges of having lead times and uncertain demands in formulating and solving such a supply chain, mathematically. The lead times are incorporated in the formulation of this problem. To overcome the uncertainty of demand, two solution approaches are devised. Each solution approach utilizes two methods to obtain solutions. Solution methods are compared against Cplex solvers and their advantages are explored, computationally. To compare solution approaches, two external measures are used, which are called excess inventory and backlogging. The numerical analyses show a trade-off between solution approaches regarding these measures. In another word, it is shown that one-solution approach results in a lower backlogging, while the other results in a lower excess inventory. These solution approaches and methods provide options for decision makers, in which they can select them considering the priorities and needs.

Introduction

A generic supply chain is a multi-echelon (multi-level) chain of entities/enterprises that produce, assemble, and ship products. The chain involves complex operations that process raw materials and change them to the end products and manage the returns Wisner et al. [1]. Figure 1 shows an example of a multi-echelon supply chain that consists of three levels, each having multiple nodes. Every product goes through such a supply chain to be produced and distributed. Scheduling activities in an efficient manner would benefit the owner of firms involved in the supply chain. For this reason, this paper studies how to schedule production, inventory, and transportation processes for a multi-echelon supply chain with lead times and uncertain demands.

Fig. 1
figure1

Multi-echelon supply chain in this paper

To find schedule these quantities for the produced items in every period of planning, the manufacturing capacity, uncertain nature of demands, and lead times between nodes are taken into the account, and this supply chain is formulated as a multi-echelon dynamic lot-sizing (MEDLS) problem. When a product is produced, it will be transported to a warehouse, and from there it will be shipped to a retailer. The transportations and shippings take time; hence, it should be incorporated in the model. Moreover, there are waiting times in every node of the supply chain. All these travel and waiting times are treated as lead times in this paper.

Mathematical programming tools exist in the literature that can plan the operations of a supply chain, and this work follows this path and formulates the MEDLS problem as a mathematical model and uses the mathematical programming techniques to solve it. Mathematical programming provides solution approaches and methods to solve the problems of interest. This work distinguishes between solution approaches and methods. Solution approaches are the reformulations of the original problem and solution methods are algorithms and techniques being used for solving.

Since one of the parameters in the formulation is uncertain, i.e., demand, we develop two solution approaches based on the uncertainty of demands. First approach is based on the expected values of demands, in which the average demand in each period for each product is calculated. This approach is popular in the literature of the stochastic optimization Kleywegt et al. [2], Nemirovski et al. [3], Prekopa [4]. The second approach is to maximize the minimum fulfilled demand of each item. This max–min approach is common in the literature of stochastic programming as well. For example, Shapiro and Kleywegt [5] analyze the case of min–max for stochastic optimization problems, which have a reverse order of minimax instead of max–min. To solve these new problems/approaches, two heuristics solution methods are utilized. The first method finds the value of variables in sequence; hence, it is called the sequence algorithm. The second solution method is built based on the sequence algorithm and improves its solution through an evolutionary process. These two solution methods are applied to both solution approaches.

The first contribution of this paper is the formulation of the multi-echelon supply chain as a DLS problem considering the uncertain demands and lead times. The max–min approach for solving the multi-echelon supply chain is the second contribution of this paper. The third contribution of the paper is the finding of the existing trade-off between solution approaches. This trade-off shows that one approach results in a low excess inventory and a relatively high backlogging, while the other results in a higher excess inventory and lower backlogging. Devising solution methods is the fourth contribution of this paper.

This paper is organized in the following sections: Section 2 provides a literature review of the similar problems. Section 3 formulates the problem. Section 4 presents solution approaches and methods for solving the problem of interest, and Section 5 numerically analyzes the solution approaches and methods. Section 6 concludes the paper and notes on the possible future directions of this research.

Literature Review

DLS problem is named after the work of Wagner and Whitin [6], where an economic lot sizing problem was extended to cover multiple periods of planning under the stationary demand. Since then, DLS problem has been utilized to address a variety of issues in the supply chain Brahimi et al. [7], Farhangi and Niranjan [8]. In the earlier versions of DLS problem, demand is assumed to be deterministic and stationary, while varying among periods Wagner and Whitin [6]. Demand in real life is not deterministic, and it has uncertain characteristics. This uncertainty may either lead to excess inventories or backlogging. Sox [9] studies the case of random demand for a single product and formulates the DLS problem over every realization of the demand and penalizes the expected backlogging in the objective function. The work of Helber et al. [10] extends the work of Sox [9] to multiple products, in addition to adding safety stocks to the inventory of products. In this work, however, we deal with uncertain demands as variables that change between lower and upper bounds. We also present two approaches to solve the resulting models. Section 4 discusses these two approaches.

Different levels/echelons of supply chain are another issue that can be addressed by DLS problems. The study of Diaby and Martel [11] considers one level of warehouses, where warehouses procure products to satisfy the demands. The decisions are how much to procure, how much is the inventory, and how much of the products the warehouses will receive in each period. Two levels of production and depots with multiple products are studied in Barbarosoglu and Ozgur [12]. The decision is to decide the amount of productions, amount of transportations, and the inventory of products. Four levels of supply chain, including vendors of raw materials, production plants, warehouses, and customer zones, are considered in the work of Jayaraman and Pirkul [13]. The problem that is discussed in the work is not dynamic lot-sizing in nature, and our study differs from it by building upon a DLS formulation and extending it to account for multiple periods, uncertain demands, and lead times. Two levels of supply chain, namely one warehouse and a distribution level, are considered in Jaruphongsa et al. [14]. The work of Bard and Nananukul [15] utilizes a two levels of supply chain: one level for a manufacturing site and one level for multiple customers. The work of Seyedhosseini and Ghoreyshi [16] studies a two-level supply chain where vehicles are routed to carry the products between production plants and distribution centers.

Furthermore, Kaminsky and Simchi-Levi [17] consider two levels of supply chain where the level one has a production node and level two has one transportation node. Our proposed model differs from this work by incorporating three levels/echelons where every level has multiple nodes as it can be seen in Fig. 1. A similar trend in the literature can be seen such that a complete three echelon supply chain has not been studied. For example, Jin and Muriel [18] consider one level of supply with one node, one level of distribution with one node, and one level with multiple retailers. Other examples are Melo and Wolsey [19], Solyali et al. [20] where two levels of single-node supply chain are considered, Solyali et al. [21] where one level of single warehouse and one level of multiple retailers are considered, Hwang et al. [22] where the first level is a single manufacturing node, the last level is a single demand node, and the rest of levels consist of single nodes showing the transportation. In one case, however, three levels of supply chain with multiple nodes at each level have been studied Darvish [23]. Our study is an extension of latter work by considering lead times and uncertain demand. We, however, do not consider the delivery time-windows as discussed in Darvish [23]. Moreover, the study of Gruson et al. [24] considers three echelons of the supply chain. This study differs from our work by considering only one production node and not accounting for the transportations and lead times.

Once the production is complete, it takes some time to distribute products throughout the supply chain. This time is known as the lead time of products. Most of DLS problems in the literature account for the zero lead time, which is unrealistic. In contrast, several researches account for the deterministic lead times. Tempelmeier and Helber [25] modify the indices of production variables to include lead time in the formulation. Particularly, the time index of the production/transportation variables in the inventory balance constraints is modified by subtracting the lead time from the indices. Similar approach has been used in Almeder et al. [26], Tempelmeier and Derstroff [27]. On the other hand, Kimms [28], Kimms [29] account for the deterministic lead time by adding additional constraints that guarantee the inventory in each period for a product to be greater than production in the next L periods, where L is the lead time of the product. In this work, we account for the deterministic lead times. We incorporate the latter approach for the inventories of productions level and warehouses level. Note that Gyulai et al. [30] indirectly incorporate lead times in the time limitation constraints and Kumar et al. [31] consider the varying lead times. Our study differs from these works in which we formulate lead times in separate constraints and treat them as deterministic parameters.

All nodes of a supply chain may face limitation of capacity, scarcity of resources, or time availability. This limitation has been addressed in the constraints of the most DLS problems in the form of Knapsack constraints. For example, production capacity has been utilized in the work of Almeder et al. [26], Kimms [29], Brahimi et al. [32], Drexl and Kimms [33], Maes and Wassenhove [34], Ramezanian et al. [35], Toledo et al. [36], Trigeiro et al. [37]. The time limitation is formulated in the works of Denizel et al. [38], Helber and Sahling [39]; the both production capacity and time capacity have been addressed in the work of Melega et al. [40], and time limitation has been studied in the work of Gurkan and Tunc [41]. In addition, Tempelmeier and Helber [25], Kimms [28], Helber and Sahling [39], Buschkuhl et al. [42], Diaby et al. [43], Franca et al. [44], Pitakaso et al. [45], Prakaiwichien and Rungreunganun [46], Sahling et al. [47] consider generic resource capacity constraints. In this work, we account for the capacity of manufacturers, where there is an upper bound on the production capacity of every manufacturer in each period.

Service level in the supply chain is another important issue that has been addressed in DLS problems as constraints. This constraint is formulated as the probability of having inventory in hand being greater than \(\alpha\), where \(\alpha\) is service level Bookbinder and Tan [48]. In Sox [9], Bookbinder and Tan [48], the demand uncertainties make the backorder costs and inventory costs uncertain as well; as a result, the DLS problem was reformulated to minimize the expected costs, considering cumulative service level constraints. Tarim and Kingsman [49] follow a similar approach to model a DLS problem with uncertain demands. Helber and Sahling [39] extended the previous works for general cases of service levels as they introduce new types of service levels. Several extensions to the works of Bookbinder and Tan [48] and Helber and Sahling [39] are presented in Tempelmeier [50]. In addition, Grusone et al. [51] study both service levels and backorders. In our work, we do not account for the service level; instead, we use an expected demand approach and a max–min optimization approach to deal with the uncertain demand and to indirectly control the service level.

A new trend in studying DLS problems is to integrate it with other well-known problems. Literature in this area is expanding and we recommend interested readers to look at Martinez et al. [52] for an integration of a scheduling problem and DLS problem. The work of Melega et al. [53] formulates and solves an integration of scheduling, cutting stock, and DLS problem. Next, the formulation of this problem is presented.

Problem Formulation

The set of nodes of a multi-echelon supply chain is shown by V and it is indexed by uw. The set of production nodes is \(V^p=\{1,...,|V^p|\}\), the set of warehouses/distribution nodes is \(V^d=\{1,...,|V^d|\}\), and the set of retailer nodes is \(V^r=\{1,...,|V^r|\}\). To formulate the MEDLS problem, we define additional sets, parameters, and variables. Note that the notation is similar to the one appearing in Farhangi and Niranjan [8]. The set of time periods is defined as \(T=\{1,2,\ldots ,|T|\}\) and indexed by \(t,r\in T\) and the set of items is shown by \(I=\{1,2,\ldots ,|I|\}\) and indexed by \(i\in I\).

The list of parameters is as follows: \(c_{iu}^t\) is the production cost of item i in period t at node \(u\in V^p\), \(f_{iuw}^t\) is the transportation cost of one unit of item i from node u to node w in period t, \(h_{iu}^t\) is the inventory cost of item i in period t at unit u, \(s_{iu}^t\) is the setup cost of producing item i in period t at unit \(u\in V^p\), \(o_{iu}^t\) is the startup cost of producing item i in period t at unit \(u\in V^p\), \(lb_{D_{iu}^{t}}\) is the smallest observed historical demand of item i in period t at unit \(u\in V^r\), \(ub_{D_{iu}^{t}}\) is the largest observed historical demand of item i in period t at unit \(u\in V^r\), \(r_{u}\) is the production capacity of unit \(u\in V^r\), and \(t_{uw}\) is the lead time between nodes u and w. The lead time is \(t_{uw}\), which mostly comprises of travel time between nodes u and w. However, if these nodes experience additional regular waiting times, \(t_{uw}\) can be adjusted to capture such times. It is worth noting that we consider the deterministic lead times in this work and stochastic version is beyond the scope of this work. Interested readers are referred to Huang and KucuKyavuz [54] for a stochastic version of lead times.

Finally, the variables of problems are defined. Variable \(P_{iu}^t\) is the production quantity of item i in period t at node \(u\in V^p\), \(X_{iuw}^{t}\) is the transportation quantity of item i in period t from node u to node w, \(Q_{iu}^{t}\) is the inventory quantity of item i in period t at unit \(u\in V^p\), and \(D_{iu}^{t}\) is the variable that realizes the demand of item i in period t at unit \(u\in V^r\). Note that in this formulation, we assume demand is a variable that is changing between lowest observed historical value and the highest observed value. This approach enables us to consider uncertain demand and utilize appropriate solutions approaches. For the setup, we have binary variable \(Y_{iu}^{t}\); \(Y_{iu}^{t}=1\) if we produce i in period t at node \(u\in V^p\), \(Y_{i}^{t}=0\) otherwise. For startup, we have binary variable \(Z_{iu}^{t}\); it is equal to one if we produce i in period t at node \(u\in V^p\) and not in period \(t-1\), zero otherwise.

Using the above notation, summarized in Appendix 1, the MEDLS can be formulated as follows:

$$\begin{aligned} \min {\sum \limits _{t\in T}\sum \limits _{i\in I} \left( \sum \limits _{u\in V^p} c_{iu}^t P_{iu}^t + \sum \limits _{u\in V} h_{iu}^t Q_{iu}^t + \sum \limits _{u\in V^p} s_{iu}^t Y_{iu}^t\right) } \end{aligned}$$
$$\begin{aligned} +\sum \limits _{t\in T\setminus \{1\}}\sum \limits _{i\in I} \left( \sum \limits _{u\in V^p} o_{iu}^t Z_{iu}^t \right) \end{aligned}$$
$$\begin{aligned} +\sum \limits _{t\in T}\sum \limits _{i\in I} \left( \sum \limits _{u\in V^p}\sum \limits _{w\in V^d} f_{iuw}^t X_{iuw}^t + \sum \limits _{u\in V^d}\sum \limits _{w\in V^r} f_{iuw}^t X_{iuw}^t\right) \end{aligned}$$
(1)
$$\begin{aligned} s.t. Q_{iu}^{t-1}+P_{iu}^t\ge Q_{iu}^{t}+\sum \limits _{w\in V^d} X_{iuw}^t \qquad \forall u\in V^p, \forall i\in I, \forall t\in T \end{aligned}$$
(2)
$$\begin{aligned} Q_{iu}^{t-1} + \sum \limits _{w\in V^p} X_{iwu}^t\ge Q_{iu}^{t}+\sum \limits _{w\in V^r} X_{iuw}^t \qquad \forall u\in V^d, \forall i\in I, \forall t\in T \end{aligned}$$
(3)
$$\begin{aligned} Q_{iu}^{t-1} + \sum \limits _{w\in V^d} X_{iwu}^t\ge Q_{iu}^{t}+D_{iu}^t \forall u\in V^r, \qquad \forall i\in I, \forall t\in T \end{aligned}$$
(4)
$$\begin{aligned} P_{iu}^t\le M^t Y_{iu}^t \qquad \forall u\in V^p, \forall i\in I, \forall t\in T \end{aligned}$$
(5)
$$\begin{aligned} Z_{iu}^t\ge Y_{iu}^t - Y_{iu}^{t-1} \qquad \forall u\in V^p, \forall i\in I, \forall t\in T\setminus \{1\} \end{aligned}$$
(6)
$$\begin{aligned} \sum \limits _{i\in I}P_{iu}^t\le r_u \qquad \forall u\in V^p, \forall t\in T \end{aligned}$$
(7)
$$\begin{aligned} Q_{iu}^{t}\ge \sum \limits _{w\in V^d}\sum \limits _{r=t}^{\min \{t+t_{uw},|T|\}} X_{iuw}^r \qquad \forall u\in V^p, \forall i\in I, \forall t\in T\setminus \{|T|-1\} \end{aligned}$$
(8)
$$\begin{aligned} Q_{iu}^{t}\ge \sum \limits _{w\in V^r}\sum \limits _{r=t}^{\min \{t+t_{uw},|T|\}} X_{iuw}^r \qquad \forall u\in V^d, \forall i\in I, \forall t\in T\setminus \{|T|-1\} \end{aligned}$$
(9)
$$\begin{aligned} P_{iu}^t\ge 0 \qquad \forall u\in V^p, \forall i\in I, \forall t\in T \end{aligned}$$
(10)
$$\begin{aligned} Q_{iu}^{t}\ge 0 \qquad \forall u\in V, \forall i\in I, \forall t\in T \end{aligned}$$
(11)
$$\begin{aligned} X_{iuw}^t\ge 0 \qquad \forall u,w\ne u\in V, \forall i\in I, \forall t\in T \end{aligned}$$
(12)
$$\begin{aligned} lb_{D_{iu}^{t}}\le D_{iu}^t\le ub_{D_{iu}^{t}} \qquad \forall u\in V^r, \forall i\in I, \forall t\in T \end{aligned}$$
(13)
$$\begin{aligned} Y_{iu}^t\in \{0,1\} \qquad \forall u\in V^p, \forall i\in I, \forall t\in T \end{aligned}$$
(14)
$$\begin{aligned} Z_{iu}^t\in \{0,1\} \qquad \forall u\in V^p, \forall i\in I, \forall t\in T\setminus \{1\} \end{aligned}$$
(15)

Equation (1) aims at minimizing the total cost of productions, transportations, holdings, setups, and startups. For every production node \(u\in V^p\), the inventory balances are derived in constraints (2). These constraints are the modified version of inventory balance constraints applied to every node. They are formulated based on network flow principle, i.e., the total inflow must be greater than or equal to the total outflow. For every period t and item i, the total inflow is the production by all units plus the previous inventory, while the total outflow is the new inventory plus the transportations. Note, in the optimum solution, these constraints are tight. Using the same principle, constraints (3) and (4) are derived to capture the inventory balance inequalities for each item i in each period t and each distributor and retailer. Constraints (5) force the setup variables for each item in each period to be one if there is a production in a manufacturing unit \(u\in V^p\). Constraints (6) guarantee the startup variables which will be equal to one if we start production in a given period for a production node \(u\in V^p\), which was not producing that particular item in the previous period Karmarkar et al. [55]. Note that it is assumed that every item is produced in a separate machine and we do not consider machine type and machine assignment in this research.

Constraints (7) put an upper bound on the production quantity for each production node in each period. Similar capacity constraints can be found in the literature of DLS problem Denizel and Sural [38], Helber and Sahling [39], Melega et al. [40]. Constraints (8) and (9) account for the lead times in the model. They enforce enough inventory for each period to satisfy the future internal demand. These constraints are formulated based on the work of Kimms [28], Kimms [29], Drexl and Kimms [33]. Constraints (10)–(15) define variables. Note that constraints (13) define the demands as decision variables that we know their lower bounds and upper bounds.

Solution Analysis

In this section, we first transfer the MEDLS problem to its matrix form to make the notation simple. Second, we devise solution approaches to deal with uncertain demand. One approach sets the demand variables to their average values, and the other approach maximizes the minimum demand of each item. Finally, we present two solution methods that can be used in each approach.

Matrix Form and Binary Variables

Let Y be the vector of \(Y_{iu}^t\) variables, Z be the vector of \(Z_{iu}^t\) variables, and U be the vector of the rest of variables. In addition, S is the cost coefficients of variables Y, O is the cost coefficients of variables Z, and C is the cost coefficients of variables U. Moreover, \(A_1\) and \(b_1\) are the coefficients and the right-hand-side of constraints (2), (3), (4), (7), (8), and (9). Similarly, \(A_2\), \(B_2\), and \(b_2\) are the coefficients and right-hand side of constraints (5). In addition, \(A_3\), \(B_3\), and \(b_3\) are the coefficients and right-hand side of constraints (6). Finally, \(\mathcal {U}\) shows the definition space of variables U, in which, all variables are nonnegative and \(D_{iu}^t\) variables change between \(lb_{D_{iu}^{t}}\) and \(ub_{D_{iu}^{t}}\).

$$\begin{aligned} \mathcal {P}:\quad\min\quad &CU+OZ+SY\\ s.t.\quad&A_1 U\ge b_1 \\ &A_2 U + B_2 Y\ge b_2 \\ &A_3 Z + B_3 Y\ge b_3 \\ &U\in\mathcal{U} \\ &Z\ge 0\\&Y\in \{0,1\} \end{aligned}$$

Solution Approaches

Problem \(\mathcal {P}\) is a mixed-integer linear programming problem with one uncertain parameter. To deal with the uncertain parameters, such as demand in problem \(\mathcal {P}\), researchers utilize different approaches. One approach assumes that the distribution/density function of demands is given. Given the distribution, some expected value function or penalty cost can be calculated for backorders. This approach is used in Sox [9], Helber et al. [10]. Alternatively, one can look at the historical data and use methods such as sample average approximation (SAA) to solve problems of interest Kleywegt et al. [2], Nemirovski et al. [3], Shapiro and Philpott 56]. In this work, however, we assume the distribution of uncertain parameters is not known and the historical data are limited to the lower bound and the upper bound of demands. Based on this limited information, two approaches are used: one is based on the average of demand and the other one is based on the maximization of the minimum demand in each period. Note that using all approaches available in the literature and the comparison between them is left for future studies.

A decision maker, who is faced with the uncertainty of demand in MEDLS, may choose to set the demand to its expected value and solve the resulting model. In the case of MEDLS problem, expected demands are the average of lower bounds and upper bounds of demands in constraints (13). In another word, one should set \(D_{iu}^t\) equal to \((lb_{D_{iu}^{t}}+ub_{D_{iu}^{t}})/2\), which is denoted by \(\overline{D_{iu}^t}\). The resulting model is called the expected value problem Kleywegt et al. [2]. If we add these constraints to the \(\mathcal {P}\) problem, the resulting model is \(\mathcal {P}_{\overline{D}}\), stated in the followings:

$$\begin{aligned} \mathcal{P}_{\overline{D}}:\quad\min\quad&CU+OZ+SY\\s.t.\quad&A_1 U\ge b_1 \\&A_2 U + B_2 Y\ge b_2 \\&A_3 Z + B_3 Y\ge b_3 \\&D_{iu}^t=\overline{D_{iu}^t}\qquad\quad \forall u\in V^r, \forall i\in I, \forall t\in T\\&U\in \mathcal {U} \\&Z\ge 0\\&Y\in \{0,1\} \end{aligned}$$

Adding \(D_{iu}^t=\overline{D_{iu}^t}\) constraints to the model is equivalent to replacing \(D_{iu}^t\) by \(\overline{D_{iu}^t}\) in constraints (4), which is used in this research.

An alternative approach to deal with the uncertainty of demand is to maximize the minimum satisfied demand of each item. By introducing a new variable, \(\lambda\), we can capture this by the following objective function and constraints:

$$\begin{aligned} \max&\lambda&\\ s.t.&\sum \limits _{t\in T} \sum \limits _{u\in V^r}D_{iu}^t\ge \lambda&\forall i\in I \end{aligned}$$

The objective can be converted into a minimization form by considering a sufficiently small coefficient \(-c_{\lambda }\) (\(c_{\lambda }\) is sufficiently large). After adding variable \(\lambda\) and its objective coefficient to problem \(\mathcal {P}\) we have a new problem, which is called \(\mathcal {P}_{\lambda }\).

$$\begin{aligned} \mathcal {P}_{\lambda }:\quad\min\quad&CU+OZ+SY-c_{\lambda }\lambda \\s.t.\quad&A_1 U\ge b_1 \\&A_2 U + B_2 Y\ge b_2 \\&A_3 Z + B_3 Y\ge b_3 \\&\sum \limits _{t\in T} \sum \limits _{u\in V^r}D_{iu}^t\ge \lambda \qquad\forall i\in I\\&U\in \mathcal {U} \\&Z,\lambda \ge 0\\&Y\in \{0,1\} \end{aligned}$$

Next, two heuristics solution methods will be presented, in which they will be utilized to solve both \(\mathcal {P}_{\overline{D}}\) and \(\mathcal {P}_{\lambda }\) problems. For the simplicity, we develop these methods to solve problem \(\mathcal {P}\), and the steps for solving \(\mathcal {P}_{\overline{D}}\) and \(\mathcal {P}_{\lambda }\) will be the same.

Sequence Algorithm

To devise the solution methods/algorithms, we first show that \(Z_{iu}^t\) variables can be expressed as continuous variables. This property is captured in the following proposition:

Proposition 1

Variables \(Z_{iu}^t\)’s can be stated as continuous variables in MEDLS problem.

Proof

Every \(Z_{iu}^t\) variable has a cost coefficient \(o_{iu}^t\). For a given solution, if constraints (6) do not force \(Z_{iu}^t\) variables to be greater than or equal to 1, it will be zero to return a lower objective value. In addition, if constraints (6) forces a variable \(Z_{iu}^t\) to be greater than or equal to one, it should be at most 1 to maintain a lower objective value. Hence, variables \(Z_{iu}^t\) only take values of either 0 or 1, if stated as continuous variables in the model. \(\square\)

Proposition 1 enables a separation of variables and in what follows it is used to derive two algorithms.

The first algorithm is a simple heuristic algorithm. This algorithm drops constraints \(A_2 U + B_2 Y\ge b_2\) and \(A_3 Z + B_3 Y\ge b_3\) and variables Y and Z from the model and solves the resulting model. Next, if \(P_{iu}^t>0\), corresponding \(Y_{iu}^t\) is set to be one, otherwise it is set to be zero. Given Y values, variables Z can be calculated by solving a small linear problem. Because of the sequence nature of finding the values of variables, this algorithm is called sequence algorithm (SA). The steps of the algorithm are shown in the following that can be used for solving both \(\mathcal {P}_{\overline{D}}\) and \(\mathcal {P}_{\lambda }\) problems.

  • Step 1. Dropping variables Y and Z from the model and solving the resulting model. For problem \(\mathcal {P}\), the new model is called \(\mathcal {P}_U\). In this problem, second and the third constraints will be removed as well. This problem can be seen in the following:

    $$\begin{aligned} \mathcal {P}_U:\quad\min\quad&CU\\s.t.\quad&A_1 U\ge b_1 \\&U\in \mathcal {U} \end{aligned}$$

    The optimum solution of this problem is called \(\overline{U}\) and optimum objective value as \(z^*_U\). Note, if we solve problem \(\mathcal {P}_{\overline{D}}\) or problem \(\mathcal {P}_{\lambda }\), the corresponding problem can be found in a similar manner.

  • Step 2. Given \(\overline{P_{iu}^t}\in \overline{U}\) values, we calculate \(Y_{iu}^t=1\) if \(\overline{P_{iu}^t}>0\). otherwise, we set \(Y_{iu}^t=0\) (\(\forall t\in T\), \(\forall u\in V^p\), \(\forall i\in I\)). The value of Y acquired in this step is called \(\overline{Y}\). The associate cost of Y is called \(z^*_Y\).

  • Step 3. Given \(Y=\overline{Y}\) in step 2, one can calculate the value of Z variables by solving the \(\mathcal {P}_Z\):

    $$\begin{aligned} \mathcal {P}_Z:\quad\min\quad&OZ\\s.t.\quad&A_3 Z \ge b_3 - B_3 \overline{Y} \\&Z\ge 0 \end{aligned}$$

    The optimum value of this problem is called \(\overline{Z}\) and its optimal objective value is \(z^*_Z\). Alternatively, one can use the definition of variables Z, or constraints (6), to calculate them.

  • Step 4. Return the \(\overline{U}\), \(\overline{Y}\), and \(\overline{Z}\) as the vectors of the solution. Return the optimal objective as \(z^*=z^*_U+z^*_Y+z^*_Z\).

Evolutionary Sequence Algorithm

This algorithm is the extension of SA algorithm. Because of that, it is called evolutionary sequence algorithm (ESA). The algorithm starts with the initial solution that SA algorithm provides. Through the evolutionary process, several Y values will be generated and evaluated until the termination criteria is met. The basic operations of this algorithm are shown below:

  • Solution Creation. Given the solution \(\overline{Y}\) and its objective value \(z^*\), we reshape the vector \(\overline{Y}\) into a \(|V^p|*|T|\) by |I| array (\(|V^p|*|T|\) rows and |I| column). To find new solutions, we perform the following operations to create new solutions:

    • Operation 1: Selecting a few rows randomly in reshaped \(\overline{Y}\) and flipping the elements of each selected row.

    • Operation 2: Selecting two row blocks of equal size in reshaped \(\overline{Y}\) and swapping them.

    • Operation 3: Selecting one row block of one solution (reshaped \(Y_1\)) and another row block of another solution (reshaped \(Y_2\)) and swapping them. Note, the row blocks should have equal size. In addition, we do not apply this operation at the initialization step. This operation is reserved for the improvement step.

    • Operation 4: Selecting a row randomly in the reshaped \(\overline{Y}\) and flipping its elements.

  • Evaluation. For any solution Y, we find the value of U, Z, and the objective function. Assuming the given value of Y is \(\overline{Y}\), we construct problem \(\mathcal {P}_U^{\overline{Y}}\) as follows:

    $$\begin{aligned} \mathcal {P}_U^{\overline{Y}}:\quad\min\quad&CU\\s.t.\quad&A_1 U\ge b_1 \\&A_2 U \ge b_2 - B_2 \overline{Y} \\&U\in \mathcal {U} \end{aligned}$$

    Problem \(\mathcal {P}_U^{\overline{Y}}\) is similar to problem \(\mathcal {P}_U\) with the additional constraint \(A_2 U \ge b_2 - B_2 \overline{Y}\). Assuming \(\overline{U}\) is the solution to \(\mathcal {P}_U^{\overline{Y}}\) with the objective value of \(z_U\) and \(\overline{P_{iu}^t}\in \overline{U}\), we update \(Y_{iu}^t=1\) if \(\overline{P_{iu}^t}>0\). Otherwise, we set \(Y_{iu}^t=0\) (\(\forall t\in T\), \(\forall u\in V^p\), \(\forall i\in I\)). We replace \(\overline{Y}\) by the new Y, which may not change in this process. The total cost of \(\overline{Y}\) is \(z^*_Y=S\overline{Y}\). Finally, by solving problem \(\mathcal {P}_Z\) (introduced in SA method), we get the value of \(\overline{Z}\) and \(z^*_Z\). The solution is \(\overline{U}\), \(\overline{Y}\), and \(\overline{Z}\) and the objective value is \(z^*=z^*_U+z^*_Y+z^*_Z\). This is similar to the SA algorithm, except the \(\mathcal {P}_U\) is changed to \(\mathcal {P}_U^{\overline{Y}}\).

  • Given these operations, ESA is shown in the following steps:

  • Step 1. Perform SA to get the initial solution (\(\overline{Y}\),\(\overline{U}\),\(\overline{Z}\)) with the objective value \(z^*\).

  • Step 2. Given \(\overline{Y}\), perform operations 1,2, and 4 to get new Y values. Evaluate these new solutions and get their objective values. Sort them based on their objective values and select the two with the lowest objective values as the population to use in the next step.

  • Step 3. This step is the loop of the algorithm. While stopping criteria is not met, perform the followings:

    • For every solution in the population, apply operations 1,2, and 4 and get new solutions. Use operation 3 and apply it to the solutions in the population to get new solutions.

    • Evaluate solutions.

    • Add all the newly generated solutions to the population and sort them. Select the first two solutions with the best objectives as population.

Numerical Analysis

The algorithms and all the procedures are implemented in MATLAB 2016a and run on a computer with Intel Core i3 2.3 GHz CPU and 6 GB RAM. Furthermore, IBM ILOG’s 128 Cplex solver is used for solving instances, which we refer to as Cplex. Note that Cplex is set to find the optimal solution in all instances; however, when it fails to do so we report that in the tables as GAP (which is the percentage; %). In addition, Cplex sometimes exits the optimization process prematurely when the number of variables is large.

To solve \(\mathcal {P}_Z\), \(\mathcal {P}_U\) problem in SA, and \(\mathcal {P}_U^{\overline{Y}}\) problem in ESA, we use Cplex linear programming solver. The purpose of this section is to compare the performance of SA, ESA, and Cplex in solving instances of problems \(\mathcal {P}_{\overline{D}}\) and \(\mathcal {P}_{\lambda }\), which are solution approaches in this work. Moreover, we compare the solution approaches \(\mathcal {P}_{\overline{D}}\) and \(\mathcal {P}_{\lambda }\) to understand the advantages and disadvantages of these approaches. In all comparisons, the computational time is reported by CPU (in seconds), the best objective value of each algorithm by \(z^*\), the number of iterations in ESA by iter, the number of constraints by const., and the number of variables by var.

For the comparisons of algorithms, five instances for a given |I|, |T|, \(V^p\), \(V^d\), and \(V^r\) are solved and their averages are reported. Using five instances seems to be sufficient. Increasing the number of instances does not reveal additional or contradictory information. Instances are created by randomly generating integers within an interval which we show by \(UI[a_1,a_2]\), where \(a_1\) is the lowest possible value and \(a_2\) is the highest one. Particularly, \(c_{iu}^t\in UI[1,2]\) for \(t=1\) and for the rest of periods an inflation rate of 1% is employed, \(h_{iu}^t\in UI[1,4]\) for \(t=1\) and for the rest of periods an inflation rate of 1% is employed, \(p_{iu}^t\in UI[10,20]\) for \(t=1\) and for the rest of periods an inflation rate of 1% is employed, \(s_{iu}^t\in UI[50,70]\) for \(t=1\) and for the rest of periods an inflation rate of 1% is employed, \(o_{iu}^t\in UI[2,3]\) for \(t=1\) and for the rest of periods an inflation rate of 1% is employed, and \(f_{uw}^t\in UI[15,30]\) for \(t=1\) and for the rest of periods an inflation rate of 1% is employed.

Moreover, lead times (\(t_{uw}\)) are produced by dividing the cost of travel in the first period by the minimum cost of all travels, and without the loss of generality we disregard the residual waiting times that may influence the lead time. This is based on the assumption that travel cost is linearly dependent on travel times. Furthermore, lower bounds of demands are generated as \(lb_{D_{iu}^{t}}\in UI[400,900]\) and their upper bounds are generated as \(ub_{D_{iu}^{t}}\in \min \{1.2\times lb_{D_{iu}^{t}},1000\}\). The capacity of production, i.e., \(r_u\), is set to be the average of the lower bounds of demands over the periods. The initial items’ inventories, i.e., \(Q_{iu}^0\) are set to be the average of demand for items at node \(u\in V^r\) over all periods multiplied by the maximum lead time to any node that is connected to the node \(u\in V^r\). This setting of \(Q_{iu}^0\) guarantees that the supply chain will be fully responsive to the demands in the first period.

Problem \(\mathcal {P}_{\overline{D}}\)

This section compares the performance of Cplex, SA, and ESA methods for solving \(\mathcal {P}_{\overline{D}}\) instances. The ESA method stops when either we do not see an improvement in the best solution (at least one unit of improvement) or the number of iterations exceeds 20. Table 1 compares these methods. Parameters are generated as described in Section 5. Each row of Table 1 corresponds to a given problem size and shows the quantitative outcomes of solution methods for the average of five instances. These instances have a relatively small number of variables. On average, we have 6348 number of variables and SA method returns a solution fastest, which is not surprising as we solve two linear problems with a smaller number of variables using this method. However, Cplex method has better solutions compared to SA as \(z^*_{Cplex}-z^*_{SA}<0\) (meaning \(z^*_{Cplex}<z^*_{SA}\)) in all instances. In addition, Cplex is the second fastest method among the three and ESA is the slowest. This is expected as for small instances the evolutionary algorithms do not perform as good as exact methods. ESA method, however, sometimes return a better solution as \(z^*_{Cplex}>z^*_{ESA}\) for a few instances of the different problem sizes. This is due to the Cplex internal processes that have difficulty in finding a better solution. Hence, even for small size problems, ESA method can sometimes return a better solution compared to Cplex in terms of objective values. On average, however, Cplex returns a better solution in less time compared to ESA method for small size problems. The average number of iterations of ESA method is 3.4, which means the ESA improves the initial solution at most 4 times in its optimization process.

Table 1 Small instances of \(\mathcal {P}_{\overline{D}}\) problem solved by Cplex, SA, and ESA

The computational results for larger instances are shown in Table 2. This table only includes the comparison of SA and ESA methods for solving large instances of \(\mathcal {P}_{\overline{D}}\) problem. The Cplex solver is not included to avoid computational burden that is over one hour even for smaller size instances in this category. The average number of variables in these instances is slightly below 23,000 with the maximum number being 30,252 variables. SA method returns a solution faster compared to ESA; however, ESA always returns a better solution as \(z^*_{SA}>z^*_{ESA}\) in all instances. The average computational time of ESA is around 692 seconds, which explains better solutions returned by this method. The average number of iterations in ESA is 5.6, which means this method is expected to improve the initial solution at most 6 times.

Table 2 Large instances of \(\mathcal {P}_{\overline{D}}\) problem solved by SA and ESA

The objective values of the instances in Table 2 are relatively large, in order of million units of costs. Because of that, if one shows the percentage improved in the objective function, in regard to the ESA, it is very small. The reason is behind the setup costs or S. To show the effects of this cost, one should look at its effect on the performance of SA and ESA methods. For this purpose, the bound of S (\(S_{lb}\) as lower bound and \(S_{ub}\) as upper bound) is multiplied by two, several times, starting by \(S_{lb}=50\) and \(S_{ub}=70\). The related computational results are shown in Table 3. As the cost of setup (\(S\in [S_{lb},S_{ub}]\)) increases, the percentage of improvement in the objective function improves as well. This percentage is very close to zero for \(S\in [50,70]\) and it increases to 99.05% for \(S\in [25600,35840]\). This shows the ESA is becoming more efficient when the setup cost increases. Moreover, the number of iterations of ESA increases when the setup cost increases. This means the improvement process of this method is highly active and it depends on how large the setup costs are.

Table 3 Effects of S values in instances \(\mathcal {P}_{\overline{D}}\) problem solved by SA and ESA

Problem \(\mathcal {P}_{\lambda }\)

The performance comparison of Cplex, SA, and ESA methods for solving \(\mathcal {P}_{\lambda }\) instances is presented in this section. The stopping criterion for ESA method is similar to the previous section, in which algorithm stops either if there is no improvement in the objective function by 1 unit or if the number of iterations exceeds 20. Table 4 compares these methods by reporting the average of 5 instances in each row. These instances have a relatively small number of variables, which is 6498. The increase in the number of variables compared to \(\mathcal {P}_{\overline{D}}\) is due to the additional \(D_{iu}^t\) variables. Parameters are generated as described in Section 5.

Table 4 Small instances of \(\mathcal {P}_{\lambda }\) problem solved by Cplex, SA, and ESA

Computational results of \(\mathcal {P}_{\lambda }\) instances are similar to \(\mathcal {P}_{\overline{D}}\) instances. SA method returns a solution fastest, Cplex is the second fastest, and ESA is the slowest. Solutions returned by Cplex have a better objective value compared to SA as \(z^*_{Cplex}-z^*_{SA}<0\) (meaning \(z^*_{Cplex}<z^*_{SA}\)) in all instances. However, ESA method solutions are better than the rest of methods as \(z^*_{Cplex}>z^*_{ESA}\) in most instances. On average, ESA method improves objective function by approximately 52 units. Hence, even for small size problems, ESA method will return a better solution compared to Cplex. The average number of iterations is 3.6, which means the ESA improves the initial solution at most 4 times in its optimization process.

Table 5 shows the computational results for larger instances. Similar to \(\mathcal {P}_{\overline{D}}\) instances, this table only includes the comparison of SA and ESA methods for solving large instances of \(\mathcal {P}_{\lambda }\) problem. In particular, the average number of variables is slightly above 20,830. SA method returns a solution faster compared to ESA. Particularly, the average computational time of ESA is around 661 seconds compared to the approximate 19 seconds of SA. However, ESA always returns a better solution as \(z^*_{SA}>z^*_{ESA}\) in all instances. The average number of iterations in ESA is 5.7, which means this method improves the initial solution at most 6 times.

Table 5 Large instances of \(\mathcal {P}_{\lambda }\) problem solved by SA and ESA

Similar to the numerical analysis of \(\mathcal {P}_{\overline{D}}\), the GAP in the objective function is very small and the reason is the setup cost. Looking at the effect of this cost in the performance of SA and ESA methods enables us to study this cost better in \(\mathcal {P}_{\lambda }\) instances. For this purpose, values of \(S_{lb}\) and \(S_{ub}\) are multiplied by two, several times, starting by \(S_{lb}=50\) and \(S_{ub}=70\) and ending with \(S_{lb}=25600\) and \(S_{ub}=35840\). The computational results are shown in Table 6. As the setup cost increases, the percentage of improvement in the objective function improves, too. This percentage is very close to zero for \(S\in [50,70]\) and it increases to 11.83% for \(S\in [25600,35840]\). This shows that for higher costs of setup, ESA is more cost-efficient to solve \(\mathcal {P}_{\lambda }\) instances. Moreover, the number of iterations of ESA increases when setup cost increases. This means the improvement process of this method is highly active for larger setup costs.

Table 6 Effects of S values in instances \(\mathcal {P}_{\lambda }\) problem solved by SA and ESA

Comparison of \(\mathcal {P}_{\overline{D}}\) and \(\mathcal {P}_{\lambda }\) Problems

This section compares problems \(\mathcal {P}_{\overline{D}}\) and \(\mathcal {P}_{\lambda }\). The difference between these two problems is the handling of the uncertain demand. In \(\mathcal {P}_{\overline{D}}\) problem, demand is set to be the average of its lower bounds and upper bounds. However, \(\mathcal {P}_{\lambda }\) treats demands as variables that change between lower bounds and upper bounds. To compare these problems, instances are generated based on Section 5 settings. For every instance, 10 scenarios are considered by randomly generating demands using a normal distribution with the mean of 700 and the standard deviation of 100 as the realized demand. Then, the demand returned by each problem’s solution is compared to the average of these scenarios. If the realized demand is less than the demand returned by the solution, we have an excess inventory. The percentage of the excess inventory is shown by Exc. On the other hand, if the realized demand is greater than the demand returned by the solution, we have a backlog in the supply chain. The percentage of the backlog is shown by BL. Table 7 summarizes the computational efforts to compare the approaches \(\mathcal {P}_{\overline{D}}\) and \(\mathcal {P}_{\lambda }\). For every row, i.e., problem size, five instances are solved and reported and, as mentioned, the average of 10 scenarios is used to calculate the realized demand for every instance.

According to Table 7, computational time to solve an instance is higher for \(\mathcal {P}_{\lambda }\) problem, using both SA and ESA solution methods. This trend can be observed in all instances. The reason is the existence of the additional variables corresponding to the demands in \(\mathcal {P}_{\lambda }\) problem. In addition, as the setup cost increases, ESA completes more iterations to complete its process.

Table 7 Comparison of instances of \(\mathcal {P}_{\overline{D}}\) and \(\mathcal {P}_{\lambda }\) solved by SA and ESA

Furthermore, excess inventory of \(\mathcal {P}_{\lambda }\) problem is higher across all instances compared to \(\mathcal {P}_{\overline{D}}\) problem. In average, the percentage of excess inventory using both SA and ESA solution methods in \(\mathcal {P}_{\lambda }\) problem is 14.97%, while it is 10.61% in \(\mathcal {P}_{\overline{D}}\) problem. Moreover, the backlog of \(\mathcal {P}_{\lambda }\) problem is lower across all instances compared to the \(\mathcal {P}_{\overline{D}}\) problem. Particularly, the percentage of backlogging using both SA and ESA solution methods in \(\mathcal {P}_{\lambda }\) problem is 6.8%, while it is 8.95% in \(\mathcal {P}_{\overline{D}}\) problem, in average. Because of these observations, we recommend using \(\mathcal {P}_{\overline{D}}\) problem approach when the manager of supply chain prefers low excess inventory and utilizing \(\mathcal {P}_{\lambda }\) problem approach when low backlogging is preferred.

Discussions and Managerial Insights

The analyses of Sections 5.1 and 5.2 bring some managerial insights for firms. In what follows some insights are discussed.

Observation 1

For very small size problems, Cplex method or any other commercial solver can be used, effectively, for solving instances of both \(\mathcal {P}_{\overline{D}}\) and \(\mathcal {P}_{\lambda }\) problems.

This observation claims that Cplex, or any other commercial solver, is effective for solving small instances of both solution approaches. It is already well known in the Operations Research community. If a firm has a small problem to solve, using a commercial solver is recommended. Hence, when there is a small supply chain and the cost of ordering a commercial solver is not a concern, it is recommended to use a commercial solver.

Observation 2

For relatively small setup costs, SA method is preferable to both ESA and commercial solvers as other methods cannot improve the objective values significantly. In addition, SA is significantly faster than Cplex and ESA.

Observation 3

For relatively large setup costs, ESA method is preferable to SA as it improves objective values, significantly.

Based on these observations, SA method is preferable to ESA and commercial solvers when the setup costs are small. The reason is behind the negligible improvement in the objective function when ESA or commercial solvers are used. In contrast, when the setup costs are large, ESA shows a substantial improvement in the objective value and it is preferable to the SA method. Tables 3 and 6 particularly capture this effect of setup costs.

Observations 2 and 3 also dictate the relation between complexity and cost of manufacturing process (setup of production) and the choice of algorithm. In other words, if the manufacturing process is complex (such as job-shop or fixed layout manufacturing) and costly, ESA method is preferable. If a firm produces identical and cheap products in a continuous flow manufacturing process, it is preferable to use SA method. To the best of our knowledge, such a relation between manufacturing processes/costs and the choice of algorithms has not been observed in the literature.

Observation 4

\(\mathcal {P}_{\overline{D}}\) problem approach results in a lower excess inventory and \(\mathcal {P}_{\lambda }\) problem approach results in a lower backlogging.

The numerical analysis in Section 5.3 shows a trade-off between \(\mathcal {P}_{\overline{D}}\) and \(\mathcal {P}_{\lambda }\) problem approaches. Particularly, solutions to the problem \(\mathcal {P}_{\overline{D}}\) have lower excess inventory and higher backlogging compared to the solutions of \(\mathcal {P}_{\overline{D}}\) problem. Since neither excess inventory nor backlogging is desirable for the firms, they must select one method based on their preference. This means, if firms prefer a lower excess inventory (holding market share is a higher priority), they should solve \(\mathcal {P}_{\overline{D}}\) problem to plan and schedule the production, transportation, and inventory. On the other hand, if they prefer a lower backlogging (if reducing holding cost is a higher priority), they should solve \(\mathcal {P}_{\lambda }\) problem.

Note that \(\mathcal {P}_{\overline{D}}\) corresponds to the solution approach that sets the demand variables equal to their means and \(\mathcal {P}_{\lambda }\) corresponds to maximization of the minimum demand. Based on Observation 4, the approach utilizing means of demands results in a lower excess inventory and the approach that maximizes the minimum fulfilled demands results in a lower backlogging. This observation dictates the solution approach based on the priority of decision makers. If a decision maker prioritizes lower inventory cost, they should select an approach utilizing maximization of the minimum fulfilled demand. If they prioritize higher market share, the approach based on the mean demand should be used.

Conclusions and Future Research

In this paper, the production, transportation, and the inventories of a multi-echelon supply are formulated considering lead times and uncertain demands. Two solution approaches are introduced to deal with uncertain demands, which are called \(\mathcal {P}_{\overline{D}}\) and \(\mathcal {P}_{\lambda }\) problems/approaches. Two heuristics solution methods are also presented that can solve either of these problems which are called SA and ESA methods. Several managerial insights are derived through the numerical analysis of these approaches and solution methods.

The \(\mathcal {P}_{\overline{D}}\) approach is based on average demands. It returns solutions with a lower excess inventory. On the other hand, \(\mathcal {P}_{\lambda }\) formulation is based on maximizing the minimum demands and it returns solutions with a lower backlogging. In another word, formulations based on either the average demands or the maximization of the minimum demand provide a trade-off between excess inventory and backlogging. Firms can select average demands approach if they prioritize the lower excess inventories and they should maximize the minimum demands if they prioritize lower backorders.

Furthermore, comparison of solution methods shows that Cplex is superior to both SA and ESA when the problem size is smaller, in respect to computational time. It is recommended to managers to use a commercial solver when solving a small supply chain, if they prefer to obtain a solution faster. In addition, it is observed that SA method performs better when setup costs are small (manufacturing process is less complex). On the other hand, ESA method performs better when setup costs are large (or manufacturing processes are complex).

As the future direction, one may develop other stochastic techniques to reduce the backlogging and/or the excess inventory. These stochastic techniques can be compared to the solution approaches used in this work. In addition, the deterministic assumption of lead times can be relaxed, which is more realistic, as another possible future research. Furthermore, the reformulation of a multi-echelon supply chain and the decomposition methods can be used to solve MEDLS instances to optimality in a faster computational time.

Data Availability

I have the instances of my numerical study along with all results saved in a repository and they will be shared upon request.

References

  1. 1.

    Wisner JD, Tan KC, Leong K (2016) Principles of supply chain management: A balanced approach. 4 ed., Cengage Learning

  2. 2.

    Kleywegt AJ, Shapiro A, de Mello TH (2002) The sample average approximation method for stochastic discrete optimization. SIAM J Optim 12:479–502. https://doi.org/10.1137/S1052623499363220

    Article  Google Scholar 

  3. 3.

    Nemirovski A, Juditsky A, Lan G, Shapiro A (2009) Robust stochastic approximation approach to stochastic programming. SIAM J Optim 19:1574–1609. https://doi.org/10.1137/070704277

    Article  Google Scholar 

  4. 4.

    Prekopa A (2013) Stochastic programming. volume 324. Springer Science & Business Media

  5. 5.

    Shapiro A, Kleywegt A (2002) Minimax analysis of stochastic problems. Optim Methods Softw 17:523–542. https://doi.org/10.1080/1055678021000034008

    Article  Google Scholar 

  6. 6.

    Wagner HM, Whitin TM (1958) Dynamic version of the economic lot size model. Manag Sci 5:89–96. https://doi.org/10.1287/mnsc.5.1.89

    Article  Google Scholar 

  7. 7.

    Brahimi N, Absi N, Dauzere-Peres S, Nordli A (2017) Single-item dynamic lot-sizing problems: An updated survey. Eur J Oper Res 263:838–863. https://doi.org/10.1016/j.ejor.2017.05.008

    Article  Google Scholar 

  8. 8.

    Farhangi H, Niranjan S (2019) Inventory balance formulations and extensions of the deterministic dynamic lot sizing problem, in: 2019 Annual Conference of the Decision Sciences Institute Proceedings, pp. 370–387

  9. 9.

    Sox CR (1997) Dynamic lot sizing with random demand and non-stationary costs. Oper Res Lett 20:155–164. https://doi.org/10.1016/S0167-6377(97)00005-9

    Article  Google Scholar 

  10. 10.

    Helber S, Sahling F, Schimmelpfeng K (2013) Dynamic capacitated lot sizing with random demand and dynamic safety stocks. OR Spectrum 35:75–105. https://doi.org/10.1007/s00291-012-0283-6

    Article  Google Scholar 

  11. 11.

    Diaby M, Martel A (1993) Dynamic lot sizing for multi-echelon distribution systems with purchasing and transportation price discounts. Oper Res 41:48–59. https://doi.org/10.1287/opre.41.1.48

    Article  Google Scholar 

  12. 12.

    Barbarosoglu G, Ozgur D (1999) Hierarchical design of an integrated production and 2-echelon distribution system. Eur J Oper Res 118:464–484. https://doi.org/10.1016/S0377-2217(98)00317-8

    Article  Google Scholar 

  13. 13.

    Jayaraman V, Pirkul H (2001) Planning and coordination of production and distribution facilities for multiple commodities. Eur J Oper Res 133:394–408. https://doi.org/10.1016/S0377-2217(00)00033-3

    Article  Google Scholar 

  14. 14.

    Jaruphongsa W, Cetinkaya S, Lee CY (2004) Warehouse space capacity and delivery time window considerations in dynamic lot-sizing for a simple supply chain. Int J Prod Econ 92:169–180. https://doi.org/10.1016/j.ijpe.2003.10.012

    Article  Google Scholar 

  15. 15.

    Bard JF, Nananukul N (2009) The integrated production-inventory-distribution-routing problem. J Sched 12:257. https://doi.org/10.1007/s10951-008-0081-9

    Article  Google Scholar 

  16. 16.

    Seyedhosseini SM, Ghoreyshi SM (2014) An integrated model for production and distribution planning of perishable products with inventory and routing considerations. Math Probl Eng 2014:1–10. https://doi.org/10.1155/2014/475606

    Article  Google Scholar 

  17. 17.

    Kaminsky P, Simchi-Levi D (2003) Production and distribution lot sizing in a two stage supply chain. IIE Trans 35:1065–1075. https://doi.org/10.1080/07408170304401

    Article  Google Scholar 

  18. 18.

    Jin Y, Muriel A (2009) Single-warehouse multi-retailer inventory systems with full truckload shipments. Nav Res Logist 56:450–464. https://doi.org/10.1002/nav.20353

    Article  Google Scholar 

  19. 19.

    Melo RA, Wolsey LA (2010) Uncapacitated two-level lot-sizing. Oper Res Lett 38:241–245. https://doi.org/10.1016/j.orl.2010.04.001

    Article  Google Scholar 

  20. 20.

    Solyali O, Denizel M, Sural H (2016) Effective network formulations for lot sizing with backlogging in two-level serial supply chains. IIE Trans 48:146–157. https://doi.org/10.1080/0740817X.2015.1027457

    Article  Google Scholar 

  21. 21.

    Solyali O, Sural H, Denizel M (2010) The one-warehouse multiretailer problem with an order-up-to-level inventory policy. Nav Res Logist 57:653–666. https://doi.org/10.1002/nav.20428

    Article  Google Scholar 

  22. 22.

    Hwang HC, Ahn HS, Kaminsky P (2013) Basis paths and a polynomial algorithm for the multistage production-capacitated lot-sizing problem. Oper Res 61:469–482. https://doi.org/10.1287/opre.1120.1141

    Article  Google Scholar 

  23. 23.

    Darvish M (2017) Supply chain optimization: location, production, inventory and distribution. http://hdl.handle.net/20.500.11794/28185

  24. 24.

    Gruson M, Cordeau JF, Jans R (2021) Benders decomposition for a stochastic three-level lot sizing and replenishment problem with a distribution structure. Eur J Oper Res 291:206–217. https://doi.org/10.1016/j.ejor.2020.09.019

    Article  Google Scholar 

  25. 25.

    Tempelmeier H, Helber S (1994) A heuristic for dynamic multi-item multi-level capacitated lotsizing for general product structures. Eur J Oper Res 75:296–311. https://doi.org/10.1016/0377-2217(94)90076-0

    Article  Google Scholar 

  26. 26.

    Almeder C, Klabjan D, Traxler R, Almada-Lobo B (2015) Lead time considerations for the multi-level capacitated lot-sizing problem. Eur J Oper Res 241:727–738. https://doi.org/10.1016/j.ejor.2014.09.030

    Article  Google Scholar 

  27. 27.

    Tempelmeier H, Derstroff M (1996) A lagrangean-based heuristic for dynamic multilevel multiitem constrained lotsizing with setup times. Manag Sci 42:738–757. https://doi.org/10.1287/mnsc.42.5.738

    Article  Google Scholar 

  28. 28.

    Kimms A (1996) Multi-level, single-machine lot sizing and scheduling: With initial inventory. Eur J Oper Res 89:86–99. https://doi.org/10.1016/S0377-2217(96)90056-9

    Article  Google Scholar 

  29. 29.

    Kimms A (1999) A genetic algorithm for multi-level, multi-machine lot sizing and scheduling. Comput Oper Res 26:829–848. https://doi.org/10.1016/S0305-0548(98)00089-6

    Article  Google Scholar 

  30. 30.

    Gyulai D, Pfeiffer A, Monostori L (2017) Robust production planning and control for multi-stage systems with flexible final assembly lines. Int J Prod Res 55:3657–3673. https://doi.org/10.1080/00207543.2016.1198506

    Article  Google Scholar 

  31. 31.

    Kumar J, Roy N, Mostafaeipour A, Qolipour M (2017) Development of a novel lot sizing model with variable lead time in supply chain environment. Journal of Optimization in Industrial Engineering 10:25–38. https://doi.org/10.22094/JOIE.2017.275

    Article  Google Scholar 

  32. 32.

    Brahimi N, Dauzere-Peres S, Najid NM, Nordli A (2006) Single item lot sizing problems. Eur J Oper Res 168:1–16. https://doi.org/10.1016/j.ejor.2004.01.054

    Article  Google Scholar 

  33. 33.

    Drexl A, Kimms A (1997) Lot sizing and scheduling: survey and extensions. Eur J Oper Res 99:221–235. https://doi.org/10.1016/S0377-2217(97)00030-1

    Article  Google Scholar 

  34. 34.

    Maes J, Wassenhove LV (1988) Multi-item single-level capacitated dynamic lot-sizing heuristics: A general review. J Oper Res Soc 39:991–1004. https://doi.org/10.1057/jors.1988.169

    Article  Google Scholar 

  35. 35.

    Ramezanian R, Saidi-Mehrabad M, Teimoury E (2013) A mathematical model for integrating lot-sizing and scheduling problem in capacitated flow shop environments. Int J Adv Manuf Technol 66:347–361. https://doi.org/10.1007/s00170-012-4329-3

    Article  Google Scholar 

  36. 36.

    Toledo CFM, de Oliveira RRR, Franca PM (2011) A hybrid heuristic approach to solve the multi level capacitated lot sizing problem, in: 2011 IEEE Congress on Evolutionary Computation (CEC), IEEE. pp. 1194–1201. https://doi.org/10.1109/CEC.2011.5949752

  37. 37.

    Trigeiro WW, Thomas LJ, McClain JO (1989) Capacitated lot sizing with setup times. Manag Sci 35:353–366. https://doi.org/10.1287/mnsc.35.3.353

    Article  Google Scholar 

  38. 38.

    Denizel M, Sural H (2006) On alternative mixed integer programming formulations and lp-based heuristics for lot-sizing with setup times. J Oper Res Soc 57:389–399. https://doi.org/10.1057/palgrave.jors.2601996

    Article  Google Scholar 

  39. 39.

    Helber S, Sahling F (2010) A fix-and-optimize approach for the multi-level capacitated lot sizing problem. Int J Prod Econ 123:247–256. https://doi.org/10.1016/j.ijpe.2009.08.022

    Article  Google Scholar 

  40. 40.

    Melega GM, de Araujo SA, Jans R (2018) Classification and literature review of integrated lot-sizing and cutting stock problems. Eur J Oper Res 271:1–19. https://doi.org/10.1016/j.ejor.2018.01.002

    Article  Google Scholar 

  41. 41.

    Gurkan ME, Tunc H (2021) A fix-and-optimize heuristic for the capacitated multi-item stochastic lot-sizing problem. An International Journal of Optimization and Control: Theories & Applications (IJOCTA) 11:41–51. https://doi.org/10.11121/ijocta.01.2021.00945

    Article  Google Scholar 

  42. 42.

    Buschkuhl L, Sahling F, Helber S, Tempelmeier H (2010) Dynamic capacitated lot-sizing problems: a classification and review of solution approaches. OR Spectrum 32:231–261. https://doi.org/10.1007/s00291-008-0150-7

    Article  Google Scholar 

  43. 43.

    Diaby M, Bahl HC, Karwan MH, Zionts S (1992) A lagrangean relaxation approach for very-large-scale capacitated lot-sizing. Manag Sci 38:1329–1340. https://doi.org/10.1287/mnsc.38.9.1329

    Article  Google Scholar 

  44. 44.

    Franca PM, Armentano VA, Berretta RE, Clark AR (1997) A heuristic method for lot-sizing in multi-stage systems. Comput Oper Res 24:861–874. https://doi.org/10.1016/S0305-0548(96)00097-4

    Article  Google Scholar 

  45. 45.

    Pitakaso R, Almeder C, Doerner KF, Hartl RF (2006) Combining population-based and exact methods for multi-level capacitated lot-sizing problems. Int J Prod Res 44:4755–4771. https://doi.org/10.1080/00207540600620963

    Article  Google Scholar 

  46. 46.

    Prakaiwichien S, Rungreunganun V (2018) Solving dynamic multi-product multi-level capacitated lot-sizing problems with modified part period balancing heuristics method. Int J Appl Eng Res 13:3350–3360

    Google Scholar 

  47. 47.

    Sahling F, Buschkuhl L, Tempelmeier H, Helber S (2009) Solving a multi-level capacitated lot sizing problem with multi-period setup carry-over via a fix-and-optimize heuristic. Comput Oper Res 36:2546–2553. https://doi.org/10.1016/j.cor.2008.10.009

    Article  Google Scholar 

  48. 48.

    Bookbinder JH, Tan JY (1988) Strategies for the probabilistic lot-sizing problem with service-level constraints. Manag Sci 34:1096–1108. https://doi.org/10.1287/mnsc.34.9.1096

    Article  Google Scholar 

  49. 49.

    Tarim SA, Kingsman BG (2004) The stochastic dynamic production/inventory lot-sizing problem with service-level constraints. Int J Prod Econ 88:105–119. https://doi.org/10.1016/S0925-5273(03)00182-8

    Article  Google Scholar 

  50. 50.

    Tempelmeier H (2013) In Handbook of stochastic models and analysis of manufacturing system operations. Springer, New York, NY. pp. 313–344

  51. 51.

    Gruson M, Cordeau JF, Jans R (2018) The impact of service level constraints in deterministic lot sizing with backlogging. Omega 79:91–103. https://doi.org/10.1016/j.omega.2017.08.003

    Article  Google Scholar 

  52. 52.

    Martinez KP, Adulyasak Y, Jans R, Morabito R, Toso EAV (2019) An exact optimization approach for an integrated process configuration, lot-sizing, and scheduling problem. Comput Oper Res 103:310–323. https://doi.org/10.1016/j.cor.2018.10.005

    Article  Google Scholar 

  53. 53.

    Melega GM, de Araujo SA, Morabito R (2020) Mathematical model and solution approaches for integrated lot-sizing, scheduling and cutting stock problems. Ann Oper Res 295:695–736. https://doi.org/10.1007/s10479-020-03764-9

    Article  Google Scholar 

  54. 54.

    Huang K, KucuKyavuz S (2008) On stochastic lot-sizing problems with random lead times. Oper Res Lett 36:303–308. https://doi.org/10.1016/j.orl.2007.10.009

    Article  Google Scholar 

  55. 55.

    Karmarkar US, Kekre S, Kekre S (1987) The dynamic lot-sizing problem with startup and reservation costs. Oper Res 35:389–398. https://doi.org/10.1287/opre.35.3.389

    Article  Google Scholar 

  56. 56.

    Shapiro A, Philpott A (2007) A tutorial on stochastic programming. https://cpb-us-w2.wpmucdn.com/sites.gatech.edu/dist/4/1470/files/2021/03/TutorialSP.pdf

Download references

Funding

Author did not receive any funding for this study.

Author information

Affiliations

Authors

Corresponding author

Correspondence to Hadi Farhangi.

Ethics declarations

Conflict of Interest

The author declares that there is no conflict of interest.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

This article is part of the Topical Collection on Advances and Applications in Supply Chain Management.

Appendix 1

Appendix 1

List of Sets, Parameters, and Variables

Sets and indices
T : the set of time periods \(T=\{1,2,\ldots ,|T|\}\)
tr : indices used for periods, \(t,r\in T\)
I : the set of items \(I=\{1,2,\ldots ,|I|\}\)
i : index used for items, \(i\in I\)
\(V^p\) : the set of production nodes \(V^p=\{1,...,|V^p|\}\)
\(V^d\) : the set of warehouses/distribution nodes \(V^d=\{1,...,|V^d|\}\)
\(V^r\) : the set of retailer nodes \(V^r=\{1,...,|V^r|\}\)
V : the set of all nodes \(V=V^p\cup V^d\cup V^r\)
uw : indices used for network nodes
Parameters
\(c_{iu}^t\) : production cost of item i in period t at node \(u\in V^p\)
\(f_{iuw}^t\) : transportation cost of one unit of item i from node u to node w in period t
\(h_{iu}^t\) : inventory cost of item i in period t at unit u
\(s_{iu}^t\) : setup cost of producing item i in period t at unit \(u\in V^p\)
\(o_{iu}^t\) : startup cost of producing item i in period t at unit \(u\in V^p\)
\(lb_{D_{iu}^{t}}\) : lowest possible demand of item i in period t at unit \(u\in V^r\)
\(ub_{D_{iu}^{t}}\) : highest possible demand of item i in period t at unit \(u\in V^r\)
\(r_{u}\) : production capacity of unit \(u\in V^r\)
\(t_{uw}\) : lead time between nodes u and w (mostly travel time)
\(M^t\) : a big number usually set to be equal to the demand in period \(t\in T\)
Variables
\(P_{iu}^t\) : production quantity of item i in period t at node \(u\in V^p\)
\(X_{iuw}^{t}\) : transportation quantity of item i in period t from node u to node w
\(Y_{iu}^{t}\) : \(Y_{iu}^{t}=1\) if we produce i in period t at node \(u\in V^p\), \(y_{i}^{t}=0\) otherwise
\(Q_{iu}^{t}\) : inventory quantity of item i in period t at unit \(u\in V^p\)
\(D_{iu}^{t}\) : the realization of demand of item i in period t at unit \(u\in V^r\)
\(Z_{iu}^{t}\) : it is one if we produce i in period t at node \(u\in V^p\) and not in period \(t-1\), zero otherwise.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Farhangi, H. Multi-Echelon Supply Chains with Lead Times and Uncertain Demands. SN Oper. Res. Forum 2, 46 (2021). https://doi.org/10.1007/s43069-021-00080-1

Download citation

Keywords

  • Lot-sizing
  • Multi-echelon
  • Uncertain demands
  • Lead times
  • Excess inventory
  • Backlogging