1 Introduction

Production planning is one of the key processes of an industrial company. According to the supply chain planning (SCP) matrix (e.g., Rohde et al. 2000), it is not a single process but divided vertically into different levels, each of them focusing on a different time horizon (long term, mid term, short term). Within the research community, the following levels are usually established, aggregate production planning (APP), master production scheduling (MPS), material requirements planning (MRP), and scheduling (Drexl et al. 1994) which are included in a typical Manufacturing resource planning (MRP II) system (see e.g., Zäpfel 1996). However, there is no unique definition of these levels because the problems differ among the industries and companies. Consequently, if they are incorporated into a specific production planning system, the number and type of levels taken into account may vary significantly.

The division of the production planning process into subprocesses which are performed sequentially is called hierarchical production planning (HPP). The basic idea is that the (optimal) decisions of an upper level provide constraints for the subsequent lower level. The levels differ in terms of the decisions which have to be made and the planning horizon. Since computational power increases more and more, researchers try to integrate adjacent planning tasks, e.g., simultaneous planning of production and distribution (e.g., Amorim et al. 2013) or integrating lot-sizing and scheduling (e.g., Jodlbauer 2006). The monolithic model (MM) approach attempts at solving more than one level simultaneously as well. However, MM as an alternative approach to HPP has been rejected in the literature for a long time. Indeed, HPP offers not only several intuitive advantages, but often an MM seemed not to be achievable. HPP maps the typical hierarchical structure of the company with its responsibilities of decision makers and reduces the mathematical complexity. Besides that, the computational effort of an MM seemed too big. Contributions comparing the hierarchical approach with the monolithic one in similar contexts support this hypothesis (e.g., Sawik 2009). For these reasons, Hax and Meal (1975) decided against a single model and came up with their hierarchical approach. Silver and Peterson (1985) added that an MM requires detailed input data for a long horizon which is clearly not possible in practice. These arguments are repeated in the HPP literature and even more recent papers mention these points to provide evidence for the infeasibility of an MM. Fleischmann and Meyr (2003) argue that due to the reasons given below, an MM is not useful. Note that they refer to all tasks of the SCP matrix and not only production planning:

  1. 1.

    increasing uncertainty with longer planning horizon;

  2. 2.

    shorter planning horizons need higher planning frequencies;

  3. 3.

    different degrees of aggregation (e.g., time, products, resources) at every level;

  4. 4.

    planning levels map the hierarchy structure of the company and the importance of the decisions of every level varies, depending on the power of the decision maker.

HPP, being a special case of hierarchical planning (HP), is characterized by the following points (Fleischmann and Meyr 2003):

  • increasing level of detail (from top to bottom);

  • decreasing planning horizon;

  • increasing planning frequency.

The conclusion is that a planning system taking into account these characteristics fulfills requirements 1–4. However, the literature review in Sect. 2 shows that even most of the HPP papers only partially incorporate these points. Furthermore, there is no reason why a single model should not be capable of considering these challenges. Of course, in the common definition, a monolithic approach has to create detailed plans for end items for the complete seasonal cycle (Omar and Bennell 2009). However, detailed long-term plans are neither needed nor possible. It is not necessary that an integrated planning approach has to fulfill these requirements which are even not fulfilled by the HPP approach. Therefore, the planning model to be created simply integrates APP and MPS into a single model, aiming to fulfill the same conditions as the HPP approach. To differentiate our planning approach from the usual MM found in the literature, we denote our model as the integrated production planning (IPP) approach. Only point 4 is not tackled by the IPP when we consider a company where the hierarchy is based on an asymmetric information status, called organizational hierarchy (c.f. Schneeweiss 2003). However, this is out of scope of that paper.

The objective of this contribution is to reinforce that it is possible to realize an integrated model besides the traditional HPP and the inadequate MM—at least for the two considered planning levels. Moreover, computational tests check if it is solvable and whether the results show an improvement compared to the HPP approach. Of course, the expectation is that some of the limiting borders of HPP are removed. For instance, the obvious drawback of an approach optimizing subproblems is the suboptimality for the overall problem. Just solving the subproblems with sophisticated methods is not sufficient, the coordination of the levels is also important to obtain good results (Gelders and Van Wassenhove 1982). Therefore, Chung and Krajewski (1987) investigated the mechanisms for APP and MPS on a rolling horizon basis. An IPP incorporates the coordination already within the model. However, that advantage does not automatically lead to better results than the HPP. We have to consider that as soon as we apply a solution method on a rolling horizon basis, even an exact approach becomes a heuristic (Stadtler 2000).

Only a few recent publications call the traditional HPP into question (e.g., Xue et al. 2011) or show some drawbacks of the common implementation (e.g., White 2012). This paper intends to show that it is possible to integrate the two upper levels of HPP, APP and MPS into a single model and to fulfill at the same time the requirements mentioned above. Computational tests reveal that an IPP is always superior to HPP—at least within the borders of our parameter settings.

The remaining part of the paper is structured as follows. Section 2 provides a literature review of contributions about HPP and IPP dealing with similar questions. Section 3 describes the HPP we want to solve by formulating the optimization models for APP and MPS. Section 4 presents the IPP model. Section 5 introduces the rolling horizon approach and its implementation for HPP and IPP. Section 6 describes how test instances are generated. Computational results in Sect. 7 give insights into the performance of both approaches and illustrate at one instance the reason for the superiority of the IPP. The conclusion in Sect. 8 summarizes the paper and proposes some future research directions.

2 Literature review

The literature is reviewed in terms of the following properties, including the criteria delivered by Fleischmann and Meyr (2003). Only point 4 (see Sect. 1) is missing because the decision whether the proposed HPP model maps the hierarchy is not always clear. Unique guidelines would be required, e.g., when does a decision level represent a hierarchy level, and is disaggregating the upper level plan already sufficient? Therefore, we neglect that property in our review and focus on the following ones.

  • Property 1: The paper considers uncertainty or at least allows forecast errors. If plans at different levels are made based on the same data and if deviations from the upper level decisions are forbidden, the paper assumes demand certainty implicitly.

  • Property 2: The planning horizon length decreases.

  • Property 3a: The level of detail increases regarding products, i.e. different (product) aggregation levels.

  • Property 3b: The level of detail increases regarding time, i.e. different periods. Note that in case Property 2 is valid, it does not imply that Property 3b holds. The planning horizon might be shorter by keeping the same period length, see e.g., months in Bitran et al. (1981).

  • Property 4: The plans are made on a rolling horizon basis.

  • Property 5: Setup times are considered.

If the paper considers a model with a certain property, we indicate it by “+”, otherwise “−” is assigned. If no clear statement can be found, “\(\circ \)” is assigned.

Table 1 Literature review with assessment if Properties 1–5 are considered in the papers

The overview in Table 1 reveals that not all HPP implementations in the literature incorporate properties 1–3b, i.e. points 1–3 of Fleischmann and Meyr (2003). Adding properties 4 and 5 to the request, only two papers come close to our requirements. The first one is Chung and Krajewski (1987). However, we discard their model formulation because setups are planned in the top level and not in the base level. In our point of view, this contradicts the assumption of an increasing level of detail. The second paper is Gebhard and Kuhn (2007). Since their problem description is slightly different and focuses more on the robustness issue, we discard that approach as well and create our own models. Note that Table 1 does not represent an exhaustive literature overview. There exists a wide range of papers considering an HPP to some extent. We focus on those contributions which seem to be most suitable for our research.

Dealing with dissolving borders between the levels are studies by Chung and Krajewski (1987) who investigate a feedback procedure on a rolling horizon basis. Schneeweiss (1995) contributes a framework for hierarchical planning in general, formalizing the interaction and interdependencies between planning levels. Other works trying to improve the interaction are, among others, Rohde (2004) and Selçuk et al. (2006). A literature review and some history about HPP can be found in McKay et al. (1995).

The literature about IPP and MM is assessed regarding the same criteria as the HPP works. Note that White (2012) is also listed in Table 2 since this contribution relies on both approaches, HPP and MM.

Apparently, the literature about the MM (or IPP, respectively) is sparse, mainly because it would be too complex and not fulfill the requirements of Fleischmann and Meyr (2003). There are contributions published before HPP arose, e.g., Manne (1958), Dziellinski and Gomory (1965), Lasdon and Terjung (1971), which are considered as MM. However, more interesting for our paper are the works by Graves (1982) and subsequent ones. Obviously, these contributions do not fulfill the requirements of Fleischmann and Meyr (2003) and mostly neglect setup times.

3 Hierarchical production planning

Our HPP consists of two levels, APP and MPS. We assume that these are not the only decision levels of the company, but the focus will be on these two. APP and MPS are of high importance, because often they are the front end of production planning systems (Vollmann et al. 1973). Especially, MPS provides the basis for MRP and affects the final production efficiency at the shop floor as well (Omar and Bennell 2009). Following the classification of Hax and Meal (1975), we distinguish between product types at the APP level and product families at the MPS level. A product family is a group of items which share the same setup, while a product type comprises all product families with similar holding costs, productivities and seasonalities. Items represent end products which are delivered to customers, but are not considered at these levels and therefore do not appear in our models.

Table 2 Literature review assessing whether properties 1–5 are considered in the papers

Simply solving both levels sequentially is not sufficient, since the interaction is crucial, as Gelders and Van Wassenhove (1982) showed in two practical examples. Therefore, we follow the terminology of Schneeweiss (1995), distinguishing between anticipation, instruction and reaction. Anticipation means that the upper level considers the characteristics of the lower level in its decision. This influence of the base level is also called feedforward. An instruction made by the upper level influences the lower level and its decisions. Reaction is the feedback of the lower level as a result of the upper level instruction.

The production environment consists of non-identical production lines which are clustered into types according to the product types they can produce. Their capacity and speed are identical. Note that the disaggregation from lines into specific machines is not considered here. We assume that it is done on the subsequent planning level, which creates plans on a more detailed level regarding time, products and capacity. The setup times and cost depend only on the product family. The holding of inventory is unlimited. We consider demand uncertainty only at the top level, because long-term forecasts are error prone. However, in those periods of APP which are also considered in MPS, demand is known because of firm customer orders.

Most of the papers on HPP focus on the disaggregation procedure because it may incur infeasibilities. The resulting plans are identical in every level, only the degree of aggregation differs (e.g., the monthly production amount for product types is equal to the aggregate weekly production amount for product families, summed up over all product families and weeks of the corresponding type and month, respectively). Typically, the production amount and inventory levels are treated like this. That is justified if we do not have to allow for any uncertainty. However, in practice we have to deal with uncertain demand and information of different quality at different levels. The first point mentioned by Fleischmann and Meyr (2003) also refers to that. Consequently, if we assume demand uncertainty, then a strict disaggregation method as proposed in the former literature holds no longer (see Zäpfel 1996), because upper- and lower-level plans rely on different data. Keeping in mind the main goals of the different levels, one should shift the focus to the interaction between the levels. For instance, the main purpose of APP is to determine the required capacity and target inventory levels to deal with seasonality. However, the monthly production amount is not of interest for the MPS. When we create the HPP system, we have to identify the decision variables of the different levels, whether they have to be implemented or at least provide information to the next stage. Only those are part of the interaction between the levels. Therefore, we categorize the decision variables according to the intuitive terminology of White (2012), distinguishing between plans, decisions and targets. A plan comprises all decision variables of a certain level. Decisions are those variables for which the decision maker of this level has responsibility. Hence, decisions are passed as hard constraints to the next level and called final according to Schneeweiss (1995). Targets are also transmitted to the lower level; however, that level is not forced to satisfy the target. In Schneeweiss (1995), such decisions are called factual. Normally, deviations are penalized in the objective function.

Obviously, decisions and targets are both instructions. After introducing the APP, we will describe which instructions are given to MPS as decisions or targets. How anticipation and reaction are realized will be shown in the section about the rolling horizon implementation.

3.1 Aggregate production planning model

The APP consists of the following indices, decision variables and parameters.

Indices:

k :

Product type, \(k = 1,\ldots ,K\)

n :

Production line of type n, \(n=1,\ldots ,N\)

\(t_m\) :

Periods, measured in months, \(t_m=1,\ldots ,T^{\mathrm{APP}}\)

\(\phi (n)\) :

Set of product types which can be produced on line type n

Decision variables:

\(I_{kt_m}^{\mathrm{APP}}\) :

Inventory level of product type k at the end of period \(t_m\) (in units)

\(L_{nt_m}^{\mathrm{APP}}\) :

Number of production lines of type n in period \(t_m\)

\(L_{nt_m}^+\) :

Number of production lines of type n opened at the beginning of period \(t_m\)

\(L_{nt_m}^-\) :

Number of production lines of type n closed at the beginning of period \(t_m\)

\(X_{knt_m}^{\mathrm{APP}}\) :

Production amount of product type k produced on line type n in period \(t_m\) (in units)

Parameters:

\(a_k\) :

Production time for one unit of product type k (in time units)

\(C_k^I\) :

Inventory holding cost for one unit of product type k (per period)

\(C^L_n\) :

Cost for running one production line of type n (per period)

\(C^{L+}_n\) :

Cost for opening one production line of type n

\(C^{L-}_n\) :

Cost for closing one production line of type n

\(\mathrm{Cap}_{t_m}\) :

Production capacity of one production line in period \(t_m\) (in time units)

\(D^{\mathrm{APP}}_{kt_m}\) :

Demand of product type k in period \(t_m\) (in units)

\(I^{\mathrm{APP}}_{k0}\) :

Initial inventory level of product type k at the beginning of the planning horizon (in units)

\(L^{\mathrm{UB}}_n\) :

Maximum number of production lines of type n which can be opened in the factory (per period)

\(L^{\mathrm{LB}}_n\) :

Minimum number of production lines of type n which have to be opened in the factory (per period)

\(L_{n0}\) :

Initial number of production lines of type n at the beginning of the planning horizon

Aggregate production planning model

$$\begin{aligned}&\min \sum _{n=1}^N \sum _{t_m=1}^{T^{\mathrm{APP}}} \left( L_{nt_m}^{\mathrm{APP}} C^L_n + L_{nt_m}^+ C^{L+}_n + L_{nt_m}^- C^{L-}_n\right) + \sum _{k=1}^K \sum _{t_m=1}^{T^{\mathrm{APP}}} I^{\mathrm{APP}}_{kt_m} C_k^I, \end{aligned}$$
(1)

subject to

$$\begin{aligned}&I_{kt_m}^{\mathrm{APP}} = I_{k,t_m-1}^{APP} + \sum _{n=1}^N X_{knt_m}^{\mathrm{APP}} - D_{kt_m}^{\mathrm{APP}}, \quad \forall k=1,\ldots ,K;\ t_m=1,\ldots ,T^{\mathrm{APP}}, \end{aligned}$$
(2)
$$\begin{aligned}&L_{nt_m}^{\mathrm{APP}} = L_{nt_m-1}^{\mathrm{APP}} + L_{nt_m}^+ - L_{nt_m}^-, \quad \forall n=1,\ldots ,N;\ t_m=1,\ldots ,T^{\mathrm{APP}}, \end{aligned}$$
(3)
$$\begin{aligned}&\sum _{k \in \phi (n)} a_k X_{knt_m}^{\mathrm{APP}} \le L_{nt_m}^{\mathrm{APP}} \cdot \mathrm{Cap}_{t_m}, \quad \forall n=1,\ldots ,N;\ t_m=1,\ldots ,T^{\mathrm{APP}}, \end{aligned}$$
(4)
$$\begin{aligned}&L_n^{\mathrm{LB}} \le L_{nt_m}^{\mathrm{APP}} \le L_n^{\mathrm{UB}}, \quad \forall n=1,\ldots ,N;\ t_m=1,\ldots ,T^{\mathrm{APP}}, \end{aligned}$$
(5)
$$\begin{aligned}&X_{knt_m}^{\mathrm{APP}} = 0, \quad \forall k \notin \phi (n), n=1,\ldots ,N;\ t_m=1,\ldots ,T^{\mathrm{APP}}, \end{aligned}$$
(6)
$$\begin{aligned}&X_{knt_m}^{\mathrm{APP}}, I_{kt_m}^{\mathrm{APP}} \ge 0, \quad \forall k=1,\ldots ,K;\ n=1,\ldots ,N;\ t_m=1,\ldots ,T^{\mathrm{APP}}, \end{aligned}$$
(7)
$$\begin{aligned}&L_{nt_m}^{\mathrm{APP}}, L_{nt_m}^+, L_{nt_m}^- \in \mathbb {N}\cup \{0\}, \quad \forall n=1,\ldots ,N;\ t_m=1,\ldots ,T^{\mathrm{APP}}. \end{aligned}$$
(8)

The objective function (1) minimizes the total costs comprising cost for running, opening and closing production lines, and inventory holding costs. The first two constraints balance, the inventory (2) and the number of production lines (3). The production amount is limited by the capacity of the production lines in that period (4). Constraints (5) limit the number of production lines between two bounds. Furthermore, it enables us to implement the rolling horizon planning easily. Constraints (6) force the production amount to zero if production line type n is not capable of producing product type k. The last two constraints (7) and (8) define the domain of the variables.

Remark 3.1

Variables \(L_{nt_m}^+\) and \(L_{nt_m}^-\) can be relaxed since constraints (3) imply the integrality. Positive penalty cost \(C_n^{L+}\) and \(C_n^{L-}\) ensure \(L_{nt_m}^+ \cdot L_{nt_m}^- = 0, \forall n=1,\ldots ,N;\ t_m=1,\ldots ,T^{\mathrm{APP}}\).

Let TM denote the target month, i.e. that the APP period in which the planning horizon of the MPS ends and the targets have to be aimed. The solution of the APP model is categorized as follows (Table 3).

Table 3 Plan, decisions and targets of the APP level

The plan comprises all decision variables. As decision, only the number of production lines is imposed on the MPS in the overlapping periods between both levels. The inventory level at the end of the MPS planning horizon is passed to MPS as a target. This is done to avoid short-sightedness, especially in the case of seasonal demand. Without a target inventory level, the MPS would end with zero inventory not allowing to build stock for seasons with extraordinary high demand. Additionally, the inventory levels of periods \(1,\ldots ,\mathrm{TM}-1\) are passed as targets as well. Experiments without these intermediate targets caused problems, because of inconsistent inventory levels at the APP and MPS level. Specifically, differences in the initial inventory were crucial.

Figure 1 depicts decision \(L_{nt_m}^{\mathrm{APP}}\), \(n=1,2,3\), \(t_m=1,\ldots ,12\), and target \(I_{kt_m}^{\mathrm{APP}}\), \(k=1,2\), \(t_m=1,\ldots ,12\), of an exemplary solution of the APP. Note that periods \(t_m\) are still discrete; for illustrative purpose, we chose the continuous representation of the values.

Fig. 1
figure 1

Illustrative example for \(L_{nt_m}^{\mathrm{APP}}\) and \(I_{kt_m}^{\mathrm{APP}}\)

3.2 Master production schedule

The MPS receives the decisions regarding capacity and the targets in terms of inventory levels. To be able to cope with differences between the forecast and the actual orders, overtime is allowed. Since overtime is limited, we consider backorders as well ensuring feasibility. Because MPS does not plan product types but product families, the target inventory level has to be disaggregated in advance, i.e. before solving the MPS, into a lower bound \(I_{jt_w}^{\mathrm{APP}}\) for each family j. It is a target and not a decision; therefore, we allow a deviation from it. A parameter f states up to which percentage the target level has to be fulfilled. The disaggregation factor, i.e., the coefficient for each product family to be multiplied with the target level of the according product type, will be based on the demand forecast. More details will be discussed in the section about the rolling horizon approach. The number of production lines defined on a monthly basis from APP is simply assigned to the related weeks in these months.

New indices:

j :

Product family, \(j=1,\ldots ,J\)

\(t_w\) :

Periods, measured in weeks, \(t_w=1,\ldots ,T^{\mathrm{MPS}}\)

TW:

Set of target weeks, i.e. periods \(t_w\) which have to fulfill the target level

Decision variables:

\(B_{jt_w}\) :

Backorders of product family j in period \(t_w\) (in units)

\(I_{jt_w}^{\mathrm{MPS}}\) :

Inventory level of product family j at the end of period \(t_w\) (in units)

\(O_{nt_w}\) :

Overtime on line type n in period \(t_w\) (in time units)

\(X_{jnt_w}^{\mathrm{MPS}}\) :

Production amount of product family j on line type n in period \(t_w\)

\(Y_{jnt_w}\) :

=1, if product family j is produced on line type n in period \(t_w\), otherwise 0

Parameters:

\(a_{j}^{\mathrm{MPS}}\) :

Time for producing one unit of product family j (in time units)

\(B_{j,0}\) :

Initial backorder level for product family j at the beginning of the planning horizon (in units)

\(C^B\) :

Backorder cost (per period and unit)

\(C_j^I\) :

Inventory holding cost for one unit of product family j (per period)

\(C^O\) :

Overtime cost (per h)

\(C_n^P\) :

Production cost of line type n (per unit)

\(C_{j}^S\) :

Cost for setting up production lines for product family j (per setup)

\(\mathrm{Cap}_{t_w}\) :

Production capacity of one production line in period \(t_w\) (in time units)

\(D_{jt_w}^{\mathrm{MPS}}\) :

Demand for product family j in period \(t_w\) (in units)

f :

Percentage of the target inventory level which has to be fulfilled

\(I_{jt_w}^{\mathrm{APP}}\) :

Target inventory level of product family j in period \(t_w\) (in units)—instruction from APP

\(I_{j,0}^{\mathrm{MPS}}\) :

Initial inventory level for product family j at the beginning of the planning horizon (in units)

\(L_{nt_w}^{\mathrm{MPS}}\) :

Number of production lines of type n in period \(t_w\)—instruction from APP

\(M_{jnt_w}\) :

Sufficient big number for product family j on line type n in period \(t_w\)

\(O^{\mathrm{max}}\) :

Maximum overtime per production line (in time units)

\(s_{j}\) :

Setup time for product j (in h)

\(\Gamma (k)\) :

Set of product families j belonging to product type k

Master production scheduling model

$$\begin{aligned}&\min \sum _{j=1}^J \sum _{n=1}^N \sum _{t_w=1}^{T^{\mathrm{MPS}}} \left( X^{MPS}_{jnt_w}C_n^P + Y_{jnt_w}C_{j}^S \right) \nonumber \\&\qquad + \sum _{j=1}^{J} \sum _{t_w=1}^{T^{\mathrm{MPS}}} \left( I^{\mathrm{MPS}}_{jt_w}C_j^I + B_{jt_w}C^B \right) + \sum _{n=1}^N \sum _{t_w=1}^{T^{\mathrm{MPS}}} O_{nt_w} C^O, \end{aligned}$$
(9)

subject to

$$\begin{aligned}&I^{\mathrm{MPS}}_{jt_w} = I^{\mathrm{MPS}}_{j,t_w-1} + \sum _{n=1}^N X^{\mathrm{MPS}}_{jnt_w} - D^{\mathrm{MPS}}_{jt_w} + B_{jt_w} - B_{j,t_w-1}, \nonumber \\&\quad \forall j=1,\ldots ,J;\ t_w=1,\ldots ,T^{\mathrm{MPS}}, \end{aligned}$$
(10)
$$\begin{aligned}&I^{\mathrm{MPS}}_{jt_w} \ge f \cdot I_{jt_w}^{\mathrm{APP}}, \quad \forall j=1,\ldots ,J;\ t_w \in \mathrm{TW}, \end{aligned}$$
(11)
$$\begin{aligned}&\sum _{j \in \Gamma (k)} I^{\mathrm{MPS}}_{jt_w} \ge \sum _{j \in \Gamma (k)} I_{jt_w}^{\mathrm{APP}}, \quad \forall k=1,\ldots ,K;\ t_w \in \mathrm{TW}, \end{aligned}$$
(12)
$$\begin{aligned}&\quad \sum _{j=1}^J (a_{j}^{\mathrm{MPS}}X_{jnt_w}^{\mathrm{MPS}} + s_{j} Y_{jnt_w}) \le L_{nt_w}^{\mathrm{MPS}} \mathrm{Cap}_{t_w} + O_{nt_w},\nonumber \\&\quad \forall n=1,\ldots ,N;\ t_w=1,\ldots ,T^{\mathrm{MPS}}, \end{aligned}$$
(13)
$$\begin{aligned}&O_{nt_w} \le L_{nt_w}^{\mathrm{MPS}} O^{\mathrm{max}}, \quad \forall n=1,\ldots ,N;\ t_w=1,\ldots ,T^{\mathrm{MPS}},\end{aligned}$$
(14)
$$\begin{aligned}&X^{\mathrm{MPS}}_{jnt_w} \le Y_{jnt_w}\cdot M_{jnt_w}, \quad \forall j=1,\ldots ,J;\ n=1,\ldots ,N;\ t_w=1,\ldots ,T^{\mathrm{MPS}},\end{aligned}$$
(15)
$$\begin{aligned}&X_{jnt_w}^{\mathrm{MPS}} = 0, \quad \forall j \notin \phi (n);\ n=1,\ldots ,N;\ t_w=1,\ldots ,T^{\mathrm{MPS}}, \end{aligned}$$
(16)
$$\begin{aligned}&X^{\mathrm{MPS}}_{jnt_w}, I^{\mathrm{MPS}}_{jt_w}, O_{nt_w}, B_{jt_w} \in \mathbb {R}_+ \quad \forall j=1,\ldots ,J;\ n=1,\ldots ,N;\ t_w=1,\ldots ,T^{\mathrm{MPS}} \end{aligned}$$
(17)
$$\begin{aligned}&Y_{jnt_w} \in \{0,1\}, \quad \forall j=1,\ldots ,J;\ n=1,\ldots ,N;\ t_w=1,\ldots ,T^{\mathrm{MPS}}. \end{aligned}$$
(18)

The objective function (9) minimizes the cost for production, setup, holding inventory, backorders and overtime. The first constraints (10) balance the inventory for each product family on a weekly basis. Backorders are allowed, but transferred to the subsequent period. Constraints (11) lead to a minimum inventory level for each product family j in the target weeks TW. It prevents producing only the cheapest product to fulfill the aggregate target inventory levels. Constraints (11) allow deviations from the target on a product family level. However, due to cost reasons the permitted deviation of \((1-f)\) would always be exploited in the last period. Hence, constraints (12) have to be added, ensuring that the aggregate target level is met. The next constraints (13) and (14) ensure that the available capacity of the production lines, including the possibility of overtime, is not exceeded. From expression (13) clearly, the total overtime depends directly on the number of production lines of each type. So, (14) limit not the total overtime, but the overtime per production line type. Implicitly also the total overtime is restricted. A side effect of (14) is that overtime can only be used at line type n if there is at least one production line of that type. Constraints (15) force the setup variable \(Y_{jnt_w}\) to one if production of family j takes place on line type n in period \(t_w\). Constraints (16) force the production amount to zero if production line type n is not capable of producing product family j.

Estimating the big number \(M_{jnt_w},\) we have to take into account that the common estimation based on the future demand until \(T^{\mathrm{MPS}}\) is not sufficient. We might need to fulfill demand from the past (i.e., backorders) as well as demand beyond the MPS planning horizon (i.e., inventory target levels). On top of that, in (19), we allow a deviation f from the target level and thus the possibility of a higher production amount has to be ensured by \(M_{jnt_w}'\). Another estimation \(M_{jnt_w}''\) is based on the production capacity, see (20). Finally, we can take the minimum of both values, as stated in (21).

$$\begin{aligned}&M_{jnt_w}' = \sum _{t=1}^{T^{\mathrm{MPS}}} D_{jt}^{\mathrm{MPS}} + B_{j,0} - I_{j,0}^{\mathrm{MPS}} + \max _t I_{jt}^{\mathrm{APP}} + (1-f)\cdot \sum _{\underset{j'\ne j}{j'=1}}^{J} \max _t I_{j't}^{\mathrm{APP}}, \nonumber \\&\qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \forall j=1,\ldots ,J;\ n=1,\ldots ,N;\ t_w=1,\ldots ,T^{\mathrm{MPS}}, \end{aligned}$$
(19)
$$\begin{aligned}&M_{jnt_w}'' = \frac{L_{nt_w}^{\mathrm{MPS}}\cdot (\mathrm{Cap}_{t_w}+O^{\mathrm{max}})-s_j}{a_j^{\mathrm{MPS}}}, \nonumber \\&\quad \forall j=1,\ldots ,J;\ n=1,\ldots ,N;\ t_w=1,\ldots ,T^{\mathrm{MPS}}, \end{aligned}$$
(20)
$$\begin{aligned}&M_{jnt_w} = \min \{M_{jnt_w}', M_{jnt_w}''\}. \end{aligned}$$
(21)

3.3 Illustrative example

With the following example, we illustrate the sequential solution process by utilizing the hierarchical approach without reaction of the base level. The parameters are given as follows: \(T^{\mathrm{APP}}=12\) (months), \(T^{\mathrm{MPS}}=12\) (weeks), \(N=2\), \(K=2\), \(J=4\), \(\Gamma (1)=\{1,2\}\), \(\Gamma (2)=\{3,4\}\). In this paper, and in this example as well, we assume that every month \(t_m\) consists of exactly 4 weeks \(t_w\).

The APP result is analyzed regarding decision and targets. All other variables belonging to the plan are not relevant for now.

Table 4 Exemplary results of the APP level

Table 4 provides the results of \(L_{nt_m}^{\mathrm{APP}}\) and \(I_{kt_m}^{\mathrm{APP}}\). The bold printed results are passed to the MPS level, \(L_{nt_m}^{\mathrm{APP}}\) as decision and \(I_{kt_m}^{\mathrm{APP}}\) as target.

Table 5 Decisions passed to the MPS level

Table 5 shows the assignment of monthly decisions to weeks. Given a disaggregation factor \(v_j\), \(j=1,\ldots ,4\), which states the proportion family j has within type k. That means, \(\sum _{j \in \Gamma (k)} v_j = 1\) has to hold for all \(k=1,...,K\). Moreover, factor f is given. The inventory levels have to fulfill the following inequalities for \(t_w=12\) according to constraint (11).

$$\begin{aligned}&I_{j,4}^\mathrm{MPS} \ge f \cdot 500 v_j, \quad j=1,2, \\&I_{j,12}^\mathrm{MPS} \ge f \cdot 2000 v_j, \quad j=1,2, \\&I_{j,12}^\mathrm{MPS} \ge f \cdot 100 v_j, \quad j=3,4. \end{aligned}$$

4 Integrated production planning

We use the same notation for parameters, indices and variables as introduced for the HPP.

Integrating APP and MPS into one single model carries the following challenges due to (dis-)aggregation regarding time (months, weeks) and products (types, families).

  1. 1.

    Some decision variables occur in both levels. They have to be either removed or coordinated.

  2. 2.

    Similar constraints to be found in both levels have to be adapted.

Graves (1982) already incorporates these aspects on a much simpler level by taking into account product types and families simultaneously in one production planning model. We add to it two different time grids and planning horizons which leads to the following adjustments in those periods where APP and MPS are solved simultaneously, called overlapping periods.

  • Remove monthly inventory holding cost \(I_{kt_m}^\mathrm{{APP}}\) from the objective function.

  • Remove inventory balance constraint (2).

  • Link \(I_{kt_m}^\mathrm{{APP}}\) and \(I_{jt_w}^\mathrm{MPS}\) with an aggregation constraint (time, product).

  • Link \(X_{knt_m}^\mathrm{{APP}}\) and \(X_{jnt_w}^\mathrm{MPS}\) with an aggregation constraint (time, product).

  • Remove capacity constraint (4).

  • Link \(L_{nt_m}^\mathrm{{APP}}\) and \(L_{nt_w}^\mathrm{MPS}\) with a constraint.

Hence, IPP benefits at the APP level from the detailed planning at the MPS stage. In the objective function, we trade off not only different cost types, but also long-term and short-term costs.

Remark 4.1

Using the terminology of Schneeweiss (1995), the model could still be considered as a hierarchical approach with a partially explicit exact anticipation function at the upper level. Kröger (2014) uses this term for an anticipation function developed for a hierarchical model including long-term location planning and mid-term production planning. The basic idea is to anticipate the influence of the upper-level decision on the lower level in an exact manner for certain periods, while for the remaining periods just an approximation is utilized.

We repeat the time structure and add set \(\Omega \):

\(t_m = 1,\ldots ,T^\mathrm{{APP}}\)

APP periods (months)

\(t_w = 1,\ldots ,T^\mathrm{MPS}\)

MPS periods (weeks)

TM

Month passing the target inventory level to lower level

TW

Set of target weeks, i.e. periods \(t_w\) which have to fulfill the target level

\(\Omega (t_m)\)

Set of all micro-periods, \(t_w\) being part of macro-period \(t_m\)

\(M_{jnt_w}\)

Sufficient big number for product family j, line type n, period \(t_w\)

\(\Omega (t_m)\) is expressed as follows: \(\Omega (t_m) = \{t_w: t_w \in [4(t_m-1)+1,4t_m]\}\).

Integrated model combining APP and MPS

$$\begin{aligned}&\min \sum _{n=1}^{N}\sum _{t_m=1}^{T^\mathrm{{APP}}} \left( L_{nt_m}^\mathrm{{APP}} C^L_n + L_{nt_m}^+ C^{L+}_n + L_{nt_m}^- C^{L-}_n\right) + \sum _{k=1}^{K} \sum _{t_m=TM+1}^{T^\mathrm{{APP}}} I^\mathrm{{APP}}_{kt_m} C_k^I \nonumber \\&\quad + \sum _{j=1}^J \sum _{n=1}^N \sum _{t_w=1}^{T^\mathrm{MPS}}\left( X^\mathrm{MPS}_{jnt_w}C_n^P + Y_{jnt_w}C_{j}^S \right) + \sum _{j=1}^J\sum _{t_w=1}^{T^\mathrm{MPS}} I^\mathrm{MPS}_{jt_w}C_j^I \nonumber \\&\quad + \sum _{j=1}^J \sum _{t_w=1}^{T^\mathrm{MPS}} B_{jt_w}C^B + \sum _{n=1}^{N}\sum _{t_w=1}^{T^\mathrm{MPS}} O_{nt_w} C^O_n, \end{aligned}$$
(22)

subject to

$$\begin{aligned}&\mathrm{APP\, constraints:}\nonumber \\&(3), (5), (6), (8) \nonumber \\&I_{kt_m}^\mathrm{{APP}} = I_{k,t_m-1}^\mathrm{{APP}} + \sum _{n=1}^N X_{knt_m}^\mathrm{{APP}} - D_{kt_m}^\mathrm{{APP}}, \quad \forall k=1,\ldots ,K;\ t_m=\mathrm{TM}+1,\ldots ,T^\mathrm{{APP}}, \end{aligned}$$
(23)
$$\begin{aligned}&\sum _{k \in \phi (n)} a_k X_{knt_m}^\mathrm{{APP}} \le L_{nt_m}^\mathrm{{APP}} \cdot \mathrm{Cap}_{t_m}, \quad \forall n=1,\ldots ,N;\ t_m=\mathrm{TM}+1,\ldots ,T^\mathrm{{APP}},\end{aligned}$$
(24)
$$\begin{aligned}&X_{knt_m}^\mathrm{{APP}} \ge 0, \quad \forall k=1,\ldots ,K;\ n=1,\ldots ,N;\ t_m=\mathrm{TM}+1,\ldots ,T^\mathrm{{APP}}, \end{aligned}$$
(25)
$$\begin{aligned}&I_{kt_m}^\mathrm{{APP}} \ge -D_{kt_m}^\mathrm{{APP}}, \quad \forall k=1,\ldots ,K;\ t_m=1,\ldots ,\mathrm{TM}, \end{aligned}$$
(26)
$$\begin{aligned}&I_{kt_m}^\mathrm{{APP}} \ge 0, \quad \forall k=1,\ldots ,K;\ t_m=TM+1,\ldots ,T^\mathrm{{APP}}. \end{aligned}$$
(27)

Connect APP and MPS:

$$\begin{aligned}&L_{nt_m}^\mathrm{{APP}} = L_{nt_w}^\mathrm{MPS} \quad \forall n=1,\ldots ,N;\ t_w \in \Omega (t_m), \forall t_m: \Omega (t_m) \ne \emptyset , \end{aligned}$$
(28)
$$\begin{aligned}&X_{knt_m}^\mathrm{{APP}} = \sum _{j \in \Gamma (k), t_w \in \Omega (t_m)} X_{jnt_w}^\mathrm{MPS}, \quad \forall k=1,\ldots ,K,\; n=1,\ldots ,N,\; t_m=1,\ldots ,\mathrm{TM}, \end{aligned}$$
(29)
$$\begin{aligned}&I_{kt_m}^\mathrm{{APP}} = \sum _{j \in \Gamma (k)} (I_{jt}^\mathrm{MPS} - B_{jt}), \quad \forall k=1,\ldots ,K,\; t_m = 1,\ldots ,\mathrm{TM},\; t=\max \Omega (t_m). \end{aligned}$$
(30)

MPS constraints:

$$\begin{aligned}&(10), {\text{(13)--(18) }} \nonumber \\&L_{nt_w}^\mathrm{MPS} \in \mathbb {N} \cup \{0\}, \quad \forall n=1,\ldots ,N;\ t_w = 1,\ldots ,T^\mathrm{MPS}. \end{aligned}$$
(31)

The objective function (22) minimizes the total costs of APP and MPS by addressing together (1) and (9). Note that this function does not represent the true total cost to be compared against the HPP approach. Hence, we calculate the realized cost differently (see Sect. 5).

The first set of constraints (23) is similar to (2) of APP, but considers here only the periods not covered by MPS. By doing so, we do not have to assign the initial inventory level separately in the rolling horizon implementation. This is done automatically with constraints (30). Constraints (24) differ from (4) in terms of the considered periods. All others, i.e. (3), (5), (6) and (8), are identical to the APP constraints. Constraints (7) are replaced by (25) and (26), since we allow (virtual) negative inventory due to backorders in the overlapping periods; see constraints (30). The negative demand in this period serves as lower bound. Note that \(I_{kt_m}^\mathrm{{APP}}\) is not part of the objective function for \(t_m=1,\ldots ,\mathrm{TM}\). Consequently, negative inventory is not critical in terms of the optimization process. Note also that in periods \(t_m=1,\ldots ,\mathrm{TM}\) \(X_{knt_m}^\mathrm{{APP}}\) is non-negative implicitly because of (17).

The linking process, which is done in the HPP before solving the MPS, has to be done here within the model. The number of production lines has to be assigned (28). The other two APP-MPS connecting constraints (29) and (30) are necessary because (23) only has to hold for the non-overlapping periods. However, in the overlapping periods we have to ensure the equality of production amount and inventory level among APP and MPS. There, the production amount \(X_{knt_m}^\mathrm{{APP}}\) only serves as bookkeeping variable in periods \(t_m=1,\ldots ,\mathrm{TM}\). Anyway, (29) force the production amount of product type k in period \(t_m\) to equal the aggregate amount of product family j in weeks \(t_w\) of that month \(t_m\). Constraints (30) aggregate the inventory level of family j in the last week of period \(t_m\). The APP inventory level has to equal that amount. In contrast to the HPP approach, the inventory is passed via aggregation as initial inventory level from MPS to APP rather than as a target from APP to MPS, see (30). Therefore, no other constraints such as (11)–(12) are needed regarding the inventory linkage.

The MPS constraints are already known, only one former MPS parameter has to be defined here as decision variable (31).

The big M has to be calculated in a different way than in the MPS. The reason is the target inventory level which is a decision variable in the IPP and would lead to quadratic constraints (15). Therefore, M is calculated based on the maximum production amount on that production line type.

$$\begin{aligned} M_{jnt_w} =&\frac{L_n^{UB}\cdot (\mathrm{Cap}_{t_w}+O^{\mathrm{max}})-s_j}{a_j^\mathrm{MPS}}, \nonumber \\&j=1,\ldots ,J;\ n=1,\ldots ,N;\ t_w=1,\ldots ,T^\mathrm{MPS}. \end{aligned}$$
(32)

5 Rolling horizon planning

The models created for HPP and IPP have to be incorporated in a planning system. Part of that are the rolling horizon implementation and the coordination of the planning levels. Both issues belong together since interaction does not only take place between the levels but also between the iterations.

The basic idea of the rolling horizon approach is to create a plan for a specific planning horizon, but only the first periods are implemented. All other periods can be updated when the horizon is rolled forward. Several parameters influence the success of the rolling horizon approach. Key parameters are the planning horizon length, the number of frozen periods and how the decision variables are frozen. Updating the complete plan every iteration gives a lot of flexibility and leads to cost savings. The drawback is the so-called planning nervousness which should be avoided or at least limited. To get more stable plans with less complexity the first periods are frozen. This can be done either by fixing the binary variables, or by fixing the quantities (i.e. the value of the variable), or by limiting the changes by a certain percentage, also called restriction. To find the best setting we have to trade-off cost, flexibility and stability. The literature (c.f. Chung and Krajewski 1987) suggests to utilize a planning horizon covering at least one seasonal cycle.

We consider a full year with 12 months as planning horizon for the APP. Each month consists of 4 weeks, the MPS horizon covers 3 months or 12 weeks. The number of frozen periods is set to two, i.e. 2 months at APP and 2 weeks at MPS level. Freezing periods means in our implementation to fix \(L_{nt_m}^\mathrm{{APP}}\) and to set \(X_{jnt_w}^\mathrm{MPS}=0\) in case the production amount was set to zero in the previous iteration. Additionally, \(O_{nt_w}\) is fixed in the same way as \(L_{nt_m}^\mathrm{{APP}}\). The remaining decision variables stay free.

Remark 5.1

Basically, in this contribution the rolling horizon approach is implemented in such a way that it is possible to update also the APP plan every week. In practice, the company might decide not to do so, but for test purposes it is implemented. The replanning frequency in the IPP can be controlled by fixing the specific decision variables. For instance, if only the MPS should be updated, all APP related decision variables have to be fixed to the value of the last iteration.

Fig. 2
figure 2

Rolling forward the planning horizon

To freeze periods, we add two sets of constraints to the MPS. At the APP level we only fix the capacity via constraints (5). The new parameters are \(O_{nt_w}^{\mathrm{LB}}\), \(O_{nt_w}^{\mathrm{UB}}\), \(X_{jnt_w}^{\mathrm{MPS}-\mathrm{LB}}\), and \(X_{jnt_w}^{\mathrm{MPS}-\mathrm{UB}}\) and lead to the following constraints:

$$\begin{aligned}&O_{nt_w}^\mathrm{{LB}} \le O_{nt_w} \le O_{nt_w}^{\mathrm{UB}}, \quad \forall n=1,\ldots ,N;\ t_w=1,\ldots ,T^\mathrm{MPS}\end{aligned}$$
(33)
$$\begin{aligned}&X_{jnt_w}^{\mathrm{MPS}-\mathrm{LB}} \le X_{jnt_w}^\mathrm{MPS} \le X_{jnt_w}^{\mathrm{MPS}-\mathrm{UB}}, \quad \nonumber \\&\quad \forall j=1,\ldots ,J;\ n=1,\ldots ,N;\ t_w=1,\ldots ,T^\mathrm{MPS}. \end{aligned}$$
(34)

The rolling horizon is implemented as illustrated in Fig. 2. In the first iteration (current period is \(t_w=0\)), we plan months \(t_m=1,\ldots ,12\) and weeks \(t_w=1,\ldots ,12\) and the start of the planning horizon is identical. The target inventory levels are passed for the months \(t_m=1,2,3\).

As we roll forward, the first planning month gets realized and thus is no longer considered on APP level. Otherwise, the interaction of both levels in combination with frozen periods on both levels would lead to infeasibilities easily. Note that the MPS planning horizon starts and ends not together with the monthly structure. Therefore, we introduced the target month (TM) and the target weeks (TW) in our models. We also took care of the assignment of weeks to months because for every iteration the set changes. Note that on APP level, only period \(t_m=2\) is frozen and the remaining months are resolved. Note further that the MPS inventory level of week \(t_w=4\) now determines the initial inventory at the APP level instead of receiving a target level. In the IPP approach that happens directly, while in the HPP we get the initial inventory from the MPS result of the previous iteration. Target inventory levels for months \(t_m=2,3\) are passed as before.

Afterward, the horizon is rolled forward again, now freezing month \(t_m=3\) additionally. After rolling two more times, we reach the initial state where the planning horizons of APP and MPS start at the same point.

Remark 5.2

Due to the rolling horizon approach, the objective function value does not represent the true cost. By rolling forward, non-frozen variables can be changed. Therefore, we calculate the real total costs after all iterations based on the implemented decisions.

Interaction between the levels is an important issue (c.f. Gelders and Van Wassenhove 1982). Figure 3 shows the different types of interaction between APP and MPS according to the framework of Schneeweiss (1995). Instruction has already been introduced in terms of decisions and targets, but anticipation and reaction have to be clarified.

Fig. 3
figure 3

Interaction between APP and MPS according to Schneeweiss (1995)

Anticipation

Schneeweiss (1995) distinguishes between several kinds of anticipation. If the top level anticipates the base level exactly, it is called exact explicit anticipation. According to that definition, our IPP uses it in the overlapping periods (cf. Remark 4.1). In the remaining periods implicit anticipation takes place, i.e., the top level anticipates only a part of the base level.

In practice, mostly non-reactive anticipation is used (Rohde 2004). That means, the anticipation function is independent from the instruction. For instance, usually 10 % of APP capacity are reserved for setup operations at MPS level (e.g., Özdamar et al. 1998). In our case, setup times are estimates depending on the production amount.

Remark 5.3

Setup times occuring at the MPS level are attempted to be anticipated at the APP level by means of production times \(a_k,\) which already reserve time for setups. Based on the MPS solution of the previous iteration these values are updated with the following formula, which computes the average consumption time (production plus setup) to produce one unit.

$$\begin{aligned} a_k^{\mathrm{NEW}} = \frac{\sum _{j \in \Gamma (k),n,t_w} (a_{j}^\mathrm{MPS}X^\mathrm{MPS}_{jnt_w} + s_{j} Y_{jnt_w})}{\sum _{j \in \Gamma (k),n,t_w} X^\mathrm{MPS}_{jnt_w}}. \end{aligned}$$
(35)

Note that both approaches, HPP and IPP, utilize this kind of anticipation. Computational tests have shown that it is necessary to introduce a condition when production times \(a_k\) are allowed to be updated. Otherwise, very low production amounts will lead to unrealistic high anticipated production times. This can happen, for instance, if there is high initial inventory which is supposed to satisfy the complete demand of the planning horizon. However, due to forecast errors, small amounts have to be produced additionally. Consequently, setup time is considered even for a small production amount. Hence, the calculation according to (35) would lead to an unrealistic anticipation.

Reaction

Updating the production times at the APP level is a reaction of the MPS level by giving (ex post-) feedback to the APP. Another explicit reaction is the initial inventory level on APP. In some of the iterations, see Fig. 2, the APP planning horizon starts within the MPS horizon. Therefore, APP receives the inventory level of the according MPS period. For instance, in period \(t_w=2\) of Fig. 2 APP receives the inventory level of week \(t_w=4\) of the previous iteration and uses it as initial inventory. Besides that, all decision variables of the MPS level, i.e. the plan, could be seen as reaction.

Remark 5.4

In the IPP \(a_k\) is based on the last iteration as well. The results of the current iteration can not be applied because the capacity constraint (2) would become quadratic (both production time and amount would be variables).

In the HPP approach, updating the production times at APP level can lead to problems in the frozen periods in the following case. The capacity is fixed and completely used. In case the production time \(a_k\) is increased, then in the subsequent period the capacity constraint cannot hold any longer. Selçuk et al. (2006) notice a similar effect when they update the lead times in their hierarchical system. We solve that issue by allowing unmet demand \(U_{kt_m}\) of product type k in period \(t_m\) to ensure the feasibility of the HPP. Therefore, we change constraints (2) into (36) and add an additional set to permit lost sales only in the frozen periods \(1,\ldots ,FP\). Note that the demand is not met only in theory, as at the MPS level the demand still has to be fulfilled.

$$\begin{aligned}&I_{kt_m}^\mathrm{{APP}} = I_{k,t_m-1}^\mathrm{{APP}} + \sum _{n=1}^N X_{knt_m}^\mathrm{{APP}} + U_{kt_m} - D_{kt_m}^\mathrm{{APP}}, \quad \forall k=1,\ldots ,K;\ t_m=1,\ldots ,T^\mathrm{{APP}} \end{aligned}$$
(36)
$$\begin{aligned}&U_{kt_m} = 0, \quad \forall k=1,\ldots ,K;\ t_m = FP+1,\ldots ,T^\mathrm{{APP}}. \end{aligned}$$
(37)

Another way of remodeling would be the separation of (2) into two constraints valid in different periods.

The disaggregation process can be considered as reaction. The inventory level is given as an instruction by the APP; the MPS reacts by disaggregating it into product families.

Remark 5.5

The disaggregation factor \(v_j\) for the target inventory level is determined based on the demand forecasts as follows.

$$\begin{aligned} v_j = \frac{\sum _{t_w} D_{jt_w}^\mathrm{MPS}}{\sum _{j\in \Gamma (k),t_w} D_{jt_w}^\mathrm{MPS}}, \quad \forall j=1,\ldots ,J. \end{aligned}$$
(38)

Figure 2 reveals an issue to be tackled in the IPP. The question is how to deal with those periods which overlap partially, like in the second or third iterations. For instance, in iteration three (\(t_w=2\)) also periods 13 and 14 are solved on MPS level, but the results are not considered at the APP level in the current model formulation. For the IPP we introduce constraints (39)–(40) for iterations \(i\ge 1\) with \(i\mod 4 \ne 1\).

First of all, the APP capacity constraints in period \(\mathrm{TM}+1\) have to be adapted. In the overlapping periods, they coexist with the MPS capacity constraints (13). Due to overtime, it is possible that the MPS capacity exceeds the APP capacity which could lead to a production amount not feasible at the APP level. Therefore, in this case adapted APP constraints have to hold.

$$\begin{aligned} \sum _{k=1}^K a_k X_{kn,TM+1}^\mathrm{{APP}} \le L_{n,\mathrm{TM}+1}^\mathrm{{APP}} \mathrm{Cap}_{\mathrm{TM}+1} + \sum _{t_w \in \Omega (\mathrm{TM}+1)} O_{nt_w}, \quad \forall n=1,\ldots ,N. \end{aligned}$$
(39)

Constraints (29) can be easily adapted for the period \(t_m=TM+1\). The aggregated MPS production amount serves as the lower bound.

$$\begin{aligned} X_{kn,\mathrm{TM}+1}^\mathrm{{APP}} \ge \sum _{j \in \Gamma (k), t_w \in \Omega (\mathrm{TM}+1)} X_{jnt_w}^\mathrm{MPS}, \quad \forall k=1,\ldots ,K,\; n=1,\ldots ,N. \end{aligned}$$
(40)

6 Creating test instances

This section consists of two parts. In the first subsection we set the initial parameter values. The second part describes how the demand is generated taking into account seasonality and forecast errors. The models presented for HPP and IPP allow us to vary many parameters. However, to prevent bias in our tests, we keep most of them constant, i.e. product or period independent.

6.1 Initializing parameters

At the beginning we introduce the initial values which are not going to be varied or which are not connected to other parameters. The problem size is defined by the assumptions presented in Table 6.

Table 6 Main parameters which are fixed in the test instances

The capacity results from the assumption of four weeks per month, six working days per week, and two 8-h shifts per working day. For the production time, \(a_j^\mathrm{MPS}=1, \forall j=1,\ldots ,J\). The production costs are set to one as well. The maximum number of production lines for each type is four. Since one working day consists of two shifts, at most eight lines are available per day. Every product type comprises three families with similar demand share (34, 33, 33 %). The production line assignment \(\phi (n)\) for the three production line types \(n=1,2,3\) is set as follows: \(\phi (n) = \{1,2\}, \{1,2,3,4\}, \{1,2,3,4,5,6\}\), \(\forall n=1,2,3\). The assignment matrix for product families results from that matrix according to the product type–family relation.

We created general relationships between the parameters and calculated them based on the initial values introduced above. The concrete formulas can be found in Appendix 1.

Our test instances were created on the basis of the parameter variations reported in Table 7. The scenario with just one line type that can produce all products is called homogeneous; otherwise, it is heterogeneous. The influence of TBO on the data is reported in Appendix 1. Seasonality “all” means that all product types follow the demand pattern of Table 8. In instances with no seasonality, the demand pattern equals one in every period. Mixed seasonality means that half of the product types follow the pattern given in the table, while the other half has a stable demand. Further details about the role of setup times can be found in Appendix 1. The values related to the forecast error represent the coefficient of variation.

Table 7 Varied key parameters among the test instances

The demand pattern in Table 8 is from a real-world company facing seasonality. The demand value states how much of the average demand occurs in every month. Thus, the average of these values is one.

Table 8 Demand seasonality

6.2 Creating demand on a rolling horizon basis

The way we include forecast errors is taken from Clark (2005) and described in Appendix 2. Because more than one planning level is considered, this approach has to be adapted according to our requirements.

  • At the MPS level, customer orders have arrived; thus the demand is deterministic.

  • (Aggregate) MPS demand has to equal the APP demand.

To utilize the approach of Clark (2005), we need to determine the true demand before. If we have a stable demand, we can just use the average demand. But if we want to include seasonality, we have to calculate these values. Therefore, we use the method of Guimaraes (2013). Demand of product i in period t is generated as follows:

$$\begin{aligned} d_{it} = \mu _i \cdot s_t + \sigma _i \cdot \delta _t, \quad \forall i,t \end{aligned}$$
(41)

with average demand \(\mu _i\) for product i, seasonal effect \(s_t\) in period t, standard deviation \(\sigma _i\) for product i, and a standard normal distributed random variableFootnote 1 \(\delta _t\). We get these parameters as follows:

  • \(\mu _i\) is provided by the formulas for the test instances.

  • \(s_t\): The demand pattern has to be defined before. For every month, there has to be a value \(s_t\) stating whether the demand is higher or lower than the average demand. At the end, the average of all \(s_t\) has to be one.

  • \(\sigma _i = \mu _i \cdot \sqrt{\vartheta ^2-Var(s)}\): to determine \(\sigma _i,\) we need to calculate the variance of s and to set the coefficient of variation \(\vartheta \). We have to ensure \(\vartheta ^2 \ge Var(s)\).

  • \(\delta _t\) is generated by implementing the Box–Muller method in C\(++\).

7 Computational tests

We want to answer the following questions with our experiments.

  • Does the IPP deliver better results than HPP?

  • Is the computational effort acceptable?

The instances are solved on a computer cluster with Intel Xeon E5-2687W Processors at 3.1 GHz with 256 GB of RAM. The solver is IBM ILOG CPLEX Version 12.6. If not mentioned differently, the computation time per iteration step is set to 2 min. For the HPP, the computation time is split equally which results in 1 min for each level. In case APP does not consume its given time limit, the remaining time could be used by the MPS level. We have to consider such cases due to the higher complexity of MPS. The number of iterations on the rolling approach is 48 (weeks). We use the 144 parameter combinations given in Table 7 and generate five different demand series using different seeds. Thus, we have 720 instances in total. The seed influences also the true demand, not only the forecast values. i.e. each instance is based on the demand pattern in Table 8, but the seed leads to deviations due to random numbers.

Remark 7.1

One goal of our computational tests was to prevent backorders if possible. Therefore, in addition to the true cost \(C^B,\) we multiplied it in the objective function by a sufficiently high number. However, the final costs in the analysis were calculated based on the cost stated in Appendix 1.

Results for the static problem

Our first experiments assess the solution quality if we perform just one iteration, i.e., without rolling horizon. Consequently, forecast errors have no impact on the results. However, instances with different forecast errors have different demand values and thus are different from each other. Nevertheless, for the tests we chose only those instances with low forecast error. Contrary to the other experiments, we set the maximum runtime to 1 h.

Table 18 provides the improvement by utilizing IPP instead of HPP in terms of average total cost (i.e., APP plus MPS cost) for all instances. Additionally, APP cost and MPS cost are listed as well. The percentage values indicate the average improvement due to using the IPP instead of the HPP. The deviation is calculated with \(\mathrm{deviation} = 1-{\mathrm{IPP}}/\mathrm{HPP}\). Consequently, positive values indicate IPP outperforms HPP, whereas negative values state the opposite.

Remark 7.2

Note that the IPP trades off APP and MPS cost by considering them in a single objective function. Thus, it might occur that for some instances HPP creates plans with lower cost regarding APP or MPS. Note further, the IPP determines the number of production lines, the main driver of APP cost, in the overlapping periods on the basis of MPS. Consequently, the available capacity is higher due to overtime and backorders and the number of lines can be decreased. As a consequence, APP cost of HPP can be higher than of the IPP approach.

Table 9 Summarized results for one iteration showing average improvement of IPP over HPP regarding APP, MPS and total cost as well as average gaps with the according ranges

Table 9 gives an aggregated overview of the different results of HPP and IPP for one iteration. The detailed Table 18 (see Appendix 3) shows that the IPP outperforms the HPP in terms of total cost for all instances. These results provide a first confirmation that our integrated model delivers plausible results.

Remark 7.3

There are two replications where HPP is slightly better than IPP (−0.05 and −0.16 %). This could happen because IPP was not solved to optimality but stopped after reaching the time limit of 1 h. In both cases the remaining MIP gap was greater than the difference to the HPP results (0.80 and 0.94 %). Tests where the IPP was partially fixed to HPP solution (number of production lines and setup decisions) confirmed this by leading to a better objective function value than previously, even better than the HPP.

Besides the solution quality, the runtime is of interest when two approaches are compared. Table 10 summarizes the results by calculating the average runtimes for all seeds and indicates the number of instances where HPP was faster, slower or equal to IPP.

Table 10 Average runtimes (in s) and number of instances where HPP was faster, equal or slower than IPP in case of one iteration

Table 10 confirms the expectation of HPP being faster than IPP. However, both approaches use the maximum allowed runtime for the majority of the instances.

Results on a Rolling Horizon Basis

The previous experiment is now extended by solving the problem on a rolling horizon basis which is closer to reality and will show the long-term effects of APP decisions.

Remark 7.4

At the MPS level, it might happen that a given target inventory level cannot be met due to underestimation of the previous APP iteration. That means, MPS generates inventory for this period but not sufficiently. To avoid infeasible plans, our model formulation allows having inventory and backorders at the same time. However, in practice, this would not happen physically. Therefore, we used the net inventory (inventory minus backorders) to calculate whether inventory or backorder costs have to be paid.

Table 11 shows the improvements of IPP over HPP in terms of the different cost types and total cost, making distinctions between the influence of different instance parameters. Note that due to penalization, backorder costs became negligible and thus are not considered in the tables.

Table 11 Improvement of IPP results compared with HPP depending on the parameter

In combination with Table 12 which indicates the proportions of the different cost types, the following evidence can be derived from the results in Table 11.

  • Heterogeneous line types lower the potential savings in terms of the number of lines and setups.

  • High setup times affect the IPP much more than the HPP, i.e., IPP creates plans with much less setup operations.

  • Seasonality is covered by the IPP in a much better way. While the HPP opens more lines the IPP does the opposite and covers it with overtime and more setups.

  • A higher forecast error is beneficial for the IPP. However, a small error has only little influence.

  • A higher TBO means a higher setup cost parameter [see (57)]. Besides that, it is used as approximation for the expected number of setups. However, this works only for small TBO [see comment on (42)]. In other words, while the cost per setup is increased according to the TBO, the time per setup stays the same for TBO = 4 and TBO = 8. Higher TBO encourages the HPP to reduce the number of setup; thus the difference to IPP gets smaller.

The immense savings in terms of line cost and setup cost give us the reason for the superiority of IPP over HPP. Being able to create plans with less setups does not only lead to lower setup cost, but moreover enables producing the same amount with less capacity which reduces the number of required production lines. This will be illustrated in more depth at the end of the section.

Table 12 Proportion of the different cost types within the total cost
Table 13 Average runtimes (in s), number of instances where HPP was faster, equal or slower than IPP on a rolling horizon basis, and average gaps

Table 13 shows the average runtime results categorized for HPP and IPP in the same way as Table 10. Note that equal runtimes occurred when both approaches reached the maximum runtime of 5760 s. The gaps ranged in the interval [0 %, 1.3 %] for the HPP and [0 %, 3.0 %] for the IPP, respectively. The average gaps were very low (around 0.2 % for MPS and IPP), but the iterations were solved to optimality only for APP and for the less complex instances.

From our experiments we can conclude that IPP outperforms HPP for all considered parameter settings. The reason for that will be explained in the next section.

Exemplary illustration of IPP superiority

For illustration purpose, we chose an arbitrary instance from our tests with one iteration. It has the following properties: homogeneous line types (1); TBO = 2; no seasonality; high setup times; low forecast error. Since the results for one iteration are quite homogeneous the concrete choice is not of importance for our intention.

Table 14 Number of production lines in months \(t_m=1,\ldots ,12\)

First of all, we notice in Table 14 that the IPP uses one production line less in each month of the MPS months (\(t_m=1,2,3\)), i.e., in the periods where APP and MPS are solved simultaneously. That means it could reduce capacity by still producing the same amount as HPP (backorders did not occur). Overtime helped only partially as Table 15 indicates.

Table 15 Overtime in weeks \(t_w=1,\ldots ,12\)

Table 16 aggregates the production results of weeks \(t_w=1,\ldots ,12\) into months and all product families \(j=1,\ldots ,18\) into total production amounts. To compare it with the available capacity, we add the information of Tables 14 and 15.

Table 16 Capacity availability and usage for months \(t_m=1,2,3\) of HPP and IPP

The following conclusions can be drawn from Table 16.

  • The total production amount is identical for both approaches. (That means, by chance even the target inventory level is the same for this particular instance.

  • IPP is able to produce the same amount with less setups. Therefore, less capacity is required.

  • The capability of IPP to adapt the capacity to the real consumptionFootnote 2 leads to a higher utilization.

The effect on the different cost types is as follows. Note that inventory cost on APP level consider only months \(t_m=4,\ldots ,12\) because inventory in months \(t_m=1,2,3\) is already taken into account at the MPS level.

Table 17 Costs of HPP and IPP in the example

Table 17 reveals that it is beneficial to trade off also line cost together with the different MPS costs. The reason for that is the setup decision variable. The HPP approach apprehends it mainly as a cost factor, but neglects its impact on the other capacity variables. Capacity is almost fixed by APP decisions, so there are no incentives, besides feasibility, to use less capacity by setups. On the contrary, the IPP also takes into account the indirect cost savings due to less setups by allowing the reduction of production lines.

Remark 7.5

Note that in the example the APP variable \(a_k\), \(k=1,\ldots ,6\), which anticipates the production time plus setups has been set to a realistic value based on previous tests. That means, the HPP and IPP (in \(t_m=4,\ldots ,12\)) used \(a_k=1.43\) as the parameter. The MPS results of HPP confirmed that the forecast was quite close to the real values (1.4635, 1.4722, 1.4537, 1.5036, 1.3939, 1.4537). For the IPP, lower values could have been used (1.2813, 1.3935, 1.3737, 1.3711, 1.3393, and 1.3203); however, only APP decisions in \(t_m=4,\ldots ,12\) would have been affected. On a rolling horizon basis, this becomes more important.

8 Conclusions and future research

In this paper, we introduced a hierarchical production planning (HPP) model taking into account aggregate production planning (APP) and master production scheduling (MPS). The interaction of both levels was implemented on a rolling horizon approach. We considered the points of Fleischmann and Meyr (2003) by assuming an increasing level of detail in terms of time and product aggregation, as well as a shorter planning horizon at the lower level. Furthermore, the planning frequency was totally flexible which fits also in the requirements of an HPP. Based on that HPP, we developed an integrated production planning (IPP) model which combined APP and MPS in a single model, taking into account the mentioned points as well. By doing so, we showed that an IPP, which could be seen as a monolithic model (MM) reduced to a reasonable level of detail, can be formulated and applied successfully to a production planning problem. Moreover, the implementation proved to be less error prone in terms of coordination between the levels (compared to HPP). For instance, there is no disaggregation process needed in the IPP. In our test instances, we considered seasonality, and forecast errors and an increasing forecast accuracy at the APP level.

Computational tests showed the following.

  • Independent of the parameter setting, IPP always delivered better results than HPP.

  • The runtime is not an argument against the IPP; the gaps are reasonable.

  • If decision variables, like setups, have an influence on more than one planning level, it might be beneficial to consider it also there. That means, a trade-off between several decision variables should be mapped in a single objective function. Otherwise, suboptimality might result.

Our research focused on the modeling and implementation of both approaches, HPP and IPP. This study could be extended in two different ways: first, by focusing on the proposed models in the contribution; second, by adding new properties to the instances and computational tests to get more insight into the behavior of both approaches. The work started in this paper could be continued by improving the interaction of the model. More sophisticated methods could be used to anticipate the setup times at the APP level. Further computational experiments could test different techniques to update production times at the APP level. For instance, Selçuk et al. (2006) use the exponential smoothing technique to update lead times. Anticipation in general could comprise also other MPS decisions like overtime at the upper level.

Regarding the test instances, several changes are possible to make them more realistic. Besides seasonality, the demand stays stable in our test instances, i.e. monthly demand is divided uniformly to the weeks. That idealistic assumption could be changed into more intermittent demand patterns. Uncertainty in other parameters, e.g., capacity due to maintenance or break downs, might be challenging for the tight plans of the IPP. Finally, the idea of integrating two adjacent planning levels of HPP could be applied to the other stages like material resource planning (MRP) or scheduling.