Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

In the past, there have been several efforts to add uncertainties into the model description of problems [1, 7]. We were involved into examinations of uncertainties in airline fleet assignment [6] and railway planning [2]. However, the ratio of implementing efforts to output was rather disappointing. Therefore, we came to the conclusion that a modeling language is needed that combines convenient MIP modeling with the ability to express uncertainties. In 2004, Subramani introduced the idea to enrich linear programs by universally quantified variables [8].

Definition 1

(Quantified Integer Program) Let \(x = (x_1, \ldots , x_n)^T \in \mathbb {Q}^n\) be a vector with lower and upper bound vectors \(l \in \mathbb {Z}^n\) and \(u \in \mathbb {Z}^n\) such that \(l_i \le x_i \le u_i\). \(A \in \mathbb {Q}^{m \times n}\), \(b \in \mathbb {Q}^m\) and \(x\) build a linear inequality system. Moreover, there is a vector of quantifiers \(\fancyscript{Q} = (\fancyscript{Q}_1, \ldots , \fancyscript{Q}_n)^T \in \{\forall , \exists \}^n\). Let \(\fancyscript{Q} \circ x \in [l,u] \cap \mathbb {Z}^n\) with the componentwise binding operator \(\circ \) denote the quantification vector \((\fancyscript{Q}_1 x_1 \in [l_1,u_1] \cap \mathbb {Z}, \ldots , \fancyscript{Q}_n x_n \in [l_n,u_n] \cap \mathbb {Z})^T\) such that every quantifier \(\fancyscript{Q}_i\) binds the variable \(x_i\). Let there also be a vector of objective coefficients \(c \in \mathbb {Q}^n\). Each maximal consecutive subsequence of \(\fancyscript{Q}\) consisting of identical quantifiers is called a quantifier block—the corresponding \(i\)th subsequence of \(x\) is called a variable block \(B_i\).

$$\begin{aligned}&\text {We call}\quad z = {\min \limits _{B_1} (c^1x^1+ \max \limits _{B_2} ( c^2x^2 + \min \limits _{B_3} (c^3x^3 +\max \limits _{B_4} (\ \dots \min \limits _{B_k} c^k x^k)))))}\\&\qquad \qquad \qquad \qquad \qquad \qquad \fancyscript{Q} \circ x \in [l,u] \cap \mathbb {Z}^n: A x \le b \end{aligned}$$
(QIP)

a Quantified Integer Program with objective function (for a minimizing existential player). Here we assume w.l.o.g. that \(\fancyscript{Q}_1 = \exists \) and \(\fancyscript{Q}_n = \exists \).

A QIP with objective can be interpreted as a two-person zero-sum game [3, 4] between a max-player who tries to make the instance infeasible or to maximize the objective function and a min-player who wants to make the instance feasible and to minimize the objective against all odds. Note that this is a short notation for a dynamic program where the players have recursively to find optimal vectors \(x_{B_i}\) with fixed \(x_{B_1},\dots ,x_{B_{i-1}}\) under consideration that the other player will set the next block of variables optimal concerning his own incentives.

2 Job Shop Scheduling

Jop Shop Scheduling is a classical optimization problem in which jobs have to be assigned to several machines such that the total time until all jobs are finished (the makespan) is minimized. An assignment that a job has to be processed by a machine is called a task and is given a certain duration. If some tasks depend on one another, a full or partial order of tasks can be given. Equation (2) defines the makespan. Equation (3) ensures the partial task order. The ordering indicator variables \(y_{i,m,j}\) are defined by the following two equations.

For solution purposes it is relevant to use as few universally quantified variables as possible. To that end, we introduce a binary encoding \(\tilde{r}\) of the retardation and add existentially quantified helper variables \(r\) as unary encoding of the retardation. Equations (6) represent a linear formulation of this translation. Equations (7)–(10) are an adaption of the prior constraints for the second stage variables with uncertainly prolonged task durations. Equations (11)–(13) define the earliness caused by the existential players reaction, which is used as a penalty term for large rearrangements of the first stage planning (Table 1).

Table 1 Jobshop model notation
$$\begin{aligned} \min \quad m^2 + k \cdot \overline{e} + \frac{1}{M} \cdot m^1 \qquad \text {s.t.} \qquad \exists \, s^1 \, y^1\, m^1 \, \forall \, \tilde{r} \,\, \exists \, r \, { w} \,,\, s^2 \, y^2 \, m^2,\, e: \end{aligned}$$
(1)
$$\begin{aligned} s_{j,m}^1 + d_{j,m} \,\le \, m^1&\qquad \forall \, (j,m) \in T \end{aligned}$$
(2)
$$\begin{aligned} s_{i,m}^1 + d_{i,m} \,\le \, s_{j,n}^1&\qquad \forall \, (i,m,j,n) \in O \end{aligned}$$
(3)
$$\begin{aligned} s_{i,m}^1 + d_{i,m} \,\le \, s_{j,m}^1 + M \cdot (1-y_{i,m,j}^1)&\qquad \forall \, (i,m) \in T,\, (j,m) \in T \end{aligned}$$
(4)
$$\begin{aligned} s_{j,m}^1 + d_{j,m} \,\le \, s_{i,m}^1 + M \cdot y_{i,m,j}^1&\qquad \forall \, (i,m) \in T,\, (j,m) \in T \end{aligned}$$
(5)
$$\begin{aligned} \sum _{(u,j,m)\,\in \,U} u \cdot r_{j,m} \,=\, \sum _{b\,\in \,B} 2^b \cdot \tilde{r}_b - |T| \cdot w&\quad \wedge \quad \sum _{\begin{array}{c} u\,\in \,U \\ (j,m)\,=\,T_u \end{array}} r_{j,m} \,\le \, 1 \end{aligned}$$
(6)
$$\begin{aligned} s_{j,m}^2 + d_{j,m} + \delta _{j,m} \cdot r_{j,m} \,\le \, m^2&\qquad \forall \, (j,m) \in T \end{aligned}$$
(7)
$$\begin{aligned} s_{i,m}^2 + d_{i,m} + \delta _{i,m} \cdot r_{i,m} \,\le \, s_{j,n}^2&\qquad \forall \, (i,m,j,n) \in O \end{aligned}$$
(8)
$$\begin{aligned} s_{i,m}^2 + d_{i,m} + \delta _{i,m} \cdot r_{i,m} \,\le \, s_{j,m}^2 + M \cdot (1-y_{i,m,j}^2)&\qquad \forall \, (i,m) \in T,\, (j,m) \in T \end{aligned}$$
(9)
$$\begin{aligned} s_{j,m}^2 + d_{j,m} + \delta _{i,m} \cdot r_{i,m} \,\le \, s_{i,m}^2 + M \cdot y_{i,m,j}^2&\qquad \forall \, (i,m) \in T,\, (j,m) \in T \end{aligned}$$
(10)
$$\begin{aligned} e_{i,m} \,\ge \, s_{i,m}^1 - s_{i,m}^2&\qquad \forall \, (i,m) \in T \end{aligned}$$
(11)
$$\begin{aligned} e_{i,m} \,\ge \, 0 \end{aligned}$$
(12)
$$\begin{aligned} \overline{e} \, = \frac{1}{|T|} \cdot \sum _{(i,m)\,\in \,T} e_{i,m} \end{aligned}$$
(13)

An exampleFootnote 1 is given in Tables 2 and 3. Table 4 depicts an optimal solution. The first-stage scheduling has the property that the planner can find a rescheduling to each possible redardation such that the worst-case makespan is minimized.

Table 2 Jobshop tasks
Table 3 Jobshop order
Table 4 Solution of the jobshop example

3 Car Sequencing

In flexible manufacturing systems, varying models of same basic product are produced. They usually require different processing times, so sequences which alternately produce different models are preferable. We consider so called \(r_k:s_k\) sequencing rules [5] that restrict too frequent production of work intensive models at certain stations, that is, option \(k\) may only be produced at most \(r_k\) times per each \(s_k\) successively sequenced models.

We add uncertainty to this problem by incorporating a malfunction in the production process. It may happen that a car cannot be processed in the prescheduled order and has to be reinserted a few timesteps later after the malfunction has been corrected. The uncertainty is given by a tuple \((t,t'),\,t<t'\) with the new timestep \(t'\) at which the model originally scheduled at \(t\) will be processed. The cars inbetween will each be processed one timestep earlier. The resulting schedule is modeled by stage two (\(s=2\)) variables—note that they may be chosen differently for each possible malfunction. The planer may react to this uncertainty by rescheduling yet another model, i.e., he chooses a tuple \((u,u'),\, t'<u<u'\) such that the car which was originally scheduled at \(u\) will be processed at \(u'\). This final reschedule is given by stage three variables.

The first three equations and the first stage variables (\(s=1\)) give a formulation of the original problem without uncertainty. Equation (15) ensures that for each class \(c\) the produced amount equals the given demand \(D_c\). Equation (16) specifies that exactly one unit is produced in each time step. The \(r_k:s_k\) sequencing rules are not strictly enforced—instead violations are counted by the indicator variables \(y_{k,t_0}^s\) in Eq. (17). Similar to the job shop model, we introduce a binary encoding \(\tilde{m}\) and helper variables \(m\) for the uncertain machine malfunctions. Given unary encodings of the malfunction \(m_u\) and the answer \(a_u\), we can encode the change of schedule with constraints similar to Eq. (19) (which model which parts of the schedule do not change) and further constraints which ensure that the cars are processed in the correct new order. These equations are rather long but not very insightful, so we skip them here.

$$\begin{aligned} \min \quad \sum _{k\,\in \,O} \sum _{t_0\,\in \,T^k} y_{k,t_0}^1 \qquad \mathrm {s.t.} \qquad \exists \, x^1 \, y^1 \, \forall \, \tilde{m} \,\, \exists \, m \, w \,,\, x^2 \, y^2 \,,\, a \,,\, x^3 \, y^3: \end{aligned}$$
(14)
$$\begin{aligned} \sum _{t\,\in \,T} x_{t,c}^s \,=\, D_c&\qquad \forall \,c \in C\,,\, s \in S \end{aligned}$$
(15)
$$\begin{aligned} \sum _{c\,\in \,C} x_{t,c}^s \,=\, 1&\qquad \forall \,t \in T\,,\, s \in S \end{aligned}$$
(16)
$$\begin{aligned} \sum _{t\,=\,t_0}^{t_0+s_k} \sum _{c\,\in \,C} A_{k,c} \cdot x_{t,c}^s \,\le \, r_k + M \cdot y_{k,\,t_0}^s&\qquad \forall \,k \in O\,,\, t_0 \in T^k\,,\, s \in S \end{aligned}$$
(17)
$$\begin{aligned} \sum _{u\,\in \,U} u \cdot m_u \,=\, \sum _{b\,\in \,B} 2^b \cdot \tilde{m}_b - |F| \cdot w&\quad \wedge \quad \sum _{u\,\in \,U} m_{u} \,\le \, 1 \end{aligned}$$
(18)
$$\begin{aligned} |x_{t,c}^2 - x_{t,c}^1| \,\le \, \sum _{u\in U, (t_i,t_j) = F_u, t_i < t < t_j} m_u&\quad \forall \,c \in C\,,\, t \in T \end{aligned}$$
(19)
$$\begin{aligned} \textit{further stage-connecting constraints} \dots \end{aligned}$$
(20)
Table 5 Car instance
Table 6 Notation of the car sequencing model
Table 7 Solution of the car sequencing example

An example is given by Tables 5 and 7 shows an optimal solution. The first-stage solution has the property, that the production planner can respond (column 3) to each possible malfunction (column 2) such that the second-stage production sequence has a worst-case minimal number of violated sequencing constraints (Table 6).

4 Conclusion

We presented Quantified Integer Programming as an intuitive modelling language to generate recoverable robust solutions for classical scheduling problems that were extended by various uncertain influences.