Algorithm 1, Cuckoo Optimization Algorithm

1) Initialization includes parameters: initial population number (n), number of eggs of each cuckoo (E), maximum step length, Levy flight parameter (λ), maximum iteration (max_it)

2) Generating n initial population.

3) While maximum number of algorithm repetition is not exceeded, it <= max_it

4) For each cuckoo i = 1, ∙∙∙, n

5) For e = 1, ∙∙∙, E

6) Search in the problem space according to the Levi flight Theory (Yang and Deb 2009) [62] which is equivalent to laying an egg

7) The egg quality is evaluated (fi)

8) A nest is randomly selected. For example, Nest j

9) If fi < fj.

10) The cuckoo is replaced in the nest.

11) else

12) The inappropriate cuckoo (based on the quality) is abandoned with a probability of pa.

13) End IF

14) End For

15) End For

16) Best solutions are stored in the memory (solutions with minimum costs).

17) it = it + 1

18) Check stopping criteria

19) End While

20) Ranking the answers and determining the best