The Algorithm for Algorithms : An Evolutionary Algorithm Based on Automatic Designing of Genetic Operators

At present there is a wide range of evolutionary algorithms available to researchers and practitioners. Despite the great diversity of these algorithms, virtually all of the algorithms share one feature: they have beenmanually designed. A fundamental question is “are there any algorithms that can design evolutionary algorithms automatically?” A more complete definition of the question is “can computer construct an algorithmwhich will generate algorithms according to the requirement of a problem?” In this paper, a novel evolutionary algorithm based on automatic designing of genetic operators is presented to address these questions. The resulting algorithm not only explores solutions in the problem space like most traditional evolutionary algorithms do, but also automatically generates genetic operators in the operator space. In order to verify the performance of the proposed algorithm, comprehensive experiments on 23 well-known benchmark optimization problems are conducted. The results show that the proposed algorithm can outperform standard differential evolution algorithm in terms of convergence speed and solution accuracy which shows that the algorithm designed automatically by computers can compete with the algorithms designed by human beings.


Introduction
At present there is a wide range of evolutionary algorithms available to researchers and practitioners.Despite the great diversity of these algorithms, virtually all of the algorithms share one feature: they have been manually designed.As a result, inevitably, current evolutionary algorithms in general incorporate human preconceptions in their designs.This situation encourages us to ask the following questions: are there any algorithms that can design evolutionary algorithms automatically?A more complete definition of the question is "can computer construct an algorithm which will generate algorithms according to the requirement of a problem?"In the 13th century, a French scientist, Villand de Honnecourt proposed a perpetual motion machine for the first time.However, the truth shows that it is impossible to make such kind of entity in the real world.But in the world of computer for the machine to automatically design algorithms, several automatic algorithm design techniques have been proposed in recent years to overcome this limitation.
For example, hyperheuristics include search methods that automatically select and combine simpler heuristics, creating a generic heuristic that is used to solve more general instances of a given type of optimization problem.Hence, hyperheuristics search in the space of heuristics, instead of in the problem solution space [1], raising the level of generality of the solutions produced by the hyperheuristics.Ant Colony algorithms are population-based methods widely used in combinatorial optimization problems.Taveres and Pereira [2] proposed a grammatical evolution [3] approach to automatically design ant colony optimization algorithms.The grammar adopted by this framework has the ability to guide the learning of novel architectures, by rearranging components regularly found on human designed variants.Furthermore, Taveres and Pereira [4] proposed a strongly typed genetic programming [5] approach to automatically evolve the communication mechanism that allows ants to cooperatively solve a given problem.For these two applications, results obtained with several TSP instances show that the evolved pheromone update strategies are effective and exhibit a strong generalization capability and are competitive with human designed variants.For rule induction algorithms, Pappa and Freitas [6] proposed the use of grammar-based genetic programming (GGP) to automatically evolve rule induction algorithms.The experiments involving 11 data sets show that novel rule induction algorithms can be automatically generated using GGP.Oltean and Grosan [7] used multi expression programming (MEP) [8] technique to evolve evolutionary algorithm, in which each MEP chromosome encodes multiple EAs.
Although the aforementioned automatic algorithms have different emphases on research objectives and contents, one thing in common is that they use automatic method to design algorithms, which shows that automatic programming method can build algorithms to solve problems automatically.
As the core components of the evolutionary algorithms, the genetic operators, such as mutation and combination, are more variable and complicated compared with other components, such as initialization and selection, in the algorithm framework.Furthermore, in terms of the design of the new algorithms, the most difficult and important part of the previous work is focused on the design of genetic operators.In our work, we also focus on designing genetic operators.This paper proposes a novel approach to design genetic operators in evolutionary algorithm, namely, the evolutionary algorithm based on automatic designing of genetic operators (EA 2 DGO), which uses MEP with a new encoding scheme [9] to automatically generate genetic operators in the evolutionary algorithm to solve simulated problems.
Organization of this paper is as follows.In Section 2, the commonality of three classical evolutionary algorithms is introduced and discussed and then in Section 3, the general scheme of designing genetic operators is presented.In Section 4, the framework of EA 2 DGO is described, explaining the mechanism of automatically designing genetic operators.Experimental verifications are presented in Section 5. Section 6 gives conclusions and discussions.

Three Classical Evolutionary Algorithms
It is important to investigate what expressions of genetic operators are amenable to automatic design, for which we can get inspirations from analyzing the standard genetic algorithm (SGA) [10], particle swarm optimization (PSO) [11] and differential evolution (DE) [12,13].
In classical GA's crossover arithmetic operator, the new vectors are generated by linear combination of two different individuals.PSO and DE can be considered extended algorithms of the SGA.In the operator of combination of PSO, the particle's personal experience  and population's best experience  influence the movement of each particle.In the common operator of mutation in DE algorithm, the new vector is generated by the difference of two individuals in population and sum with another individual according to certain rules.These three algorithms are different but share some common characteristics.In the following subsections, the equations describing the operations of the operators of SGA, PSO, and DE algorithms are analyzed in detail.

Particle Swarm
Optimization.PSO, like other evolutionary algorithms, is also a population-based search algorithm and starts with an initial population of randomly generated solutions called particles.Each particle in PSO has a velocity and a position.PSO remembers both the best position found by all particles and the best positions found by each particle in the search process.For a search problem in a  dimensional space, a particle represents a potential solution.The velocity    and position    of the th dimension of the th particle are updated according to the following equations: where  = 1, 2, . .., is the particle's index,   = ( 1  ,  1  , . . .,    ) is the position of the th particle, and Like other evolutionary algorithms, DE starts with an initial population vector randomly generated in the solution space.Assume that  is a constant number which presents the size of population, and  is the dimension of parameter vectors, and the population is expressed as   (), where  = 1, 2, . . ., , and  is the generation.The main difference between DE and other evolutionary algorithms, such as GA and PSO, is its new generating method to generate new population vectors.In order to generate a new population vector, three vectors in population are randomly selected and weighted difference of two of them is added to the third one.After crossover, the new vector is compared with a predetermined vector in the population.If the new vector is better than the predetermined one, it replaces it; otherwise, the predetermined vector is copied to the next generation's population.For a traditional DE, the mutation procedure is illustrated as the following.
For the th vector from generation , a mutant vector   ( + 1) is defined by where ∈ {1, 2, . . ., },  1 ,  2 ,  3 ∈ [0, ], , and  1 ,  2 and  3 are different.The differential mutation parameter , known as scale factor, is a positive real normally between 0 and 1 but can also take values greater than 1.Generally speaking, larger values for  result in higher diversity in the generated population and the lower values lead to faster convergence.

The General Characteristics of Genetic Operators.
Through the analysis above, the following observations are made.
(i) A genetic operator is a formula which is composed of a group of objects (such as   () and   ()), arithmetic operators (such as +, −, * ), and parameters (such as ,  1 ,  2 , ).
(ii) A formula representing a genetic operator can have many variants.For example, DE and PSO have similar but different formulas, which is again different from the formula of SGA.
(iii) While existing evolutionary algorithms (including SGA, PSO, and DE) have different formulas, their genetic operators actually share characteristics (i) and (ii).
According to the observations (i), (ii), and (iii), we could design a scheme to represent the genetic operator for automatic design.

The Encoding Scheme of Genetic Operator Chromosome.
Firstly, we need an entity to express the genetic operators which can be distinguished and manipulated by a computer.Genetic programming (GP), gene expression programming (GEP), and multiexpression programming (MEP) are three kinds of methods with focus of generating computer programs automatically for given problems.According to this, a similar chromosome structure (, , ), like MEP, is presented to express genetic operators.Where  = 1, 2, . . .,  is the chromosome's index,  is the generation, and  is the genetic operator chromosome which is composed of a head and a tail.The head contains symbols that represent both functions (elements from the function set ) and terminals (elements from the terminal Set ), whereas the tail contains only terminals.Generally,  is composed of arithmetic operators, and  is composed of objects and parameters.
Each gene in  encodes a terminal or a function symbol.A gene that encodes a function includes pointers towards the function arguments.Function arguments always have indices of higher values than the position of the function itself in the chromosome.
There is little difference compared with chromosome represented by MEP.In MEP chromosome, the function arguments have indices of lower values than the position of function itself.However, both of them are essentially the same.MEP chromosome presented in this way is similar to the GEP chromosome where the tail is constructed with terminal symbol.Further information about relationships between chromosomes of GEP and MEP can be seen in [14].

The Decoding Scheme of Genetic
Operator Chromosome.Chromosome translation is obtained by parsing the chromosome right-left.A terminal symbol specifies a simple expression.A function symbol specifies a complex expression obtained by connecting the operands specified by the argument positions with the current function symbol.As MEP chromosome encodes more than one problem solution, and there is neither practical nor theoretical evidence that one of these expressions is better than the others before fitness calculation.For simplicity, the expression tree expressed by the first symbol is chosen as the chromosome's final representation.
After decoding, a genotype of (, , ) could be translated into a phenotype (, , ) which can be further processed by a computer.

The Characteristics of the Scheme of Designing Genetic
Operators.According to the encoding and decoding scheme of genetic operators, two characteristics are essential for automatically designing genetic operators.
(i) Changeability: the most different characteristic compared with traditional genetic operators is that its structure could be reconstructed by a computer, which means that the genetic operators could be generated and changed according to the requirements of problem.For example, every gene could be changed into another terminal or function symbol; every function arguments could be changed into another function argument; when the gene or function arguments are changed, the genotype and phenotype of chromosome are transformed.(ii) Adaptability: an automatic way of generating novel formula (using the existing objects, arithmetic operators, and parameters) may lead to a very novel design of evolutionary algorithm which can adapt itself to address problems with dynamic , which means genetic operators are simultaneously searched and designed in the process of problem solving.In the following, we take a snapshot of the chromosomes used to represent the genetic operators of the three classic evolutionary algorithms.

The Chromosome for Three Classic Evolutionary
could be expressed by an expression tree (phenotype) as shown in Figure 1.
Take an example with the length of a chromosome as 7,  = {, , } and  = {+, −, * }, the expression tree in Figure 1 could be expressed as a genotype as shown in Table 1.
, and  = {+, −, * } is used.The PSO's particle updating equation   ( + 1) can be expressed by an expression tree (phenotype) as shown in Figure 2. Since ( 3) and ( 4) are more complicated equations compared with SGA operators, they need a longer chromosome to express the equivalent genotype.For this example, the length of chromosome is 18,  = {, , , , ,  1 ,  2 ,  1 ,  2 } and  = {+, −, * }, a kind of equivalent genotype for phenotype can be expressed as shown in Table 2.
By analysis above, it is evident that for SGA, PSO, and DE, their genetic operators can be expressed by a specific chromosome, respectively.But the structures of the chromosomes are not changed, or static through the whole process of evolutionary run for the three classic evolutionary algorithms.This is generally true also for many other variants of evolutionary algorithms.Now the question is "can automatic programming method automatically construct genetic operators of evolutionary algorithms, where operators were automatically generated in the running process of problem solving, rather than predefined?"As we know, the evolutionary algorithms generally have capabilities of self-organizing, self-adapting, and self-regulating, but their genetic operators are normally predetermined.While the algorithms construed by predetermined operators are effective in certain aspects of problem solving, their performances in addressing other issues may not be so competitive.This phenomenon can be explained to some extent by the famous "No Free Lunch" theory [15].If there is an algorithm framework, in which the genetic operators can automatically adjust themselves during the problem-solving process with the change of the nature of the problems to be solved, the capabilities of self-organizing, selfadapting, and self-regulating of the algorithms can be further enhanced, and the limit imposed by the "NO Free Lunch" theory may be broken.Peng et al. proposed a populationbased algorithm portfolio (PAP) [16], which distributes the time among multiple different algorithms, to decrease the inherent risk associated with the selection of algorithms.However, the algorithms are still predefined in PAP, which is very different compared with our method.In the following, the details of a framework that can automatically design genetic operators in the running process of problem solving will be introduced.

Evolutionary Algorithm Based on Automatic Designing of Genetic Operators (EA 2 DGO)
In the framework of Evolutionary Algorithm based on Automatic designing of genetic operators (EA 2 DGO), the genetic operators are not predefined by a designer before problem solving but are searched and designed in the process of problem solving.Thus, the framework of the EA 2 DGO consists of two core components: one is the unit of problem solving (e.g., function optimization), which relates to operations in the problem solution space.The object of this unit is set to find global optimal solutions; and the other is the unit of automatically designing genetic operators, which relates to exploration in the space of genetic operators.The object of this unit is set to find the optimal genetic operators according to the requirement of the problem (see Figures 4(a The unit of function optimization focuses on the finding of global optimal solution, and the framework is given in Algorithm 2. According to the framework, we can see that the unit of function optimization is very similar with standard differential evolution, including the population initialization, crossover manipulation, individual fitness assessment, and individual selection.For mutation operator, an individual ⃗    ,  ∈ [1,NOP] is selected from the population of operator automatic generating unit according to the Roulette Wheel Selection algorithm, and the selected individual will be used as mutation operator in the unit of function optimization.
In the EA , are three individuals selected from the population of function optimization unit randomly.⃗  best , is the best individual in the current population.Suppose all the function symbols in set  are binary operators, the calculation of the result of the function model is expressed as shown in Algorithm 3.
In the unit of function optimization, when the selected chromosome ⃗    , namely, the genetic operator, can help function optimization unit generate a better candidate individual, the fitness value of chromosome ⃗    will be increased by one.In other words, the fitness of a chromosome in the unit of automatically designing genetic operators is measured by the times it has made positive effect for the unit of function optimization.With this measurement, in the next generation, the chromosomes with higher fitness will with a higher probability be selected as the genetic operators according to the Roulette Wheel Selection method (see Algorithm 4).
The evolution of chromosome in the unit of automatically designing genetic operators presents challenges in the general framework of the automation of EA.The proposed method is for the individual ⃗    as well as its offspring ⃗    in the unit of automatically designing genetic operators, within a certain time (which is a parameter that can be set by the user); we repeatedly select individuals for mutation manipulation from the population of the unit of function optimization then count the times that the fitness of child becomes better than its parent, denoted by ST( ⃗    ) and ST( ⃗    ), respectively.A Boolean function better is defined as the fitness for evolution of genetic operators: For  = 1 to Max FES Do (9) Find the best ⃗  best  in the function optimization population (10) Call the unit of function optimization (11) If (rand[0, 1) < OMR) Then (12) Call the unit of automatically designing genetic operators (13) End If (14)  =  + 1 (15) End For (16) Output chromosome may be a target of the mutation operator.When a symbol is changed, a new offspring is generated.
Although the evolution method motioned above can get access to the genetic operators before and after MEP genetic manipulation, an unavoidable disadvantage of this method is that it costs more computing resources compared with traditional optimization algorithms.The reason is that the genetic operators need to be evolved in the process of problem End If (8) End For (9) For  = EL to 1 Do solving.The cost of time is influenced by two parameters times and OMR.Setting proper parameter values will reduce the cost of time and will be researched in the future work.
It is worthwhile to point outthat even though there is a mutation operator, respectively, in both the unit of automatically designing genetic operator and the unit of function optimization, their operations are very different.In the unit of automatically designing genetic operator, the operand/chromosome of the mutation operator is literally an expression tree.In contrast, the operand/chromosome of the mutation operator in the unit of function optimization is a vector of real values used as variables for the function optimization.
The general framework of the unit of automatically designing genetic operators is given in Algorithm 5.

Experimental Verification
Single-objective optimization problems are adopted to verify the validity of the EA 2 DGO algorithm.This means that the genetic operators represented by the above scheme are Select a new operator to ⃗   , which will generate a new chromosome ⃗    by MEP genetic operators.( 5) For  = 1 to times Do (6) Select randomly For  = 1 to  Do ( 9) End If (15) End For (16) If used to manipulate the individuals in the population in the problem space, and the goal is to find the global optimal solutions of the problems.All the following functions listed in Table 4 are well-known benchmark functions which have been frequently used in literature [17].All of these functions used in this paper are minimization problems.In order to verify the effectiveness and efficiency of EA 2 DGO algorithm, we carried out experiments based on the 23 benchmark functions list in Table 4.
In our experiment, the parameters are set as in Table 5. Especially in ,  is ⃗ , ,  is ⃗  best , , and  = Random(0, 1).In order to verify the performance of the proposed algorithm, standard DE algorithm is conducted.In DE algorithm, NP = 100,  = 0.7, CR = 0.8, and Max FEs = 250000.The obtained results are presented in Table 5. Simulation was carried out in Eclipse and run on an AMD laptop with 2 G RAM under Windows XP platform.For each test problem, 25 independent runs were conducted with different random initializations.
The results on functions F1 to F23 are summarized in Table 6.For functions F1-F5, F7, and F9-F11, the EA 2 DGO achieved better mean results than DE.For functions F6, F12-F14, and F16-F23, both algorithms obtain exactly the same mean results.DE achieved better mean results in function  F8 and F15.For F15, while the mean result of the EA  The convergence comparisons between the EA 2 DGO and DE are shown in Algorithm 5.For simplicity, each Figure shows the result of a random trial.Because of space limitation, just some samples (F1∼F10) are selected and presented.According to Figure 5, we can find that EA 2 DGO converges more quickly than DE in every trail, except for F8 when the two algorithms converge almost through the same curve.
In order to better understand the internal operating mechanism of EA 2 DGO, the following experiment is designed.Take F7 for example, the 50,000 function calls are shown in Figure 6, wherein the horizontal axis represents the number of calls, and the vertical axis represents the optimal solutions found so far.The 50,000 calls are divided into five stages of assessment (Phase I∼V).Phase I represents the 0∼ 50 calls, Phase II represents the 51∼12,500 calls, Phase III represents 12,501∼25,000 calls, Phase IV represents 25,001∼ 37,500 calls, and Phase V is the last 37,501∼50,000 calls.After 50,000 evaluations, the best optimal solution we found for F7 is 1.50 − 6.In Phase I, totally 39 effective evaluations are obtained, which means 39 new child candidates replace the parents.For each stage we use a pie chart to represent the success rate of every genetic operator in the population of genetic operators in the unit of automatically designing genetic operators (such as in Table 7, for first genetic operator in Phase I, the success rate is 5% and the totally effective evaluations are 39, which means that there are two useful candidates are generated by first genetic operator and then go into the population in the unit of function optimization).
In Phase I, it is obvious that the second genetic operator, which is ) in operator generating population, produces more new candidates.In the beginning of evolution, the algorithm generates the new candidates easily and quickly, so we set a small number of function calls in Phase I.In Phase II, all the genetic operators have achieved comparable performance.In Phase III, the second operator demonstrates a stronger genetic capability; the phenotype of this genotype is   +1 =  ⃗   2  + ⃗  best  (see Table 7).In Phase VI, the best performance genotype is .The common characteristics of these two formulas are that they both apply the current best individual in the population ⃗  best  , which indicates that searching in vicinity of the best individual can improve the convergence efficiency.In Phase V, only 41 effective evaluations are achieved in 12,500 function calls, and the 4th and 5th genetic operators only produce one and zero effective candidate, respectively.This means that the searching of operators in the unit of automatically designing genetic operators gradually converges to those genetic operators that are hard to be further improved.The reason for that is, as mentioned above, the unit of function optimization and the unit of automatically designing genetic operators work together.When the function optimization population gradually converges to the global optimal solutions, the evolution of the genetic operator population is also led to a convergence.
According to the experiment, the genetic operator that produces more effective individuals does not necessarily produce the best individual.In this experiment, the first genetic operator in Phase V obtains the best performance in the 50,000 calls, whose phenotype is   +1 = ⃗

Conclusions
A novel evolutionary algorithm based on automatic designing of genetic operators is presented to tentatively solve algorithm designed problem automatically.EA 2 DGO does not only search in the problem solution space, but also explore in the space of genetic operators, which means that the genetic operators are not predefined by a designer before problem solving but searched and designed automatically in the process of problem solving.
Experimental results have shown that the EA 2 DGO can achieve comparable performance with the state-of-art algorithm such as DE.However, many more issues deserve to be investigated for this potential algorithm.For example,

0%
at this stage, there are still quite a few parameters involved in the algorithm framework.As a result, parameter analysis becomes naturally a next step of study.Meanwhile, how to set up these parameters optimally (or even reduce some parameters) is an issue worth to be further studied.In addition, it is very interesting and desirable to investigate methods to define some important metrics for this new algorithm, such as evolvability, adaptability, and computational complexity.

Figure 3 :
Figure 3: The expression tree of genetic operator (5) in DE.
), 4(b), and 4(c)).The unit of function optimization and the unit of automatically designing genetic operators are not isolated.Actually, they work together in a closely related way.In the unit of function optimization, the genetic operators for mutation are selected from the unit of automatically designing genetic operators in the process of problem solving.And in the unit of automatically designing genetic operators, individuals are selected from the function optimization population in the unit of function optimization for evaluating the performance of genetic operators.The general framework of EA 2 DGO is given in Algorithm 1.

Figure 4 :
Figure 4: The components of EA 2 DGO.(a) The general framework of EA 2 DGO.(b) The flowchart of the function optimization unit.(c) The flowchart of the unit of automatically designing genetic operators.(d) The interaction relationship between two units.

Figure 6 :
Figure 6: Phases I∼V in one run for F7.
1  , . . .,    ) represents the velocity of th particle.  = ( 1  ,  2  , . . .,    ) represents the best previous position yielding the best fitness value for the th particle. = ( 1 ,  2 , . . .,   ) is the best position discovered by the whole population.rand1   and rand2 are two random numbers independently generated within the range of [0, 1],  1 and  2 are two learning factors reflecting the weights of stochastic acceleration terms that pull each particle toward  and  positions, respectively. = 1, 2, . .., indicates the iterations.2.3.Differential Evolution.Differential evolution (DE) is a population-based, direct, robust, and efficient search method.

Table 3 :
The equivalent genotype of (5) in DE.
2DGO, the mutation operator is a function model.The functionality of a function model is to provide a corresponding output (result) given a certain input parameters (terminals).The input parameters include ⃗ Input: NP, NOP, , CR, OMR, Max Fes, hl, tl, times, , and ; where NP denotes the size of function optimization population; NOP denotes the size of operator generating population;  denotes scaling factor; CR denotes the probability of crossover; OMR denotes the probability of Mutation for operators in operator generating population; Max FEs denotes the max number of function calls; hl is the of head length of chromosome in new encoding scheme MEP; tl is the tail length; times denotes the number of repeat times which randomly select individuals for mutation manipulation from population in unit of function optimization;  is the terminal symbol set;  is the function symbol set.

Table 4 :
The 23 test functions used in the experiments,  is the definition domain and  min is the minimum values of the function.
The framework of the unit of automatically designing genetic operators.
2DGO is close to that of DE, both algorithms have the ability to achieve the best solution.The biggest difficulty of EA 2 DGO is from the function F8, for which DE can easily obtain the global minima but the new algorithm presented in this paper frequently falls into the local minima.The reason for this needs further investigation.For the best results, the EA 2 DGO achieved better results than DE in 8 functions and obtained the same best results in the reminded 15 functions.For the median results, the EA 2 DGO achieved better results than DE in 7 functions and obtained the same median results in 14 functions.DE achieved better median results in functions F5 and F8.For the worst results, the EA 2 DGO achieved better results than DE in 9 functions and obtained the same median results in 12 functions.DE achieved better median results in 2 functions, which are F8 and F15.

Table 5 :
Parameters setting used in EA 2 DGO algorithm.

Table 6 :
The results achieved for F1 to F23 using the EA 2 DGO algorithm and DE algorithm.

Table 7 :
The detail information in Phases I∼V.