PresentationPDF Available

Evolutionary Algorithms - An Introduction

Authors:

Abstract

Presentation at the Stanislaw Lem Workshop on Evolution.
Evolutionary Algorithms
An Introduction
"[G]enetic algorithms are based on a biological metaphor: They view learning as a competition among a population of evolving candidate
problem solutions. A 'fitness' function evaluates each solution to decide whether it will contribute to the next generation of solutions. Then,
through operations analogous to gene transfer in sexual reproduction, the algorithm creates a new population of candidate solutions."
Matthias Trapp,
Theoretical Ecology Group - University of Potsdam,
Stanislaw Lem Workshop on Evolution 10.-14. October - Lviv 2005,
Agenda
Introduction
Structure of an EA
Genetic Operators
Classification
Implementation
Discussion
Introduction
Evolutionary Algoritms - Introduction 4
Motivation - The Problem(s)
Global optimization problem:
Function has many local optima
Function is changing over time
Function have many parameters
very large search space
Combinatorial problems / Data Mining
Classical NP-hard problems:
TSP
SAT
• …
}:)(min{ Μxxf
Evolutionary Algoritms - Introduction 5
Overview Application Domains
EA/EC
Optimization
Automatic
Programming Machine Learning
Economics
Operations
Research
Ecology
Population
Genetics
Social Systems
Evolutionary Algoritms - Introduction 6
Evolution and Problem Solving
Algorithm = Automated Problem Solver
Broad Scope: Natural Computing
Family of algorithms which mimicking
natural processes:
Neural Networks
Simulated Annealing
DNA Computing
Evolutionary Algorithms
Evolution vs. Problem Solving
Environment → Problem
Individual → Candidate Solution
Fitness → Quality
Approximation → Optimization
Evolutionary Algoritms - Introduction 7
Evolutionary Algorithms
EAs are adaptive heuristic search algorithms
Metaphor: trail and error (a.k.a generate and test)
EAs are inspired by Darwin's theory of evolution:
problems are solved by an evolutionary process
resulting in a best (fittest) solution (survivor) from
a population of solution candidates
EAs has been successfully applied to a wide range of
problems:
Aircraft Design, Routing in Communications Networks,
Tracking Windshear, Game Playing, Robotics, Air Traffic Control,
Design, Scheduling, Machine Learning, Pattern Recognition, Job Shop
Scheduling, VLSI Circuit Layout, Strike Force Allocation, Market Forecasting,
Egg Price Forecasting, Design of Filters and Barriers, Data-Mining, User-Mining, Resource
Allocation, Path Planning, Theme Park Tours
Evolutionary Algoritms - Introduction 8
Characteristics
Differences to classical algorithms/optimization methods:
EAs search a set of possible solutions in parallel
EAs do not require derivative information
EAs use probabilistic transition rules
EAs are generally straightforward to apply
EAs provide a number of potential solutions
EAs are able to apply self-adaptation
Structure of an EA
Evolutionary Algoritms - Structure of an EA 10
EA Components
Representation mechanism (definition of individuals)
Evaluation function (or fitness function)
Population as container data structure
Parent/Survivor selection mechanism
Variation operators (Recombination, Mutation)
Initialization procedure / Termination condition
Coding of Solutions
Objective Function
Genetic Operators
Specific Knowlegde
Problem Evolutionary
Search Solution(s)
Encoding of Problem Implementation
Evolutionary Algoritms - Structure of an EA 11
General Schema EA
Evolutionary Search (Flow Chart Model)
Population
Parents
Offspring
Parent Selection
Survivor Selection
Initialization
Termination
Recombination
Mutation
Data Activity/Control Flow
LEGEND:
Evolutionary Algoritms - Structure of an EA 12
General Schema EA
Evolutionary Search (Pseudo Code)
procedure EA {
t = 0;
Initialize(Pop(t));
Evaluate(Pop(t));
while(!TerminalCondition(Pop(t))
{
Parents(t) = ParentSelection(Pop(t));
Offspring(t) = Recombination(Parents(t));
Offspring(t) = Mutation(Offspring(t));
Evaluate(Offspring(t));
Pop(t+1)= Replace(Pop(t),Offspring(t));
t = t + 1;
}
Evolutionary Algoritms - Back Matter 13
Representation x = E(D(x))
Mapping: Problem context Problem solving space:
Phenotype space P(candidate solution,individuals)
Genotype space G (chromosomes, individuals)
Encoding E : P
G
Decoding D : G
P
Encoding: Technical representation of individuals
GA:Binary Encoding: (1110110000100) = 7556
ES: Valued vectors: (ABDJEIFJDHDIE)||(136578924)
EP: Finite state machines:
GP: Tree of objects (LISP):
(IF_THEN_ELSE(> x 0)(SetX(*(* x 3) (- 4 y)))(SetY(+ x (- y 1))))
s0s1
s2
s2
{01}*1 Acceptor
s3
0
100,1
1
Evolutionary Algoritms - Back Matter 14
Population P(t) = {x1t,..., xnt}
Multi-set of genotypes = unit of evolution
Invariants:
Population Size n:
static (common)
dynamic (unusually)
Non-overlapping (Simple GA):
entire population is replaced each generation
Overlapping (Steady-State GA):
few individuals are replaced each generation
Sometimes associated with spatial structure
Diversity: number of different solutions in P(t)
Multi-Population approaches (Pohlheim, 1995)
Genetic Operators
Evolutionary Algoritms - Genetic Operators 16
Selection/Sampling Operators
Distinguish between parent and survivor selection
Typically probabilistic; work on population level
Use fitness assignment of solution candidates
Role: pushing quality improvement
Generational selection vs. steady-state selection
Common steady state selection methods:
Elitist Selection
Roulette Wheel Selection
Tournament Selection
Scaling Selection
Rank Selection
Fitness-proportionate Selection
Hierarchical Selection
Boltzmann Selection
Remainder stochastic sampling
Stochastic uniform sampling
Evolutionary Algoritms - Genetic Operators 17
Mutation Operator mi: G
G
Unary operator, always stochastic
Bit-Strings: Bit-flips (00101) (10101)
Tree:
Sub tree destructive
Sub tree/Node swap
List:
Generative/Destructive
Node/Sequence Swap
Array:
Destructive
Element Flip/Swap
Evolutionary Algoritms - Genetic Operators 18
Recombination ci: G ××G
G
Inherit genotype traits, typically stochastic
Often binary operator: Offspring = Sex(Mum, Dad)
Bit-Strings:
k-Point Recombination
Uniform Recombination
Genetic Programming:
(seldom used)
0 1 1 0 1
1 0 1 1 0
0 1 1 1 0
Snip
A =
B =
A’=
=
=otherwiseiB
iBMifiA
iA ],[
1][],[
]['
+
X 1 *
X 2
++
X*
X 2
=
(X+1) (X·2) X+(X·2)
Evolutionary Algoritms - Genetic Operators 19
A Simple Example
Representation {0,1}n
Recombination 1-Point Crossover
Recombination probability 70%
Mutation Uniform Bit-Flip
Mutation probability pm1/n
Parent selection Best out of random two
Survival selection Generational
Population size 500
Number of offspring 500
Initialization Random
Termination condition No improvement in last 25 generations
EA for Knapsack Problem
Evolutionary Algoritms - Genetic Operators 20
Effects of Genetic Operators
Selection alone will tend to fill the population with
copies of the best individual
Selection and crossover operators will tend to cause
the algorithms to converge on a good but sub-optimal
solution
Mutation alone induces a random walk through the
search space.
Selection and mutation creates a parallel, noise-
tolerant, hill-climbing algorithm
Evolutionary Algoritms - Genetic Operators 21
Terminal Conditions
Discovery of an optimal solution (precision ε> 0),
Discovery of an optimal or near optimal solution,
Convergence on a single or set of similar solutions,
A user-specified threshold has been reached,
A maximum number of cycles are evaluated,
EA detects the problem has no feasible solution
often disjunction of different conditions
Classification
Evolutionary Algoritms - Classification 23
Classification - Overview
Genetic Algorithms (GA)
Evolutionary Strategies (ES)
Evolutionary Programming (EP)
Genetic Programming (GP)
Evolutionary Computation
• 1948 Alan Turing: „genetically or evolutionary search“
>1950 Idea:
simulate evolution to solve engineering and design problems
Box, 1957
Friedberg, 1958
Bremermann, 1962
Evolutionary Algoritms - Classification 24
Genetic Algorithms (GA)
By Holland (1975), USA
concerned with developing robust adaptive systems
Initially as abstraction of biological evolution
Use of bit-strings for solution representation
First EA which uses recombination
Recombination seen as main operator
very successful for combinatory optimization problems
Evolutionary Algoritms - Classification 25
By Rechenberg (1973), Schwefel (1981), Germany
Parameter optimization of real-valued functions
Accentuation on mutation
Selection (μParents, λOffspring):
(μ, λ): choose fittest of λ > μ offspring
(μ + λ): choose fittest of λ + μ solutions
Recombination (u,vparent vectors, wchild vector):
More soon… (Implementation Example)
Evolutionary Strategies (ES)
Evolutionary Algoritms - Classification 26
Evolutionary Programming (EP)
By Fogel, Owens, and Walsh (1966), USA
Application: Artificial Intelligence,
Initially for evolution of finite-state machines,
Using mutation and selection,
Later applications to mainly real-valued functions
Strong similarity to evolutionary strategies
Example: Prediction of binary cycles
Evolutionary Algoritms - Classification 27
Genetic Programming (GP)
Koza (1992), developed to simulate special functions
Application: Function fitting f(x)
Using parse trees of Terminal and Non-Terminals:
Assumptions:
Completeness
Seclusion
Problems:
Variable count
Variable types
=
iixprogramxftiontargetfunc )()(
max(x², x+3y)
max
3
·
x x
+
x·
y
T = {x, y, 3},
N = {max,+,·}
void ga::rank(void) {
fitness_struct temp;
int pos;
calc_fitness();
for (int pass=1; pass<POP_SIZE; ++pass) {
temp = rankings[pass];
pos = pass;
while ((pos > 0) && temp.fitness < rankings[pos-1].fitness) {
rankings[pos] = rankings[pos-1];
--pos;
}
rankings[pos] = temp;
}
best_sol = rankings[0].fitness;
worst_sol = rankings[POP_SIZE-1].fitness;
if (best_sol < best_overall)
best_overall = best_sol;
if (worst_sol > worst_overall)
worst_overall = worst_sol;
}
Implementation and Software
Evolutionary Algoritms - Implementation 29
Search Space:
Evolutionary strategy:
Solution candidate (no encoding necessary):
Fitness-Function :
Parent selection: Elitist
Recombination: 1-Point, fixed
Non-overlapping population
Another Simple Example
0443322110
)( xxxxxxxxxxxf ++++=
 
5
,50;50 MGPIRM===
Gxxxxxx = 43210 ,,,,
MPf :
Hybrid approach: evolutionary strategy and genetic program
Evolutionary Algoritms - Implementation 30
Applying Self-Adaptation
Evolution of the Evolution:
Self-adaptation = specific on-line parameter calibration technique
Random number from Gaussian distribution
with zero mean and standard deviation σ
Mutation operator:
Extending the candidate representation:
}4,...,0{),,0(
'+= iNxx ii
),0(
,,,,,,,,,,
''
),0('
'
4
'
0
'
4
'
04140
iii
N
ii
Nxx
e
xxxx
+=
=
),0(
N
Evolutionary Algoritms - Implementation 31
Working of an EA
Distinct search phases:
Exploration
Exploitation
Trade-Off between exploration and exploitation:
Inefficient search vs. Propensity to quick search
focus
Premature Convergence: “climbing the wrong hill”
Losing diversity Converge in local optimum
Techniques to prevent this well-known effect
• „Any-time“ behaviour
t
Best value in population
Evolutionary Algoritms - Implementation 32
Multiobjective EA
Multiobjective GA (MOGA)
(Fonseca und Fleming (1993)),
Niched Pareto GA (NPGA)
(Horn und Nafpliotis (1993)),
Nondominated Sorting GA (NSGA-II)
(Deb u. a. (2000)) ,
Strength Pareto EA (SPEA)
(Zitzler und Thiele (1998)),
Strength Pareto EA (SPEA2)
(Zitzler u. a. (2001))
Evolutionary Algoritms - Implementation 33
Parallel Implementation of EA
Subpopulation on MIMD (Belew and Booker (1991))
Decrease of execution time
Migration Model
Unrestricted migration
Ring migration
Neighbourhood migration
Global Model (Worker/Farmer)
Diffusion Model:
handles every individual separately
selects the mating partner in a local neighbourhood
diffusion of information takes place
Evolutionary Algoritms - Implementation 34
API Comparison
Name Language Licence Target
PGAPack Fortran / C Freeware All
EO C++ GNU LGPL All
GALib C++ BSD Lnx,Win
GAGS C++ Freeware Lnx,Win
JAGA Java Freeware All
JGAP Jave Freeware All
Discussion
Evolutionary Algoritms - Discussion 36
EA Advantages
+ Applicable to a wide range of problems
+ Useful in areas without good problem specific
techniques
+ No explicit assumptions about the search space
necessary
+ Easy to implement
+ Any-time behaviour
“..is a good designer of complex structures that are well
adapted to a given environment or task.”
Evolutionary Algoritms - Discussion 37
EA Disadvantages
Problem representation must be robust
No general guarantee for an optimum
No solid theoretically foundations (yet)
Parameter tuning: trial-and-error Process
(but self-adaptive variants in evolution strategies)
Sometimes high memory requirements
Implementation: High degree of freedom
Evolutionary Algoritms - Discussion 38
Summary
EAs are different from classical algorithms
Less effort to develop an EA which:
Delivers acceptable solutions,
In acceptable running time,
Low costs of men and time
EAs are distributable (Belew and Booker (1991)):
Subpopulations on MIMD,
Via network
EAs are easy to implement
„In order to make evolutionary computing work well, there must
be a programmer that sets the parameters right.“
„an EA is the second best algorithm for any problem“
Sources
Spears, W. M., De Jong, K. A., Bäck, T., Fogel, D. B., and de
Garis, H. (1993). “An Overview of Evolutionary
Computation,The Proceedings of the European Conference
on Machine Learning, v667, pp. 442-459.
A.E. Eiben, “Evolutionary computing: the most powerful
problem solver in the universe?”
Zbigniew Michalewicz, “Genetic Algorithms + Data Structures
= Evolution Programs, Springer, 1999, 3-540-60676-9
Lawrence J. Fogel, Alvin J. Owens, Michael J. Walsh: Artificial
intelligence through simulated evolution, Wiley Verlag 1966
John R. Koza: Genetic Programming on the programming of
computers by means of natural selection, MIT Verlag 1992
ResearchGate has not been able to resolve any citations for this publication.
Conference Paper
Full-text available
Evolutionary computation uses computational models of evolutionary processes as key elements in the design and implementation of computer-based problem solving systems. In this paper we provide an overview of evolutionary computation, and describe several evolutionary algorithms that are currently of interest. Important similarities and differences are noted, which lead to a discussion of important issues that need to be resolved, and items for future research.
Article
In this paper we review evolutionary computing (EC) -- the science of building, applying and studying algorithms based on the Darwinian principles of natural selection. We briefly introduce the main concepts behind evolutionary computing, and sketch the history of EC. Then we present the main components all evolutionary algorithms (EA) share and sketch di erences between different types of EAs. Thereafter we consider two representatives, genetic algorithms and evolution strategies, in more detail. Finally, we discuss what EAs are good for, that is, we touch upon their strengths and weaknesses as well as some application areas ranging from combinatorial problems to entertainment and artificial life simulations.