Keywords

1 Introduction

To solve a Vehicle Routing Problem (VRP), one has to create a serving plan specifying how much a given fleet of vehicles should deliver and what cyclic routes the vehicles should travel to provide the required supplies on time. Since the VRP belongs to a class of NP-hard logistic train routing and scheduling problems, various heuristic methods that return approximate solutions are used to solve it. Due to the growing interest in logistic networks based on autonomous vehicles and Milk-run systems [11, 14], there is a need to build models of these systems that take into account the uncertainty of the parameters describing them. In response to this need and deficiencies of the currently used approaches [3, 14,15,16], we wanted to investigate the possibility of using declarative modelling methods [2] supported by the ordered fuzzy number (OFN) framework in solutions that provide interactive decision support for prototyping congestion-free vehicle traffic in in-plant distribution systems. More specifically, we assessed computer simulation methods and ordered-fuzzy-number-driven approaches to solve multi-depot vehicle cyclic routing and scheduling problems. The present study is a continuation of our previous work that explored methods of fast prototyping of solutions to problems related to routing and scheduling of tasks typically performed in batch flow production systems, as well as problems related to the planning and control of production flow in departments of automotive companies [2]. The main contributions of this paper are summarized as follows: 1) In contrast to the usually accepted assumptions, we assume that transport processes have a deterministic nature and an uncertain course, which requires taking into account the human factor. We take into consideration the related distribution of delivery moments, which allows constructing more realistic, i.e., more accurate, models for assessing the effectiveness of prototyped route variants. 2) We formulate in detail a declarative-modelling-driven approach to the assessment of alternative routing and scheduling variants for a fleet of vehicles. The obtained ordered-fuzzy-number-driven model allows searching for congestion-free logistic train routes in terms of the Fuzzy Constraint Satisfaction Problem. 3) The proposed approach enables the replacement of the usually used computer simulation methods for route prototyping with an analytical method employing the OFN formalism. It is an outperforming approach to solving in-plant Milk-run-driven delivery problems.

The remainder of this paper is as follows: Sect. 2 presents a review of selected literature of the subject, including necessary information about OFNs. A motivation example introducing the problem under consideration is in Sect. 3. Section 4 formulates a declarative model and a Fuzzy Constraint Satisfaction Problem for planning delivery missions of a vehicle fleet. Section 5 shows how to use the model in supply-cycle-prototyping tasks. Section 6 summarizes the principal conclusions and proposes the main directions for future research.

2 Literature Review

2.1 Vehicle Routing and Scheduling

VRPs belong to a class of combinatorial optimization problems. Because VRPs are problems in which a set of vehicles have to serve a set of pick-up/delivery points and satisfy assumed constraints, while minimizing different objectives such as cost, distance, or time, they are usually NP-hard problems for which, so far, no efficient solution algorithm has been found. Different constraints, depending on the specific characteristics of the problem and the objective(s) of the decision-making process, lead to a variety of task-specific problems. Examples of such problems [4, 7, 15, 19] include Mix Fleet VRP, Multi-depot VRP, Split-up Delivery VRP, Pick-up and Delivery VRP, VRP with Time Windows, and many similar ones. The VRP can be seen as a generalization of the Traveling Salesman Problem aimed at finding the optimal set of routes for a fleet of vehicles delivering goods or services to various locations. Most of the research in the field of distribution logistics is devoted to the analysis of methods of organizing transport processes in ways that minimize the size of the fleet, the distance travelled (energy consumed), or the space occupied by a distribution system. In focusing on the search for optimal solutions, these studies implicitly assume that there exist admissible solutions, e.g., ones that ensure collision-free and/or deadlock-free (congestion-free) flow of concurrent transport processes. In practice, this kind of assumption requires either on-line updating (revision) of the routing policies used or prior (offline) planning of congestion-free vehicle routes and schedules. Studies on generating dynamic routing policies are conducted sporadically [4]; even less frequent are investigations of robust routing and scheduling of Milk-run traffic, which are, by and large, limited to Automated Guided Vehicle (AGV) systems. In a Milk-run system, routes, time schedules, and the type and number of parts to be transported are assigned to different logistic trains so that they can collect orders from different suppliers [11]. The benefits of using a system of this type include improved efficiency of the overall logistics system and substantial potential savings of environmental and human resources along with remarkable cost reductions related to inventory and transportation [7, 14]. The Congestion Avoidance Problem, which conditions the existence of admissible solutions, is an NP-hard problem [21]. Because the necessary and sufficient conditions for deadlock-free execution of concurrent processes are not known, system analysis (i.e., analysis of the states potentially leading to system deadlocks) is most frequently performed using the laborious and time-consuming computer simulation methods [4, 9]. In practical applications, congestion avoidance methods are used, in which the sufficient conditions for collision-free execution of processes are implemented. This means that the time-consuming method of analyzing distribution networks with a view to detecting situations that lead to deadlocks between concurrent transport flows can be replaced by searching for a synchronization mechanism that would guarantee cyclic execution of these flows. Methods that are most commonly employed for such purposes include those that use the formalism of max-plus algebra [17], simulations [8], graph theory [20], and constraint programming [2, 19]. It should be noted that the possibility of fast implementation of the process-synchronization mechanism comes at the expense of omitting some of the potentially possible scenarios for deadlock-free execution of the processes.

In many real situations, not all the constraints and objective functions can be valued in a precise way. The majority of models of the so-called Fuzzy VRP only assume vagueness for fuzzy demands to be collected and fuzzy service and travel times. It should be emphasized that the literature on these issues is very scarce [3, 10].

2.2 Ordered Fuzzy Number Algebra Framework

The multi-depot vehicle routing and scheduling problems developed so far have limited use due to the data uncertainty observed in practice. The values describing parameters such as transport time, loading/unloading times, depend on the human factor, which means they cannot be determined precisely. Accounting for data uncertainty by including fuzzy variables in these models is difficult due to the imperfections of the classical fuzzy numbers algebra [1]. Relations describing the relationships between fuzzy variables (variables with fuzzy values) by algebraic operations (in particular, addition and multiplication) do not meet the conditions of the Ring (among others if the condition \( \forall_{{A \in {\mathcal{F}}}} \,A + 0 = A \) is met, then condition \( \forall_{{A \in {\mathcal{F}}}} \exists !_{{B \in {\mathcal{F} }}} \;A + B = 0 \) is not met). In addition, algebraic operations based on standard fuzzy numbers follow Zadeh’s extension principle. In practice, this means that no matter what algebraic operations are used, the support of the fuzzy number, being the result, expands. Consequently, it is impossible to solve algebraic equations with fuzzy variables. In particular, this means that for any fuzzy numbers \( a, b, c \) does not hold the following implication \( \left( {a + b = c} \right) \Rightarrow \left[ {\left( {c - b = a} \right) \wedge \left( {c - a = b} \right)} \right] \). This makes it impossible to solve a simple equation \( A + X = C. \) This fact significantly hinders the use of approaches based on declarative models, in which most of the relationships between decision variables are described as linear/nonlinear equations and/or algebraic inequalities. There are various approaches in the literature that work around the above-mentioned deficiencies [1, 12], but they are quite complex.

We address these issues by proposing a declarative model of congestion-free vehicle routing and scheduling that implements the formalism of OFN algebra, which assumes the existence of a neutral element (zero) for operations such as addition and multiplication, making it possible to solve algebraic equations in the model. The concept of OFNs can be defined as follows [13]:

Definition 1.

An OFN is defined as a pair of continuous real functions defined by the interval [0, 1], i.e.:

$$ \hat{A} = \left( {f_{A} , g_{A} } \right), {\text{where}}: f_{A} , g_{A} : \left[ {0, 1} \right] \to {\mathbb{R}}. $$
(1)

The functions \( f_{A} \) and \( g_{A} \) are called the up part and the down part of an OFN \( \hat{A} \), respectively. They are also referred to as branches of the fuzzy number \( \hat{A} \). The values of these continuous functions are limited ranges, which can be defined as the following bounded intervals: \( UP_{A} = \left( {l_{A0} ,l_{A1} } \right) \) and \( DOWN_{A} = \left( {p_{A1} ,p_{A0} } \right) \). Assuming that: \( f_{A} \) is increasing and \( g_{A} \) is decreasing as well as that \( f_{A} \) \( \le g_{A} \), the membership function \( \mu_{A} \) of the OFN\( \hat{A} \) is as shown in Figs. 1a) and b):

Fig. 1.
figure 1

a) OFN \( \hat{A} \) represented as a convex fuzzy number, b) functions \( f_{A} , g_{A} \) determining \( \hat{A} \) (positive orientation), c) discrete representation of \( \hat{A} \)(\( dx = 0.25 \)) (based on [13])

$$ \upmu_{\text{A}} \left( x \right) { = }\left\{ {\begin{array}{*{20}c} {f_{A}^{ - 1} \left( x \right)} \\ {g_{A}^{ - 1} \left( x \right)} \\ 1 \\ 0 \\ \end{array} \begin{array}{*{20}c} {when\,x \in UP_{A} } \\ {when\,x \in DOWN_{A} } \\ {when\,x \in \left[ {l_{A1} ,p_{A1} } \right] } \\ {\text{in the remaining cases}} \\ \end{array} } \right. $$
(2)

An additional property called orientation (direction) is defined for an OFN. There are two types of orientation: positive, when \( \hat{A} = (f_{A} , g_{A} ) \) the direction is consistent with the direction of the OX axis and negative, when \( \hat{A} = (g_{A} , f_{A} ) \) the direction is opposite to the direction of the OX axis. Assuming that the values of all fuzzy variables may have a different orientation, let us define algebraic operations that meet the listed conditions of the Ring. The definitions of algebraic operations used in the proposed model are as follows:

Definition 2.

Let \( \hat{A} = (f_{A} , g_{A} ) \) and \( \hat{B} = (f_{B} , g_{B} \)) be OFNs. \( \hat{A} \) is a number equal to \( \hat{B} \) (\( \hat{A} = \hat{B} \)), \( \hat{A} \) is a number greater than \( \hat{B} \) or equal to or greater than \( \hat{B} \) (\( \hat{A} > \hat{B} \); \( \hat{A} \ge \hat{B} \)), \( \hat{A} \) is less than \( \hat{B} \) or equal to or less than \( \hat{B} \) (\( \hat{A} < \hat{B} \), \( \hat{A} \le \hat{B} \)) if: \( \forall_{{x \in \left[ {0,1} \right]}} f_{A} \left( x \right) *f_{B} \left( x \right) \wedge g_{A} \left( x \right) *g_{B} \left( x \right) \), where: the symbol \( * \) stands for: \( = \), \( > \), \( \ge \), \( < \), or \( \le \).

Definition 3.

Let \( \hat{A} = (f_{A} , g_{A} ) \), \( \hat{B} = (f_{B} , g_{B} \)), and \( \hat{C} = (f_{C} , g_{C} \)) be OFNs. The operations of addition \( \hat{C} = \hat{A} + \hat{B} \), subtraction \( \hat{C} = \hat{A} - \hat{B} \), multiplication \( \hat{C} = \hat{A} \times \hat{B} \) and division \( \hat{C} = \hat{A}/\hat{B} \) are defined as follows: \( \forall_{{x \in \left[ {0,1} \right]}} f_{C} \left( x \right) = f_{A} \left( x \right) *f_{B} \left( x \right) \wedge g_{C} \left( x \right) = g_{A} \left( x \right) *g_{B} \left( x \right) \), where: the symbol \( * \) stands for +, −, \( \times \), or ÷; The operation of division is defined for \( \hat{B} \) such that \( \left| {f_{B} } \right|\,\text{ > }\,0 \) and \( \left| {g_{B} } \right|\,\text{ > }\,0 \) for x ∈ [0, 1].

In recent years, the concept of OFNs has continuously been developed and used in various practical applications. Many publications have been devoted to the analysis of the OFN model in relation to convex fuzzy sets [5, 6]. The concept of defining imprecise values as OFNs has also been used in critical path analysis. A practical implementation of OFN arithmetic in the monitoring of a crisis control centre was described in [6]. Another recently popular area of OFN’s applications is multi-criteria decision making (MCDM) methods [18]. In MCDM methods, the orientation of OFNs differentiates the type of criterion used (cost vs profit). Finally, to the best of our knowledge, the approach proposed in this paper is the first attempt to use OFNs for Milk-run-like traffic routing and scheduling.

3 Illustrative Example

Let us consider graph \( G = \left( {N,E} \right) \) modelling a distribution network composed of \( \left| N \right| = \omega = 11 \) pick-up/delivery points (i.e., workstations and warehouses), as shown in Fig. 2. The pick-up/delivery points (hereinafter referred to as nodes) include \( 2 \) nodes representing warehouses \( N_{1} {\text{and}} N_{5} \) and 9 nodes representing workstations \( N_{2} \)-\( N_{4} \), \( N_{6} \)-\( N_{11} \). Each node is labelled with an index which indicates the beginning moments of node occupation \( x_{\lambda } \) and node release \( xs_{\lambda } \), as well as the time spent at the node, i.e. pick-up/delivery operation time \( t_{\lambda } \). Nodes are cyclically supplied with goods in time windows repeated (with size \( T = 2970 \) s). The goods are supplemented in intervals determined by the delivery deadline \( dx_{\lambda } \) and delivery margin \( \tau_{\lambda } \), i.e. \( x_{\lambda } + t_{\lambda } = y_{\lambda } \in \left[ { dx_{\lambda } - \tau_{\lambda } , dx_{\lambda } } \right] \) (see intervals identified by grey bars in Fig. 4). In turn, each edge \( \left( {N_{\beta } ,N_{\lambda } } \right) \in E \) linking nodes \( N_{\beta } \) and \( N_{\lambda } \) is labelled with an index representing travelling time \( d_{\beta ,\lambda } \) between nodes \( N_{\beta } \) and \( N_{\lambda } \) and a set of indexes \( K_{\beta ,\lambda } \) indicating the transport zones located along the edge. It is assumed that the set of edges \( E \) model the routes travelled by logistic trains between nodes \( N_{\beta } \) and \( N_{\lambda } \). It is also assumed that each edge \( \left( {N_{\beta } ,N_{\lambda } } \right) \) is composed of a set of transport zones labelled by a set of indexes \( K_{\beta ,\lambda } \). Given is a fleet of logistic trains \( LT \) which handle deliveries in the distribution network under consideration. The routes travelled by the logistic trains \( LT_{v} \) are denoted by sequences of nodes: \( \pi_{v} = \left( {N_{{v_{1} }} , \ldots ,N_{{v_{i} }} ,N_{{v_{i + 1} }} , \ldots ,N_{{v_{\mu } }} } \right) \), where: \( v_{i} \in \left\{ {1,..,ln} \right\} \), \( \forall_{{v_{i} \ne v_{j} }} N_{{v_{i} }} \ne N_{{v_{j} }} \), \( \left( {N_{{v_{i} }} ,N_{{v_{i + 1} }} } \right) \in E \). To each edge \( \left( {N_{{v_{i} }} ,N_{{v_{i + 1} }} } \right) \in E \) of the route \( \pi_{v} , \) a time period is assigned in which the edge is occupied by the logistic train: \( IN_{{v_{i} ,v_{i + 1} }} = \left[ {xs_{{v_{i} }} ,x_{{v_{i + 1} }} } \right] \). The set of routes \( \pi_{v} \) of the available fleet of logistic trains is marked by \( \Pi \). It is assumed that nodes representing a warehouse (e.g. \( N_{1} \),\( N_{5} \)) appear on every route, and each node representing a workstation (e.g. \( N_{2} \)-\( N_{4} \), \( N_{6} \)-\( N_{11} \)) occurs only on one route from the set \( \Pi \). In order to avoid collisions/blockades between trains, the following condition must also be met: given are two routes \( \pi_{v} ,\pi_{w} \in\Pi \). If for any pair of edges \( \left( {N_{{v_{i} }} ,N_{{v_{i + 1} }} } \right) \) belonging to \( \pi_{v} \) and \( \left( {N_{{w_{j} }} ,N_{{w_{j + 1} }} } \right) \) belonging to \( \pi_{w} \), the following condition holds \( \left[ {\left( {K_{{v_{i} ,v_{i + 1} }} \cap K_{{w_{j} ,w_{j + 1} }} \ne \emptyset } \right) \wedge \left( {IN_{{v_{i} ,v_{i + 1} }} \cap IN_{{w_{j} ,w_{j + 1} }} \ne \emptyset } \right)} \right] \), then trains \( LT_{v} \), \( LT_{w} \) which travel along routes \( \pi_{v} ,\pi_{w} \) are collision/blockade-free. In other words, it means that two trains \( LT_{v} \), \( LT_{w} \) travelling along routes \( \pi_{v} ,\pi_{w} \) will not block each other if they do not occupy the same edge during the same period of time.

Fig. 2.
figure 2

Graph model of a distribution network

Taking into account the assumptions mentioned above, we are looking for a set of routes of logistic trains and the associated delivery schedules that guarantee congestion-free and timely delivery of goods to the nodes. Examples of routings that guarantee timely delivery of goods and the resulting schedule are presented in Figs. 3 and 4. The routes are the following sequences of nodes visited repetitively by \( LT_{1} \) and \( LT_{2} \): \( \pi_{1} = \left( {N_{1} ,N_{7} ,N_{6} ,N_{4} ,N_{8} ,N_{11} ,N_{5} } \right) \), \( \pi_{2} = \left( {N_{1} ,N_{2} ,N_{10} ,N_{9} ,N_{3} ,N_{5} } \right) \). These routes guarantee collision-free and deadlock-free delivery. However, in many cases (e.g. in Milk-run systems), transport operations and loading/unloading operations are usually carried out by people, which means they are quite uncertain. The uncertainty of the duration of the operations results in uncertain moments of node occupation and release. Consequently, the actual implementation of the schedule may differ significantly from the planned one, and even minor deviations from the plan may have serious implications, such as blockages. Figure 3 illustrates a situation in which a 90-s delay (relative to the deadline resulting from the planned schedule in Fig. 4) of train \( LT_{2} \) with the simultaneous acceleration of the train \( LT_{1} \) by 60 s leads to blockade in edges \( N_{10} \)-\( N_{9} \) and \( N_{8} \)-\( N_{11} \) (the condition introduced above does not hold). Therefore, there is a need to synthesize such routes, which, assuming a specific range of data uncertainty, still guarantee collision-free and deadlock-free performance of periodically repeating delivery operations.

Fig. 3.
figure 3

Routes of trains \( LT_{1} \) and \( LT_{2} \) servicing the distribution network from Fig. 2

Fig. 4.
figure 4

Gantt chart of a multi-depot delivery schedule for the train routes from Fig. 3

4 Problem Formulation

4.1 Assumptions

The problem under consideration can be defined as follows. Assuming that:

  • there is a known transportation network \( G = \left( {N,E} \right) \), where \( N \) is a set of nodes and \( E \) is a set of edges; the set \( N \) contains the subsets of nodes representing workstations \( NC \subseteq N \) and warehouses \( NW \subseteq N \): \( NW \cup NC = N \), \( NW \cap NC = \emptyset \),

  • each edge \( \left( {N_{\beta } ,N_{\lambda } } \right) \in E \) is labelled by a fuzzy value \( \widehat{{d_{\beta ,\lambda } }} \) (represented in terms of OFN) determining the travel time between nodes \( N_{\beta } \) and \( N_{\lambda } \),

  • each edge \( \left( {N_{\beta } ,N_{\lambda } } \right) \in E \) consists of sectors described by a set of indexes \( K_{\beta ,\lambda } \subseteq {\mathbb{N}} \),

  • given is a fleet of logistic trains \( LT \), in which each of the trains \( LT_{v} \) corresponds to a route \( \pi_{v} \) (\( \pi_{v} \in \varPi \)) described by a sequence of successively visited nodes,

  • trains can only move between nodes connected by an edge,

  • if for any pair of edges: \( \left( {N_{{v_{i} }} ,N_{{v_{i + 1} }} } \right) \) and \( \left( {N_{{w_{j} }} ,N_{{w_{j + 1} }} } \right) \) belonging to \( \pi_{v} \), \( \pi_{w} \), the following condition holds \( \left[ {\left( {K_{{v_{i} ,v_{i + 1} }} \cap K_{{w_{j} ,w_{j + 1} }} \ne \emptyset } \right) \wedge \left( {IN_{{v_{i} ,v_{i + 1} }} \cap IN_{{w_{j} ,w_{j + 1} }} \ne \emptyset } \right)} \right] \), then the trains travelling along routes \( \pi_{v} ,\pi_{w} \) are congestion-free,

  • each node \( N_{\lambda } \in NC \) occurs exactly on one route of the set \( \varPi , \)

  • each node \( N_{\lambda } \in NW \) occurs exactly on all routes of the set \( \varPi , \)

  • node \( N_{\lambda } \) located on route \( \pi_{v} \) is associated with the delivery operation \( o_{\lambda } \in {\mathcal{O}} \),

  • the duration of the delivery operation is determined by the fuzzy value \( \widehat{{t_{\lambda } }} \),

  • deliveries of goods take place cyclically in time windows repeated with a period \( \widehat{T} \),

  • goods are delivered in accordance with the fuzzy delivery deadline \( \widehat{{dx_{\lambda } }} \) and fuzzy delivery margin \( \widehat{{\tau_{\lambda } }} \) (represented as OFN),

  • fuzzy beginning moments of node occupation \( \widehat{{x_{\lambda } }} \) and node release \( \widehat{{xs_{\lambda } }} \) (represented as OFN) make up the fuzzy cyclic schedule \( \widehat{X} \),

the following question can be considered: Does there exist a set of routes \( \varPi \) operated by the given fleet \( LT \), which ensures that a fuzzy cyclic schedule \( \widehat{X} \) will guarantee timely delivery (with given deadlines \( \widehat{{dx_{\lambda } }} \) and delivery margin \( \widehat{{\tau_{\lambda } }} \)) of goods to the nodes?

The proposed model uses decision variables whose values OFNs as defined in Definition 1. For the needs of the model, OFN \( \hat{A} \) is specified by sequences \( f_{A} ' \) and \( g_{A} ' \) containing values of functions \( f_{A} \) and \( g_{A} \) obtained as a result of discretization of the interval \( \left[ {0, 1} \right] \), i.e.

$$ f_{A} '= \left( {f_{A} \left( 0 \right), f_{A} \left( {dx} \right), . . . , f_{A} \left( {\left( {M - 1} \right) dx} \right), f_{A} \left( 1 \right)} \right), $$
(3)
$$ g_{A}^{{\prime }} = \left( {g_{A} \left( 1 \right), g_{A} \left( {\left( {M - 1} \right)dx} \right), . . . , g_{A} \left( {1dx} \right), g_{A} \left( 0 \right)} \right), dx = \frac{1}{M} , $$
(4)

where \( \left( {M + 1} \right) \) is the number of discrete points (Fig. 1c). The adoption of such an OFN representation allows to implement the defined operations (see Definition 2 and 3).

4.2 Declarative Model

The previously introduced terminology and symbols referring to OFN and the following notation were used in designing the Milk-run like traffic model:

Symbols:

\( N_{\lambda } \in N \)::

\( \lambda \)-th node.

\( LT_{v} \in LT \)::

\( v \)-th logistic train.

\( o_{\lambda } \in {\mathcal{O}} \)::

operation of delivery of materials to node \( N_{\lambda } \) on route \( \pi_{v} \)

Parameters:

Crisp parameters:

\( G = \left( {N,E} \right) \)::

graph of a transportation network: \( N = \left\{ {N_{1} \ldots N_{\omega } } \right\} \) is a set of nodes, \( E = \left\{ {\left( {N_{i} ,N_{j} } \right)| i, j \in N ,i \ne j} \right\} \) is a set of edges, \( \omega \) – the number of nodes.

\( ln \)::

the number of logistic trains.

\( K_{\beta ,\lambda } \)::

a set of indexes assigned to zones located along the edge \( \left( {N_{\beta } ,N_{\lambda } } \right) \).

Imprecise parameters: (defined as positive-oriented OFNs and marked by \( \widehat{{}} \)”):

\( \widehat{{d_{\beta ,\lambda } }} \)::

time of a transport operation executed along the edge \( \left( {N_{\beta } ,N_{\lambda } } \right) \).

\( \widehat{{t_{\lambda } }} \)::

time of operation \( o_{\lambda } \).

\( \widehat{{dx_{\lambda } }} \)::

deadline of delivery of containers to node \( N_{\lambda } \) (see example in Fig. 3).

\( \widehat{{\tau_{\lambda } }} \)::

delivery margin, (see Fig. 3),

\( \widehat{T} \)::

window width understood as a period, repeated at regular intervals, in which deliveries must be made to all nodes (see Fig. 3).

Variables:

Crisp variables:

\( rb_{\lambda } \)::

an index of the operation that precedes the operation \( o_{\lambda } \); \( rb_{\lambda } = 0 \) means that operation \( o_{\lambda } \), is the first one on the route.

\( rf_{\lambda } \)::

an index of the operation that follows \( o_{\lambda } \).

Imprecise variables (positive-/negative-oriented OFNs):

\( \widehat{{x_{\lambda } }} \)::

moment of commencement of the delivery operation \( o_{\lambda } \) on node \( N_{\lambda } \).

\( \widehat{{y_{\lambda } }} \)::

moment of completion of the operation \( o_{\lambda } \) on node \( N_{\lambda } \).

\( \widehat{{xs_{\lambda } }} \)::

moment of release of node \( N_{\lambda } \) by operation \( o_{\lambda } \).

Sets and sequences:

\( NC \)::

a subset of nodes representing workstations \( NC \subseteq N \).

\( NW \)::

a subset of nodes representing warehouses \( NW \subseteq N \).

\( RB \)::

a sequence of predecessor indexes of delivery operations, \( RB = \left( {rb_{1} , \ldots ,rb_{\alpha } , \ldots ,rb_{{\left| {NC} \right| + ln \times \left| {NW} \right|}} } \right) \), \( rb_{\alpha } \in \left\{ {0, \ldots ,\omega } \right\} \).

\( RF \)::

a sequence of successor indexes of delivery operations, \( RF = \left( {rf_{1} , \ldots ,rf_{\alpha } , \ldots ,rf_{{\left| {NC} \right| + ln \times \left| {NW} \right|}} } \right) \), \( rf_{\alpha } \in \left\{ {1, \ldots ,\omega } \right\} \), e.g. \( RB \) and \( RF \) that determine routes \( \pi_{1} \) and \( \pi_{2} \) (see Fig. 3), and take the following form:

$$ \begin{array}{*{20}l} {} \hfill & {N_{1} } \hfill & {N_{2} } \hfill & {N_{3} } \hfill & {N_{4} } \hfill & {N_{5} } \hfill & {N_{6} } \hfill & {N_{7} } \hfill & {N_{8} } \hfill & {N_{9} } \hfill & {N_{10} } \hfill & {N_{11} } \hfill & {N_{1} '} \hfill & {N_{5} '} \hfill \\ {RB = } \hfill & {(0,} \hfill & {1', } \hfill & {9, } \hfill & {6,} \hfill & {11,} \hfill & {7,} \hfill & {1,} \hfill & {4,} \hfill & {10,} \hfill & {2,} \hfill & {8,} \hfill & {0,} \hfill & {3)} \hfill \\ {RF = } \hfill & {(7,} \hfill & {10,} \hfill & {5',} \hfill & {8,} \hfill & {1,} \hfill & {4,} \hfill & {6,} \hfill & {11,} \hfill & {3,} \hfill & {9,} \hfill & {5,} \hfill & {2,} \hfill & {1')} \hfill \\ \end{array} $$

The symbol ‘refers to nodes associated with the warehouses visited by train \( LT_{2} \).

\( \pi_{v} \)::

route of the train \( LT_{v} \), \( \pi_{v} = \left( {N_{{v_{1} }} , \ldots ,N_{{v_{i} }} ,N_{{v_{i + 1} }} , \ldots ,N_{{v_{\mu } }} } \right) \), where: \( v_{i + 1} = rf_{{v_{i} }} \) for \( i = 1, \ldots , \mu - 1 \) and \( v_{1} = rf_{{v_{\mu } }} \).

\( \widehat{{X^{\prime}}} \)::

a sequence of moments \( \widehat{{x_{\lambda } }} \): \( \widehat{{X^{\prime}}} = \left( {\widehat{{x_{1} }}, \ldots , \widehat{{x_{\lambda } }}, \ldots ,\widehat{{x_{\omega } }}} \right) \).

\( \widehat{Y'} \)::

a sequence of moments \( \widehat{{y_{\lambda } }} \): \( \widehat{{Y^{\prime}}} = \left( {\widehat{{y_{1} }}, \ldots , \widehat{{y_{\lambda } }}, \ldots ,\widehat{{y_{\omega } }}} \right) \).

\( \widehat{{Xs^{\prime}}} \)::

a sequence of moments \( \widehat{{xs_{\lambda } }} \): \( \widehat{{Xs^{ '} }} = \left( {\widehat{{xs_{1} }}, \ldots , \widehat{{xs_{\lambda } }}, \ldots ,\widehat{{xs_{\omega } }}} \right) \).

\( \hat{X} \)::

a fuzzy cyclic schedule: \( \hat{X} = \left( {\widehat{{X^{\prime}}},\widehat{Y'},\widehat{{Xs^{\prime}}}} \right). \)

Constraints:

  1. 1.

    constraints describing the orders of operations depending on the logistic train routes:

$$ \widehat{{y_{\lambda } }} = \widehat{{x_{\lambda } }} + \widehat{{t_{\lambda } }},\,\forall o_{\lambda } \in {\mathcal{O}}\,\text{,} $$
(5)
$$ rb_{\lambda } = 0,\,\forall \lambda \in BS \subseteq BI = \left\{ {1, \ldots ,\omega } \right\},\,\left| {BS} \right| = ln, $$
(6)
$$ b_{\lambda } \ne rb_{\beta } ,\,\,\forall \lambda ,\beta \in BI\backslash BS,\,\,\lambda \ne \beta , $$
(7)
$$ rf_{\lambda } \ne rf_{\beta } ,\,\forall \lambda ,\beta \in BI,\,\lambda \ne \beta , $$
(8)
$$ \left( {rb_{\lambda } = \beta } \right) \Rightarrow \left( {rf_{\beta } = \lambda } \right),\,\forall b_{\lambda } \ne 0, $$
(9)
$$ \widehat{{xs_{\lambda } }} \ge \widehat{{y_{\lambda } }},\,\forall o_{\lambda } \in {\mathcal{O}} , $$
(10)
$$ \left[ {\left( {f_{\lambda } = \beta } \right) \wedge \left( {b_{\beta } = 0} \right)} \right] \Rightarrow \left( {\widehat{{xs_{\lambda } }} = \widehat{{x_{\beta } }} + \widehat{T} - \widehat{{d_{\lambda ,\beta } }}} \right),\,\,\forall o_{\lambda } ,o_{\beta } \in {\mathcal{O},} $$
(11)
$$ \left[ {\left( {f_{\lambda } = \beta } \right) \wedge \left( {b_{\beta } \ne 0} \right)} \right] \Rightarrow \left( {\widehat{{xs_{\lambda } }} = \widehat{{x_{\beta } }} - \widehat{{d_{\lambda ,\beta } }}} \right),\,\,\forall o_{\lambda } ,o_{\beta } \in {\mathcal{O},} $$
(12)
  1. 2.

    if edge \( \left( {N_{\varepsilon } ,N_{\beta } } \right) \) has common sectors with the edge \( \left( {N_{\lambda } ,N_{\gamma } } \right), \) then:

$$ \left( {K_{\varepsilon ,\beta } \cap K_{\lambda ,\gamma } \ne \emptyset } \right) \Rightarrow \left[ {\left( {\widehat{{x_{\beta } }} \le \widehat{{xs_{\lambda } }}} \right) \vee \left( {\widehat{{x_{\gamma } }} \le \widehat{{xs_{\varepsilon } }}} \right)} \right],\,\forall o_{\lambda } ,o_{\beta } ,o_{\varepsilon } ,o_{\gamma } \in {\mathcal{O},} $$
(13)
  1. 3.

    the delivery operation \( o_{\lambda } \) should be completed before the given delivery deadline \( dx_{\lambda } \) (with a margin \( \widehat{{\tau_{\lambda } }} \)) resulting from the production flows of an individual product:

$$ \widehat{{y_{\lambda } }} + c \times \widehat{T} \le \widehat{{dx_{\lambda } }},\,\,\forall o_{\lambda } \in {\mathcal{O},} $$
(14)
$$ \widehat{{y_{\lambda } }} + c \times \widehat{T} \ge \widehat{{dx_{\lambda } }} + \widehat{{\tau_{\lambda } }},\,\,\forall o_{\lambda } \in {\mathcal{O}};\,c \in {\mathbb{N}}. $$
(15)

4.3 Fuzzy Constraint Satisfaction Problem

Our problem can be viewed as a Fuzzy Constraint Satisfaction (FCS) Problem (16):

$$ \widehat{FCS} = \left( {\left( {{\hat{\mathcal{V}}},{\hat{\mathcal{D}}}} \right),{\hat{\mathcal{C}}}} \right), $$
(16)

where: \( {\hat{\mathcal{V}}} = \left\{ {\hat{X},\varPi } \right\} \) – a set of decision variables, including: \( \hat{X} \) – a fuzzy cyclic schedule: \( \hat{X} = \left( {\widehat{{X^{\prime}}},\widehat{Y'},\widehat{{Xs^{\prime}}}} \right) \), \( \Pi \) – a set of routes determined by sequences \( RB \), \( FR \). \( \widehat{{\mathcal{D}}} \) – a finite set of decision variable domains: \( \widehat{{x_{\lambda } }} \), \( \widehat{{y_{\lambda } }} \), \( \widehat{{xs_{\lambda } }} \in {\mathcal{F}} \) (\( {\mathcal{F}} \) is a set of OFNs (1)), \( rb_{\lambda } \in \left\{ {0, \ldots \omega } \right\} \), \( rf_{\lambda } \in \left\{ {1, \ldots \omega } \right\}, \) \( {\mathcal{C}}_{RE} \) a set of constraints specifying the relationships between the operations implemented in Milk-run cycles (5)–(15).

To solve \( \widehat{FCS} \) (16), the values of the decision variables from the adopted set of domains for which the given constraints are satisfied must be determined. Implementation of \( \widehat{FCS} \) in a constraint programming environment such as OzMozart, allows us to find the answer.

5 Computational Experiments

Consider the system layout from Fig. 2. The goal is to find congestion-free routes for the given fleet of logistic trains (i.e. the set \( \Pi \)). The trains cyclically supply goods to nodes \( N_{1} \)-\( N_{11} \) in time windows with a width of \( \hat{T} = 2970 \) [s] (in the case under consideration, \( \hat{T} \) is defined as a singleton – an OFN with a strictly neutral direction). It is assumed that the available vehicle fleet consists of two trains \( LT \) = {\( LT_{1} \), \( LT_{2} \} \). It is also assumed that the fuzzy times of a delivery operation (\( \widehat{{t_{\lambda } }} \)) and admissible fuzzy travel times (\( \widehat{{d_{\beta ,\lambda } }} \)) are as shown in Figs. 5b and 5c. The answer to the following question is sought: Does there exist a set of routes \( \varPi \) operated by the given logistic trains \( LT_{1} \) and \( LT_{2} \), which ensures that there exists a fuzzy cyclic schedule \( \hat{X} \), that guarantees timely delivery of the goods to the nodes? While searching for the answer, problem \( \widehat{FCS} \) (16) was formulated, and then implemented in the constraint programming environment OzMozart (Windows 10, Intel Core Duo2 3.00 GHz, 4 GB RAM). The solution time of this scale of problems with up to 12 nodes does not exceed 2 s. The results are shown in graphical form in Figs. 6 and 7. The obtained sequences \( RB \) and \( RF \) make up the following routes (Fig. 6): \( \pi_{1} = \left( {N_{1} ,N_{8} ,N_{9} ,N_{2} ,N_{5} } \right) \) and \( \pi_{2} = \left( {N_{1} ,N_{7} ,N_{6} ,N_{4} ,N_{3} ,N_{10} ,N_{11} ,N_{5} } \right) \).

Fig. 5.
figure 5

Input data specifying the delivery time windows a), loading/unloading times b), periods in which a train moves between a pair of nodes c).

Fig. 6.
figure 6

Graph showing sample of fuzzy variables a), obtained cyclic fuzzy schedule b)

Fig. 7.
figure 7

Graphic summary of simulation results

The fuzzy values of decision variable \( \hat{X} \), and the cyclic schedule determined by them, which guarantees timely delivery of the goods, are presented in Fig. 6. In the Gantt’s chart like schedule, the execution of each operation is represented as a ribbon-like “arterial road”, whose increasing width represents the time of train movement resulting from the growing uncertainty of the moments of occupation and release of nodes. For example, the moment when the node \( N_{11} \) can be occupied is determined by the fuzzy variable \( \widehat{{x_{11} }} \) (Fig. 6a), whose support is the interval [1473 s, 1750 s] (interval width of 277 s). In turn, the moment the node is released is determined by \( \widehat{{y_{11} }} \); for which the support is the interval [1573 s, 1880 s] (interval width of 307 s).

It is worth noting that the width of the ribbon-like arterial roads increases until the next time-window begins. The uncertainty of decision variables is, however, reduced at the end of each time window as a result of the operation of trains waiting on nodes \( N_{1} \),\( N_{5} \). So, increasing uncertainty is not transferred to subsequent cycles of the system. Uncertainty is reduced as a result of the implementation of the OFN formalism. Fuzzy variables describing the waiting time of trains on nodes \( N_{1} \),\( N_{5} \) have a negative orientation (see Fig. 7 – laytimes \( \widehat{{w_{1} }} \) and \( \widehat{{w_{5} }} \)), which means that the results of algebraic operations (\( \widehat{{xs_{1} }} = \widehat{{y_{1} }} + \widehat{{w_{1} }} \) and \( \widehat{{xs_{5} }} = \widehat{{y_{5} }} + \widehat{{w_{5} }} \)) using these variables leads to a decrease in uncertainty. Uncertainty cannot be decreased in the same way using standard fuzzy numbers. According to Zadeh’s extension principle, the uncertainty of variables would grow with each subsequent cycle of system operation until the information about their value ceased to be useful. It is worth noting that the adoption of such a schedule guarantees congestion-free movement of the logistic trains despite the uncertainty of the parameters specified in Fig. 5. In order to verify the results, we ran a simulation of the delivery of goods in the system shown in Fig. 2. In this network, two logistic trains move along routes \( \pi_{1} \) and \( \pi_{2} \) (see Fig. 6). The trains’ travel times between nodes (\( \widehat{{d_{\beta ,\lambda } }} \)) and the delivery times (\( \widehat{{t_{\lambda } }} \)) are assumed to be random variables given by triangular distribution probability functions whose parameters correspond to the variation ranges from Fig. 5. The results of the simulation are shown in Fig. 7. For each of the nodes \( N_{1} \)-\( N_{11} \), OFNs of the starting moments (\( \widehat{{x_{\lambda } }} \)) and termination (\( \widehat{{y_{\lambda } }} \)) of the delivery operation (\( o_{\lambda } \)), as well as the corresponding histograms, are determined. It should be noted that the frames which are used to mark operations carried out on nodes \( N_{7} \),\( N_{9} \),\( N_{11} \) are shown in Fig. 6a, too. In Fig. 7, the green charts correspond to the operations performed along the route \( \pi_{1} \) and the orange ones to route \( \pi_{2} \) operations. The charts are connected by arcs representing algebraic relationships between the individual variables. For instance, for the route travelled by train \( LT_{2} \) (\( \pi_{2} \)), the relations between the variables describing the operations performed on nodes \( N_{8} \),\( N_{9} \),\( N_{2} \), \( N_{5} \),\( N_{1} \) are as follows: \( \widehat{{x_{9} }} = \widehat{{y_{8} }} + \widehat{{d_{8,9} }} \) (\( N_{9} \) can be serviced only after \( N_{8} \) has been released), \( \widehat{{x_{2} }} = \widehat{{y_{9} }} + \widehat{{d_{9,2} }} \), \( \widehat{{x_{5} }} = \widehat{{y_{2} }} + \widehat{{d_{2,5} }} \), \( \widehat{{x_{1} }} = \widehat{{y_{5} }} + \widehat{{d_{5,1} }} \), \( \widehat{{x_{8} }} = \widehat{{xs_{1} }} + \widehat{{d_{1,8} }} - \widehat{T} \). These relations were used during the simulation. All of the histograms we obtained fall within the range of calculated OFN values (see Fig. 7). It should be underlined that in none of the simulated variants (1 000 000) did any congestion occur between the trains.

6 Concluding Remarks

The results of the tests demonstrate that the proposed approach provides formal framework enabling to formulate and solve both routing and scheduling problems. In other words, it allows to more realistically model the movement of human-driven vehicles and replaces the usually used computer simulation methods of route prototyping by analytical methods employing the OFN formalism. It is worth nothing that the proposed approach has yet another advantage of allowing to determine analytically the size of the vehicle fleet and a congestion-free routing that guarantee successful delivery of ordered goods.

Our future work is on finding sufficient conditions that would allow planners to reschedule Milk-run flows while guaranteeing smooth transition between two successive cyclic steady states corresponding to the current and rescheduled logistic train fleet flows.