Introduction

Production scheduling is a decision-making process that plays an important role in manufacturing and production systems. In the past decades, scheduling problems have been extensively investigated in single factory by exact method, heuristic and meta-heuristics. In recent years, production has shifted from single factory to multiple factories to quickly respond to market changes and customer demands and distributed scheduling in multiple factories has become the main topic of the current scheduling researches. A number of results have been obtained on distributed scheduling in various production environments [2,3,4, 21, 21].

Hybrid flow shop scheduling problems (HFSP) extensively exist in many manufacturing industries such as electronics, textile and semiconductor [41]. In recent years, distributed hybrid flow shop scheduling problem (DHFSP) has been successfully considered and some progresses are made. For DHFSP in homogeneous factories, Ying and Lin [51] studied DHFSP with multiprocessor tasks and presented a mixed integer programming model and a self-tuning IG to minimize makespan. Hao et al. [13] proposed a hybrid brain storm optimization algorithm to optimize makespan. Cai et al. [6] developed a dynamic SFLA with dynamic search process for DHFSP with multiprocessor tasks. Cai et al. [5] addressed bi-objective DHFSP and gave a shuffled frog-leaping algorithm with memeplex quality. Shao et al. [43] proposed a DNEH with smallest-medium rule and a multi-neighborhood IG to minimize makespan. Zheng et al. [54] provided a cooperative coevolution algorithm with problem-specific strategies by combining estimation of distribution algorithm and IG for fuzzy DHFSP. Li et al. [29] designed a discrete artificial bee colony algorithm for DHFSP with sequence dependent setup time. Regarding DHFSP in heterogeneous factories, Lei and Wang [21] presented a shuffled frog-leaping algorithm (SFLA) with memeplex grouping for distributed two-stage HFSP with the minimization of makespan and the number of tardy jobs. Cai et al. [7] presented a collaborative variable search to solve fuzzy distributed scheduling in two-stage hybrid flow shop with sequence-dependent setup time. Li et al. [28] presented an improved artificial bee colony algorithm for DHFSP. Wang and Wang [45] propose a bi-population cooperative memetic algorithm for solving DHFSP to minimize makespan.

As an important energy-efficient scheduling problem, energy-efficient HFSP plays an essential part in green manufacturing. In recent years, it has attracted much attention. Dai et al. [8] developed a genetic-simulated annealing algorithm to minimize makespan and total energy consumption. Luo et al. [34] presented a novel ant colony optimization for HFSP with the consideration on electricity consumption cost. Tang et al. [44] developed an improved particle swarm optimization for energy-efficient dynamic scheduling. Lin et al. [32] presented teaching-learning-based optimization (TLBO) for the integration of processing parameter optimization and HFSP with the minimization of makespan and carbon footprint. Yan et al. [50] proposed a multi-level optimization method for reducing the total energy consumption and makespan. Lei et al. [17] provided a novel TLBO to minimize total tardiness regarded as key one and total energy consumption. Li et al. [26] presented an energy-aware multi-objective optimization algorithm for HFSP with setup energy consumptions. Zeng et al. [52] applied a hybrid non-dominated sorting genetic algorithm-II for flexible flow shop scheduling with total electricity consumption and material wastage. Meng et al. [35] proposed an improved GA with a new energy-conscious decoding method. Li et al. [27] presented a two-level imperialist competitive algorithm.

In general, DHFSP exists in many real-world manufacturing situations like wafer production in more than one wafer fab and the consideration of DHFSP can result in greater improvements in production performances than that of HFSP in a single factory. It can be found that the previous works have the following three features.

(1) Homogeneous factories are frequently considered and heterogeneous factories are seldom handled. Because the former is an idea case and the latter extensively exits in the real-life production process, it is vital to investigate DHFSP in heterogeneous factories. (2) Energy-efficient HFSP has attracted much attention in single factory; however, the energy-related objective or constraints are hardly considered in DHFSP. Obviously, energy-saving of multiple factories production is more important than that of single factory production, so energy-efficient DHFSP should be studied fully. (3) Distributed scheduling with uncertainty attracted limited attention in hybrid flow shop [7, 54]. Uncertainty always exists in the real-life manufacturing process and is an unavoidable property of manufacturing process [1]. The obtained schedule may be invalid if uncertainty is neglected in scheduling problem; moreover, the negligence of uncertainty in multiple factories will produce more serious consequences than that in single factory. Thus, it can be concluded from the above analyses that it is important to study DEHFSP with uncertainty in heterogeneous factories.

In the past decade, fuzzy theory is often adopted in fuzzy scheduling to depict uncertainty and a number of works have been done on fuzzy scheduling problem [1, 16, 18, 25, 30, 31, 33, 47] in single factory and fuzzy distributed scheduling in multiple factories [7, 54]. Some works on DHFSP with fuzzy processing conditions are also done; however, the related researches are not performed fully.

SFLA is a meta-heuristic by observing, imitating and modelling the behavior of a group of frogs searching for a location with the maximum amount of available food [10]. It has fast convergence speed, effective algorithm structure containing local search and global information exchanges. SFLA has been used to handle parallel machine scheduling, flow shop scheduling and HFSP etc by discretization in single factory [11, 15, 22, 23, 37,38,39, 49, 53]. There are some applications of SFLA to distributed scheduling [6, 21]. Not only that, SFLA performs very well in solving other scheduling problems [46]. The optimization abilities and advantages of SFLA have been validated on scheduling problems.

In the previous works, memeplexes evolve independently after population is divided into s memeplexes and the cooperation between memeplexes is seldom considered based on the quality evaluation of memeplex. For example, the best memeplex often consists of good solutions and the worst memeplex has some worse solutions. The cooperation between these two memeplexes can avoid the waste of computing resources on the worst memeplex and make full use of good search ability of the best memeplex.

In this study, an cooperated shuffled frog-leaping algorithm (CSFLA) is proposed to address fuzzy DEHFSP in heterogeneous factories. The goal is to optimize fuzzy makespan and fuzzy total energy consumption and total agreement index simultaneously. In CSFLA, IG, VNS and global search (GS) are designed based on features of the problem and memeplex evaluation is done in terms of three quality indices: solution quality, evolution quality and contribution degree of archive; to improve search efficiency, an effective cooperation between the best memeplex and the worst memeplex is performed in search process of memeplexes and an adaptive population shuffling is presented. CSFLA is tested on a number of benchmark instances and compared with the methods from literature. The computational results demonstrate that the new strategies of CSFLA are effective and efficient and CSFLA can generate better results than its comparative algorithms.

The remained parts of the paper are organized as follows. Operations on fuzzy scheduling is described in the second section followed by problem description in third section. Introduction to SFLA is shown in fourth section. CSFLA for DEHFSP with fuzzy processing time is given in fifth section. Computational results and analyses are provided in sixth section. The conclusions are drawn and the future research topics are reported in the final section.

Table 1 Notations and descriptions

Operations on fuzzy number

Triangular fuzzy number (TFN) is often used to indicate the processing time in fuzzy scheduling because of its simple operations. Some operations include addition operation, the ranking methods of TFNs and max operation of two TFNs are needed to build a fuzzy schedule.

Addition is used to decide completion time of job. For TFNs \({\tilde{s}}=(s_1,s_2,s_3)\) and \({\tilde{t}}=(t_1,t_2,t_3)\), addition operation is performed by

$$\begin{aligned} {\tilde{s}}+{\tilde{t}}=\left( s_{1}+t_{1}, s_{2}+t_{2}, s_{3}+t_{3}\right) \end{aligned}$$
(1)

For \({\tilde{s}}\), \(c_1({\tilde{s}})=(s_1+2s_2+s_3)/4\), \(c_2({\tilde{s}})=s_2\), \(c_3({\tilde{s}})=s_3-s_1\).

Ranking of \({\tilde{s}}\) and \({\tilde{t}}\) is done according to the following conditions:

If \(c_1({\tilde{s}})>c_1({\tilde{t}})\), then \({\tilde{s}}>{\tilde{t}}\). If \(c_1({\tilde{s}})=c_1({\tilde{t}})\) and \(c_2({\tilde{s}})>c_2({\tilde{t}})\), then \({\tilde{s}}>{\tilde{t}}\). If \(c_i({\tilde{s}})=c_i({\tilde{t}})\), \(i=1,2\) and \(c_3({\tilde{s}})>c_3({\tilde{t}})\), then \({\tilde{s}}>{\tilde{t}}\).

Ranking is adopted to compare fuzzy objectives of solutions.

Max operation is applied to compute beginning time of job [16] and defined by

$$\begin{aligned} \mathrm{if} \ {\tilde{s}}>{\tilde{t}}, \mathrm{then} \ {\tilde{s}} \vee {\tilde{t}}={\tilde{s}}; \mathrm{otherwise}, {\tilde{s}} \vee {\tilde{t}}={\tilde{t}}, \end{aligned}$$
(2)

where \({\tilde{s}} \vee {\tilde{t}}\) denotes the larger one of \({\tilde{s}}\) and \({\tilde{t}}\).

Multiplication operation is applied to compute total energy consumption in this study. For TFN \({\widetilde{s}}=(s_1,s_2,s_3)\) and a constant \(\alpha \), multiplication operation is defined by

$$\begin{aligned} \alpha \times {\tilde{s}}=\left( \alpha \times s_1, \alpha \times s_2,\alpha \times s_3\right) . \end{aligned}$$
(3)

Problem description

DEHFSP with fuzzy processing time can be described as follows. There are n jobs distributed among F heterogeneous factories located in different sites. Each factory is a hybrid flow shop with m stages and there are \(w_{fl}\) unrelated parallel machines at stage l of each factory f. All jobs are available at time zero. Each machine \(M_{flk}\) exists two modes: processing mode and stand-by mode.

DEHFSP has some constraints on jobs and machines:

Each machine can process at most one operation at a time.

No jobs may be processed on more than one machine at a time.

Operations cannot be interrupted.

All machines are available at all times.

DEHFSP can be categorized into three sub-problems: factory assignment deciding a factory of each job, machine assignment and scheduling. There are strong coupling relationships among these sub-problems [6].

The mathematical model of DEHFSP with fuzzy processing time, which is extended from Wang and Wang [45], is as follows:

$$\begin{aligned}&\text {Maximize} \ \ \mathrm{TAI}=\sum \limits _{i = 1}^n \mathrm{A{\mathrm{I}_i}}, \end{aligned}$$
(4)
$$\begin{aligned}&\text {Minimize} \ \ {C}_{\max }=\max _{i=1,2, \ldots , n} {{\widetilde{C}}}_{i}, \end{aligned}$$
(5)
$$\begin{aligned}&\text {Minimize} \;\;\mathrm{TEC} = \sum \limits _{f = 0}^F {\sum \limits _{l = 0}^m {\sum \limits _{k = 0}^{{w_{fl}}} {\bigg (\sum \limits _{{J_i} \in {\varPhi _{flk}}} {{{{{\tilde{p}}}}_{iflk}}\left( {E_{flk}} - \mathrm{S}{\mathrm{E}_{flk}}\right) } } } } \nonumber \\&\qquad \qquad \qquad \qquad \qquad + \mathrm{S}{\mathrm{E}_{flk}} \times \mathop {\mathrm{max}}\limits _{{J_i} \in {\varPhi _{flk}}} \{ {{\widetilde{C}}_i}\} \bigg ), \end{aligned}$$
(6)
$$\begin{aligned}&\sum \limits _{f = 1}^F {{X_{if}}} = 1,\forall i, \end{aligned}$$
(7)
$$\begin{aligned}&\sum \limits _{k = 1}^{{w_{fl}}} {{Y_{iflk}}} = {X_{if}},\forall i,f,l, \end{aligned}$$
(8)
$$\begin{aligned}&{\widetilde{\mathrm{st}}}_{i1} \ge \{0,0,0 \},\forall i, \end{aligned}$$
(9)
$$\begin{aligned}&{\widetilde{\mathrm{st}}}_{i(l + 1)} \ge {\widetilde{\mathrm{et}}}_{il},\forall i,l, \end{aligned}$$
(10)
$$\begin{aligned}&{\widetilde{\mathrm{et}}}_{il} = {\widetilde{\mathrm{st}}}_{il} + \sum \limits _{f = 1}^F {\sum \limits _{l = 1}^{{w_{fl}}} {\left( {{{{\tilde{p}}}}_{iflk}} \times {X_{if}} \times {Y_{iflk}}\right) } } ,\forall i,l, \end{aligned}$$
(11)
$$\begin{aligned}&{Z_{ii'fl}} + {Z_{i'ifl}} \le 1,\forall f,l,i,i', \end{aligned}$$
(12)
$$\begin{aligned}&{Z_{ii'fl}} + {Z_{i'ifl}} \ge {Y_{iflk}} + {Y_{i'flk}} - 1,\forall f,l,i' > i, \end{aligned}$$
(13)
$$\begin{aligned}&{\widetilde{s}}t_{i'l} \ge {\widetilde{et}}_{il} - {\widetilde{U}} \times \left( 3 - {Y_{iflk}} - {Y_{i'flk}} - {Z_{ii'fl}}\right) , \nonumber \\&\forall i \ne i',f,l,k \in \{ 1,2,\ldots ,{w_{fl}}\}, \end{aligned}$$
(14)
$$\begin{aligned}&{X_{if}} \in \{ 0,1\} ,\forall i,f, \end{aligned}$$
(15)
$$\begin{aligned}&Y_{iflk} \in \{0,1\}, \forall i,f,l,k \in \{1,2,\ldots ,w_{fl} \}, \end{aligned}$$
(16)
$$\begin{aligned}&Z_{ii'fl}\in \{0,1\}, \forall i,i',f,l, \end{aligned}$$
(17)

where Eq. (4) is to maximize total agreement index; Eq. (5) is to minimize fuzzy makespan; Eq. (6) is to minimize fuzzy total energy consumption; constraint (7) indicates that each job is processed on only one factory; constraint (8) shows that each job can only be processed in one machine at every stage; constraint (9) demonstrates that each job can be processed after zero time; constraint (10) indicates that the start time of process at stage \(l+1\) is not earlier than the end time of process at stage l; constraint (11) shows that the process cannot be interrupted; constraint (12)–(14) demonstrate that each machine can only process one job at one time; constraint (15)–(17) give the binary decision variables.

Regarding TAI, it is the sum of \(\mathrm{AI}_i\) of all jobs. Agreement index is defined by Sakawa and Kubota [42] and used to define the degree of tardiness of \({\widetilde{C}}_i\) to due date \(\widetilde{d_i}\). Figure 1 shows fuzzy makespan, fuzzy due date and agreement index. \(\mathrm{AI}_i\) is defined by

$$\begin{aligned} \mathrm{AI}_i=\mathrm{area}\left( {{\widetilde{C}}_i}\cap \widetilde{d_i}\right) /\mathrm{area}\left( {{\widetilde{C}}_i}\right) \end{aligned}$$
(18)
Fig. 1
figure 1

A schedule of the example

With respect to TEC, for machine \(M_{flk}\), its completion time is equal to the sum of processing times of all jobs in \(\varPhi _{flk}\) plus the sum \(\mathrm{ID}_{flk}\) of idle time, that is,

$$\begin{aligned} \mathop {{ \mathrm max}}\limits _{{ J}_{ i} \in \varPhi _{flk} } \left\{ {{\widetilde{C}}_i } \right\} = \sum \limits _{{ J}_{ i} \in \varPhi _{flk} } {{{\tilde{p}}}_{iflk} } + \mathrm{ID}_{flk}. \end{aligned}$$
(19)

\(\mathrm{EC}_{flk}\) is energy consumption of \(M_{flk}\), Obviously,

$$\begin{aligned} \mathrm{EC}_{flk} = \sum \limits _{J_i \in \varPhi _{flk} } {{{\tilde{p}}}_{iflk} \times E_{flk} } +\mathrm{ID}_{flk} \times \mathrm{SE}_{flk}. \end{aligned}$$
(20)

TEC can be obtained after the above two equations are combined together and is adopted to avoid computing ID\(_{flk}\) because ID\(_{flk}\) is related to the subtraction of TFNs and difference between two TFNs is not TFNs frequently and hard to be obtained.

Introduction to SFLA

SFLA was first proposed by Eusuff et al. [10]. SFLA starts with an initial population P, in which each solution is represented as the position of a frog. Algorithm 1 shows the process of SFLA.

Population division is to divide the population into s memeplexes to form multiple sub-populations, which described as follows. All solutions are sorted in the descending order of fitness, then g-th solution is allocated into memeplex \( (g-1) ( \mathrm{mod} \ s)+1\), where \(g ( \mathrm{mod} \ s)\) indicates the remainder of \( g \big / s \) .

figure a

Memeplex search is the main process to find a better solution. Search within memeplex \({{{\mathcal {M}}}}_t\) is shown below. The following steps are repeated \(\eta \) times: an optimization object \(x_w\) is first chosen, then a new solution \(x'\) is produced by using \(x_w\) and \(x_b\) by Eq. 19, if the new one is better than \(x_w\), then replace \(x_w\) with \(x'\); otherwise, a solution \(x'\) is generated by Eq. 19 after \(x_g\) substitutes for \(x_b\), if \(x'\) has better fitness than \(x_w\), then \(x'\) becomes \(x_w\); otherwise, \(x_w\) is replaced with a randomly obtained solution, \(x_w\), \(x_b\) and \(x_g\) are the worst solution in memeplex, the best solution in memeplex and the best solution of P.

$$\begin{aligned} x'=x_w+\mathrm{rand}\times (x_b-x_w), \end{aligned}$$
(21)

where rand is a random number following uniform distribution in [0,1].

Population shuffling is done in the following way. All evolved memeplexes \({{{\mathcal {M}}}}_1,{{{\mathcal {M}}}}_2,\ldots ,{{{\mathcal {M}}}}_s\) are combined together and a new population is formed.

CSFLA for DEHFSP

In SFLA, search within memeplex is often executed independently and there are no considerations on cooperation between memeplexes. Cooperation may be an effective way to intensify search ability of SFLA. In CSFLA, all memeplexes are evaluated and sorted, and then cooperation between the best memeplex and the worst one is implemented and an adaptive population shuffling is done. We describe these strategies in the following sections.

Initialization and population division

DEHFSP is composed of three sub-problems: factory assignment, machine assignment and scheduling. A two-string representation is used. For DEHFSP with n jobs and F factories, a solution is denoted by a factory assignment string \(\left[ \theta _1,\theta _2,\ldots , \theta _n \right] \) and a scheduling string \(\left[ \pi _1, \pi _2, \ldots , \pi _n \right] \). \(\theta _i\in \left\{ {1, 2, \ldots , F} \right\} \) indicates the factory allocated for job \(J_i\), \(\pi _i \in \left\{ {1,2,\ldots ,n}\right\} \). Machine assignment is decided by a rule.

The decoding procedure is described below. All allocated jobs in each factory are decided according to factory assignment string and then permutation of these allocated jobs in each factory is obtained in terms of scheduling string, then for job permutation of each factory f, start with the first job, for each job \(J_i\) at stage l, choose a machine \(M_{flk}\) with minimum completion time and allocate \(J_i\) on \(M_{flk}\).

Table 1 gives an example of DEHFSP. A possible solutions is composed of [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1] and [20, 18, 5, 16, 15, 3, 14, 7, 19, 2, 8, 1, 17, 6, 11, 4, 10, 13, 9, 12]. Figure 1 describes the schedule of the solution.

Table 2 Fuzzy processing time for 20 jobs on 2 factories
Fig. 2
figure 2

A schedule of the example

Initial population P with N solutions is randomly produced.

Population division is implemented as follows. A population \({{\bar{P}}}\) is first constructed, then \(g=1\), binary tournament is performed repeatedly until \({{\bar{P}}}\) is empty: two solutions \(x,y\in {{\bar{P}}}\) are randomly chosen, if \(x\succ y\)(\(y\succ x\)), then add x(y) into memeplex \({{{\mathcal {M}}}}_g\), and delete x(y) from \({{\bar{P}}}\); otherwise, randomly choose one of x and y, add the chosen solution into \({{{\mathcal {M}}}}_g\) and remove it from \({\bar{P}}\). \(g=g+1\), \(g=(g-1) (\mathrm{mod} \ {\bar{s}})+1\).

\(x\succ y\) means x dominates y and is defined as follows: \(x\succ y\) if \(\mathrm{TAI}(x)\ge \mathrm{TAI}(y)\), \(C_\mathrm{max}(x)\le C_\mathrm{max}(y)\), \(\mathrm{TEC}(x)\le \mathrm{TEC}(y)\) and at least one objective, take TAI as an example, \(\mathrm{TAI}(x)> \mathrm{TAI}(y)\).

Initially, \({\bar{P}}=P\), \({\bar{s}}=s\).

Memeplex evalution

Memeplex evaluation is seldom adopted in the previous SFLAs [6, 21, 37]. In this study, three quality indices are used to evaluate and discriminate memeplexes.

For memeplex \({{{\mathcal {M}}}}_i\), its quality \(\mathrm{Me}_i\) is defined by

$$\begin{aligned} \mathrm{Me}_i=\mathrm{Evo}_i+\mathrm{Sol}_i+\mathrm{Con}_i. \end{aligned}$$
(22)

\(\mathrm{Evo}_i\) is defined by

$$\begin{aligned} \mathrm{Evo}_i = {{\sum \limits _{x \in {{{\mathcal {M}}}}_i } {{\bar{\lambda }} _x } } \big / {\lambda _x }}, \end{aligned}$$
(23)

where \({{\bar{\lambda }}}_{x}\) and \({\lambda _{x}}\) are the effective search times and search times of \(x\in {\mathcal {M}}_i\). When \(x\in {{{\mathcal {M}}}}_i\) is selected as optimization object of memeplex search, \({\lambda _{x}}={\lambda _{x}}+1\) if a new solution is generated, \({{\bar{\lambda }} _{x}}={{\bar{\lambda }} _{x}}+1\) if the new solution is not dominated by x, that is, the search of x is effective. \({{\bar{\lambda }}_{x}}\) and \({\lambda _{x}}\) are initialized to 0 before search process is done in each memeplex.

$$\begin{aligned} \mathrm{Sol}_i= & {} {{1 - \sum \limits _{x \in {{{\mathcal {M}}}}_i } {\mathrm{rank}_x } } \big / {\sum \limits _{y \in P} {\mathrm{rank}_y } }}, \end{aligned}$$
(24)
$$\begin{aligned} \mathrm{Con}_i= & {} {{\left| {\left\{ {x \in \varOmega \left| {x \in {{{\mathcal {M}}}}_i } \right. } \right\} } \right| } \big / {\left| \varOmega \right| }}, \end{aligned}$$
(25)

where \(\mathrm{rank}_x\) is rank of x obtained by non-dominated sorting [9] on population P.

s memeplexes are sorted in the descending order of \(\mathrm{Me}_i\). Suppose that \(\mathrm{Me}_1 \ge \mathrm{Me}_2 \cdots \ge \mathrm{Me}_s\), so \({{{\mathcal {M}}}}_1\) is the best memeplex and \({{{\mathcal {M}}}}_s\) is the worst one.

Cooperation-based memeplex search

Algorithm 2 describes the main steps of memeplex search. Obviously, memeplex \({{{\mathcal {M}}}}_s\) is just given search times \(\eta <\mu \) and \({{{\mathcal {M}}}}_1\) has more search times than \(\mu \).

figure b

In Algorithm 2, GS, IG and two VNS are used and described in the following. GS(xu) is described as follows. For a solution \(x\in {{{\mathcal {M}}}}_i\), randomly select a non-dominated solution \(y\in \mathcal{M}_i\), \(y\ne x\); stochastically pick a coding string in the same probability and produce a new z by crossover of the chosen string between xy; if z is not dominated by x, replace x and update \(\varOmega \) with z and update \({\mathcal {Q}}\) with x, otherwise, randomly decide a coding string in the same probability and generate a new z by crossover on the selected string between x and a randomly determined \(y\in \varOmega \); if z is not dominated by x, replace x and update \(\varOmega \) with z and update \({\mathcal {Q}}\) with x, otherwise randomly produce a solution z; if x keeps invariant, \(u=u+1\), where the set \({\mathcal {Q}}\) is used to store some intermediate data and can be regarded as memory of CSFLA.

Crossover between xy is performed in the following way. Randomly decide \(k_1,k_2,k_1<k_2\), decide jobs between \(k_1\) and \(k_2\) on the chosen string of y; if the chosen one is scheduling string, then adjust relative sequence of these jobs on x according to their sequence on y; if the chosen one is factory assignment string, then all genes of x between \(k_1\) and \(k_2\) are replaced with those of y on the same position.

IG(xu) is shown below. For a solution \(x\in {{{\mathcal {M}}}}_i\), a new solution z is first obtained by the following steps: determine one objective randomly, for example, \(C_\mathrm{max}\), and choose a factory which has the worst objective value; stochastically select jobs \(\pi _i\), \(\pi _j\) from the chosen factory and delete them from scheduling string, compute the chosen objective value using the remained jobs; reinsert jobs \(\pi _i\) and \(\pi _j\) one by one into a position with the smallest value of the chosen objective among all possible new positions; then if \(x\succ z\), update memory \(\mathcal{Q}\) and \(u=u+1\); else replace x and update \(\varOmega \) with z.

Three neighborhood structures are used in VNS1 and VNS2. \({{{\mathcal {N}}}}_1\) is shown below. Select a factory \(f_1\) with the biggest completion time and a factory \(f_2\) with the smallest completion time; randomly select a job \(\pi _i\) from factory \(f_1\) and a job \(\pi _j\) from factory \(f_2\) on position \(k_2\) of scheduling string, insert \(\pi _i\) into position \(k_2-1\) on scheduling string and let \(\theta _{\pi _i}=\theta _{\pi _j}\). If \(k_2=1\), then \(\pi _i\) is deleted and then directly inserted on position 1.

\({{{\mathcal {N}}}}_2\) is described as follows. Decide factories \(f_1,f_2\) as done in \({{{\mathcal {N}}}}_1\), then randomly decide a job \(\pi _i\) from factory \(f_1\) and a job \(\pi _j\) from factory \(f_2\), and exchange them on scheduling string and swap \(\theta _{\pi _i}\) and \(\theta _{\pi _j}\) on factory assignment string. \({{{\mathcal {N}}}}_3\) is described below. Stochastically choose positions \(k_1,k_2,k_3, 1\le k_1<k_2<k_3\le n\), on two strings of a solution, genes between \(k_1\) and \(k_2-1\) and those between \(k_2\) and \(k_3\) are exchanged.

In IG, \({{{\mathcal {N}}}}_1\) and \({{{\mathcal {N}}}}_2\), factories are not randomly chosen and selected with the worst objective value or the best objective value, the movement of jobs in the chosen factory or between the selected factories can lead to the improvement of the chosen objective in a high probability, as a result, a new solution can be obtained easily because of the above features, which is non-dominated with the current solution at least.

VNS1(xu) is performed below. \(g=1\), \(e=1\), repeat the following steps: produce \(z\in {{{\mathcal {N}}}}_g(x)\), if \(x\succ z\), then update memory \({{{\mathcal {Q}}}}\) with z and \(g=g+1\); else \(g=1\), replace x and update \(\varOmega \) with z. \(e=e+1\) until \(g>3\) or \(e\ge R\).

VNS2(x) is described in Algorithm 3.

figure c

\(\varOmega \) is updated as follows. z is added to \(\varOmega \) and all solutions in \(\varOmega \) are compared based on Pareto dominance, then all dominated solutions are removed. The same way is also used to update \({\mathcal {Q}}\) with z.

In Algorithm 2, IG, GS and two VNS are used in a flexible way, as a result, their search advantages can be used fully and exploration ability is intensified; on the other hand, \(\eta =2\times \mu \times \mathrm{Me}_s/(\mathrm{Me}_1+\mathrm{Me}_s)<\mu \) for \(\mathrm{Me}_s<\mathrm{Me}_1\), that is, the search times of \({{{\mathcal {M}}}}_s\) is less than \(\mu \), the remained \(\mu -\eta \) times are provided for the best memeplex \({{{\mathcal {M}}}}_1\) and VNS2 acts on a non-dominated solution of \({{{\mathcal {M}}}}_1\) and new solutions are used to update \({{{\mathcal {M}}}}_s\). This is an effective cooperation between the worst memeplex \({{{\mathcal {M}}}}_s\) and the best memeplex \({{{\mathcal {M}}}}_1\) by exchanging search times of \({{{\mathcal {M}}}}_s\) and search ability of \(\mathcal{M}_1\).

Algorithm description

figure d

CSFLA is shown in Algorithm 4. The initial \(\varOmega \) is composed of the non-dominated solutions in initial P. The initial \({{{\mathcal {Q}}}}\) is empty.

Adaptive population shuffling is done in the following way. Let \({\bar{P}}\) be empty, all memeplexes \({{{\mathcal {M}}}}_i\) meeting \(Evo_i\le \gamma \) are added into \({\bar{P}}\) and then all solutions \({{{\mathcal {Q}}}}\) are added into \(\bar{P}\); finally, non-dominated sorting is performed on all solutions in \(\bar{P}\) and the first \(N\times \bar{s}/s\) solutions are only kept, where \(\gamma \) is a real number and set to be 0.5 by experiments.

CSFLA has the following features. (1) Memeplex is evaluated according to solution quality, evolution quality and contribution degree for archive. All memeplexes are sorted in terms of quality. (2) An effective cooperation between the best memeplex and the worst memeplex is implemented. (3)Memeplexes for shuffling are selected in an adaptive way and combined with \({{{\mathcal {Q}}}}\) to form a new population.

Computational experiments

All experiments are implemented using Microsoft Visual C++ 2019 and run on 8.0 G RAM 2.4 GHz CPU PC.

Test instances, comparative algorithms and metrics

Extensive experiments are conducted on 80 instances to test the performances of CSFLA for DEHFSP. 80 instances are randomly produced and the basic information are shown in Table 3. TFN \({\widetilde{p}}_{iflk}=\left( \delta _1\times {p'_{iflk}}, p'_{iflk},\delta _2\times {p'_{iflk}}\right) \), where \(p'_{iflk}\in [60,80]\), \(\delta _1\in [0.85,1]\) and \(\delta _2\in [1,1.3]\). Fuzzy due date \({\widetilde{d}}_i=\left( d'_i, \delta _2\times d'_i\right) \), where \(d'_i\in [(n/F+m-1)\times 80, m\times 80]\). \(w_{fl}\in [1,3]\). \(E_{flk}\in [2,4]\). \(\mathrm{SE}_{flk}=1\). All the above data are integers except that \(\delta _1\) and \(\delta _2\) are real number.

Table 3 Information of 80 instances

Four comparative algorithms are chosen, which are multi-objective tabu search method (MOTS, [48]), multi-objective colonial competitive algorithm (MO-CCA, [14]), multi-objective adaptive large neighborhood search (MOALNS, [40]) and cooperative coevolution algorithm (CCA, [54]). Two variants of CSFLA are also compared with CSFLA to show the effect of new strategies of CSFLA.

MOTS is used to solve two-stage hybrid flow shop with preventive maintenance. It starts from some non-dominated solutions and generates a set of neighborhood solutions for each starting solution. MOTS can be applied to handle DEHFSP after coding string on maintenance is replaced by factory assignment string, neighborhood structure of maintenance is deleted and a neighborhood structure is added, in which a \(\theta _i\) is randomly selected from factory assignment string and assigned a new value.

MOCCA is proposed for solving HFSP with the minimization of makespan and total weighted tardiness and has good performance. It can be directly applied to solve DEHFSP after a factory assignment string is added and then VNS1 and GS are used instead of the original VNS and crossover between colony and its imperialist.

MOALNS is dedicated to deal with distributed reentrant permutation flow shop scheduling problem with three objectives. MOALNS can be used to solve DEHFSP after cost and tardiness are replaced with TEC and TAI.

CCA is presented to address multi-objectives DHFSP with fuzzy processing times and some different objectives from our DEHFSP and can be directly used to dispose DEHFSP, so it is chosen as a comparative algorithm.

We construct two variants of CSFLA, which are SFLA1 and SFLA2. When memeplex cooperation is moved from CSFLA, SFLA1 is obtained. The comparison between CSFLA and SFLA1 is to show the effect of cooperation. When shuffling is done in SFLA in the fourth section, SFLA2 is obtained. The comparison between CSFLA and SFLA2 is to reveal the impact of adaptive population shuffling.

Three metrics \({\mathcal {C}}\) [55], \(\rho _l\) [24] and inverted generational distance (IGD, [12, 36]) are applied to evaluate the performances of algorithms.

Metric \({\mathcal {C}}\) is used to measure the dominance relationship between the non-dominated solution sets of L and B. \({\mathcal {C}}(L,B)\) measures the proportion of members of B which are dominated by that of L.

$$\begin{aligned} {\mathcal {C}}(L, B)=\frac{|\{b \in B : \exists l \in L, l \succ b\}|}{|B|}. \end{aligned}$$
(26)

Metric \(\rho _{l}\) indicates the ratio of number of the elements in the set \(\{x \in \varOmega _{l} | x \in \varOmega ^{*}\}\) to \(\left| \varOmega ^{*}\right| \). The larger the value of \(\rho _l\), the more members that \(\varOmega _l\) provides for \(\varOmega ^{*}\). \(\rho _l=1\) indicates that all solutions of \(\varOmega ^{*}\) are provided by \(\varOmega _l\).

IGD mainly used to measure the distance between the solution set \(\varOmega _A\) of algorithm A and the reference set \(\varOmega ^{*}\). The smaller the value of IGD, the better the overall performance of algorithm A.

$$\begin{aligned} \mathrm{IGD}({\varOmega _A},{\varOmega ^*}) = \frac{1}{{\left| {{\varOmega ^*}} \right| }}\sum \limits _{x \in {\varOmega ^*}} {\mathop {\min }\limits _{y \in {\varOmega _A}} d(x,y)}, \end{aligned}$$
(27)

where d(xy) is the Euclidean distance between solution x and y by normalized objectives.

Table 4 Parameters and their levels
Table 5 The orthogonal array \(L_{16}\left( 4^{4}\right) \)
Fig. 3
figure 3

Main effects plot for means and main effects plot for S/N ratios

Parameter settings

CSFLA has five main parameters: stopping condition, N, s, \(\mu \), R. We set \(0.1\times n \times m\) CPU time as stopping condition. We found that CSFLA, its two variants and four comparative algorithms can converge well when the above time reaches, so we first choose \(0.1\times n \times m\) CPU time as stopping condition.

Taguchi method is used to decide settings of other parameters. Instances 1, 50 and 80 are selected. The same settings can be obtained using these instances, so we only exhibit the results on instance 50.

Table 4 lists the levels of each parameter and Table 5 gives the orthogonal array \(L_{9}\left( 3^{3}\right) \). CSFLA runs 10 times independently for instance 50. The results of IGD and S/N ratio are shown in Fig.  3, in which S/N ratio is defined as \(-10 \times \log _{10}\left( \mathrm{IGD}^{2}\right) \). As shown in Fig.  3, the best setting is \(N=60\), \(s=6\), \(\mu =100\) and \(R=20\).

All parameters of MOTS, MOCCA, MOALNS and CCA are directly selected from Wang and Liu [48], Karimi and Davoudpour [14], Rifai et al. [40] and Zheng et al. [54] except the stopping condition. Parameters of SFLA1 and SFLA2 are identical with those of CSFLA.

Results and analyses

Each algorithm randomly runs 10 times for each instance. The reference set \(\varOmega ^* \) is composed of the non-dominated solutions in \(\bigcup \nolimits _{i = 1}^6 {\varOmega _i } \), where \(\varOmega _1, \varOmega _2, \varOmega _3\), \(\varOmega _4\), \(\varOmega _5\) and \(\varOmega _6\) are non-dominated solutions of CSFLA, MOTS, MOCCA, MOALNS, SFLA1 and SFLA2 obtained in 10 runs. Tables 6, 7, 8 and 9 report the results of all algorithms, in which symbol ‘Ins’ indicates instance and ‘CS’, ‘MT’, ‘MC’, ‘MA’, ‘C’, ‘S1’ and ‘S2’ represent CSFLA, MOTS, MOCCA, MOALNS, CCA, SFLA1 and SFLA2. Figure 4 exhibits box plot of all algorithms on \(\rho \), \({{\mathcal {C}}}\) and IGD. Figure 5 provides the distribution of non-dominated solutions of algorithms on instances 32 and 68, in which \(c_1(C_\mathrm{max})\), \(c_1(\mathrm TEC)\) and TAI are used.

As shown in Tables 6, 8 and 9, CSFLA obtains smaller IGD than SFLA1 on 79 instances and it also has smaller \({{{\mathcal {C}}}}(\mathrm{S1,CS})\) than \({{{\mathcal {C}}}}(\mathrm{CS,S1})\) on 79 instances; moreover, \({{{\mathcal {C}}}}(\mathrm{CS,S1})\) is equal to 1 on 49 instances, that is, all solutions of SFLA1 is dominated by non-dominated solutions of CSFLA. Similarly, \(\rho \) of CSFLA is more than that of SFLA1 on all instances and equal to 1 on 14 instances, that is, all members of the reference set \(\varOmega ^*\) are provided by CSFLA. CSLFA performs notably better than SFLA1. This conclusion also can be obtained from Figs. 4 and 5. The same conclusion can be obtained by comparing CSFLA with SFLA2. The notable performance differences between CSFLA and its two variants reveal that cooperation and adaptive population shuffling really have positive impact on the performances of CSFLA.

As illustrated in Tables 7 and 9, solutions of MOTS are always far away from those of CSFLA on 79 instances because IGD of CSFLA is less than that of MOTS and \({\mathcal {C}}(\mathrm{CS, MT})\) is equal to 1 on 45 instances; CSFLA produces smaller IGD than MOCCA and obtains bigger \({\mathcal {C}}(\mathrm{CS, MC})\) than \({\mathcal {C}}(\mathrm{MC, CS})\) on all instances;

IGD of CSFLA is smaller than CCA on 68 instance and \({\mathcal {C}}(\mathrm{C, CS})\) is less than \({\mathcal {C}}(\mathrm{CS, C})\) on 71 instances, and it can be seen that MOALNS performs significantly worse than CSFLA on metrics IGD and \({\mathcal {C}}\) on all instances. On the other hand, \(\rho \) of CSFLA is more than that of its all comparative algorithms on 79 instances, that is, most of the solutions of \(\varOmega ^*\) are provided by CSFLA. Obviously, CSLFA performs notably better than its four comparative algorithms. The same conclusion also can be drawn from box plot in Figs. 4 and 5.

Table 6 Comparison results of CSFLA, SFLA1 and SFLA2 on metric \({{\mathcal {C}}}\)
Table 7 Comparison results of CSFLA, SFLA1 and SFLA2 on metric \({{\mathcal {C}}}\)
Table 8 Comparison results of CSFLA, SFLA1, SFLA2, MOTS, MOCCA, MOALNS, CCA on metric \(\rho \)
Table 9 Comparison results of CSFLA, SFLA1, SFLA2, MOTS, MOCCA, MOALNS, CCA on metric IGD
Fig. 4
figure 4

Box plot of metric \(\rho \), \({\mathcal {C}}\) and IGD

Fig. 5
figure 5

The distribution of non-dominated solutions

The promising performances of CSFLA mainly result from its cooperation between memeplexes and adaptive shuffling. With the addition of cooperation, the waste of computing resource on the worst memeplex is avoided and the good search ability of the best memeplex is used fully. Adaptive shuffling can keep the stability of solution structure in some memeplexes with good evolution quality. These strategies can effectively keep high diversity and avoid search falling local optima; thus, it can be concluded that CSFLA is a competitive method for solving DEHFSP with fuzzy processing time.

Conclusion

In real-world manufacturing systems, energy consumption, uncertainty and multi-objective optimization are often required to be considered simultaneously. This paper aims to solve DEHFSP with fuzzy processing time and apply a new algorithm named CSFLA to optimize fuzzy makespan, total agreement index and fuzzy total energy consumption simultaneously. In SFLA, three search strategies named IG, GS and VNS are designed based on problem-related features. After memeplexes evaluation, the best memeplex and the worst memeplex cooperate each other through exchanging search times and search ability. An adaptive shuffling is adopted to improve search efficiency. The performances of CSFLA are tested and the computational results show that CSFLA is a promising method to solve the considered DEHFSP.

In the near future, we will continue to study scheduling problems of distributed hybrid flow shop. Swarm intelligence optimizations are also the focus of our attention and we will try to carry out effective labor division and collaboration among multiple groups. We will also pay attention to DHFSP with some special constraints like distributed assembly hybrid flow shop scheduling problem.