1 Introduction

This paper addresses the scheduling of N available jobs on M unrelated machines (RM) using a novel Worm Optimization algorithm (WO) that emulates the worms’ behaviors and an objective of minimizing the makespan, Cmax, without preemption.

With its negligible neurons (only 3.02e−7% of human brain neurons), the worm remarkably is able to realize critical survival activities, especially in relation to switching between social and solitary food searching, locating nutrients, evading unhealthy food, varying between “roaming—global search” and “dwelling—local search”, and converting from a reproductive stage to a declining one. WO was first introduced in Arnaout (2016) for the traveling salesman problem, where it was compared to ant colony system (ACS), particle swarm optimization (PSO), and genetic algorithm (GA). The computational tests indicated that WO outperformed the algorithms in all problems, as well as attained the optimal solution in all cases. In a later study, Arnaout (2017) developed a WO for the Multiple Level Warehouse Layout Problem and compared it to GA and ACO. The results showed that WO performed better than the other algorithms, especially in large problems.

In the Unrelated Parallel Machine Scheduling Problem (PMSP), the jobs’ processing times (Pik: Processing time for job i on machine k) depend on the machine to which they are assigned, and there is no relationship between machine speeds. We consider in this paper sequence-dependent setup times Sijk where the time necessary to set up for two consecutive jobs i and j on machine k may be different if i and j are reversed (i.e. Sijk ≠ Sjik). We also address a more generic form of the problem by assuming that the setup times are machine-dependent (i.e., each machine has its own matrix of N × N setup times). We refer to this problem hereafter as RM|Sijk|Cmax. The identical parallel machine scheduling problem PMCmax, which is simpler special case of RM|Sijk|Cmax, is an NP-hard even when M = 2 (Karp 1972; Garey and Johnson 1979). Subsequently, the latter is also NP-hard; i.e. it is computationally impractical to solve using exact approaches, and heuristic algorithms are more appropriate.

The related literature describes several algorithms for the PMSP but without considering the setup time, where fewer works were conducted. For extensive literature about the problem without setup time, the reader can refer to Arnaout et al. (2010, 2014). Having said that, Al-Salem (2004) introduced the Partitioning Heuristic (PH) to solve large instances of RM|Sijk|Cmax and so did Helal et al. (2006) who developed a tabu search TS for the same problem and demonstrated that it performed better than the PH. In Rabadi et al. (2006), the authors solved the problem using a heuristic called Meta-Heuristic for Randomized Priority Search (Meta-RaPS) and showed that their heuristic outperformed the PH. Arnaout et al. (2010) introduced a two-stage Ant Colony Optimization (ACO) for RM|Sijk|Cmax and showed its superiority over PH (Al-Salem 2004), TS (Helal et al. 2006) and Meta-RaPS (Rabadi et al. 2006). Ying et al. (2012) developed for the same problem Simulated Annealing (SA) and restrictive simulated annealing (RSA) algorithms. The latter employs a restricted search strategy to eliminate ineffective job moves for finding the best neighbourhood solution. The authors compared their algorithms to the ACO in Arnaout et al. (2010) using the same data sets, and their results indicated the superiority of their algorithms, with RSA performing significantly better than SA. Chang and Chen (2011) developed a set of dominance properties with Genetic Algorithms, introduced a new metaheuristic and reported efficient solutions. Eroglu et al. (2014) proposed a genetic algorithm (GA) for the same problem, and their solutions show that it outperformed ACO (Arnaout et al. 2010) in most combinations as well as the metaheuristic developed by Chang and Chen (2011). Finally, Lin and Ying (2014) presented a hybrid artificial bee colony (HABC) for the problem and showed that it outperformed the best-so-far algorithms such as ACO, TS, RSA, and Meta-RaPS.

Recent works also dealt with the same problem from an exact, heuristic and hybrid perspectives. Wang et al. (2016) presented a hybrid estimation of distribution algorithm (EDA) with iterated greedy (IG) search (EDA-IG), and compared it to former GAs. The authors also proposed a probability model that is based on the neighbor relations of the jobs, in order to assist the proposed algorithm to generate new solutions by sampling a promising search region. An immune-inspired algorithm was proposed by Diana et al. (2015). The authors generated the initial population using the Greedy Randomized Adaptive Search Procedure (GRASP), used Variable Neighborhood Descent (VND) as local search heuristic, and proposed a population re-selection operator. The authors noted that their algorithm performed better than some of the existing ones in the literature. Avalos-Rosales et al. (2015) proposed a new makespan linearization and several mixed integer formulations for this problem, and noted that these models are able to solve larger instances and in a faster computational time. The authors also proposed a metaheuristic algorithm based on multi-start algorithm and VND. The algorithm’s performance was improved using composite movements for the improvement phase. Ezugwu et al. (2018) developed an improved symbiotic organisms search (SOS) algorithm with a new solution representation and decoding procedure to make it suitable for the combinatorial aspect of the problem at hand. The authors adapted the longest processing time first (LPT) rule to design a machine assignment heuristic that assigns processing machines to jobs based on the machine dynamic load-balancing mechanism. The heuristic scheme was incorporated into SOS, which led to improved results.

Due to space and scope limitations, we will not address in this paper the large body of knowledge related to the problem at hand with different objectives and constraints. In the latter case, the reader can refer to Allahverdi (2015) for a detailed review.

We develop in this paper a WO algorithm to find high quality solutions for RM|Sijk|Cmax. Its performance is evaluated by comparing its solutions to the ones generated by TS in Helal et al. (2006), ACO in Arnaout et al. (2010), RSA in Ying et al. (2012), GA in Eroglu et al. (2014), and ABC/HABC in Lin and Ying (2014). All instances and solutions for the addressed problem are available at SchedulingResearch.com.

2 Worm optimization

As introduced in Arnaout (2016), WO simulates the worm’s behaviors by mimicking its ability to find food, avoid toxins, search in groups or independently, fluctuate between local and global exploration, and convert from a reproductive stage to a declining one. In order to solve an optimization problem using WO, the problem must be represented as a graph (nodes and arcs), where the worm will move from one node to another in order to create a solution.

WO starts by depositing pheromone (\( \tau_{ij} \)) on all the arcs in the graph. Initially, the worms are social, where the neuron RMG responsible of the foraging behavior (Social “1” or Solitary “0”) is initialized to 1. Under Social behavior, the worms move between nodes based on a greedy rule and an attraction to the pheromone. This behavior is similar to the one exhibited by ants in ant colony optimization (Dorigo and Gambardella 1997), coupled with a unique attribute for worms, which is toxins avoidance. In particular, a social worm t will move between nodes i and j following the probability in (1):

$$ P_{ij}^{t} = \frac{{\tau_{ij}^{{}} \eta_{ij}^{\beta } A\!D\!F_{ij} }}{{\sum\nolimits_{h \in \varPsi } {\tau_{ih} \eta_{ih}^{\beta } A\!D\!F_{ih} } }} , $$
(1)

where \( \eta_{ij} \) refers to the greedy rule,\( A\!D\!F_{ij} \) is the bad solution factor for toxins avoidance, \( \varPsi \) is the set of unvisited nodes, and \( \beta \) is the exponent that determines the importance of the pheromone amount over the greedy rule.

Every iteration consists of a group of worms, Worms, completing their path through the network, with the cost of every worm path calculated. In addition, every worm upon completion of its path, has a probability of conducting local search (dwelling). At the end of the iteration, the arcs belonging to the best worm are updated by increasing their pheromone using Eq. (2), and the arcs of the worst worm are updated by decreasing their pheromone (Eq. (3)) as well as potentially adding the worm’s path to the bad solutions’ list (ADF).

$$ \begin{array}{*{20}c} {\tau_{ij} \leftarrow \tau_{ij} \times \left( {1 + \rho } \right)} & {if\,arc\,(i,j)\,is\,used\,by\,\,BestWorm} \\ \end{array} $$
(2)
$$ \begin{array}{*{20}c} {\tau_{ij} \leftarrow \tau_{ij} \times \left( {1 - \rho } \right)} & {if\,arc\,(i,j)\,is\,used\,by\,\,WorstWorm} \\ \end{array} $$
(3)
$$ {\text{where}}\,\,\rho = \frac{WorstWorm - BestWorm}{BestWorm} $$

If the solution does not improve after a predefined number of iterations (BestIter), the worms will shift to a solitary foraging behavior by setting RMG to 0. Under solitary search, worms behave as the opposite of a social one; i.e. they randomly move between nodes and are repelled by pheromone.

Finally, the number of worms as well as the solution improvement are analyzed at the end of every iteration, following which WO interchanges between a propagative phase (where more worms are produced) and a declining phase, referred to as Dauer (where the number of worms is decreased).

2.1 Solving the R M|S ijk|C max using WO

RM|Sijk|Cmax is modeled using two stages, with a separate pheromone trail and ADF for each. Jobs are assigned to machines in the first stage, and their sequence on each machine is determined in the second stage. As highlighted earlier, WO starts with a social foraging behavior (RMG = 1), and will alternate to a solitary one (RMG = 0) after BestIter iterations without improvement. This oscillation between social and solitary is repeated until WO terminates.

In the first stage, WO assigns job j to the kth machine, according to the pheromone trail \( \tau_{jk}^{I} \), the visibility amount \( \eta_{jk}^{I} \), and the bad solution factor \( ADF_{jk}^{I} \). The visibility of this stage is shown in Eq. (4), in which for social worms, \( \eta_{jk}^{I} \) favours the allocation of a machine that takes the least processing time of job j where Pjk refers to the processing time of job j on machine k; i.e. social worms follow a greedy rule. On the other hand, for solitary worms, an equal amount is given to all machines, to ensure a random dispersion of worms.

$$ \eta_{jk}^{I} = \left\{ {\begin{array}{ll} {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {P_{jk} }}}\right.\kern-0pt} \!\lower0.7ex\hbox{${P_{jk} }$}},} \hfill &\quad { if\, social \,worm;} \hfill \\ {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 M}}\right.\kern-0pt} \!\lower0.7ex\hbox{$M$}},} \hfill &\quad { if\,solitary\, worm} \hfill \\ \end{array} } \right. $$
(4)

Next, worm t assigns job j to machine k according to the probability in Eq. (5). As can be seen, solitary worms are repelled by pheromone \( \left( {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\tau_{jk}^{I} }}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\tau_{jk}^{I} }$}}} \right) \) while social ones are lured to it.

$$ \varPi_{jk}^{t,I} = \left\{ {\begin{array}{*{20}l} {\frac{{\left( {\tau_{jk}^{I} } \right).\left( {\eta_{jk}^{I} } \right)^{\beta } .\left( {ADF_{jk}^{I} } \right)}}{{\mathop \sum \nolimits_{h\varPsi } \left( {\tau_{jh}^{I} } \right).\left( {\eta_{jh}^{I} } \right)^{\beta } .\left( {ADF_{jh}^{I} } \right)}},} \hfill & {if\, social\, worm;} \hfill \\ {\frac{{\left( {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\tau_{jk}^{I} }}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\tau_{jk}^{I} }$}}} \right).\left( {\eta_{jk}^{I} } \right)^{\beta } .\left( {ADF_{jk}^{I} } \right)}}{{\mathop \sum \nolimits_{h\varPsi } \left( {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\tau_{jh}^{I} }}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\tau_{jh}^{I} }$}}} \right).\left( {\eta_{jh}^{I} } \right)^{\beta } .\left( {ADF_{jh}^{I} } \right)}},} \hfill & {if\, solitary \,worm} \hfill \\ \end{array} } \right. $$
(5)

Following the assignment of jobs to machines in Stage 1, the jobs’ sequence is determined in Stage 2. In particular, the probability for job j to be processed after job i on machine k is given in Eq. (6) and the greedy rule is calculated using Eq. (7), where \( J_{k} \) refers to the number of jobs assigned to machine k. In the case of social worms, the greedy rule’s rationale is to give more priority to the job that takes the least amount of setup time after processing job i on machine k. Again, a random dispersion is given to the solitary worms.

$$ \varPi_{ij}^{{k^{t,II} }} = \left\{ {\begin{array}{*{20}l} {\frac{{\left( {\tau_{ij}^{{k^{II} }} } \right).\left( {\eta_{ij}^{{k^{II} }} } \right)^{\beta } .\left( {ADF_{ij}^{{k^{II} }} } \right)}}{{\mathop \sum \nolimits_{h\varPsi } \left( {\tau_{ih}^{I} } \right).\left( {\eta_{ih}^{{k^{II} }} } \right)^{\beta } .\left( {ADF_{ih}^{{k^{II} }} } \right)}},} \hfill & { if \,social \,worm;} \hfill \\ {\frac{{\left( {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\tau_{ij}^{{k^{II} }} }}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\tau_{ij}^{{k^{II} }} }$}}} \right).\left( {\eta_{ij}^{{k^{II} }} } \right)^{\beta } .\left( {ADF_{ij}^{{k^{II} }} } \right)}}{{\mathop \sum \nolimits_{h\varPsi } \left( {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {\tau_{ih}^{{k^{II} }} }}}\right.\kern-0pt} \!\lower0.7ex\hbox{${\tau_{ih}^{{k^{II} }} }$}}} \right).\left( {\eta_{ih}^{{k^{II} }} } \right)^{\beta } .\left( {ADF_{ih}^{{k^{II} }} } \right)}},} \hfill & {if\, solitary \,worm} \hfill \\ \end{array} } \right. $$
(6)
$$ \eta_{ij}^{{k^{II} }} = \left\{ {\begin{array}{*{20}l} {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {s_{ijk} }}}\right.\kern-0pt} \!\lower0.7ex\hbox{${s_{ijk} }$}},} \hfill & {if\, social\, worm;} \hfill \\ {{\raise0.7ex\hbox{$1$} \!\mathord{\left/ {\vphantom {1 {J_{k} }}}\right.\kern-0pt} \!\lower0.7ex\hbox{${J_{k} }$}},} \hfill & {if \,solitary \,worm} \hfill \\ \end{array} } \right. $$
(7)

After each worm finishes its path, the latter cost (\( C_{max} \)) is calculated. Tables 1 and 2 provide sample outputs of Stage 1 and Stage 2, respectively, for a problem with 10 jobs (N = 10) and 4 machines (M = 4). In particular, Table 1 shows a one-dimensional array of size N cells. Each cell is populated by the job-machine assignment where the index of the array represents the machine number to which a job in the array cell is assigned; i.e. jobs 1, 5, and 10 are assigned to machine 1, jobs 3 and 6 to machine 2, etc. Table 2 shows a two-dimensional array of size \( \left( {M \times N} \right) \), where extending on Table 1, job 5 is sequenced first on machine 1, followed by job 1 then job 10, job 3 is sequenced first on machine 2, followed by job 6, and so on.

Table 1 Stage 1 output
Table 2 Stage 2 output

2.1.1 WO local search: dwelling

For every worm in an iteration, and once it completes its path and generates a \( C_{max} \) value, the probability to conduct a local search is determined according to amphid interneuron (AIY), which refers to the ratio of local search. In particular, a random variable is generated, and if its value is less than or equal to AIY, the worm will conduct local search. A simple swapping rule is used for the local search, where two jobs from the worm path are randomly chosen and their positions are interchanged. Extending on the example in Tables 2 and 3 shows three different solutions obtained using local search.

Table 3 Local search examples

2.1.2 WO bad solution list (ADF)

Once all Worm in a particular iteration complete their path, WO captures the solutions of the BestWorm and WorstWorm. The latter’s solution is added to the ADF list if it meets the criteria highlighted in this section.

The following must be defined for the Bad Solution List: (\( ADFList_{{\sqrt {Worm} ,M \times N + 1}} \)), which stores the inferior solutions. The list is dynamic as it stores \( \sqrt {Worm} \) solutions, where \( Worm \) is changing from one iteration to another depending on the dauer status (reproductive versus declining population). The reason behind \( \sqrt {Worm} \) is not to burden WO’s computational load. \( \left( {M \times N} \right) \) is needed to store in each row (machine) a job sequence of size N. The last entry \( \left( {M \times N + 1} \right) \) is needed to store the WormCost (\( C_{max} \)). \( ADFList \) is also linked to two arrays, \( ADF_{jk}^{I} \) and \( ADF_{ij}^{{k^{II} }} \) (one for each stage). Once a solution is added to the list, its associated arcs are updated following \( ADF_{jk}^{I} = ADF_{ij}^{{k^{II} }} = \lambda \), where \( \lambda \) is the bad solution factor that ensures that the probability of these arcs to be reassigned is reduced. As an example, assuming that the solution presented in Table 2 was the one for WorstWorm in an iteration with \( C_{max} = 8000 \), then it will be added as a row to \( ADFList \) as shown in Table 4.

Table 4 ADFList representation

The pseudo code for the ADF modeling is shown below:

  • Step 1: Sort ADFList in the descending order according to WormCost

  • Step 2: Assess the iteration’s WorstWorm’s solution

    • Step 2.1: If (WorstWorm > \( ADFList_{1,M \times N + 1} \)):

      • add worm’s tour to ADFList,

      • update the worm’s associated arcs pheromones:

        $$ \tau_{jk}^{I} = \tau_{jk}^{I} *\left( {1 - \rho } \right),\, if\, arc\, \left( {j,k} \right)\,is \,used\, by\, WorstWorm $$
        $$ \tau_{ij}^{{k^{II} }} = \tau_{ij}^{{k^{II} }} *\left( {1 - \rho } \right), \,if \,arc\, \left( {i,j} \right)\,is \,used\, by\, WorstWorm $$
    • Step 2.2: ElseIf (WorstWorm > \( ADFList_{{\sqrt {Worm} ,M \times N + 1}} \)), replace row \( \sqrt {Worm} \) in the list with the current worm’s tour, and update the pheromone as in Step 2.1.

  • Step 3: for (w = 1, …, \( \sqrt {Worm} \); k = 1, …, M; j = 1, … N),

    • Step 3.1: If (\( ADFList_{{w,\left[ {\left( {\left( {K - 1} \right) \times N} \right) + j} \right]}} \) < > 0), then: \( ADF_{lk}^{I} \) = \( ADF_{lh}^{{k^{II} }} = \lambda \); where \( l = ADFList_{{w,\left[ {\left( {\left( {K - 1} \right) \times N} \right) + j} \right]}} \); \( h = ADFList_{{w,\left[ {\left( {\left( {K - 1} \right) \times N} \right) + j - 1} \right]}} \).

Following Step 1, \( ADFList_{1,M \times N + 1} \) and \( ADFList_{{\sqrt {Worm} ,M \times N + 1}} \) will store the worst solution so far and the least worst solution, respectively. In Step 2, ADFList is updated according to WorstWorm quality. Note that in Step 2.1, if the solution generated (i.e. \( C_{max} \)) was worse than the worst solution, the pheromone of the worm’s tour is reduced. In Step 2.2, and in case the solution generated was worse than the last tour stored in ADFList (which represents the least inferior solution), then the latter is released from ADFList back into the search space and replaced with this worm’s solution. In Step 3, ADF values are updated based on the solutions that are present in ADFList.

2.1.3 WO dauer stage modeling

As mentioned earlier, worms transition between a reproductive and a declining/Dauer phase. In the reproductive stage, more worms are produced in every iteration, while in the Dauer phase, worms decline after every iteration. Eventually the algorithm terminates when Worm = 0.

At the beginning of every iteration, the foraging behavior of worms is determined based on the solutions/food quality (FQ). WO starts with a social foraging style and FQ = 0 which refers to good solution quality. After a pre-determined number of iterations (BestIter) is exceeded without any solution improvement, the solution quality is marked as bad (FQ = 1) and foraging is switched to the alternate behavior (social or solitary). FQ is reset to zero when a forthcoming better solution is realized.

The number of tours in the algorithm is tracked by tallying the worms in every iteration, with a maximum level set at MaxIteration, indicating a high concentration of worms. Equation (8) is used to normalize the concentration to a (0,1) scale, where WCt = 1 indicates that WO reached the maximum number of iterations.

$$ Worms\, Concentration \left( {WCt} \right) = \frac{Tours}{Max\,Iteration} $$
(8)

Following each iteration, the Dauer status (DauerStatus) is assessed as follows:

  • Step 1: Compute FQ and WCt.

  • Step 2: Compute Dauer level: \( DauerStatus = \frac{FQ + WCt}{2}. \)

  • Step 3: Assess if worms are in reproductive or declining stage:

    • Step 3.1: If (\( DauerStatus < 1) \), then \( Worm = \hbox{min} \left\{ {MaxWorm , Worm*\left( {1 + \phi } \right)} \right\}, \)

    • Step 3.2: If (\( DauerStatus = = 1) \), then \( Worm = Worm*\left( {1 - \phi } \right). \)

      where \( \phi \) is the rate of reproduction/decrease of worms.

  • Step 4: If \( \left( {Worm = = 0} \right) \), Stop WO and report BestCost.

2.1.4 WO summary

The WO pseudo code to solve the RM|Sijk|Cmax can be summarized as follows:

  • Step 1: Initialize WO Parameters and populate \( \tau_{jk}^{I} \), \( \tau_{ij}^{{k^{II} }} \), \( ADF_{jk}^{I} \), and \( ADF_{ij}^{{k^{II} }} \) with the specified amounts.

  • Step 2: While \( \left( {Worm \ne 0} \right) \), Do:

    • Step 2.1: Iteration = Iteration + 1;

      • Step 2.1.1: Decide if worms will follow a social or solitary behavior, based on RMG

      • Step 2.1.2: For a total of Worm tours, Do:

        • Step 2.1.2.1: Assign jobs to machines according to Sect. 2.1 (WO Stage 1)

        • Step 2.1.2.2: Sequence the jobs on each machine according to Sect. 2.1 (WO Stage 2)

        • Step 2.1.2.3: Execute the local search approach according to Sect. 2.1.1 (via AIY)

        • Step 2.1.2.4: Find WormCost associated with every Worm

      • Step 2.1.3: Generate from the Worm tours the WorstWorm and BestWorm

      • Step 2.1.4: Update the pheromone according to Eqs. (2) and (3)

      • Step 2.1.5: Execute the bad solutions approach described in Sect. 2.1.2 and update the pheromone

      • Step 2.1.6: Update Worm number according to the Dauer approach in Sect. 2.1.3

  • Step 3: Output the best tour and its cost, Stop WO.

Figure 1 summarizes the steps of WO to solve the RM|Sijk|Cmax.

Fig. 1
figure 1

Flowchart the RM|Sijk|Cmax

2.2 WO originality

As highlighted above, the introduced algorithm, WO, is instigated by elements of the foraging behaviors of worms. The behaviors inspired the design of a search procedure that simulates worms searching the feasible region of the problem at hand for the optimal solution. A few characteristics of WO might resemble present metaheuristics in the swarm intelligence domain, especially ACO, as ants and social worms share an analogous foraging behavior. However, as highlighted in Brabazon and McGarraghy (2018), WO features the below worms’ unique behaviors:

  • a dual social and solitary foraging style, which ensures that more search space is visited;

  • recognizing food quality with a preference to higher-quality sources;

  • alternating between dwelling (local search) or roaming (global search) depending on the quality of food;

  • ability to avoid toxins (bad solutions formerly visited); and

  • engaging in dormancy (Dauer) if environmental conditions are poor (i.e. low quality solutions and high concentration of pheromone) or, alternatively, reproduce if conditions are good.

3 Computational tests

The proposed WO was implemented in Microsoft Visual Studio 12.0, with 4 GB of memory available for working storage on a personal computer Intel (R) Core (TM) i3-370 M CPU @ 2.4 GHz. Design of Experiments (DoE) is used to decide on the best values for the WO parameters that will minimize the makespan Cmax. Numerous publications provide a good review of DoE (e.g., Fisher 1960; Taguchi 1993; NIST/SEMATECH 2006).

The factors considered in this experiment along with their description and levels of low, medium and high are shown in Table 5. In addition, WO parameters with constant values (not included in DOE) are also highlighted in the Table. The values of the parameter levels were selected based on many runs under different settings. Subsequently, JMP 11.0 from SAS was used to generate a D-Optimal custom design, with 40 experiments. The factors along with their interactions were analysed using regression, ANOVA, and factors’ effect tests. Three-factor interactions and higher were not considered as they typically have weak effect (Ross 1996).

Table 5 WO parameters

The Summary of Fit of the model and the Analysis of Variance are shown in Tables 6 and 7, respectively. The results indicate a good model fit based on the high R2 and small p value for the overall model.

Table 6 Summary of Fit of the model
Table 7 Analysis of Variance of the model

Based on a 95% Confidence Interval, a relatively large t-Stat, and a small p value (less than 0.05), a prediction expression was generated and solved for the minimum Cmax while varying the factors’ values. As a result, the following parameter values were determined to provide the best performance for WO: \( MaxWorm = 450, \,AIY = 0.1, \,AIYIter = 60,\,\beta = 1.74,\, \phi = 0.01,\,BestIter = 432, \) and \( MaxIteration = 14{,}000 \).

WO was compared to Ant Colony Optimization (ACO), Tabu Search (TS), Restrictive Simulated Annealing (RSA), Artificial Bee Colony and its hybrid version (ABS, HABS), and Genetic Algorithm with Local Search (GALA). The ACO results were obtained from Arnaout et al. (2014), TS results from Helal et al. (2006), RSA from Ying et al. (2012), GALA from Eroglu et al. (2014), ABS and HABS from Lin and Ying (2014). All algorithms used the same benchmarking data from Rabadi et al. (2006), where the processing and setup times were randomly generated from two uniform distributions: U(50, 100) and U(125, 175). The data is also available via the scheduling research website (http://schedulingresearch.com/).

The algorithms were evaluated by running 15 instances for each job-machine combination and under three dominance settings: balanced setup and processing times, dominant setup times, and dominant processing times; i.e. a total of 45 instances for each job-machine combination.

The algorithms are compared based on the percentage deviation from the lower bound (LB) proposed by Al-Salem (2004), using Eq. (9). Similar computational tests were conducted by Lin and Ying (2014).

$$ \frac{{Cmax_{Algorithm} - LB}}{LB} \times 100\% $$
(9)

Table 8 lists the average deviations for every algorithm and all test instances, with the smallest values across algorithms bolded. It clearly indicates that WO and HABC performed the best under the three dominance settings, with the former slightly better. Figure 2 depicts the averages of the seven algorithms’ deviations, and consistently with Table 8, shows an outperformance of WO and HABS, followed by ABC, RSA, GALA, ACO, and TS, respectively. GALA results were only reported under balanced dominance and up to 10 machines, as per their paper.

Table 8 Average deviations from LB for all test instances
Fig. 2
figure 2

Average results for all algorithms

Tables 9, 10 and 11 provide more detailed results, by listing the mean values of the minimum, maximum, average and standard deviation of \( C_{max} \) for the 15 instances of the job-machine combinations. A similar analysis was conducted by Lin and Ying (2014) and it is repeated here for benchmarking purposes. Like Table 8, the detailed results indicate the superiority of WO and HABS, and reflect their comparable performance. Subsequently, and as WO and HABS reported the same results in many instances, paired t-tests on the average deviations from LB with 95% confidence interval were performed to verify WO’s effectiveness. The results are shown in Table 12 for the three dominance settings and they confirm the statistical significance of the mean difference between WO and HABS, with the former having the lower mean.

Table 9 Mean values of the minimum, average, maximum, and standard deviation of \( C_{max} \) for the Processing Dominant Times
Table 10 Mean values of the minimum, average, maximum, and standard deviation of \( C_{max} \) for the balanced times
Table 11 Mean values of the minimum, average, maximum, and standard deviation of \( C_{max} \) for the setup dominant times
Table 12 Paired t-tests on deviations from LB

The computational times of ACO, RSA, ABC, HABC and WO were indirectly compared using the same approach shown in Arnaout et al. (2017). In particular, and as ACO was implemented on Intel Pentium 4 @ 2 GHz, RSA on Intel Pentium 4 @ 1.5 GHz, ABC/HABC on an Intel Core Duo @ 2.66 GHz, and WO on Intel Core i3-370 M @ 2.4 GHz, direct comparison becomes meaningless. Subsequently, the different processors’ CPU performance were normalized using Table 13, which is extracted from https://www.cpubenchmark.net/. The CPU mark refers to the performance of the processor, where a higher number refers to better performance. The ABC/HABC platform was used as the base (factor of 1), and the running times of ACO, RSA, and WO are multiplied by their respective factors in order to have a sense of how the three algorithms measure up. The normalized computational times of the algorithms are shown in Table 14, which shows that WO computational time is within acceptable range relative to the other algorithms.

Table 13 Normalization of CPU performance
Table 14 Normalized computational times (sec)

4 Conclusion and future research

In this paper, we have introduced a Worm Optimization algorithm (WO) for minimizing the makespan on the unrelated parallel machine scheduling problem with sequence-dependent setup times.

WO was compared to tabu search (TS) by Helal et al. (2006), ant colony optimization (ACO) by Arnaout et al. (2010), restrictive simulated annealing (RSA) by Ying et al. (2012), genetic algorithm (GA) by Eroglu et al. (2014), and ABC/HABC by Lin and Ying (2014). The tests showed the superiority of WO, followed by HABC, ABC, RSA, GALA, ACO, and TS last. WO’s average deviation from the lower bound was less than 1% for some job-machine combinations, with an average of ~ 7% over all dominance settings. In addition, the prediction expression that was generated using Design of Experiments indicated that a lower production rate \( \phi \) leads to better results, as this will delay the convergence of WO. Finally, the worms’ unique behaviors were attributed to better solutions; e.g. the solitary behavior ensures that more search space is visited, and the Dauer behavior gives a unique convergence to WO.

An extension to this research would be to test WO on the stochastic version of the problem, in particular, under machine breakdowns.