Global Optimization Software and Evolutionary Algorithms

The paper describes the main aspects of global optimization on the base of the evolutionary optimization algorithms. The possibilities of MATLAB Global Optimization Toolbox have been discussed. It is shown, that the corresponding program codes can be used for solving optimization problems, for study of the evolutionary algorithms, for their modification and hybridization.


Introduction
The first steps in the studying of optimization algorithms are connected with application of the gradient-based optimization algorithms.In optimization, gradient-based optimization algorithm is an algorithm to solve problems of the form ) (x f min n R x (where ) (x f is the objective function) with the search directions defined by the gradient of the function at the current point.The most known gradient-based optimization algorithms are the gradient descent algorithm and the conjugate gradient algorithm [1].Such algorithms return only local minima.If the objective function has many local minima and the search starts from the initial point close to one such local minimum, the algorithm will most probably find the local minimum closest to the initial point.As a result, we would never rich the global minimum.Thus, the optimization success depends strongly on the right choice of the initial point (initial approximation of the solution).Many real objective functions are multivariate functions with multiple minima.
To find the global minimum for such objective functions it is necessary to locate the global minimum (but it in real problems isn't always possible) or to execute repeatedly the gradient-based optimization algorithm with the different randomly chosen initial approximations of the solution, that demands the huge time expenditures.
The simplest search-based optimization algorithmgread search algorithmhas the huge computing complexity.Therefore, new optimization algorithms such as the evolutionary search-based algorithms have been created.(1),

Evolutionary Search-Based Optimization Algorithms
).The Ackley function poses a risk for optimization algorithms, particularly hillclimbing algorithms, to be trapped in one of its many local minima [4].
It has a global minimum 0 . The Ackley function is shown in Figure 1 in its twodimensional form.It is characterized by a nearly flat outer region, and a large hole at the centre.
The Rastrigin function is defined by where n is the dimension of space.The Rastrigin function is a non-convex function.It has several local minima [5,6].This function is a typical example of non-linear highly multimodal function, but locations of the minima are regularly distributed.It has a global minimum 0 . Finding the minimum of this function is a fairly difficult problem due to its large search space and its large number of local minima.The Rastrigin function is shown in Figure 2 in its two-dimensional form.
The Schwefel function is complex, with many local minima.This function is deceptive in that the global minimum is geometrically distant, over the parameter space, from the next best local minima.Therefore, the search algorithms are potentially prone to convergence in the wrong direction [7].
where n is the dimension of space.The global minimum is inside a long, narrow, parabolic shaped flat valley.To find the valley is trivial.To converge to the global minimum, however, is difficult [8].It has a global minimum 0 . The Rosenbrock function is shown in Figure 4 in its two-dimensional form.
where n is the dimension of space.Finding the minimum of mentioned above functions on the base of the gradient-based optimization algorithms is a fairly difficult problem.Heuristic searchbased optimization algorithms can solve this problem.These algorithms start with multople initial points and finish with solutions.Such algorithms are known as evolutionary algorithms.
Every initial point generates its optimization sequence of solutions.This sequence contains values updated at each step.Every solution in this sequence is a candidate solution.The set of all candidate solutions from the current step is named as population.The updating of population is perfomed at every step.Therefore, it is necessary to use simple and less extensive computational algorithm at each step rather than performing steps involving calculation of gradient.
In artificial intelligence, an evolutionary algorithm (EA) is a subset of evolutionary computation, a generic population-based metaheuristic optimization algorithm.The EA uses mechanisms inspired by biological evolution, such as reproduction, mutation, recombination, and selection.Candidate solutions to the optimization problem play the role of individuals in a population, and the fitness function determines the quality of the solutions.Evolution of the population then takes place after the repeated application of the above operators.The most known EA is the genetic algorimts (GA).Also, the swarm intellegence (SI) optimization algorithm can be considered as the EA.SI is the collective behavior of decentralized, self-organized systems, natural or artificial.SI algorithms work typically with a population of simple individuals (agents) interacting locally with one another and with their environment.The individuals follow very simple rules, and although there is no centralized control structure dictating how individual individuals should behave, local, and to a certain degree random, interactions between such individuals lead to the emergence of «intelligent» global behavior, unknown to the private individuals.The particle swarm optimization (PSO) algorithm, the ant colony optimization (ACO) algorithm, artificial bee colony algorithm (ABC) algorithm are the most famous SI optimization algorithms.Nowdays SI algorithms actively develop and new algorithms appear (such as the clonal selection immune (CSI) algorithm, the artificial fish swarm (AFS) algorithm, the cuckoo search (CS) algorithm, the bacterial foraging (BF) algorithm and so on).The EA algorithm suggests that nature is the best optimizer [9].
Many of these algorithms are already realized in various software packages.Therefore we can use such software packages for solving optimization problems.Also, we can study the program code of optimization algorithm and modify it according our desires.
Let's consider MATLAB software [9].It containt Global Optimization Toolbox which allows solving the optimization problems, using the direct search (on the base of the pattern search solver for derivative-free optimization, constrained or unconstrained) with patternsearch.m file, the GA (on the base of the GA solver for mixed-integer or continuous-variable optimization, constrained or unconstrained) with ga.m file, the particle swarm (on the base of the particle swarm solver for derivative-free unconstrained optimization or optimization with bounds) with particleswarm.m file, the simulated annealing (on the base of the simulated annealing solver for derivative-free unconstrained optimization or optimization with bounds) with simulannealbnd.mfile and the multiobjective optimization (on the base of the Pareto sets via GA with or without constraints) with gamultiobj.m file.
Besides, Global Optimization Toolbox software contains the rastriginsfcn.m file, which computes the values of the Rastrigin function [10].The Rastrigin function is often used to test the GA, because its many local minima make it difficult for standard, gradientbased optimization algorithms to find the global minimum.To find the minimum of the Rastrigin function, we must do the following steps.1.To enter optimtool('ga') at the command line to open the Optimization app (Figure 5). 2. To enter the input settings in the Optimization app (Figure 6).The Fitness function field defines the objective function.The Number of variables field defines the number of independent variables for the objective function.
3. To click the Start button in the Run solver (Figure 5) and view results pane (Figure 7).
While the GA is running, the Current iteration field (Figure 7) displays the number of the current generation.When the GA is finished, the output results are appeared in the corresponding fields (Figure 7).The received value of the objective function, which equals to 6.66155047099437E-4, is very close to the actual minimum value of the Rastrigin function, which is 0. The Options pane describe some ways to get a result that is closer to the actual minimum.The final solution) in this example is [0.002; -0.001].
Also, we can find the minimum of the Rastrigin function from the command line.It is necessaty to enter: The GA uses random number generators.Therefore it returns slightly different results of optimization.
The Optimization app Plot functions pane enables to display various plots that provide information about the GA while it is running (Figure 9).For example, we can plot the best and mean values of the fitness function at each generation (Figure 10).
Usually, the best fitness function value improves rapidly in the early generations, when the individuals are farther from the optimum.The best fitness function value improves more slowly in later generations, when the individuals are closer to the optimum (Figure 10).Nowdays we can find the program codes for some evolutionary algorithms that are not included in Global Optimization Toolbox at http://www.mathworks.com/website.Here the program codes for the following evolutionary algorithms are placed: the CSI algorithm, the ACO algorithm, the ABC algorithm, the AFS algorithm, the CS algorithm, the BF algorithm.
As a result, we can easy study the program codes of the evolutionary algorithms, apply them for solving optimization problems, modify them according our desires.Also, the hybridization of these algorithms can be carried out.The hybridization weakens the shortcomings of algorithms and allocates the hybrid with the best optimizing properties.Some of the possible reasons for the hybridization are as follows [11]: to improve the perfomance of the evolutionary algorithms (for example, the speed of convergence); to improve the quality of the solutions obtained by the evolutionary algorithms; to incorporate the evolutionary algorithms as part of a larger system.

Conclusions
The application aspects of the evolutionary optimization algorithms for solving the objective function's minimization problem have been considered.The possibilities of MATLAB Global Optimization Toolbox have been discussed.It is shown, that the build-in and freely exchanged program codes can be used for solving optimization problems, for study of the evolutionary algorithms, for their modification and hybridization.
function is shown in Figure 3 in its twodimensional form.Besides, it is necessary to say about the Rosenbrock function, also referred to as the Valley or Banana function.It is one of valley-shaped functions (Three-Hump Camel Function; Six-Hump Camel Function; Dixon-Price Function; Rosenbrock Function) [3].This function is unimodal and a non-convex function used as a performance test problem for optimization algorithms introduced by Howard H. Rosenbrock in 1960.The Rosenbrock function is defined by [3]