2. Outline
Crow search algorithm (History and main idea)
Social behavior and inspiration.
Crow search algorithm implementation.
Crow search algorithm.
References.
3. Crow search algorithm (History and main idea)
Crow search algorithm (CSA) is a nature-
inspired algorithm, proposed by A. Askarzadeh
in 2016 .
CSA is a population based method.
CSA mimics the behavior of crow birds and
their social interaction.
4. Social behavior and inspiration
Crows are intelligent birds which have large
brain relative to their body size.
They are living in group (flock).
They hide their foods in hiding places.
They can memorize these places and retrieve
the hidden foods even after several months.
5. Social behavior and inspiration (Cont.)
Crows can do thievery by following the other
crows in order to watch their food's hiding
places and steal the hidden food.
If a crow feels that another one is following it,
it moves to another place far away form the
food's hiding place in order to fool a thief.
6. Crow search algorithm implementation.
The crow search algorithm (CSA) mimics the
social behavior of the crow birds as shown in
the following items.
{Initialization}. The crows in the group
represent the search agent (solution) in the
population, the search space represents the
environment.
The population contains N solutions.
The position of each crow i at iteration t is
represented by a vector xt
i ,
where xt
i = [xt
i1, xt
i2, ..., xt
id] and d is a problem
dimension.
7. Crow search algorithm implementation (Cont.)
The whole population of size N with dimension
d at iteration t can be represented as follow
8. Crow search algorithm implementation (Cont.)
{Memory Initialization.} The memory M of all
crows (population) at iteration t for dimension d
are initialized as follow.
9. Crow search algorithm implementation (Cont.)
{Solution evaluation.} Each solution in the
population is evaluated by calculating its fitness
by using the fitness function (objective function)
f(xi
(t+1) ).
{Position update.} The crow (solution) i can
update its position based on the position of
crow j (a random selected solution in the
population) in order to discover its food's
hiding place.
During the movement of crow i toward crow j
two stats can happen.
10. Crow search algorithm implementation (Cont.)
State 1: If crow j does not watch crow i when it follow
it, crow i will discover the food's hiding place of crow j
and the crow i will update its position as follow.
Where ri is random number in the interval [0,1], fli
(t) is the
flight length and mj
(t) is the memory of crow j.
The value of fl is responsible for the exploration and
exploitation processes, if fl < 1, it means the crow i will
move toward crow j which lead to local search while if
fl > 1 it means the crow i will move far from crow j which
leads to global search.
11. Crow search algorithm implementation (Cont.)
State 2: The another state is happened when the crow j
knows that crow i is watching it and it discovered its
food's hiding place.
At this case the crow j move random to fool crow i.
The two states are based on the awareness probability
Apt
i of each crow in the population as follow.
Where Apt
i is the awareness probability.
The CSA balancing between exploration and
exploitation processes according to the value of Apt
i .
Increasing the value of Apt
i leads to global search while
decreasing the value of Apt
i leads to local search.
12. Crow search algorithm implementation (Cont.)
{Memory update.} Each crow (solution) updates its
memory according to fitness value.
If the fitness value of the new crow's position is better
than the current memory's value then it updates its
memory otherwise the memory will not changed.
The process of updating memory is shown as follow.
14. Crow search algorithm (Cont.)
{Parameters initialization.} At the beginning, we set the initial values for the
flight length fl, awareness probability AP parameters, the population size N and
the maximum number of iterations maxitr.
{Iteration counter initialization.} we set the initial iteration's counter, where t = 0.
{ Population initialization.} we generate the initial population randomly, each
solution in the population is vector where xi
(t) ∈ [L,U] randomly, i = 1,…,N.
{ Solution evaluation.} Each solution in the population is evaluated by calculating
it fitness function.
{ Memory initialization.} The initial memory for each solution in the population
is a vector m (t) and it is assigned after calculating its fitness function.
15. Crow search algorithm (Cont.)
{Solution update.} The main loop of the algorithm is repeated until the termination
criteria are satisfied.
Each solution in the population is updated according to the value of the awareness
probability as shown in Equations 1 and 2.
{Solution feasibility.} The solution's new position is accepted if its value is feasible,
otherwise its rejected and the current solution is kept.
{Memory update.} In Equation 3, the memory of each solution is updated
according to the fitness of it.
If the fitness value of each solution is better than the current solution's memory
value then the memory is updated otherwise the memory is not updated.
{Best solution produced.} Once the termination criteria are satisfied, the overall
best solution is produced.
16. References
A. Askarzadeh. A novel meta-heuristic method for solving constrained
engineering optimization problems: crow search algorithm. Computers &
Structures, 169, 1-12, 2016.