• No results found

Evolutionary computation (EC) is a sub-field of artificial intelligence that com- prises of nature-inspired computational methodologies. The two main categories in the area include evolutionary algorithms and swarm intelligence [97][99].

2.2.1

Evolutionary Algorithms

Evolutionary Algorithms (EAs) are a class of algorithms that incorporate the modern principles of biological evolution and Darwinian theories of natural selection of species into machine learning. These theories assert that only the fittest organisms will survive to reproduce while the less fit die off. As the offspring of fit parents will have similar or the same genetic code as their parents, the new generation of organisms is expected to be fitter, or at least as fit, as the current generation. An advantage of EA’s is the ability to navigate through “worse” areas of the search-space in order to avoid becoming stuck in a local

optima.

In EAs, an individual (or member of the population) represents a potential solution to a given problem, and these individuals are evolved (or improved) over generations using genetic operators. Genetic operators are mechanisms inspired by biological evolution such as crossover, mutation or reproduction, to create and improve individuals in the population. A fitness function determines the “goodness” of an individual, that is, how well an individual solves a given problem. Members of the population are selected for recombination (using the genetic operators) depending on their fitness. The goal in EAs, similar to natural selection, is to have some useful part of an individual’s genetic code propagated down generations until an individual with good fitness is evolved.

The main EA techniques include the following.

Genetic Algorithms

Genetic Algorithms (GAs) are one of the earliest representations of an artificial evolutionary learning system [86][79]. In GA, individuals or chromosomes are typically encoded as fixed-length bit strings where each element in this string is called agene, as shown in Figure 2.2.

1 1 0 0 1 0 0 1

2.2. EVOLUTIONARY COMPUTATION 19 However, a major limitation in GA systems is that the chromosome can require a complex encoding/decoding process. The encoding process is required to transform a task into the appropriate chromosome representation for the evolutionary process. The decoding process is required at every fitness iteration from the start of the evolution to evaluate a GA solution, to convert the individual from the chromosome representation into a more useful solution representation. For example, without the specific encoding/decoding knowledge, the meaning of a chromosome, such as the one shown in Figure 2.2, is almost impossible to interpret.

Genetic programming

Genetic Programming (GP) extends the idea of GAs by increasing the complexity of representation of individuals from fixed length bit strings tocomputer programs

[104]. GP has been highly successful in automatically evolving variable length computer programs to solve a range of problems, particularly in the areas of symbolic regression [104][81], classification [176][62][111], automatic feature selection and construction [112][133][134], and object recognition and detection in images [163][89][184]. GP has two key advantages over GAs [106]. The first is the flexibility allowed in the representation (of individuals) [106]. The second is interpretability of the evolved programs; these can be easily analysed and decomposed in a meaningful way to understand how GP has learned to solve a problem [105].

Evolutionary Programming

Evolutionary Programming (EP) was originally used to evolvefinite state machines

to represent the learnt predictors [72]. Currently, there is no constraint on the representation of individuals in EP; this usually follows from the problem. However, the structure of the individuals to be optimised typically remains fixed during the evolution, while its numerical parameters are allowed to evolve. Mutation is the dominant genetic operator in EP; while crossover is not typically used. In EP, every individual in the population is mutated to generate one offspring and the level of variation in the offspring depends on a statistical distribution.

Evolution Strategies

Evolution Strategies (ES) are typically used for continuous parameter optimisa- tion where individuals are represented as fixed-length real-valued vectors [153]. Mutation is also the dominant genetic operator in ES (similar to EP). Since all elements in the individuals are real-valued, mutation is usually performed by adding a normally distributed random value to each vector element in a given individual (to generate an offspring). Unlike GA, GP and EP which typically use a stochastic selection process, ES uses a deterministic selection process where individuals with poor fitness are removed from the population at every generation.

Learning Classifier Systems

Learning Classifier Systems (LCS) share close links withreinforcement learningand GAs [87]. In general, LCS is an adaptive system that learns based on actions (or outputs) that generate rewards from the environment for a given input. LCS was originally a population of binary rules, and a GA was used to update and select the best rules. Currently, the classifiers or rules can include real-valued and functional conditions (such as S-expressions). The evolution of classifiers takes place as the LCS system interacts with its environment. LCS systems can be split into two types: PittsburghLCS which has a population of separate rule sets, and

MichiganLCS which only has a single set of rules in a population.

Differential Evolution

Differential Evolution (DE) was originally developed for multi-dimensional real- valued function optimisation problems [160]. Recently, DE has also been used for optimisation problems that are not continuous or which change over time since DE does not use the gradient of the problem being optimised [100]. In DE, the population of candidate solutions typically represents parameter vectors. Unlike many EAs, in DE recombination creates new candidate solutions using the weighted difference between two randomly selected population members when added to a third population member [100]. The new candidate solution is accepted as part of the population, or rejected (discarded), based on its fitness.