Geoscience Reference
In-Depth Information
The 1970s and 1980s saw EAs moving towards both application to more complex problems and
to the development of new EA-based problem solvers for other problem domains. With the 1990s
witnessing a closer bringing together of the field, the term evolutionary computation made its
first appearance. This period was also characterised by a cross-fertilisation of ideas giving rise to
methods such as GENITOR (Whitley et al. 1988), GP (see Beriro et al. 2014 for a full chapter on
the subject), messy GAs and hybrid methods, that is, the integration of EAs with other technologies
such as neural networks and fuzzy logic in the form of soft computing (Pratihar 2008). Today, the
discipline is still evolving, with issues such as self-adapting systems (Meyer-Nieberg and Beyer
2006), coevolutionary systems (Bull 2001), agent-orientated models (Kisiel-Dorohinicki 2002) and
GA hybridisation with tools from artificial life such as swarm intelligence (Iba and Noman 2012)
amongst those being explored. EAs are now commonly used in many different areas including
engineering (Annicchiarico 2005), biology (Fogel and Corne 2003), financial forecasting (Iba and
Aranha 2012), operations research and the social sciences (Brandl 2007). For a detailed overview of
the early development of EAs, Fogel (1998) provides an excellent introductory reference.
7.3 EA FAMILY
An EA is a stochastic iterative procedure for generating a set of possible solutions for a problem
that draws heavily on evolutionary processes. There are many different variants of EAs; however,
the underlying principle behind each technique is universal. Initially, the population, which is com-
prised of a set of individuals, is generated at random or by means of a heuristic seeding process.
Each individual, which comprises one or more chromosomes, is then assigned a fitness value: this
is a measure of how good the solution is for the problem being considered. All individual solutions
are evaluated; those with high fitness values have an increased probability of being selected as
parents for the next generation of individual solutions. This occurs through recombination methods.
New solutions are added into the population through mutation. These processes continue until a
termination criterion is met, such as reaching the maximum number of generations. Figure 7.1a pro-
vides a diagrammatic overview of an EA, with pseudocode representing the process in Figure 7.1b.
At the end of the 1960s, there were three main families of EAs: ES, EP and GAs. However,
with subsequent research, new branches have developed. These branches of the EA family tree are
presented in the list below. Detailed overviews of EAs can be found in Davis (1991), Michalewicz
(1996), Bäck and Schwefel (1993), Mitchell (1998), Eiben and Smith (2003), Ahn (2006), Fogel
(2006), Yu and Gen (2010) and Goldberg (2013), while other key references are supplied below with
each branch:
GAs : GAs seek the solution of a problem in the form of strings of numbers (or arrays of other
elementary types) by applying operators such as recombination and mutation (Holland
1975). The solution is in the form of optimised individual or multiple values, normally
parameter values. This type of EA is often used in optimisation problems.
EP : EPs differ from GAs in that they focus on the adaption of individuals rather than on the
evolution of their genetic information (Fogel et al. 1966). The structure of the program is
to be optimised, while its numerical parameters are allowed to evolve. EPs do not follow
the main genetic operators found in GAs as closely; for example, crossover is not used and
mutation takes a different form.
ESs : This branch is similar to EP, but with selections and mutations made differently. These
techniques are characterised by manipulating arrays of floating-point numbers. As Alba
and Cotta (2006) state, 'a very important feature of ES is the utilisation of self-adaptive
mechanisms for controlling the application of mutation'. Some key references include the
works of Schwefel (1995) and Rechenberg (2000).
GP : GPs evolve whole programs to solve problems. They are similar to GAs, but use program
fragments instead of strings. Functions are represented as parse trees where leaves are
Search WWH ::




Custom Search