A brief description of the HHO algorithm
1. Harris hawks optimization (HHO)
1.1. Exploration phase
In HHO, the Harris’ hawks perch randomly on some locations and wait to detect a prey based on two
strategies.
X(t + 1) =
X
rand
(t) − r
1
|X
rand
(t) − 2r
2
X(t)| q ≥ 0.5
(X
rabbit
(t) − X
m
(t)) − r
3
(LB + r
4
(UB − LB)) q < 0.5
(1)
where X(t + 1) is the position vector of hawks in the next iteration t, X
rabbit
(t) is the position of rabbit,
X(t) is the current position vector of hawks, r
1
, r
2
, r
3
, r
4
, and q are random numbers inside (0,1), which
are updated in each iteration, LB and U B show the upper and lower bounds of variables, X
rand
(t) is
a randomly selected hawk from the current population, and X
m
is the average position of the current
population of hawks. The average position of hawks is attained using Eq. (2):
X
m
(t) =
1
N
N
X
i=1
X
i
(t) (2)
where X
i
(t) indicates the location of each hawk in iteration t and N denotes the total number of hawks.
1.2. Transition from exploration to exploitation
To model this step, the energy of a rabbit is modeled as:
E = 2E
0
(1 −
t
T
) (3)
where E indicates the escaping energy of the prey, T is the maximum number of iterations, and E
0
is the
initial state of its energy.
1.3. Exploitation phase
1.3.1. Soft besiege
This behavior is modeled by the following rules:
X(t + 1) = ∆X(t) − E |JX
rabbit
(t) − X(t)| (4)
∆X(t) = X
rabbit
(t) − X(t) (5)
where ∆X(t) is the difference between the position vector of the rabbit and the current location in iteration
t, r
5
is a random number inside (0,1), and J = 2(1 − r
5
) represents the random jump strength of the rabbit
throughout the escaping procedure. The J value changes randomly in each iteration to simulate the nature
of rabbit motions.
1.3.2. Hard besiege
In this situation, the current positions are updated using Eq. (6):
X(t + 1) = X
rabbit
(t) − E |∆X(t)| (6)
1