## 4 The DABC Algorithm for an EAHFSP
### Employed Bee Phase  
In basic ABCs, employed bees exploit food sources through a random crossover operation, and the search strategies used by all employed bees are the same. This stochastic and homogeneous search strategy is often inefficient. In this study, diversified search strategies are designed, and the suitable search strategy is adaptively selected according to the rank of food sources.  
The detailed search procedure in employed the bee phase is described in Algorithm 2, where \(sub_{1}\), \(sub_{2}\), and \(sub_{3}\) are divided as follows: Calculate the rank of non-dominated sorting for all food sources, then allocate food sources with \(rank_{i}=1\) to \(sub_{1}\), assign food sources with \(rank_{i}=max\{rank_{i}\}\) to \(sub_{3}\), and distribute the remaining food sources to \(sub_{2}\). \(\delta\) is a random number, \(\beta\) is a real number, and \(\beta=0.5\), as determined with experiments.  
The global search is executed based on three crossover operators [21]. For two food sources \(x_{i}\) and \(x_{j}\), the crossover operation is performed on the scheduling string, machine assignment string, and speed selection string in sequence. A detailed description of the three crossover operators is given in [21].  
The neighborhood search is conducted based on three neighborhood structures _insert_, \(swap\), and _change_, which are named \(N_{1}\), \(N_{2}\), and \(N_{3}\), respectively. A description of the neighborhood search is as follows: Let \(t=1\), \(g=1\), when \(N_{g}\) is executed on food source \(x_{i}\), repeat the following steps until \(t=R\): obtain \(x_{i}^{\prime}\in N_{g}(x_{i})\), \(t=t+1\), if \(x_{i}^{\prime}\) is not dominated by \(x_{i}\), then renew \(x_{i}\) with \(x_{i}^{\prime}\); otherwise, \(g=g+1\), let \(g=1\) if \(g=4\), where \(R\) is an integer,  
Figure 3: The schedule plan of an EAHFSP example.  
and \(N_{g}(x_{i})\) represents a set of solutions after conducting the neighborhood search on \(x_{i}\) with \(N_{g}\). A detailed description of _insert_, _swap_, and _change_ is given in [48].  
```
1:\(N\), \(R\), \(\delta\)
2:\(x_{i}\), \(1\leq i\leq N\)
```  
```
1:Calculate the rank of non-dominated sorting for all food sources
2:Divide the population \(P\) into three groups: \(sub_{1}\), \(sub_{2}\), and \(sub_{3}\)
3:for\(i=1\) to \(N\)do
4:if\(x_{i}\in sub_{1}\), then
5: execute neighborhood search on \(x_{i}\) and obtain a new food source \(x_{i}^{\prime}\)
6:elseif\(x_{i}\in sub_{2}\), then
7: stochastically select a food source \(x_{j}\in sub_{1}\)
8: conduct global search between \(x_{i}\) and \(x_{j}\), produce a new food source \(x_{i}^{\prime}\)
9:elseif\(x_{i}\in sub_{3}\), then
10:if\(\delta<\beta\), then
11: randomly choose a food source \(x_{j}\in sub_{1}\)
12:else
13: stochastically select a food source \(x_{j}\in sub_{2}\)
14:endif
15: conduct global search between \(x_{i}\) and \(x_{j}\), generate a new food source \(x_{i}^{\prime}\)
16:endif
17:if\(x_{i}^{\prime}\) is not dominated by \(x_{i}\), then
18: update \(x_{i}\) with \(x_{i}^{\prime}\)
19:endif
20:endfor
```  
**Algorithm 2** Employed bee phase  
As shown in Algorithm 2, all food sources are divided into three groups according to the rank value. Food sources in different groups can be improved using diversified search strategies, which is beneficial to improve search quality and increase population diversity.