Keywords

1 Introduction

Operations in cyclic processes are executed along sequences that repeat an indefinite number of times. In everyday practice they arise in different application domains (such as manufacturing, time-sharing of processors in embedded systems, digital signal processing, and in compilers for scheduling loop operations for parallel or pipelined architectures) as well as service domains (covering such areas as workforce scheduling (e.g., shift scheduling, crew scheduling), timetabling (e.g., train timetabling, aircraft routing and scheduling), and reservations (e.g., reservations with or without slack, assigning classes to rooms) (Dang et al. 2011; Gaujal et al. 1995; Liebchen and Möhring 2002; Song and Lee 1998; Steger-Jensen et al. 2011; Trouillet et al. 2007; Wójcik 2007; Wang et al. 2007; Pinedo 2005). Such cyclic scheduling problems belong to decision problems, i.e. aimed at searching for answering whether a solution possessing the assumed features exists or not (Trouillet et al. 2007). Moreover because of their integer domains the problems considered belong to a class of Diophantine problems (Guy 1994; Smart Nigiel 1998); hence some classes of cyclic scheduling problems can be seen as non-decidable (undecidable) ones (Bocewicz et al. 2009b).

Therefore, taking into account non decidability of Diophantine problems one can easily realize that not all the behaviors (including cyclic ones, i.e. represented by cyclic schedules corresponding to cyclic steady states of the system) are reachable under constraints imposed by system’s structure. The similar observation concerns the system’s behavior that can be achieved in systems possessing specific structural constraints. That means, since system’s constraints determine its behavior, hence both system structure configuration and desired cyclic schedule have to be considered simultaneously. So, cyclic scheduling problem solution requires that the system structure configuration must be determined for the purpose of processes scheduling, yet scheduling must be done to devise the system configuration.

In that context, our contribution provides discussion of some solvability issues concerning cyclic processes dispatching problems, especially the conditions guaranteeing solvability of the cyclic processes scheduling problem. Their examination may replace exhaustive and time consuming searching for solutions satisfying required system functioning.

Many models and methods have been proposed to solve the cyclic scheduling problem (Levner et al. 2010). Among them, the mathematical programming approach (usually IP and MIP (Dang et al. 2011; Von Kampmeyer 2006)), max-plus algebra (Polak et al. 2004), constraint logic programming (Bocewicz et al. 2009a, 2011a, b; Bocewicz and Banaszak 2013; Wójcik 2007) evolutionary algorithms (Cai and Li 2000) and Petri nets (Song and Lee 1998) frameworks belong to the most frequently used. Majority of them are oriented at finding of a minimal cycle or maximal throughput while assuming deadlock-free processes flow. The approaches trying to estimate the cycle time from cyclic processes structure and the synchronization mechanism employed (i.e. rendezvous or mutual exclusion instances) while taking into account resource conflict avoidance constraints are quite unique (Wójcik 2007).

In that context our main contribution is to propose a new modeling framework enabling to evaluate the cyclic steady state of a given system of concurrent cyclic processes (SCCP). The following questions are of main interest: Does the assumed system behavior (e.g. cyclic steady states) can be achieved under the given system’s structure constraints? and if yes: Whether the available states are mutually reachable from each other?

So, the chapter’s objective is to provide the sufficient conditions for cyclic steady states generation in a system composed of concurrently flowing cyclic processes interacting between each other on the base of a mutual exclusion protocol. This objective regards of quite large class of digital and/or logistics networks that share common properties even though they have huge intrinsic differences. The most important property concerns of different sub-networks infrastructure enabling to schedule multimodal processes executed through connected parts of different local networks (Bocewicz and Banaszak 2013; Bocewicz et al. 2011a). The passenger’s itinerary including different metro lines encompass a plan of multimodal process execution within a considered metro network just regards of multimodal processes scheduling problem.

In other words, this study aims to present a declarative approach to define model of reachability problem that can be used further to assist decision-makers in generation, analyzing and evaluating of cyclic steady states reachable in a given SCCP structure. An illustrative model of the constraint satisfaction problem implemented in Oz Mozart language is discussed from multimodal processes perspective.

The rest of the chapter is organized as follows: The Sect. 2 introduces to the systems of concurrently flowing local cyclic and multimodal processes, provides notation used and states a problem. In the Sect. 3 some feasible states space generation issues are discussed and two methods aimed at cyclic steady states refinement are provided. The two cases illustrating both methods implementation are discussed in the Sect. 4. Conclusions are presented in the Sect. 5.

2 Systems of Concurrent Cyclic Processes

2.1 Declarative Modeling

Automated Guided Vehicles System (AGVS) with distinguished vehicles, pick-up/delivery points (PDPs), and transportations routes is shown in Fig. 1. This kind of system can be modeled in terms of SCCPs, wherein the cyclic multimodal processes (representing the transportations routes) are executed along the parts of cyclic local processes (represented by vehicles itinerary) which are interconnected each other through AGVS common resources representing PDPs. Figure 2 presents the SCCP’s model from Fig. 1.

Fig. 1
figure 1

An example of AGV system

Fig. 2
figure 2

An example of the FMS: SCCP model of AGVS

Six local cyclic processes (vehicles) are considered \( P_{1} , P_{2} ,\,P_{3} ,\,P_{4} ,\,P_{5} ,\,P_{6} . \) The processes follow the routes composed of transportation sectors. Besides of local processes two multimodal processes (i.e. processes executed along the routes composed of parts of local processes): \( mP_{1} ,\, mP_{2} \), are considered as well. Processes \( P_{4} \), and \( P_{5} \) contain two sub-processes (streams \( P_{j}^{i} \)) \( P_{4} = \left\{ {P_{4}^{1} ,P_{4}^{2} } \right\},\, P_{5} = \left\{ {P_{5}^{1} ,P_{5}^{2} } \right\} \), respectively, i.e. processes (vehicles) moving along the same route. Rest of local processes contain unique streams: \( P_{1} = \left\{ {P_{1}^{1} } \right\},\, P_{2} = \left\{ {P_{2}^{1} } \right\},\,P_{3} = \left\{ {P_{3}^{1} } \right\},\,P_{6} = \left\{ {P_{6}^{1} } \right\}. \) Processes can interact each other through common shared resources, i.e. transportation sectors. Routes of local processes considered are as follows:

$$ \begin{aligned} p_{1}^{1} & = \left( {R_{1} ,R_{2} ,R_{3} ,R_{4} } \right),\, p_{2}^{1} = \left( {R_{4} ,R_{5} ,R_{6} } \right), \\ p_{3}^{1} & = \left( {R_{3} ,R_{9} ,R_{8} ,R_{7} ,R_{5} } \right),\,p_{4}^{1} = p_{4}^{2} = \left( {R_{2} ,R_{16} ,R_{10} ,R_{11} ,R_{12} ,R_{9} } \right), \\ p_{5}^{1} & = p_{5}^{2} = \left( {R_{8} ,R_{17} ,R_{13} ,R_{14} ,R_{12} } \right),\,p_{6}^{1} = \left( {R_{11} ,R_{15} ,R_{14} } \right), \\ \end{aligned} $$

where: \( R_{2} - R_{5} ,\,R_{8} - R_{14} ,\, R_{16} ,\, R_{17} \) are shared resources, since each one is used by at least two streams (i.e. \( R_{13} \) and \( R_{17} \) are used by \( p_{5}^{1} ,\, p_{5}^{2} \)), and \( R_{1} ,\, R_{6} ,\, R_{7} ,\, R_{15} , \) are non-shared ones because are exclusively used by only one stream. Note that streams \( p_{4}^{1} ,\, p_{4}^{2} \), belonging to \( P_{4} \) and \( p_{5}^{1} ,\, p_{5}^{2} \), belonging to \( P_{5} \) follow the same route (these streams correspond to vehicles moving along the same route).

Consider two cyclic multimodal processes \( mP_{1} ,\, mP_{2} \), following the routes \( mp_{1} , mp_{2} , \) respectively (see Fig. 2):

$$ \begin{aligned} mp_{1} & = \left( {R_{1} ,R_{2} ,R_{3} ,R_{9} ,R_{8} ,R_{17} ,R_{13} } \right), \\ mp_{2} & = \left( {R_{15} ,R_{14} ,R_{12} ,R_{8} ,R_{7} ,R_{5} ,R_{6} } \right). \\ \end{aligned} $$

Let as assume that multimodal processes do not contain sub-processes, i.e. that each multimodal process consists of a unique stream.

The class of the SCCP considered follows the constraints stated below (Bocewicz and Banaszak 2013):

  • the new operation may start on a resource only if the current operation has been completed and the resource has been released,

  • the local processes share the common resources in the mutual exclusion mode, the local process operation can be suspended only if designed resource is occupied, the suspended local processes cannot be released, local processes are non-preempted, i.e. the resource may not be taken of a process till it is using it,

  • the multimodal processes encompassing pallets flow conveyed by AGVs follow the local transportation routes, different multimodal processes can be executed simultaneously along the same local process,

  • the local and multimodal processes execute cyclically with periods \( Tc \) and \( Tm \), respectively; resources occur uniquely in each transportation route,

  • in a cyclic steady state, each the \( i \)th stream has to pass its local route the same number of times \( \Upxi \cdot \psi_{i} \), the factors \( \Upxi ,\, \psi_{i} \), are defined below.

A resource conflict (caused by mutual exclusion protocol usage) is resolved with help of a priority dispatching rule (Bocewicz et al. 2009a) determining an order in which streams make their access to common shared resources (for instance, in case of the resource \( R_{9} ,\,\sigma_{9} = \left( {P_{3}^{1} ,P_{4}^{1} ,P_{4}^{2} } \right) \)—the priority dispatching rule determines the order in which streams can access to the shared resource \( R_{9} \), i.e. at first to the stream \( P_{3}^{1} \), then to the stream \( P_{4}^{1} \), next to \( P_{4}^{2} \) and once again to \( P_{3}^{1} \), and so on). The stream \( P_{i}^{k} \) occurs the same number of times in each dispatching rule associated to resources appearing in its route. So, the SCCP shown in Fig. 2 is specified by the following set of dispatching rules \( \Uptheta = \left\{ {\sigma_{1} , \ldots , \sigma_{17} } \right\} \), as well as \( f_{1} \left( {P_{1}^{1} } \right) = f_{2} \left( {P_{1}^{1} } \right) = f_{3} \left( {P_{1}^{1} } \right) = f_{4} \left( {P_{1}^{1} } \right) = 1,\,f_{4} \left( {P_{2}^{1} } \right) = f_{5} \left( {P_{2}^{1} } \right) = f_{6} \left( {P_{2}^{1} } \right) = 3 \), etc. where \( f_{i} \left( {P_{j} } \right) \)—a number the \( j \)th process occurs in the \( i \)th priority dispatching rule. That means the stream \( P_{2}^{1} \) repeats 3 times (that is guaranteed due \( \sigma_{6} = \left( {P_{2}^{1} ,P_{2}^{1} ,P_{2}^{1} } \right) \)) while \( P_{1}^{1} \) only ones during the same period \( \left( {\sigma_{1} = \left( {P_{1}^{1} } \right)} \right) \).

It means the priority rules determine frequencies of mutual appearance of local processes sharing the same resource. In general case, the set of dispatching rules \( \Uptheta \)implies the sequence of relative frequencies of local processes mutual executions, and denoted by \( \Uppsi = \left( {\psi_{1} ,\psi_{2} , \ldots ,\psi_{n} } \right) \), where: \( \psi_{i} \in {\mathbb{N}} \),

$$ \begin{aligned} \psi_{i} = & \parallel \left\{ {b \left| { crd_{b} \sigma_{a} = P_{i}^{1} ; b}\in \right. \left\{ {1, \ldots ,lp\left( a \right)} \right\}} \right\}\parallel \\ & \quad \quad \forall i\in\left\{ {1, \ldots ,n} \right\},\,\forall \sigma_{a}\in \Uptheta_{i} \\ \end{aligned} $$
(1)

where: \( \Uptheta_{i} \)—the set of dispatching rules associated to resources occurring in the route followed by \( P_{i} ,\, crd_{b} \sigma_{a} \),—the \( b \)th entry of the sequence \( \sigma_{a} ,\,n \),—a number of processes, \( lp\left( a \right) \)—the length of \( \sigma_{a} \).

So, the SCCP shown in Fig. 2 is specified by the sequence: \( \Uppsi = \left( {1,3,1,1,1,2} \right). \) That means one execution of local processes \( P_{1} ,\, P_{3} ,\,P_{4} \,,\,P_{5} , \) falls on three executions of process \( P_{2} \), and two executions of \( P_{6} \).

Since the sequence \( \Uppsi \) of relative frequencies of local processes mutual executions does not necessary encompass cyclic steady state of a SCCP, hence a new parameter describing the number of \( x \) occurrences within a cyclic steady state, denoted by \( \Upxi \in {\mathbb{N}}, \) is introduced. For the considered SCCP, the value \( \Upxi = 2 \), means that two executions of the sequence \( \Uppsi = \left( {1,3,1,1,1,2} \right), \) i.e., two executions of local processes \( P_{1} ,\, P_{3} ,\,P_{4} ,\,P_{5} \) fall on six executions of the process \( P_{2} \), and four executions of \( P_{6} \). In a similar way the mutual frequency \( m\Uppsi \) of multimodal processes \( mP_{i} \) (for example in case of the execution of multimodal processes—see SCCP from Fig. 2\( m\Uppsi = \left( {1,1} \right) \)—means that one execution of the process \( mP_{1} \) falls on one execution of \( mP_{2} \)) as well as \( m\Xi \) determining a number of \( m\psi \) execution in a cycle can be also defined.

In general case, the following notations are used:

  • a sequence \( p_{i}^{k} = \left( {p_{i,1}^{k} , p_{i,2}^{k} , \ldots , p_{i,lr(i)}^{k} } \right) \) specifies the route of the local process’s stream \( \varvec{P}_{\varvec{i}}^{\varvec{k}} \) (\( k \)th stream of the \( i \)th local process \( P_{i} \)), and its components define the resources used in course of operations execution, where: \( p_{i,j}^{k} \in R \) (the set of resources: \( R = \left\{ {R_{1} ,R_{2} , \ldots ,R_{m} } \right\} \))—denotes the resource used by the \( k \)th stream of the \( i \)th local process in the \( j \)th operation; in the rest of the chapter the \( \varvec{j} \) th operation executed on resource \( \varvec{ p}_{{\varvec{i},\varvec{j}}}^{\varvec{k}} \) in the stream \( \varvec{P}_{\varvec{i}}^{\varvec{k}} \) will be denoted by \( o_{i,j}^{k} ,\,lr\left( i \right) \)—denotes a length of cyclic process route (each stream’s route \( p_{i}^{k} \) of \( P_{i} \) has the same length).

  • \( x_{i,j,q}^{k} \left( l \right) \in {\mathbb{N}} \)—the moment the operation \( o_{i,j}^{k} \) starts its \( q \)th execution in the \( l \)th cycle of the stream \( P_{i}^{k} \).

  • \( t_{i}^{k} = \left( {t_{i,1}^{k} , t_{i,2}^{k} , \ldots , t_{i,lr\left( i \right)}^{k} } \right) \) specifies the local process operation times, where \( t_{i,j}^{k} \) denotes the time of execution of operation \( o_{i,j}^{k} \) (for SCCP from Fig. 2 see Table 1).

    Table 1 Local operation times of SCCP’s (from Fig. 2)
  • \( mp_{i} = \left( {mpr_{j} \left( {a_{j} ,b_{j} } \right), mpr_{l} \left( {a_{l} ,b_{l} } \right), \ldots ,mpr_{h} \left( {a_{h} ,b_{h} } \right)} \right) \) specifies the route of the multimodal process \( \varvec{ mP}_{\varvec{i}} \) where:

  • \( mpr_{j} \left( {a,b} \right) = \left( {crd_{a} p_{j}^{k} ,crd_{a + 1} p_{j}^{k} , \ldots ,crd_{b} p_{j}^{k} } \right) \), \( crd_{i} D = d_{i} \), for \( D = \left( {d_{1} ,d_{2} , \ldots ,d_{i} , \ldots ,d_{w} } \right),\,\forall a \in\left\{ {1,2, \ldots ,lr\left( i \right)} \right\},\,\forall j \in \left\{ {1,2, \ldots ,n} \right\},\, crd_{a} p_{j}\in R \cdot \)

  • The transportation route \( mp_{i} \) is the sequence of sections of local process routes. In the rest of the chapter the \( j \) th operation executed in the process \( \varvec{mP}_{\varvec{i}} \) will be denoted by \( mo_{i,j} \).

  • \( mx_{i,j,k} \left( l \right) \in {\mathbb{N}} - \) the moment the operation \( mo_{i,j} \) starts its \( k \)th execution in the \( l \)th cycle.

  • \( \Uptheta = \left\{ {\sigma_{1} ,\sigma_{2} , \ldots ,\sigma_{m} } \right\} \) is the set of the priority dispatching rules, where \( \sigma_{i} = \left( {s_{i,1} , \ldots ,s_{i,lp\left( i \right)} } \right) \) is the sequence components of which determine an order in which the processes can be executed on the resource \( R_{i} ,\,s_{i,j} \in P \) (the set of local process streams).

Using the above notation a SCCP can be defined as a tuple:

$$ SC = \left( {\left( {R, SL} \right),SM} \right) $$
(2)

where:

\( R = \left\{ {R_{1} ,R_{2} , \ldots ,R_{m} } \right\} \) :

the set of resources,

\( m \) :

the number of resources,

\( SL = \left( {ST_{L} ,BE_{L} } \right) \) :

the local processes structure, i.e

\( ST_{L} = \left( {U,T} \right) \) :

the variables describing layout of local processes,

\( U = \left\{ {p_{1}^{1} , \ldots ,p_{1}^{ls(1)} , \ldots ,p_{n}^{1} , \ldots ,p_{n}^{ls(n)} } \right\} \) :

the set of local process routes,

\( ls\left( i \right) \) :

the number of streams belonging to the process \( P_{i} , \)

n :

a number of local processes,

\( T = \left\{ {t_{1}^{1} , \ldots ,t_{1}^{ls\left( 1 \right)} , \ldots ,t_{n}^{1} , \ldots ,t_{n}^{ls\left( n \right)} } \right\} \) :

the set of sequences of operation times in local processes

\( BE_{L} = \left( {\Uptheta ,\Uppsi ,\Xi} \right) \) :

the variables describing the local processes behavior,

\( \Uptheta = \left\{ {\sigma_{1} ,\sigma_{2} , \ldots ,\sigma_{m} } \right\} \) :

the set of dispatching priority rules,

\( \Uppsi = \left( {\psi_{1} ,\psi_{2} , \ldots ,\psi_{n} } \right) \) :

the sequence of relative frequencies of local processes mutual executions,

\( \Upxi \) :

the number of \( \Uppsi \) occurrences within a cyclic steady state

\( SM = \left( {ST_{M} ,BE_{M} } \right) \) :

the multimodal processes structure, i.e

\( ST_{M} = \left( {M,T} \right) \) :

the variables describing layout of multimodal processes level,

\( M = \left\{ {mp_{1} , \ldots ,mp_{w} } \right\} \) :

the set of multimodal process routes,

\( w \) :

the number of multimodal processes \( mP_{i} , \)

\( mT = \left\{ {mt_{1} , \ldots ,mt_{w} } \right\} \) :

the set of sequences of operation times in multimodal processes,

\( BE_{M} = \left( {m\Uppsi ,m\Xi} \right) \) :

the variables describing the multimodal processes behavior,

\( \left\{ {m\Uppsi = \left( {\psi_{1} ,\psi_{2} , \ldots ,\psi_{w} } \right)} \right\} \) :

the sequence of relative frequencies of multimodal processes mutual executions,

\( m\Upxi \) :

the number of \( m\Uppsi \) occurrences within a cyclic steady state.

The SCCP model (2) can be seen as a multi-level one, see Fig. 3, i.e. composed of the “\( R \) level” (resources), the “\( SL \) level” (local cyclic processes), and the “\( SM^{1} \) level” (multimodal cyclic processes) as well as the “\( SM^{i} \) level” (the \( i \)th meta-multimodal process). \( SL \) level determines a structure of local processes transportation routes \( U \) as well as parameters \( \Uptheta ,\Uppsi ,\Upxi \) specifying required system’s behavior. In turn, the \( SM^{1} \) level enables to consider the multi-modal processes, as well as meta-multimodal processes (\( SM^{2} \) level) composed of multimodal processes from \( SM^{1} \) level.

Fig. 3
figure 3

The multilayered model of SCCP’s behavior (see SCCP from Fig. 2)

So, in general case \( SC = \left( {\left( {R, SL} \right),SM} \right) \) model can be seen as composed of \( i \) levels:

$$ SC^{i} = \left( {\left( {\left( {\left( {\left( {R, SL} \right),SM^{1} } \right),SM^{2} } \right), \ldots } \right),SM^{i} } \right) $$
(3)

Note, that cyclic behavior of the \( SC^{i - 1} \) implies the periodic behavior of \( SC^{i} \), too.

2.2 Problem Formulation

Consider a SCCP specified by the given set \( R \) of resources, dispatching rules \( \Uptheta \), local and multimodal processes routes \( U \), \( M \) and initial processes allocation. The main question concerns of SCCP periodicity, i.e. does the cyclic execution of local processes exist? In case when they are periodic the another question can be stated: What is the period \( Tc \)? The other questions regard of multimodal processes cyclic execution.

Response to above questions require answers to more detailed questions, for instance: What are admissible initial processes allocations (i.e. the possible AGVs dockings)? What are dispatching rules \( \Uptheta \) guaranteeing a given SCCP periodicity (in local and multimodal sense) while preserving assumed frequency (\( \Uppsi ,\,m\Uppsi \)) of processes execution within a global period (local \( Tc \) and multimodal \( Tm \))? In general case, however, besides of above mentioned so called forward problem formulations the backward ones can be considered as well. For instance: Does there exist the SCCP’s structure of local \( \left( {ST_{L} } \right) \) and/or multimodal layer \( \left( {ST_{M} } \right) \) such that an assumed steady cyclic state can be achieved?

The problems stated above have been studied in (Bocewicz and Banaszak 2013; Bocewicz et al. 2009b, 2011a, b).

A new problem regarding possible switching among cyclic steady states can be seen as their obvious consequence. In that context, the newly arising questions are: Is it possible to reschedule cyclic schedules as to “jump” from one cyclic steady state to another? Is it possible to “jump” directly or indirectly? What are the control rules allowing one to do it? These kind of questions are of crucial importance for manufacturing and transportation systems aimed at short run production and/or passengers itinerary (e.g. in a sub-way network) planning.

3 Agvs Schedulability

3.1 States Space Generation

Consider the following SCCPs state definition describing both the local and multimodal processes allocation:

$$ S^{k} = \left( {Sl^{r} ,MA^{k} } \right) $$
(4)

where:

  • \( Sl^{r} \)—is the state of local processes, corresponding to the \( k \)th state of multimodal processes,

    $$ Sl^{r} = \left( {A^{r} , Z^{r} ,Q^{r} } \right) $$
    (5)
  • where: \( A^{r} = \left( {a_{1}^{r} ,a_{2}^{r} , \ldots ,a_{m}^{r} } \right) \)—the processes allocation in the \( r \)th state, \( \varvec{ }a_{i}^{r} \in P\mathop \cup \nolimits \left\{ \vartriangle \right\},\,\,a_{i} = P_{j}^{k} \)—the \( i \)th resource \( R_{i} \) is occupied by the local stream \( P_{j}^{k} \), and \( a_{i}^{r} = \vartriangle \)—the \( i \)th resource \( R_{i} \) is unoccupied.

  • \( Z^{r} = \left( {z_{1}^{r} ,z_{2}^{r} , \ldots ,z_{m}^{r} } \right) \)—the sequence of semaphores corresponding to the \( r \)th state, \( z_{i}^{r} \in P \)—means the name of the stream (specified in the \( i \)th dispatching rule \( \sigma_{i} \), allocated to the \( i \)th resource) allowed to occupy the \( i \)th resource; for instance \( z_{i}^{r} = P_{j}^{k} \) means that at the moment stream \( P_{j}^{k} \) is allowed to occupy the \( i \)th resource.

  • \( Q^{r} = \left( {q_{1}^{r} ,q_{2}^{r} , \ldots ,q_{m}^{r} } \right) \)—the sequence of semaphore indices, corresponding to the \( r \)th state, \( q_{i}^{r} \) determines the position of the semaphore \( z_{i}^{r} \) in the priority dispatching rule \( \sigma_{i} ,\,z_{i}^{r} = crd_{{\left( {q_{i}^{r} } \right)}} \sigma_{i} ,\,q_{i}^{r} \in {\mathbb{N}} \). For instance \( q_{2}^{r} = 2 \) and \( z_{2}^{r} = P_{1}^{2} \), that means the semaphore \( z_{2}^{r} = P_{1}^{2} \) takes the 2nd position in the priority dispatching rule \( \sigma_{2} \).

  • \( MA^{k} \)—the sequence of multimodal processes allocation: \( MA^{k} = \left( {mA_{1}^{k} , \ldots ,mA_{u}^{k} } \right),\,mA_{i}^{k} \)—allocation of the process \( mP_{i} \), i.e.:

    $$ mA_{i}^{k} = \left( {ma_{i,1}^{k} ,ma_{i,2}^{k} , \ldots ,ma_{i,m}^{k} } \right) $$
    (6)

    where: \( m \)—is a number of resources \( R,\,ma_{i,j}^{k} \in \left\{ {mP_{i} ,\vartriangle } \right\},\,ma_{i,j}^{k} = mP_{i} \) means, the \( j \)th resource \( R_{j} \) is occupied by the \( i \)th multimodal process \( P_{i} \), and \( ma_{i,j}^{k} = \vartriangle \)—the \( i \)th resource \( R_{j} \) is released by the \( i \)th multimodal process \( P_{i} \).

    In that context, the state \( \varvec{S}^{\varvec{k}} \) is feasible (Bocewicz and Banaszak 2013) when:

  • the semaphores of occupied resources indicate the streams allocated to those resources,

  • each local/multimodal stream is allotted to a unique resource due to relevant local/multimodal process route.

The introduced concept of the \( k \)th state \( \varvec{S}^{\varvec{k}} \) enables to create a space \( {\mathbb{S}} \) of feasible states. For the purpose of illustration let us consider the state space of the SCCP composed of 6 resources, and 3 local cyclic processes supporting one multimodal process (see Fig. 4). The observed behavior is two folded, i.e. the levels of local \( SL \), and multimodal processes \( SM \) can be distinguished. In case of local processes level, states \( Sl^{i} \) are noted by “\( {\text{O}} \)”, and at the multimodal level the relevant states \( S^{i} \in {\mathbb{S}} \) are noted by “\( {\text{O}} \)”). The states \( Sl^{j} \in {\mathbb{S}}l \) can be considered as a part of associated states \( S^{i} \in {\mathbb{S}} \), i.e. the states being elevation of relevant states \( S^{i} \).

Fig. 4
figure 4

The space of feasible states encompassing the SCCP’s behavior (see SCCP from Fig. 2)

Transitions linking feasible states \( S^{k} ,\,S^{l} \in {\mathbb{S}} \), while following non-preemption and mutual exclusion constraints are denoted by \( S^{k} \to S^{l} \), and encompass the next state function \( \delta \): \( S^{l} = \delta \left( {S^{k} } \right) \), definition of which (Bocewicz et al. 2011a) leads to the following property:

Property 1

Each \( S^{i} \in {\mathbb{S}} \) can be preceded by some subset of states \( {\mathbb{S}}{\mathbb{P}}^{i} ,\,{\mathbb{S}}{\mathbb{P}}^{i} \subset {\mathbb{S}} \) , (also \( {\mathbb{S}}{\mathbb{P}}^{i} = \emptyset \) ), i.e. \( \forall S^{k} \in {\mathbb{S}}{\mathbb{P}}^{i} ,\,S^{i} = \delta \left( {S^{k} } \right) \), but can result only in a unique state \( S^{j} \in {\mathbb{S}} \) , i.e., there \( exists\;at\; most\; one\; S^{j} \in {\mathbb{S}}, \,S^{j} = \delta \left( {S^{i} } \right) \).

The deadlock state \( S^{*} \in {\mathbb{S}} \) resulting in the SCCP blockade is free from any descendent state. In that context two kinds of steady state behaviors can be considered: a cyclic steady state and a deadlock state.

The set \( mSc^{*} = \left\{ {S^{{k_{1} }} , S^{{k_{2} }} , S^{{k_{3} }} , \ldots , S^{{k_{v} }} } \right\},\,mSc^{*} \subset {\mathbb{S}} \), is called a reachability state space of multimodal processes generated by an initial state \( S^{{k_{1} }} \in {\mathbb{S}} \), if the following condition holds:

$$ S^{{k_{1} }} \mathop \to \limits^{ i - 1} S^{{k_{i} }} \mathop \to \limits^{ v - i - 1 } S^{{k_{v} }} \to S^{{k_{i} }} $$
(7)

where: \( S^{a} \mathop \to \limits^{i } S^{b} \)—the transition defined in (Bocewicz and Banaszak 2013), \( S^{{k_{1} }} \mathop \to \limits^{ i} S^{{k_{i + 1} }} \equiv S^{{k_{1} }} \to S^{{k_{2} }} \to S^{{k_{3} }} \to \cdots \to S^{{k_{i + 1} }} \)

The set \( mSc = \left\{ {S^{{k_{i} }} , S^{{k_{i + 1} }} , \ldots , S^{{k_{v} }} } \right\},\,mSc \subseteq mSc^{*} \), is called a cyclic steady state of multimodal processes (i.e., a cyclic steady state of \( SCCP \)) with the period \( Tm = \|mSc\|,\,Tm > 1 \), In other words a cyclic steady state contains such a set of states in which starting from any distinguished state it is possible to reach the rest of states and finally reach this distinguished state again:

$$ \forall_{{S^{k} \in mSc}} \left( { S^{k} \mathop{\longrightarrow}\limits^{Tm - 1} S^{k} } \right) $$
(8)

The cyclic steady state \( Sc \) specified by the period \( Tc \) of local processes execution is defined in the similar way. Graphically the cyclic steady states \( Sc \) and \( mSc \) are described by cyclic and spiral digraphs, respectively, see Fig. 4.

Moreover, since an initial state \( S^{{k_{1} }} {\mathbb{S}} \) either lead to \( mSc \) or to a deadlock state \( S^{ * } \), i.e. \( S^{{k_{1} }} \mathop{\longrightarrow}\limits^{i - 1}S^{{k_{i} }} \mathop{\longrightarrow}\limits^{ v - i - 1 } S^{{k_{v} }} \to S^{ *} \), hence multimodal processes also can reach a deadlock state, denoted by “\( \otimes \)” in Fig. 4.

In that context, our question regarding periodicity of SCCP results in the question whether there exists an initial state \( S^{0} \) generating the cyclic steady state \( mSc \). It means, that searching for a cyclic steady state \( mSc \) in a given SCCP can be seen as a reachability problem where for an assumed initial state \( S^{0} \) (i.e. determining local and multimodal processes allocations) the state \( S^{k} \), such that following transitions \( S^{0} \mathop{\longrightarrow}\limits^{i}S^{k} \mathop{\longrightarrow}\limits^{Tm - 1} S^{k} \) holds, is sought.

The reachability problem stated for a cyclic steady states space encompassing multimodal processes behavior can be observed in many real life cases, i.e. the trot and gallop gaits, sub-way schedules for pick and off-pick hours and so on. Assuming the considered multimodal processes behavior consist of a set of potentially reachable cyclic steady states the conditions guaranteeing switching among them play a primary role in smooth cyclic schedules rescheduling. Therefore, the rest of the chapter is devoted to the following reachability problem of multimodal processes cyclic steady states space:

Given is the \( SC \) specified by (2), i.e., \( R \), \( SL = \left( {ST_{L} ,BE_{L} ,SE_{L} } \right),M = \left( {ST_{M} ,BE_{M} ,SE_{M} } \right) \) . Two cyclic steady states \( mSc_{1} \) and \( mSc_{2} \) of the \( SC \) (encompassing cyclic steady states of local and multimodal processes) are known. Is the cyclic steady state \( mSc_{2} \) reachable from the \( mSc_{1} \) ?

So, the question we are facing with is: Is it possible to switch directly or indirectly from one cyclic steady state of multimodal processes to an assumed another one? For instance, let us consider cyclic steady states \( mSc_{1} \) and \( mSc_{2} \) from Fig. 4.

Searching for direct switching between \( mSc_{1} \) and \( mSc_{2} \) assumes the state \( S^{x} \in {\mathbb{S}} \) belonging to both cyclic steady states has to exist, that means due to (8) the following transitions have to fulfill:

  • \( \forall_{{S^{k} \in mSc_{1} }} \left( { S^{k} \mathop{\longrightarrow}\limits^{i}S^{x} \mathop{\longrightarrow}\limits^{{Tm_{1} - 1 - i}} S^{k} } \right) \) for the cyclic steady state \( mSc_{1} \),

  • \( \forall_{{S^{l} \in mSc_{2} }} \left( { S^{l} \mathop{\longrightarrow}\limits^{i}S^{x} \mathop{\longrightarrow}\limits^{{Tm_{2} - 1 - i}} S^{l} } \right) \) for the cyclic steady state \( mSc_{2} \).

That is impossible because \( S^{x} \) cannot has to have two descendents. What is impossible at the \( {\mathbb{S}}l \) and \( {\mathbb{S}} \) levels can be possible, however, at the \( {\mathbb{A}} \) level, see Fig. 5. At the level \( {\mathbb{A}} \) there are allocations \( A^{i} \) possessing more than one descendent. Such situation corresponds to an allocation belonging to the several states \( Sl^{i} \). For instance, \( A^{2} \) belongs to \( Sl^{3} = \left( {A^{2} , Z^{3} ,Q^{3} } \right) \) and \( Sl^{4} = \left( {A^{2} , Z^{4} ,Q^{4} } \right) \), simultaneously. The same regards of \( A^{1} \) belonging to \( Sl^{1} \) and \( Sl^{2} \). The states of local processes specified by the common allocation are different because the semaphores and indices are different (\( Z^{3} ,Q^{3} \) and \( Z^{4} ,Q^{4} \)).

Fig. 5
figure 5

The space of feasible states encompassing the SCCP’s behavior (see SCCP from Fig. 2)

This observation can be employed in the course of searching for states enabling switching between assumed cyclic steady states. In the case considered the direct switching between \( mSc_{2} \) and \( mSc_{1} \) is allowed for the states possessing so called shared allocation, e.g. \( A^{2} \), see \( Sl^{4} = \left( {A^{2} , Z^{4} ,Q^{4} } \right) \). So, replacing at this allocation \( Z^{4} ,Q^{4} \) by \( Z^{3} ,Q^{3} \) results in switching from \( Sl^{4} \) to \( Sl^{3} . \) That implies the possible direct switching between cyclic multimodal processes exist.

Such rules of semaphores and indices changes can be treated as relevant control rules. The similar control rules may involve the priority dispatching rules \( \Uptheta \) changing. In both cases changes do not require any allocations change, and then do not lead to the system stoppage.

Consequently, the following properties can be stated:

Property 2

The cyclic steady state \( mSc_{1} \subseteq mSc_{1}^{ * } \) is reachable from the cyclic steady state \( mSc_{2} \subseteq mSc_{2}^{ * } \) , (denoted by \( mSc_{2} \to mSc_{1} \) ), in the \( SC, \) only in the case both states \( S^{a} \in mSc_{1}^{*} \) and \( S^{b} \subseteq mSc_{2} \) possess the same allocation \( A^{x} \).

Property 3

Two cyclic steady states \( mSc_{1} \subseteq mSc_{1}^{*} \) and \( mSc_{2} \subseteq mSc_{2}^{*} \) from the \( SC \) are mutually reachable, (denoted as \( mSc_{2} \leftrightarrow mSc_{1} \) ) only if, \( mSc_{1} \to mSc_{2} \) and \( mSc_{2} \to mSc_{1} \) hold.

So, the reachability problem of the cyclic steady states space, e.g. regarding of switching between two states \( mSc_{1} \subseteq mSc_{1}^{*} \) and \( mSc_{2} \subseteq mSc_{2}^{*} \), concludes in the question: Does there exist two states \( S^{a} \in mSc_{1} \) and \( S^{b} \subseteq mSc_{2}^{*} \,S^{a} \in mSc_{1}^{*} \) (and \( S^{b} \subseteq mSc_{2} \)) sharing the same allocation \( A^{x} \) of local cyclic processes?

Note that refining the cyclic steady states space from a given feasible states space is quite easy. However, the problem of feasible states space generation is NP-hard. The majority of states are either deadlocks or just leading to the deadlock states. So, in order to avoid generation of the whole feasible states space let us focus on an alternative approach aimed at dedicated generation of cyclic steady states.

3.2 Cyclic Steady States Space Generation

Since parameters describing the SCCP are usually discrete, and linking them relations can be seen as constraints, hence related to them cyclic scheduling problems can be presented in the form of the Constraint Satisfaction Problem (CSP) (Bocewicz et al. 2009a; Bocewicz and Banaszak 2013; Schulte et al. 1998). More formally, CSP is a framework for solving combinatorial problems specified by pairs: (a set of variables and associated domains, a set of constraints restricting the possible combinations of the variable values). So, in case of \( SC \) (2) the CSP is defined as follows:

$$ CS\left( {SC} \right) = \left( {\left( {\left\{ {X,Tc,mX,Tm} \right\},\left\{ {D_{X} ,D_{Tc} ,D_{mX} ,D_{Tm} } \right\}} \right),C} \right) $$
(9)

where:

\( X,Tc,mX,Tm \)—the decision variables, where \( Tc \) and \( Tm \) are local and multimodal periodicities;\( X = \left\{ {X_{1}^{1} , \ldots ,X_{1}^{ls\left( 1 \right)} , \ldots ,X_{n}^{1} , \ldots ,X_{n}^{ls\left( n \right)} } \right\} \)—the set of sequences of \( X_{i}^{k} \), and \( X_{i}^{k} = \left( {x_{i,1,1}^{k} , \ldots ,x_{i,lr\left( i \right),1}^{k} , \ldots ,x_{i,1,\Xi}^{k} , \ldots ,x_{i,lr\left( i \right),\Xi}^{k} } \right),\,x_{i,j,q}^{k} \)—the moment of operation \( o_{i,j}^{k} \) (local process) beginning in the first cycle, \( x_{i,j,q}^{k} \) and \( x_{i,j,q}^{k} \left( l \right) \) are linked by: \( x_{i,j,q}^{k} \left( l \right) = x_{i,j,q}^{k} + l \cdot Tc,\,l \in {\mathbb{Z}},\,Tc = x_{i,j,q}^{k} \left( {l + 1} \right) - x_{i,j,q}^{k} \left( l \right) \),

Analogously \( mX = \left\{ {mX_{1} ,mX_{2} \ldots ,mX_{w} } \right\} \)—is the set of sequences of \( mX_{i} \), and \( mX_{i} = \left( {mx_{i,1,1} , \ldots ,mx_{i,lm(i),1} , \ldots ,mx_{i,1,\Xi} , \ldots ,mx_{i,lm(i),\Xi} } \right) \), \( mx_{i,j,k} \)—the moment of operation \( mo_{i,j} \) (of multimodal process) beginning in the first cycle \( mx_{i,j,k} \left( l \right) = mx_{i,j,k} + l \cdot Tm \), and \( Tm = mx_{i,j,k} \left( {l + 1} \right) - mx_{i,j,k} \left( l \right) \),

the following domains of decision variables are considered:

\( D_{X} ,D_{mX} \)—the family of sets of admissible entry values \( X_{i} ,\,x_{i,j,q}^{k} \in {\mathbb{Z}} \), and \( mX_{i} ,\,mx_{i,j,k} \in {\mathbb{Z}} \),\( D_{Tc} , D_{Tm} \)—the domains of the variable \( Tc \in {\mathbb{N}} \) and \( Tm \in {\mathbb{N}} \).

\( C \)—constraints are specified by both:

  • \( ep_{i,j,q}^{k} \left( {ST_{L} ,BE_{L} } \right) \)—the set of constraints (equations) linking \( ST_{L} \) (local processes structure) and \( BE_{L} \) (local processes behavior). Each \( ep_{i,j,q}^{k} \left( {ST_{L} ,BE_{L} } \right) \) describes, the time relation [according above presented conditions (Bocewicz and Banaszak 2013)] between the moments of operations beginning for its \( q \)th execution: \( i = 1,..,n;j = 1, \ldots ,lr\left( i \right);k = 1,..,ls\left( i \right); q = 1, \ldots , \Xi\).

  • \( eq_{i,j,k} \left( {ST_{M} ,BE_{M} } \right) \)—the set of constraints (equations) linking \( ST_{M} \) (multimodal processes structure) and \( BE_{M} \) (multimodal processes behavior). Each \( eq_{i,j,k} \left( {ST_{M} ,BE_{M} } \right) \) describes, the time relation between the moments of multimodal operations beginning for its \( k \)th execution: \( i = 1,..,w;\;j = 1, \ldots ,lm\left( i \right);\;k = 1, \ldots ,m \).

Solution to the problem (9) provides a set of \( X,\,mX \), sequences values of which guarantee the required cyclic behavior of a SCCP while following the set of constraints \( C \). The conditions \( C \) sufficient for SCCP cyclic behavior (resulting in collision-free and deadlock-free (Lawley et al. 1998) processes execution) are formulated using the operator \( max \) and are introduced in (Bocewicz and Banaszak 2013; Bocewicz et al. 2011a).

3.2.1 Constraints of Local Processes

In order to explain the way the constraints of local processes are designed let us consider an example of SCCP shown in Fig. 6. The operation \( o_{1,3}^{1} \) (executed by \( P_{1}^{1} \) on the resource \( R_{5} \)) can be started (i.e., beginning its first execution; \( q = 1 \)) only if the preceding operation \( o_{1,2}^{1} \) (executed by \( P_{1}^{1} \) on \( R_{3} \)) has been completed \( \left( {x_{1,2,1}^{1} + t_{1,2}^{1} } \right) \) and the resource \( R_{5} \) has been released, i.e. if the stream \( P_{3}^{1} \) occupying the resource \( R_{5} \) starts its subsequent operation at \( x_{3,3,1}^{1} + 1. \) So, the relation considered \( ep_{1,3,1}^{1} \left( {ST_{L} ,BE_{L} } \right) \) can be specified by the following formulae:

Fig. 6
figure 6

The SCCP with dispatching rules: \( \sigma_{1} = \left( {P_{2} ,P_{3} } \right),\sigma_{3} = \left( {P_{2} ,P_{1} } \right),\sigma_{5} = \left( {P_{3} ,P_{1} } \right) \), and \( \Uppsi = \left( {1,1,1} \right),\,\Upxi = 1 \)

$$ x_{1,3,1}^{1} = \hbox{max} \left\{ {\left( {x_{3,3,1}^{1} + 1} \right); \left( {x_{1,2,1}^{1} + t_{1,2}^{1} } \right)} \right\} $$
(10)

where: \( x_{i,j,q}^{k} \)—the moment of operation \( o_{i,j}^{k} \) (local process) beginning in \( q \)th execution.

Besides of (10) the Table 2 contains the rest of constraints describing the local processes of SCCP from Fig. 6. For all constraints the following principle holds: the moment of the operation \( o_{i,j}^{k} \) beginning states for a maximum of the completion time of the operation \( o_{i,j - 1}^{k} \) preceding \( o_{i,j}^{k} \), and the release time of the resource \( p_{i,j}^{k} \) awaiting for the \( o_{i,j}^{k} \) execution.

Table 2 Constraints determining the moments \( x_{i,j,q}^{k} \) for the SCCP from Fig. 6
$$ \begin{aligned} & ep_{i,j,q}^{k} \left( {ST_{L} ,BE_{L} } \right): \\ & moment\;of\;operation\;o_{i,j}^{k}\;begining\;(for\;q{ - }th\;execution) \\ & \quad = max\left\{ {moment\;of\;p_{i,j}^{k} \;release,\;moment\;of\;operation\;o_{i,j - 1}^{k}\;completion} \right\} \\ & \quad \quad \quad \quad \quad \quad i = 1,..,n;j = 1, \ldots ,lr\left( i \right);k = 1,..,ls\left( i \right); q = 1, \ldots ,\Xi \\ \end{aligned} $$
(11)

Therefore, following the constraints (11) guarantees deadlock-free execution of cyclic processes at the \( SL \) level (see Fig. 3). The number \( n_{ep} \) of constraints \( ep_{i,j,q}^{k} \) follows from the number of processes \( n \), streams \( ls\left( i \right) \), operations \( lr\left( i \right) \) as well as \( \Upxi \cdot n_{ep} = \Upxi \cdot \mathop \sum \limits_{i = 1}^{n} \left[ {lr\left( i \right) \cdot ls\left( i \right)} \right] \).

3.2.2 Constraints of Multimodal Processes

The constraints determining local cyclic processes execution has been already discussed in deep (Bocewicz et al. 2009b, 2011a, b). The similar discussion regarding multi processes however has not been done yet. So, for the sake of simplicity let us assume that multimodal processes are collision- and deadlock-free. Multimodal processes may occupy the same resource at a time as well as may use the same local process for their execution simultaneously.

The constraints describing relationship among moments of beginning of successive operations are show on example of \( mP_{1} \) form Fig. 6. The process considered executes on the set of following resources \( R_{2} , R_{3} , R_{5} , R_{4} \). The local cyclic process \( P_{2}^{1} \) support \( mP_{1} \) execution between \( R_{2} , R_{3} \) and \( P_{1}^{1} \) support \( mP_{1} \) execution between \( R_{3} , R_{5} , R_{4} \). That means the process \( mP_{1} \) can executes its operations only at moments the relevant operations from local processes are performed (i.e. \( P_{1}^{1} \) or \( P_{2}^{1} \)). For instance, the operation \( mo_{1,2} \) executed on \( R_{3} \) depends on \( P_{2}^{1} \). The moment \( mx_{1,2,1} \) of beginning of the operation \( mo_{1,2} \) equals to the moment \( \left( {x\frac{1}{2}_{,2,1} + a \cdot Tc} \right) \) that is the beginning of the operation \( o_{2,2}^{1} \) executed after completion of the preceding operation \( mo_{1,2} \) (i.e. operation \( mo_{1,1} \) completed at the moment \( mx_{1,1,1} + mt_{1,1,1} \)). The constraint specifying this relationship has the following form:

$$ mx_{1,2,1} = min\left\{ {\left( {x_{2,2,1}^{1} + a \cdot Tc} \right)|a \in {\mathbb{Z}} ,x_{2,2,1}^{1} + a \cdot Tc \ge mx_{1,1,1} + mt_{1,1,1} } \right\} , $$
(12)

where: \( x_{i,j,q}^{k} \)—the moment of operation \( o_{i,j}^{k} \) beginning in the \( q \)th execution of local process, \( mx_{i,j,q} \)—the moment of operation \( mo_{i,j} \) beginning in the \( q \)th execution of multimodal process,\( Tc \)—the periodicity of local cyclic steady states

Besides of (12) the Table 3 contains the rest of constraints describing multimodal processes of the SCCP from Fig. 6.

Table 3 Constraints determining the moments \( mx_{i,j,k} \) for SCCP from Fig. 6

For all the constraints the following principle holds: the moment of the operation \( mo_{i,j} \) beginning is the earliest moment the operation of the local process can start (of course the one the multimodal process \( mP_{i} \) require), however greater than the moment of operation \( mo_{i,j - 1} \) beginning. More formally:

$$ \begin{aligned} & eq_{i,j,k} \left( {ST_{M} ,BE_{M} } \right): \\ & \quad moment\;{of}\;operation\;mo_{i,j}\;begining = \hbox{min} \{ set\;of\;moments\;of \\ & operation\;o_{i,j - 1}^{k}\; begining,\;higher\;than\;moment\;{of}\;previous\;opreation\;mo_{i,j - 1} \\ & \quad\;completion\} ,\, i = 1,..,w; j = 1, \ldots ,lm\left( i \right);k = 1, \ldots ,m\Upxi \\ \end{aligned} $$
(13)

The number \( n_{eq} \) of constraints \( eq_{i,j,k} \) equals to: \( n_{eq} = m\Upxi \cdot \mathop \sum \limits_{i = 1}^{w} lm\left( i \right) \).

4 Periodic Processes Scheduling

Given is an AGVS from Fig. 1 modeled in terms of SCCPs (see Fig. 2). Consider three cases encompassing three different cyclic systems. First of them, due to (2), can be specified as follows:

$$ SC^{1} = \left( {\left( {R, SL} \right),SM} \right), $$

where

\( R = \left\{ {R_{1} ,R_{2} , \ldots ,R_{18} } \right\} \)the set of resources, \( SL = \left( {ST_{L} ,BE_{L} } \right) \)the local processes structure

$$ ST_{L} = \left( {U,T} \right) $$
$$ \begin{aligned} U = & \,\left\{ {p_{1}^{1} , p_{2}^{1} , p_{3}^{1} , p_{4}^{1} , p_{4}^{2} , p_{5}^{1} , p_{5}^{2} } \right\} \\ & p_{1}^{1} = \left( {R_{1} ,R_{2} ,R_{3} ,R_{4} } \right),\quad p_{2}^{1} = \left( {R_{4} ,R_{5} ,R_{6} } \right),\quad p_{3}^{1} = \left( {R_{3} ,R_{9} ,R_{8} ,R_{7} ,R_{5} } \right), \\ & p_{4}^{1} = p_{4}^{2} = \left( {R_{2} ,R_{16} ,R_{10} ,R_{11} ,R_{12} ,R_{9} } \right),\quad p_{6}^{1} = \left( {R_{11} ,R_{15} ,R_{14} } \right), \\ & p_{5}^{1} = p_{5}^{2} = \left( {R_{8} ,R_{17} ,R_{13} ,R_{14} ,R_{12} } \right), \\ T = & \left\{ {t_{1}^{1} , t_{2}^{1} , t_{3}^{1} , t_{4}^{1} , t_{4}^{2} , t_{5}^{1} , t_{5}^{2} } \right\},where\;values \, of \, elements \, of \, sequences \\ & \quad \quad \quad \quad \quad \quad \quad \quad \quad t_{i}^{k} \;are \, determined \, in{\text{ Table}}\;1 \\ \end{aligned} $$
$$ BE_{L} = \left( {\Uptheta ,\Uppsi ,\Upxi } \right) $$
$$ \begin{aligned} \Uptheta = \, & \left\{ {\sigma_{1} ,\sigma_{2} , \ldots ,\sigma_{18} } \right\} \\ & \sigma_{1} = \left( {P_{1}^{1} } \right),\quad \sigma_{2} = \left( {P_{1}^{1} ,P_{4}^{1} ,P_{4}^{2} } \right),\quad \sigma_{3} = \left( {P_{1}^{1} ,P_{3}^{1} } \right), \\ & \sigma_{4} = \left( {P_{1}^{1} ,P_{2}^{1} ,P_{2}^{1} ,P_{2}^{1} } \right),\quad\sigma_{5} = \left( {P_{2}^{1} ,P_{2}^{1} ,P_{2}^{1} ,P_{3}^{1} } \right),\quad \sigma_{6} = \left( {P_{2}^{1} ,P_{2}^{1} ,P_{2}^{1} } \right), \\ & \sigma_{7} = \left( {P_{3}^{1} } \right),\quad \sigma_{8} = \left( {P_{5}^{1} ,P_{5}^{2} ,P_{3}^{1} } \right),\quad\sigma_{9} = \left( {P_{3}^{1} ,P_{4}^{1} ,P_{4}^{2} } \right), \\ & \sigma_{10} = \left( {P_{4}^{1} ,P_{4}^{2} } \right),\quad\sigma_{11} = \left( {P_{4}^{1} ,P_{6}^{1} ,P_{4}^{2} ,P_{6}^{1} } \right),\quad \sigma_{12} = \left( {P_{4}^{1} ,P_{4}^{2} ,P_{5}^{1} ,P_{5}^{2} } \right),\quad \sigma_{13} = \left( {P_{5}^{1} ,P_{5}^{2} } \right), \\ & \sigma_{14} = \left( {P_{5}^{1} ,P_{5}^{2} ,P_{6}^{1} ,P_{6}^{1} } \right),\quad \sigma_{15} = \left( {P_{6}^{1} ,P_{6}^{1} } \right),\quad\sigma_{16} = \left( {P_{4}^{1} ,P_{4}^{2} } \right), \\ & \sigma_{17} = \left( {P_{5}^{1} ,P_{5}^{2} } \right) \\ \Uppsi = & \,\left( {1,3,1,1,1,2} \right) \\ \Upxi = & \,1 \\ \end{aligned} $$

\( SM = \left( {ST_{M} ,BE_{M} } \right) \)the multimodal processes structure

$$ \begin{aligned} ST_{M} = & \,\left( {M,mT} \right) \\ & M = \left\{ {mp_{1} ,mp_{2} } \right\} \\ & \quad mp_{1} = \left( {R_{1} ,R_{2} ,R_{3} ,R_{9} ,R_{8} ,R_{17} ,R_{13} } \right), \\ & \quad mp_{2} = \left( {R_{15} ,R_{14} ,R_{12} ,R_{8} ,R_{7} ,R_{5} ,R_{6} } \right) \\ mT = & \,\left\{ {mt_{1} ,mt_{2} } \right\}{\text{---}}where\;values\;of\;all\;elements\;mt_{i} \;are\;equal\;to\;1\;unit\;of\;time \\ BE_{M} = & \,\left( {m\Uppsi ,m\Xi} \right) \\ m\Uppsi = & \,\left( {1,1} \right), m\Xi = 1 \\ \end{aligned} $$

The next two systems \( SC^{2} \) and \( SC^{3} \) differ from \( SC^{1} \) by different dispatching priority rules employed:

  • the priority dispatching rule associated to \( R_{12} \) in the \( SC^{2} \) is as follows:

  • \( \sigma_{12} = \left( {P_{4}^{1} ,P_{5}^{1} ,P_{4}^{2} ,P_{5}^{2} } \right) \),

  • the priority dispatching rules associated to \( R_{12} \) and \( R_{14} \) in the \( SC^{3} \) are as follows:

$$ \sigma_{12} = \left( {P_{4}^{1} ,P_{5}^{1} ,P_{4}^{2} ,P_{5}^{2} } \right),\,\sigma_{14} = \left( {P_{5}^{1} ,P_{6}^{1} ,P_{5}^{2} ,P_{6}^{1} } \right) $$

The rest of \( SC^{2} \) and \( SC^{3} \) parameters are just the same as in the \( SC^{1} \)

The responses to the following questions are sought:

  • Do there exist cyclic steady states \( mSc_{1} ,\,mSc_{2} ,\, mSc_{3} \) encompassing behaviors of \( SC^{1} ,\, SC^{2} ,\, SC^{3} \), respectively (i.e. resulting in the cyclic steady states of local and multimodal processes)?

  • Is it possible to switch between cyclic steady states \( mSc_{1} ,mSc_{2} ,mSc_{3} \), i.e. to jump from the one steady cyclic state to another at the same allocation of local cyclic processes, i.e., \( mSc_{1} \leftrightarrow mSc_{2} \leftrightarrow mSc_{3} \),?

The response to above questions assumes the not empty cyclic steady states space there exists. Let us remind, that a decidability of the relevant reachability problem follows from its Diophantine nature (Smart Nigiel 1998). In general case this problem is NP-hard. The approach aimed at a space of feasible states generation (see Fig. 4) is time expensive (its generation is a NP-hard problem) and results mainly in a deadlock or leading to a deadlock states. An alternative approach, based on CSP formulation \( CS \) (9) enables to focus (and to generate if that is possible) on dedicated cyclic steady states both of local as well as multimodal processes.

4.1 Local Processes Scheduling

Consider the SCCP modeling the \( SC^{1} \) and its \( SL \) level.

Searching for a possible cyclic steady state of local processes formulated in terms of CSP can be stated as following constraints satisfaction problem:

$$ CS\left( {SC^{1} } \right) = \left( {\left( {\left\{ {X,Tc} \right\},\left\{ {D_{X} ,D_{Tc} } \right\}} \right),C} \right) $$
(14)

where:

$$ \begin{aligned} X = & \,\left\{ {X_{1}^{1} ,X_{2}^{1} ,X_{3}^{1} ,X_{4}^{1} ,X_{4}^{2} ,X_{5}^{1} ,X_{5}^{2} ,X_{6}^{1} } \right\} \\ & X_{1}^{1} = \left( {x_{1,1,1}^{1} ,x_{1,2,1}^{1} ,x_{1,3,1}^{1} ,x_{1,4,1}^{1} } \right){\text{ - - - the moments of beginnings of}} \\ & {\text{operations executed along the}}\;p_{1}^{1} = \left( {R_{1} ,R_{2} ,R_{3} ,R_{4} } \right) \\ & X_{2}^{1} = \left( {x_{2,1,1}^{1} ,x_{2,2,1}^{1} ,x_{2,3,1}^{1} ,x_{2,1,2}^{1} ,x_{2,2,2}^{1} ,x_{2,3,2}^{1} ,x_{2,1,3}^{1} ,x_{2,2,3}^{1} ,x_{2,3,3}^{1} } \right), \\ & X_{3}^{1} = \left( {x_{3,1,1}^{1} ,x_{3,2,1}^{1} ,x_{3,3,1}^{1} ,x_{3,4,1}^{1} ,x_{3,5,1}^{1} } \right), \\ & X_{4}^{1} = \left( {x_{4,1,1}^{1} ,x_{4,2,1}^{1} ,x_{4,3,1}^{1} ,x_{4,4,1}^{1} ,x_{4,5,1}^{1} ,x_{4,6,1}^{1} } \right), \\ & X_{4}^{2} = \left( {x_{4,1,1}^{2} ,x_{4,2,1}^{2} ,x_{4,3,1}^{2} ,x_{4,4,1}^{2} ,x_{4,5,1}^{2} ,x_{4,6,1}^{2} } \right), \\ & X_{5}^{1} = \left( {x_{5,1,1}^{1} ,x_{5,2,1}^{1} ,x_{5,3,1}^{1} ,x_{5,4,1}^{1} ,x_{5,5,1}^{1} } \right), \\ & X_{5}^{2} = \left( {x_{5,1,1}^{2} ,x_{5,2,1}^{2} ,x_{5,3,1}^{2} ,x_{5,4,1}^{2} ,x_{5,5,1}^{2} } \right), \\ & X_{6}^{1} = \left( {x_{6,1,1}^{1} ,x_{6,2,1}^{1} ,x_{6,3,1}^{1} ,x_{6,1,2}^{1} ,x_{6,2,2}^{1} ,x_{6,3,2}^{1} } \right) \\ \end{aligned} $$

\( C \)—the set of constraints consists (due to (11)) of constraints form Table 4.

Table 4 Constraints determining the moments \( x_{i,j,q}^{k} \) of operations beginning for the \( SC^{1} \) modelled by the SCCP from Fig. 2

The solution to the \( CS \) (14) implemented in OzMozart platform (on Intel Core Duo 3.00 GHz, 4.00 GB RAM computer, and obtained in the time less than 1 s) is shown in the Table 5.

Table 5 The moments \( x_{i,j,q}^{k} \) of operations beginning for SCCP from Fig. 2

Therefore, the period \( Tc_{1} \) of the cyclic steady state obtained is equal to \( 19 \). The moments of operations beginning in local processes are shown in the Table 5. The Gantt’s chart of the cyclic steady state behavior is shown in Fig. 7. Let us note, that each unit time corresponds to a system state, i.e. processes allocation to resources. So, the cyclic steady state of the \( SC^{1} \) consists of 19 states: \( Sc_{1} = \left\{ {Sl^{0} , Sl^{1} , \ldots , Sl^{18} } \right\} \), and (similar to the Fig. 4) the states \( Sl^{i} \) encompassing succeeding allocations are distinguished by “\( {\text{O}} \)” (see Fig. 7).

Fig. 7
figure 7

The Gantt’s chart of the \( SC^{1} \) local processes cyclic steady state (see SCCP from Fig. 2)

In the same way the Gantt’s charts for \( SC^{2} \) and \( SC^{3} \) can be determined, see Figs. 8 and 9. Both systems have the same period equal to 19 (i.e., the same as for the \( SC^{1} \)).

Fig. 8
figure 8

The Gantt’s chart of the \( SC^{2} \) local processes cyclic steady state (see SCCP from Fig. 2)

Fig. 9
figure 9

The Gantt’s chart of the \( SC^{3} \) local processes cyclic steady state (see SCCP from Fig. 2)

4.2 Multimodal Processes Scheduling

The cyclic steady state obtained provide the response to the first from earlier mentioned questions, i.e. the systems \( SC^{1} \), \( SC^{2} \) and \( SC^{3} \) encompass the cyclic steady states. The cyclic steady states of local cyclic processes determine the cyclic steady states of the multimodal processes.

Consider the cyclic steady state \( Sc_{1} \) of SCCP local processes. The question is: What is a cyclic steady state of the multimodal processes \( mSc_{1} \) executed in this system? Let us assume two multimodal processes \( mP_{1} \) and \( mP_{2} \). So, the relevant CSP, i.e. \( CS\left( {SC} \right) \) defined as (9), which can be seen in terms of the problem (14) extended by variables \( mX = \left\{ {mX_{1} ,mX_{2} } \right\} \), where:

$$ \begin{aligned} mX_{1} & = \left( {mx_{1,1,1} ,mx_{1,2,1} ,mx_{1,3,1} ,mx_{1,4,1} ,mx_{1,5,1} ,mx_{1,6,1} ,mx_{1,7,1} } \right) \\ mX_{2} & = \left( {mx_{2,1,1} ,mx_{2,2,1} ,mx_{2,3,1} ,mx_{2,4,1} ,mx_{2,5,1} ,mx_{2,6,1} ,mx_{2,7,1} } \right) \\ \end{aligned} $$

as well as constraints (stated in (13)) specified in the Table 6, has to be solved. The solution obtained consist of the already obtained solution to the problem (14) (see the Table 5) as well as moments \( mX_{1} ,mX_{2} \) of operations beginning, see the Table 7.

Table 6 Constraints determining the moments \( mx_{i,j,k} \) of the \( SC^{1} \) operations beginning
Table 7 The moments \( mx_{i,j,k} \) of \( SC^{1} \) operations beginning

The Gantt’s diagram illustration of the cyclic steady state of multimodal processes (composed of 57 states \( mSc_{1} = \left\{ {S^{0} , S^{1} , \ldots , S^{57} } \right\}) \) behavior is show in Fig. 10. The obtained period is equal to \( Tm_{1} = 57 \) (i.e. a multiplicity of the period \( Tc_{1} = 19 \)).

Fig. 10
figure 10

Gantt’s chart of multimodal processes cyclic steady state from the \( SC^{1} \)

That means that within a period the multimodal processes complete their one execution the local processes complete three times, i.e. local processes period is three times shorter than the multimodal one.

Consider the \( i \)th multimodal process completion time denoted \( Te_{i} \), i.e. the time period between the beginning of the first operation from the \( i \)th route, and the end of the last operations in this route. Let us note that the cycle of the cyclic steady state equals to \( Tm_{1} = 57\,{\text{u}}.{\text{t}}. \) while the \( Te_{1} \) (\( Te_{2} \)) for the \( mP_{1} \) (\( mP_{2} \)) equals to \( 40 \) u.t. (\( 46 \) u.t.), respectively.

In case of systems \( SC^{2} \) and \( SC^{3} \) they have the same twice longer cycle time \( Tm_{2} = Tm_{3} = 114 \), however \( mP_{1} \) executes three times, and \( mP_{2} \) two times, and their completion times are shorter \( Te_{1} = 38 \) u.t. and \( Te_{2} = 46 \) u.t., respectively (see Figs. 11 and 12). Moreover, \( Te_{1} = 38 \) u.t. and \( Te_{2} = 44 \) u.t for th\( {\text{e }}SC^{3} \), see the Table 8.

Fig. 11
figure 11

Gantt’s chart of multimodal processes cyclic steady state of the \( SC^{2} \)

Fig. 12
figure 12

Gantt’s chart of multimodal processes cyclic steady state of the \( SC^{3} \)

Table 8 The cycles and processes completion times for \( SC^{1} \), \( SC^{2} \) and \( SC^{3} \)

4.3 Reachability of Cyclic Steady States Space

The cyclic steady states from the Table 8 specify standing behind of them variants in terms of cycles of the local, and the multimodal cyclic processes. In case of cyclic steady states space considered the all states specify the same local processes cycle while differ in multimodal processes cycle values. Consequently, those differences imply different completion times of multimodal processes. That means, the states space allows one to search either for the shortest cycle or for the shortest makespan multimodal schedules.

Besides of multimodal processes scheduling the issue of their rescheduling plays a pivotal role. Due to the property 2 and 3 mentioned see the Sect. 3.1 the direct rescheduling from one cyclic steady state to another is allowed at states possessing the same local processes allocation. For instance, the states sharing the same allocations, (distinguished by different colors: blue, read, and orange) are shown in Figs. 7, 8 and 9. Taking into account such distinguished allocations the sequence of possible reschedules (depicted by bold green line), omitting however the transient periods, is shown in Fig. 13. The local processes cyclic states space is shown on the \( {\mathbb{S}}l \) level and the multimodal processes cyclic states space is show on the \( {\mathbb{S}} \) level.

Fig. 13
figure 13

The cyclic steady states spaces of SCCP from Fig. 2

The states with allocations \( A^{1} - A^{11} \) shared by different cyclic steady states are distinguished by different colors, see Fig. 13. Allocations \( A^{1} - A^{4} \) (distinguished by blue doted lines) are shared by \( mSc_{1} \) and \( mSc_{2} \), allocations \( A^{5} - A^{10} \) (distinguished by orange doted lines) are shared by \( mSc_{1} \), \( mSc_{2} , \) and \( mSc_{3} \), and the allocations \( A^{5} - \) \( A^{11} \) (distinguished by red doted lines) are shared by \( mSc_{2} \) and \( mSc_{3} \).

That means the rescheduling from a one multimodal processes cyclic steady state to other one is possible only in the states \( A^{1} - A^{11} \) shared by other cyclic steady states. In other words, to each state from the local processes steady cyclic state correspond the states from multimodal processes steady cyclic state. In case of states sharing allocations by different local processes cyclic steady states the switching between relevant (sharing the same color) multimodal processes cyclic steady states can be obtained by adjusting those states’ semaphores \( Z^{i} \) and/or indices \( Q^{i} \) and/or dispatching rules \( {{\Uptheta}} \). Illustration of such rescheduling, i.e., switching between \( mSc_{1} \) and \( mSc_{3} \;{\text{while}} \) using the state with allocation \( A^{10} \), and switching between \( mSc_{3} \) and \( mSc_{2} \) while using the state \( A^{11} \), is distinguished by the green line, see Fig. 13 with the Gantt’s diagram in Fig. 14.

Fig. 14
figure 14

Gantt’s chart of cyclic steady states rescheduling: \( mSc_{1} \to mSc_{3} \) and \( mSc_{3} \to mSc_{2} \)

5 Concluding Remarks

The constraint satisfaction problem of cyclic scheduling of local and multimodal concurrently flowing processes is considered. It is assumed that multimodal processes are composed of sequences of local cyclic processes. For instance, in case local processes encompass a network of dedicated AGVs lines the processes responsible for workpieces shifting between destinations points while crossing different lines are multimodal ones.

Since AGVS structure constraints its SCCP behavior, there are two fundamental problems one have to face with: Does there exist a set of dispatching rules subject to AGVS’s structure constraints guaranteeing solution to a CSP representation of the cyclic scheduling problem? What set of dispatching rules subject to assumed cyclic behavior of AGVS guarantees solution to a CSP representation of the cyclic scheduling problem?

In that context the chapter’s contribution is to propose a declarative approach providing unified framework for local and multimodal processes evaluation while allowing one to take into account both direct and reverse problems formulation of the cyclic scheduling. Moreover, the framework employed enables to evaluate the SCCP behavior on the base of the given processes layout, operation times and dispatching rules employed, especially to compose elementary systems in such a way as to obtain the required quantitative and qualitative behavioral features. Concluding, a method allowing one to replace an exhaustive search for the admissible control by a step-by-step structural design guaranteeing the required system behavior is our main contribution.