*3.1. KH*

In the process of predation, the predator will change the distribution of krill population, which will make them move rapidly, and then cause their distribution density to decrease and the distance between the predator and the food to become more and more far, which is the initial stage of KH. In this process, the distribution of krill population is determined by the following three situations: the influence of other krill individuals, behavior of getting food, and random diffusion. The KH algorithm can be described as follows:

$$\frac{dX\_i}{dt} = N\_i + F\_i + D\_i \tag{1}$$

where *Ni* is the influence of other krill individuals, *Fi* is the behavior of getting food, and *Di* is the behavior of random diffusion; *i* = 1, 2, ... , *N*, and *N* is the population size.

For the influence of other krill individuals, the motion *Ni,new* of krill *i* induced by other krill is defined as follows:

$$N\_{i, \text{new}} = N\_{\text{max}} \alpha\_i + \omega\_n N\_{i, \text{old}} \tag{2}$$

where *N*max represents the maximum induced velocity, *Ni,old* represents the previously induced movement, ω*n* represents the inertia weight and the value range is (0,1), and α*i* indicates that the individual*i* is affected by the induction direction of the surrounding neighbors.

The next behavior *Fi* is to ge<sup>t</sup> food, as follows:

$$F\_i = V\_f \beta\_i + \omega\_f F\_{i,old} \tag{3}$$

where *Vf* is the maximum foraging speed, and its value is a constant, which is 0.02 (ms−1); <sup>ω</sup>*f* is the inertia weight of foraging movement, and its range is (0, 1); *Fi,old* is the previous foraging movement; and β*i* is the foraging direction.

The individual *Di* in the last behavior can be represented as follows:

$$D\_i = D\_{\text{max}} (1 - \frac{I}{I\_{\text{max}}}) \delta \tag{4}$$

where *D*max represents the maximum random diffusion speed; δ represents the direction of random diffusion; and *I* and *I*max represent the current number and the maximum number of iterations, respectively. From above process, we can ge<sup>t</sup> the krill update process of the KH algorithm as follows:

$$X\_i(t + \Delta t) = X\_i(t) + \Delta t \frac{dX\_i}{dt} \tag{5}$$

$$
\Delta t = Ct \sum\_{j=1}^{NV} \left( LB\_j - LB\_j \right) \tag{6}
$$

where Δ*t* is the time interval related to the specific application; *NV* is the dimension of the decision variable; step factor *Ct* is a constant between 0 and 2; and *UBj* and *LBj* are the upper and lower bounds of corresponding variable *j* (*j* = 1, 2, ... , *NV*), respectively.

The process of the KH algorithm (Algorithm 1) is as follows.

#### **Algorithm 1. KH [49]**

```
1. Begin
```
	- 5. Sort the population according to their fitness.
	- 6. **for** *i* = 1:*N* (all krill) **do**
	- 7. Perform the following motion calculation.
		- 8. Motion induced by other individuals
			- 9. Foraging motion
			- 10. Physical diffusion
	- 11. Implement the genetic operators.
	- 12. Update the krill position in the search space.
	- 13. Calculate fitness for each krill according to its new position

15. *G* = *G* + 1.

16. **Step 4: end while.**

17. **End**.
