A hybrid cuckoo search algorithm with Nelder Mead method for solving global optimization problems

Cuckoo search algorithm is a promising metaheuristic population based method. It has been applied to solve many real life problems. In this paper, we propose a new cuckoo search algorithm by combining the cuckoo search algorithm with the Nelder–Mead method in order to solve the integer and minimax optimization problems. We call the proposed algorithm by hybrid cuckoo search and Nelder–Mead method (HCSNM). HCSNM starts the search by applying the standard cuckoo search for number of iterations then the best obtained solution is passing to the Nelder–Mead algorithm as an intensification process in order to accelerate the search and overcome the slow convergence of the standard cuckoo search algorithm. The proposed algorithm is balancing between the global exploration of the Cuckoo search algorithm and the deep exploitation of the Nelder–Mead method. We test HCSNM algorithm on seven integer programming problems and ten minimax problems and compare against eight algorithms for solving integer programming problems and seven algorithms for solving minimax problems. The experiments results show the efficiency of the proposed algorithm and its ability to solve integer and minimax optimization problems in reasonable time.

these advantage of the CS algorithm, many researchers have applied it on their work for various applications such as Garg et al. (2014), Garg (2015b, c, d). The CS algorithm is combined with other methods such as Nelder-Mead method to solve various problems (Chang et al. 2015;Jovanovic et al. 2014).
The aim of this work is to propose a new hybrid cuckoo search algorithm with a Nelder-Mead method in order to overcome the slow convergence of the standard cuckoo search. The Nelder-Mead method accelerates the search of the proposed algorithm and increases the convergence of the proposed algorithm. The proposed algorithm is called hybrid cuckoo search with Nelder-Mead (HCSNM). In HCSNM algorithm, we combine the cuckoo search with a Nelder Mead method in order to accelerate the search and avoid running the algorithm with more iterations without any improvements.
The main difference between our proposed algorithm and the other hybrid Cuckoo search and Nelder-Mead algorithms is the way of applying the Nelder-Mead method. The authors in Chang et al. (2015), Jovanovic et al. (2014) have invoked the Nelder-Mead method in the cuckoo search algorithm instead of the levy Flight operator. The drawback of this idea is the computation time because the calling for NM method at each iteration in the Cuckoo search algorithm. However in our proposed algorithm we run the standard CS algorithm for some iterations then we pass the best found solution to the Nelder-Mead method to start from good Solution which help the NM method to get the global minimum of the functions in reasonable time.
Also, we test the HCSNM algorithm on seven integer programming and ten minimax benchmark problems. The experimental results show that the proposed HCSNM is a promising algorithm and can obtain the optimal or near optimal solution for most of the tested function in reasonable time.
The outline of the paper is as follows. "Definition of the problems and an overview of the applied algorithms" section presents the definitions of the integer programming and the minimax problems and gives an overview of the Nelder-Mead method. "Overview of cuckoo search algorithm" section summarizes the main concepts of cuckoo search algorithm (CS). "The proposed HCSNM algorithm" section describes the main structure of the proposed HCSNM algorithm. "Numerical experiments" section gives the experimental results and details of implementation in solving integer programming and minimax problems. Finally, we end with some conclusions and future work in "Conclusion and future work" section.

Definition of the problems and an overview of the applied algorithms
In this section, we present the definitions of the integer programming and the minimax problems as follows.

The integer programming problem definition
An integer programming problem is a mathematical optimization problem in which all of the variables are restricted to be integers. The unconstrained integer programming problem can be defined as follows.
where Z is the set of integer variables, S is a not necessarily bounded set.

Minimax problem definition
The general form of the minimax problem as reported in Yang (2010b) The nonlinear programming problems of the form: can be transformed to minimax problems as follows: where It has been proved that for sufficiently large α i , the optimum point of the minimax problem, coincides with the optimum point of the nonlinear programming problem (Bandler and Charalambous 1974).

Nelder Mead method
The Nelder-Mead algorithm (NM) is one of the most popular derivative-free nonlinear optimization algorithms. Nelder and Mead (1965) proposed NM algorithm. It starts with n + 1 vertices (points) x 1 , x 2 , . . . , x n+1 . The vertices are evaluated, ordered and re-labeled in order to assign the best point and the worst point. In minimization optimization problems, the x 1 is considered as the best vertex or point if it has the minimum value of the objective function, while the worst point x n+1 with the maximum value of the objective function. At each iteration, new points are computed, along with their function values, to form a new simplex. Four scalar parameters must be specified to define a complete NM algorithm: coefficients of reflection ρ, expansion χ, contraction τ, and shrinkage φ where ρ > 0, χ > 1, 0 < τ < 1, and 0 < φ < 1. The main steps of the NM algorithm are presented as shown below in Algorithm 1. The vertices are ordered according to their fitness functions. The reflection process starts by computing the reflected point x r =x + ρ(x − x (n+1) ), where x is the average of all points except the worst. If the reflected point x r is lower than the nth point f (x n ) and greater than the best point f (x 1 ), then the reflected point is accepted and the iteration is terminated. If the reflected point is better than the best point, then the algorithm starts the expansion process by calculating the expanded point x e =x + χ(x r −x). If x e is better than the reflected point nth, the expanded point is accepted. Otherwise the reflected point is accepted and the iteration will be terminated. If the reflected point x r is greater than the nth point x n the algorithm starts a contraction process by applying an outside x oc or inside contraction x ic depending on the comparison between the values of the reflected point x r and the nth point x n . If the contracted point x oc or x ic is greater than the reflected point x r , the shrink process is starting. In the shrink process, the points are evaluated and the new vertices of simplex at the next iteration will be x ′ 2 , . . . , x ′ n+1 , where

Overview of cuckoo search algorithm
In the following subsection, we summarize the main concepts and structure of the cuckoo search algorithm.

Main concepts
Cuckoo search algorithm is a population based metaheuristic algorithm inspired from the reproduction strategy of the cuckoo birds (Yang and Deb 2009). The cuckoo birds lay their eggs in a communal nests and they may remove other eggs to increase the probability of hatching their own eggs (Payne and Karen Klitz 2005). This method of laying the eggs in other nests is called obligate brood parasitism. Some host birds can discover the eggs are not their own and throw these eggs away or abandon their nest and build a new nest in a new place. Some kind of cuckoo birds can mimic the color and the pattern of the eggs of a few host bird in order to reduce the probability of discovering the intruding eggs. Since the cuckoo eggs are hatching earlier than the host bird eggs, the cuckoos laid their eggs in a nest where the host bird just laid its own eggs. Once the eggs are hatching, the cuckoo chick's starts to propel the host eggs out the of the nest in order to increase its share of food provided by its host bird.

Lévy flights
Recent studies show that the behavior of many animals when searching for foods have the typical characteristics of Lévy Flights, see, e.g., Brown et al. (2007), Pavlyukevich (2007) and Reynolds and Frye (2007). Lévy flight (Brown et al. 2007) is a random walk in which the step-lengths are distributed according to a heavy-tailed probability distribution. After a large number of steps, the distance from the origin of the random walk tends to a stable distribution.
Algorithm 1 The Nelder-Mead Algorithm 1. Let x i denote the list of vertices in the current simplex, i = 1, . . . , n + 1. 2. Order. Order and re-label the n + 1 vertices from lowest function value f (x 1 ) to highest function 3. Reflection. Compute the reflected point xr by xr =x + ρ(x − x (n+1) ), wherex is the centroid of the n best points, Replace x n+1 with the reflected point xr and go to Step 7.
Replace x n+1 with xe and go to Step 7. else Replace x n+1 with xr and go to Step 7.
Perform a contraction betweenx and the best among x n+1 and xr.
Replace x n+1 with xoc and go to Step 7. else Go to Step 6.
Replace x n+1 with x ic and go to Step 7. else Go to Step 6. end if 6. Shrink. Evaluate the n new vertices x = x 1 + φ(x i − x 1 ), i = 2, . . . , n + 1. Replace the vertices x 2 , . . . , x n+1 with the new vertices x 2 , . . . , x n+1 . 7. Stopping Condition. Order and re-label the vertices of the new simplex as Step 3. end if

Cuckoo search characteristic
The cuckoo search algorithm is based on the following three rules: • At a time, cuckoo randomly chooses a nest to lay an egg.
• The best nests with high quality of eggs (solutions) will carry over to the next generations. • The number of available host nests is fixed. The probability of discovering an intruding egg by the host bird is p a ∈ [0, 1]. If the host bird discovers the intruding egg, it throws the intruding egg away the nest or abandons the nest and starts to build a new nest elsewhere.

Cuckoo search algorithm
We present in details the main steps of the Cuckoo search algorithm as shown in Algorithm 2.
• Algorithm 2 Cuckoo search algorithm 1: Set the initial value of the host nest size n, probability pa ∈ [0, 1] and maximum number of iterations Max itr . 2: Set t := 0. {Counter initialization} 3: for (i = 1 : i ≤ n) do 4: Generate initial population of n host x (t) i . {n is the population size} 5: Evaluate the fitness function f (x (t) i ). 6: end for 7: repeat 8: Randomly generate a new solution (Cuckoo) x (t+1) i by Lévy flight.

9:
Evaluate the fitness function of a solution x Randomly choose a nest x j among n solutions.

11
: Abandon a fraction pa of worse nests. 15: Build new nests at new locations using Lévy flight a fraction pa of worse nests 16: Keep the best solutions (nests with quality solutions) 17: Rank the solutions and find the current best solution 18: Set t = t + 1. 19: until (t ≥ Max itr ). {Termination criteria are satisfied} 20: Produce the best solution.
Step 1 The standard cuckoo search algorithm starts with the initial values of population size n, probability p a ∈ [0, 1], maximum number of iterations Max itr and the initial iteration counter t (Lines 1-2).
• Step 2 The initial population n is randomly generated and each solution x i in the population is evaluated by calculating its fitness function f (x i ) (Lines 3-6). • Step 3 The following steps are repeated until the termination criterion is satisfied.
Step 3.1 A new solution is randomly generated using a Lévy flight as follows.
Step 3.2 If its objective function is better than the objective function of the selected random solution, then the new solution is replaced with a random selected solution (Lines 10-13).
Step 3.3 A fraction (1 − p a ) of the solutions is randomly selected, abandoned and replaced by new solutions generated via using local random walks as follows.
where x t j and x t k are two different solutions randomly selected and γ is a random number (Lines 14-15).
Step 3.4 The solutions are ranked according to their objective values, then the best solution is assigned. The iteration counter increases (Lines 16-18).
• Step 4 The operation is repeated until the termination criteria are satisfied (Line 19).
• Step 6 Produce the best found solution so far (Line 20).

The proposed HCSNM algorithm
The steps of the proposed HCSNM algorithm are the same steps of the standard CS algorithm till line 19 in Algorithm 2 then we apply the NM method in Algorithm 1 as an intensification process in order to refine the best obtained solution from the previous stage in the standard CS algorithm.

Numerical experiments
In order to investigate the efficiency of the HCSNM, we present the general performance of it with different benchmark functions and compare the results of the proposed algorithm against variant of particle swarm optimization algorithms. We program HCSNM via MATLAB and take the results of the comparative algorithms from their original papers. In the following subsections, we report the parameter setting of the proposed algorithm with more details and the properties of the applied test functions. Also we present the performance analysis of the proposed algorithm with the comparative results between it and the other algorithms.

Parameter setting
In Table 1, we summarize the parameters of the HCSNM algorithm with their assigned values.
Parameter values are selected either based on the common settings in the literature or determined through our preliminary numerical experiments.
• Population size n The experimental tests show that the best population size is n = 20 , we applied the proposed algorithm with different population size in order to test the efficiency of the selected population size number. Figure 1 shows that the best population size is n = 20, while increasing this number to n = 25 will increase the function evaluation without a big improvement in the function values. • A fraction of worse nests p a In order to increase the diversification ability of the proposed algorithm, the worst solutions are discarded and the new solutions are randomly generated to replace the worst solutions. The number of the discarded solutions depends on the value of a fraction of worse nests p a . The common p a value is 0.25. • Maximum number of iterations Max itr The main termination criterion in standard cuckoo search algorithm is the number of iterations. In the proposed algorithm, we run the standard CS algorithm 3d iterations, then the best found solution is passed to the NM method. The effect of the maximum number of iteration is shown in Table 2. Table 2 shows that function values of six random selected functions (three integer functions and three minmax function). The results in Table 2 shows that there is no big different in the function value after applying 3d and 4d iterations which indicates that the number of iteration 3d is the best selection in term of function evaluation

Integer programming optimization test problems
We test do the efficiency of the HCSNM algorithm by applying the algorithm on seven benchmark integer programming problems (FI 1 − FI 7 ) as shown in Table 3. In Table 4, we list the properties of the benchmark functions (function number, dimension of the problem, problem bound and the global optimal of each problem). Now we define the test functions as follows. The solutions are rounded to the nearest integer for function evaluation purposes and they are consider as real numbers for all other operations.

The efficiency of the proposed HCSNM algorithm with integer programming problems
In this subsection, we verify the importance of invoking the NM method in the final stage as a final intensification process. In Table 5, the results show the mean evaluation function values of the standard cuckoo search, the NM method and the proposed HCSNM algorithm, respectively. We apply the same termination criterion for all algorithms, which terminates the search when all algorithms reach to the optimal solution  within an error of 10 −4 before the 20,000 function evaluation value. We report the average function evaluation over 50 runs and give the best results in italicised text. The initial solution in the NM method is randomly generated. In Table 5, the results show that invoking the NM method in the final stage enhances the general performance of the Problem 1 (Rudolph 1994) FI 1 (x) = �x� 1 = |x 1 | + · · · + |x n | Problem 2 (Rudolph 1994) et al. 1979) Problem 6 (Rao 1994)   proposed algorithm and can accelerate the search to reach to the optimal solution or near optimal solution.

The general performance of the HCSNM algorithm with integer programming problems
We apply the second experimental test to investigate the general performance of the proposed algorithm on the integer programming problems by plotting the values of function values versus the number of iterations as shown in Fig. 2 for four functions FI 1 , FI 2 , FI 3 and FI 5 (randomly picked). The solid line represents the standard cuckoo search algorithm, while the dotted line represents the performance of the NM method after applying he NM on the best obtained solution from the standard cuckoo search. We can conclude from Fig. 2 that invoking the NM method as an intensification process in the final stage of the proposed algorithm can accelerate the search and obtain the optimal or near optimal solution in reasonable time.

HCSNM and other algorithms
We compare HCSNM with four benchmark algorithms (particle swarm optimization with its variants) in order to verify of the efficiency of the proposed algorithm. Before we give the comparison results of all algorithms, let us describe the comparative four algorithms (Petalas et al. 2007).
• RWMPSOg RWMPSOg is random walk memetic particle swarm optimization (with global variant), which combines the particle swarm optimization with random walk (as direction exploitation). • RWMPSOl RWMPSOl is random walk memetic particle swarm optimization (with local variant), which combines the particle swarm optimization with random walk (as direction exploitation). • PSOg PSOg is standard particle swarm optimization with global variant without local search method. • PSOl PSOl is standard particle swarm optimization with local variant without local search method.

Comparison between RWMPSOg, RWMPSOl, PSOg, PSOl and HCSNM for integer programming problems
In this subsection, we give the comparison results between our HCSNM algorithm and the other algorithms in order to verify of the efficiency of our proposed algorithm. We test the five comparative algorithms on seven benchmark functions and report the results. We take the results of the comparative algorithms from their original paper (Petalas et al. 2007). In Table 6, we report the minimum (min), maximum (max), average (mean), standard deviation (SD) and success rate (%Suc) of the evaluation function values over 50 runs. The run is considered successful if the algorithm reaches to the global minimum of the solution within an error of 10 −4 before the 20,000 function evaluation value. We report the best results between the comparative algorithms in italicised text.
The results in Table 6 shows that the proposed HCSNM algorithm succeeds in six of seven function, where function FI 6 is little bit better than the proposed algorithm, however the rate of success of the proposed algorithm is 100 % for all functions.

HCSNM and other meta-heuristics and swarm intelligence algorithms for integer programming problems
We test the HCSNM algorithm with different meta-heuristics algorithms such as GA (Holland 1975), PSO (Kennedy and Eberhart 1995), firefly (FF) algorithm (Yang 2010b) and grey wolf optimizer (GWO) (Mirjalili et al. 2014). In order to make a fair comparison we set the population size = 20 for all algorithms and the termination criteria for all algorithm are the same which are the algorithm reaches to the global minimum of the solution within an error of 10 −4 before the 20,000 function evaluation value. We applied the standard parameter setting for all compared meta-heuristics algorithms. In Table 7, we report the average (Avg) and SD of all algorithms over 50 runs.

HCSNM and the branch and bound method
We apply further investigation to verify of the powerful of the proposed algorithm with the integer programming problems, by comparing the HCSNM algorithm against the branch and bound (BB) method Mitchell 1991, 1994;Lawler and Wood 1966;Manquinho et al. 1997).

Comparison between the BB method and HCSNM for integer programming problems
In Table 8, we show the comparison results between the BB method and the proposed HCSNM. We take the results of the BB method from its original paper (Laskari et al. 2002). In Laskari et al. (2002), the BB algorithm transforms the initial integer problem programming problem to a continuous one. For the bounding, the BB uses the sequential quadratic programming method to solve the generated sub problems. While for branching, BB uses depth first traversal with backtracking. We report the average (Mean), SD and rate of success (Suc) over 30 runs. We report the best mean evaluation values between the two algorithms in italicised text. The results in Table 8 shows that the proposed algorithm results are better than the results of the BB method in six of seven tested functions, while the rate of success is 100 % for all function in the proposed algorithm. The overall results in Table 8 shows that the proposed algorithm is faster and more efficient than the BB method for most cases.

Minimax optimization test problems
We consider another type of optimization test problems in order to investigate the efficiency of the proposed algorithm, these functions are ten benchmark minimax functions as shown in Table 9. We report their properties in Table 10.

The efficiency of the proposed HCSNM algorithm with minimax problems
We apply another test to investigate the idea of invoking the NM method in the final stage as a final intensification process with the standard Cuckoo search algorithm. In Table 11, we show the mean evaluation function values of the standard cuckoo search algorithm, the NM method and the proposed HCSNM algorithm, respectively. We apply  for all algorithms the same termination criterion, which terminates the search when both algorithms reach to the optimal solution within an error of 10 −4 before the 20,000 function evaluation value. We report the average function evaluation over 100 runs and the best results in italicised text. Also we show in Table 11 that invoking the NM method in the final stage in the proposed algorithm enhance the general performance of it and can accelerate the search to reach to the optimal solution or near optimal solution faster than the standard Cuckoo search algorithm and the NM method.

HCSNM and other algorithms
We compare HCSNM with three benchmark algorithms in order to verify of the efficiency of the proposed algorithm with minimax problems. Let us give a brief description about these comparative three algorithms.
• HPS2 (Santo and Fernandes 2011) HPS2 is heuristic pattern search algorithm, which is applied for solving bound constrained minimax problems by combining the Hook and Jeeves (HJ) pattern and exploratory moves with a randomly generated approximate descent direction. • UPSOm (Parsopoulos and Vrahatis 2005) UPSOm is unified particle swarm Optimization algorithm, which combines the global and local variants of the standard PSO and incorporates a stochastic parameter to imitate mutation in evolutionary algorithms. • RWMPSOg (Petalas et al. 2007). RWMPSOg is random walk memetic particle swarm optimization (with global variant), which combines the particle swarm optimization with random walk (as direction exploitation).

Comparison between HPS2, UPSOm, RWMPSOg and HCSNM for minimax problems
In this subsection, we present the comparison results between our HCSNM algorithm and the other algorithms in order to verify of the efficiency of the proposed algorithm. We test the four comparative algorithms on ten benchmark functions, take the results of the comparative algorithms from their original paper (Santo and Fernandes 2011) and report the results. In Table 12, we report the average (Avg), sD and Success rate (%Suc) over 100 runs. The mark (-) for FM 8 in HPS2 algorithm and FM 2 , FM 8 and FM 9 in RWMPSOg algorithm in Table 12 means that the results of these algorithms for these functions are not reported in their original paper. The run is considered successful if the algorithm reaches the global minimum of the solution within an error of 10 −4 before the 20,000 function evaluation value. The results in Table 12, show that the proposed HCSNM algorithm succeeds in most runs and obtains the objective value of each function faster than the other algorithms, except for functions FM 3 , FM 6 , FM 9 and FM 10 the HPS2 results are better than the proposed algorithm. The dimensions for functions FM 4 , FM6, F7, FM8 and FM9 is 7, 10, 2, 4 and 7 respectively, which increase the number of function evaluations beyond 20,000 when applied the NM method. The rate of success for these function can increase to 100 % if the function evaluation criterion bigger than 20,000.

HCSNM and other meta-heuristics and swarm intelligence algorithms for minmax problems
Also we compare the proposed HCSNM algorithm against the same meta-heuristics and swarm intelligence algorithms (SI) which described in "HCSNM and other meta-heuristics and swarm intelligence algorithms for integer programming problems" for integer problems. The average (Avg) and SD of all algorithms are reported over 100 runs as shown in Table 13.
The results in Table 13 shows that the proposed HCSNM algorithm is outperform the other met-heuristics and swarm intelligence algorithm

HCSNM and SQP method
Another test for our proposed algorithm, we compare the HCSNM with another known method which is called sequential quadratic programming method (SQP) (Boggs and Tolle 1995;Fletcher 2013;Gill et al. 1981;Wilson et al. 1963).
We test the results of the two comparative algorithms on ten benchmark functions, take the results of the SQP algorithm from paper (Laskari et al. 2002) and report the results. In Table 14, we report the average (Avg), SD and success rate (%Suc) over 30 runs. The run is considered successful if the algorithm reaches the global minimum of the solution within an error of 10 −4 before the 20,000 function evaluation value. The  results in Table 14, show that the proposed HCSNM algorithm outperforms the SQP algorithm in seven of ten functions, while the results of SQP algorithm are better than our proposed algorithm for functions FM 3 , FM 5 and FM 6 . We can conclude from this comparison that the proposed HCSNM outperforms the SQP algorithm in most cases of tested minimax problems.

Conclusion and future work
In this paper, a new hybrid cuckoo search algorithm with NM method is proposed in order to solve integer programming and minimax problems. The proposed algorithm is called hybrid cuckoo search and Nelder-Mead algorithm (HCSNM). The NM algorithm helps the proposed algorithm to overcome the slow convergence of the standard by refining the best obtained solution from the cuckoo search instead of keeping the algorithm running with more iterations without any improvements (or slow improvements) in the results. In order to verify the robustness and the effectiveness of the proposed algorithm, HCSNM has been applied on seven integer programming and ten minimax problems. The experimental results show that the proposed algorithm is a promising algorithm and has a powerful ability to solve integer programming and minimax problems faster than other algorithms in most cases.
In the future work, we will focus on the following directions: • Apply the proposed algorithms on solving constrained optimization and engineering problems. • Modify our proposed algorithm to solve other combinatorial problems, large scale integer programming and minimax problems.