Survival of the Fittest 
An Introduction to Genetic Algorithms and 
Evolutionary Computation 
Aleksander M. Stensby 
Monokkel A/S 
03.10. 2014
aleksander@monokkel.io 
CEO 
/ 
Co-­‐Founder 
@astensby
Outline 
Part 1: Theory lecture – Introduction to Genetic Algorithms 
10:15 – 13:00 
Part 2: Workshop – Traveling Salesperson Problem (TSP) 
13:00 – 15:00
Lecture 
outline 
● An NP-Complete Problem – The TSP 
● Darwin's Theory of Evolution 
● Genetic Algorithms (GA) 
● Applications of GA 
● Genetic Operators 
● Generic GA 
● Why does GAs work?
Traveling 
Salesperson 
● Given a list of cities to visit. 
● Goal: find the shortest tour that visits each city exactly once, 
returning in the end to the starting point. 
● Complexity: O(n!) 
● NP-Hard
Darwin’s Theory of Evolution
Darwin's 
Theory 
of 
Evolu;on 
● All life is related and has descended from a common ancestor. 
● Natural selection 
– “Survival of the fittest” 
● Organisms can produce more offspring than their surroundings 
can support -> natural struggle to survive. 
● Organisms whose variations best adapt them to their 
environments survive, the others die. 
● Variations are heritable -> can be passed on to the next 
generation -> i.e., evolution
Inheritance 
Muta=on 
Selec=on 
Crossover 
Genetic Algorithms
What 
is 
Gene;c 
Algorithms? 
● John Holland (70's) 
● Nature’s mechanism for evolution could be modeled in 
computers to find successful solutions for difficult problems. 
● By taking a population of possible answers and evaluating them 
against the best possible solution, the fittest individuals of the 
population are determined. 
● After evaluation, combining and mutating, the members of the 
current generation generate a new population. 
● This new generation is then evaluated and the process is 
repeated, until an optimal solution is found.
TSP 
cont. 
What was our TSP problem? 
- population of possible answers: 
Possible tours: “1-3-5-6-7-4-2-1” 
- evaluate – best possible solution: 
Shortest tour! 
- generate a new population by combining and mutating 
- evaluate new population, “rinse, repeat”
TSP 
search 
space 
500 cities on a circle – simple? 
Possible solutions? 
500!
TSP 
example
Applications of GA
Applica;ons 
● What problems can we solve with a GA? 
– Optimization & Design 
– TSP, function optimizations, time tables.. 
– Approximate NP-Hard problems 
– Simulation 
– Modeling, system identification 
– Evolutionary machine learning 
“Mom and dad jet engine can get together and have baby jet 
engines. You find the ones that work better, mate them, and 
just keep going.” - Goldberg
Example: 
Shape 
op;miza;on 
● NASA: Satellite truss or boom design 
– the design of satellite trusses with enhanced vibration 
isolation characteristics 
– produced using Genetic Algorithm methods and a highly 
customized vibrational energy flow code 
● Evolutionary Design: 20.000% better!!!
Example: 
Antenna 
design 
(NASA) 
● Encode antenna structure into a genome 
● Use GA to evolve an antenna 
● Evaluation: Convert the genotype into an antenna structure 
● Simulate using antenna simulation software
GA terminology
GA 
terminology: 
● Population 
● Individuals – Chromosomes – Representation? 
● Generations – Evolution 
● Fitness – How “fit” is the individual? 
● Development – Selection – Reproduction
Evolu;on 
– 
from 
one 
genera;on 
to 
the 
next 
● Duplication? -> No improvement 
● Randomly produced? -> Past advances are not preserved 
● Fitness is not preserved by duplication 
● Observed variety is not due to random variation 
● So, how do we retain past successes? 
● How do we use them to increase the probability of fit (and 
novel) variants? 
● Fitness proportional reproduction & genetic operators
What 
should 
our 
GA 
do? 
● Recombine 'surface' similarities among the fittest individuals... 
● Combine 'good ideas' from different good individuals... 
● ... because certain substructures in good individuals cause their 
high fitness, and recombining such 'good ideas' may lead to 
better individuals...
Genetic Operators
Gene;c 
operators 
● Fitness-proportional reproduction 
● Genetic recombination -> Crossover 
● Mutation -> “copy errors” -> additions / deletions of base pairs
Gene;c 
operators: 
-­‐ 
Crossover 
● Crossover 
– Sexual reproduction (pass on 50% of your genes) 
● Benefits? 
– Stability – occurs between very similar DNA segments 
– Leads to clearly defined species! 
– Stability - lengths of DNA molecules are preserved 
– Variability – combining “good” ideas
Gene;c 
operators: 
-­‐ 
Crossover 
● Crossover 
– Single Point 
– Two point 
– Uniform
Gene;c 
operators: 
-­‐ 
Muta;on 
● Mutation 
– Insert / Delete / Substitute 
● Mass mutation -> harmful! (e.g. genetic disorder) 
● Small changes -> beneficial! -> Variations! 
● Help to better adapt to changes in their environment!
Gene;c 
operators: 
-­‐ 
Muta;on 
● Mutation 
– Inversion 
0 0 1 1 1 0 1 0 0 1 => 0 0 1 0 1 0 1 0 0 1 
– Substitution 
1 2 3 4 8 7 6 9 5 => 1 2 9 4 8 7 6 3 5 
– Update 
8.3 1.2 4.3 2.2 2.7 7.1 => 8.3 1.2 4.3 2.3 2.7 7.1 
– Insertion 
1 2 3 4 8 7 6 9 5 (select random) 
1 2 3 4 9 8 7 6 5 (insert at random location)
Gene;c 
operators: 
-­‐ 
Reproduc;on 
● Fitness-proportional reproduction / Selection strategies 
● Again; survival of the fittest 
● Population fitness F = Σk=1 
popSize fk 
● Roulette Wheel selection 
● Rank selection 
● Tournament selection 
● Elitism 
– First copies the best chromosome (or a few best chromosomes) to new 
population. The rest is done in classical way. 
– Elitism can very rapidly increase performance of GA, because it prevents 
losing the best found solution.
RouleOe 
Wheel 
selec;on 
- Rank individuals in increasing order of fitness, 
from 1 to popsize (n) 
- Probability of selecting individual vi = fi / F 
for (int k = 0; k < population.size(); k++) { 
sum += (population.get(k).getFitness() / populationFitness); 
if (sum >= random) 
return population.get(k); 
}
Rank 
selec;on 
- Rank individuals in increasing order of fitness, from 1 
to popsize (n) 
- Better when fitness differs a lot 
=> No super individuals 
for (int k = 0; k < population.size(); k++) { 
double pk = Math.pow(selectionPressure, k + 1); 
sum += pk; 
if (sum >= random) 
return population.get(k); 
}
The components of a GA
The 
components 
of 
a 
GA 
● Representation / Encoding of a Chromosome 
– Binary, Permutation, Value... 
● Initialization 
● Evaluation / Fitness function 
● Genetic operators / Selection 
● Parameters 
– Population size 
– Xover probability 
– Mutation probability 
– ...
Generic 
GA
Generic 
GA 
– 
Pseudo 
code 
● 1. Choose initial population - random 
● 2. Evaluate the fitness of each individual in the population 
● 3. Repeat until termination 
● Select best-ranking individuals to reproduce (parents) 
● Breed new generation through crossover and mutation (genetic operations) and give 
birth to offspring 
● Evaluate the individual fitness of the offspring 
● Select individuals for next generation
Some 
recommenda;ons 
● “Generally good parameters” 
– High crossover probability! (≈ 0.6) 
– Low mutation probability! (≈ 0.1 to 0.001) 
– Population size? - usually bigger is better! 
● Chromosome / String size -> determines search space! 
– e.g. 30 bits? -> search space = 230 = 1.07 billion points
Problems 
with 
GAs 
● No convergence guarantee 
● Premature convergence 
● Disadvantages: 
– May be difficult to choose encoding 
– May be difficult to define the fitness function 
– May be slow (not really a problem with todays computers)
Why does it work?
Why 
does 
GAs 
work? 
● Directed and stochastic search! 
– Population of potential solutions (randomly spread out) 
– “Re-use” relatively good (surviving) solutions 
– Exchange information among these relatively good solutions 
– Search in multiple directions – in parallel! 
● Exploration & Exploitation 
● Start with an “open mind” - decisions based on randomness 
– All possible search pathways are theoretically open to a GA 
– “Uncover solutions of startling and unexpected creativity 
that might never have occurred to human designers” 
● Once you have your GA; simple to solve new problems!!
Other 
evolu;onary 
methods 
● Genetic Programming 
● Swarms / Ants 
● ALife 
● More advanced GAs (hierarchical GAs, Evolution strategies, etc.)
Gene;c 
Programming 
(GP) 
1) Generate an initial population of random compositions of the functions 
and terminals of the problem (computer programs). 
2) Execute each program in the population and assign it a fitness value 
according to how well it solves the problem. 
3) Create a new population of computer programs. 
i) Copy the best existing programs 
ii) Create new computer programs by mutation. 
iii) Create new computer programs by crossover(sexual 
reproduction). 
4) The best computer program that appeared in any generation, the best-so- 
far solution, is designated as the result of genetic programming 
Example: http://genetic.moonlander.googlepages.com/
Demonstra;ons 
● GA & Music, Art 
● http://jgap.sourceforge.net/ 
● http://kandid.sourceforge.net/ 
● Spore, anyone? - Evolving creatures! Karl Sims 
● Lee Graham 
● http://www.stellaralchemy.com/lee/virtual_creatures.html 
● http://www.youtube.com/watch?v=l-qOBi2tAnI 
● http://www.youtube.com/watch?v=F-GnKr4rw4M 
● http://www.youtube.com/watch?v=OxK5OFPOMZU 
● http://www.youtube.com/watch?v=25fFoFxYg7o 
● http://www.youtube.com/watch?v=kSXeqPbAP5I 
● http://www.youtube.com/watch?v=O82tVjDBc7w 
● http://www.youtube.com/watch?v=U5GqpH6EZvo
Ques;ons?
Workshop 
- Representation: Permutations 
- Crossover: 
● PMX (Partially Mapped Xover) 
● Order Xover 
● Position Based Xover
Workshop 
- PMX (Partially Mapped Xover)
Workshop 
- Order Xover
Workshop 
- Position-Based Xover
Workshop 
• Mutation: 
• Inversion 
1 2 3 4 5 6 7 8 9 ==> 1 2 6 5 4 3 7 8 9 
• Insertion 
1 2 3 4 5 6 7 8 9 (select random city) ==> 
1 2 6 3 4 5 7 8 9 (insert in random spot) 
• Reciprocal Exchange 
1 2 3 4 5 6 7 8 9 ==> 1 2 6 4 5 3 7 8 9
Workshop 
Shortest tour: 7542
Bibliography 
● “Adaption in Natural and Artificial Systems”, Holland, 1975 
● Evolutionary Computation, Lecture notes, F. Oppacher, 
Carleton U. 
● http://www2.econ.iastate.edu/tesfatsi/holland.gaintro.htm 
● http://ti.arc.nasa.gov/projects/esg/research/antenna.htm 
● http://www.talkorigins.org/faqs/genalg/genalg.html 
● http://www.obitko.com/tutorials/genetic-algorithms/

Introduction to Genetic Algorithms 2014

  • 1.
    Survival of theFittest An Introduction to Genetic Algorithms and Evolutionary Computation Aleksander M. Stensby Monokkel A/S 03.10. 2014
  • 2.
    [email protected] CEO / Co-­‐Founder @astensby
  • 5.
    Outline Part 1:Theory lecture – Introduction to Genetic Algorithms 10:15 – 13:00 Part 2: Workshop – Traveling Salesperson Problem (TSP) 13:00 – 15:00
  • 6.
    Lecture outline ●An NP-Complete Problem – The TSP ● Darwin's Theory of Evolution ● Genetic Algorithms (GA) ● Applications of GA ● Genetic Operators ● Generic GA ● Why does GAs work?
  • 7.
    Traveling Salesperson ●Given a list of cities to visit. ● Goal: find the shortest tour that visits each city exactly once, returning in the end to the starting point. ● Complexity: O(n!) ● NP-Hard
  • 11.
  • 12.
    Darwin's Theory of Evolu;on ● All life is related and has descended from a common ancestor. ● Natural selection – “Survival of the fittest” ● Organisms can produce more offspring than their surroundings can support -> natural struggle to survive. ● Organisms whose variations best adapt them to their environments survive, the others die. ● Variations are heritable -> can be passed on to the next generation -> i.e., evolution
  • 13.
    Inheritance Muta=on Selec=on Crossover Genetic Algorithms
  • 14.
    What is Gene;c Algorithms? ● John Holland (70's) ● Nature’s mechanism for evolution could be modeled in computers to find successful solutions for difficult problems. ● By taking a population of possible answers and evaluating them against the best possible solution, the fittest individuals of the population are determined. ● After evaluation, combining and mutating, the members of the current generation generate a new population. ● This new generation is then evaluated and the process is repeated, until an optimal solution is found.
  • 15.
    TSP cont. Whatwas our TSP problem? - population of possible answers: Possible tours: “1-3-5-6-7-4-2-1” - evaluate – best possible solution: Shortest tour! - generate a new population by combining and mutating - evaluate new population, “rinse, repeat”
  • 16.
    TSP search space 500 cities on a circle – simple? Possible solutions? 500!
  • 17.
  • 18.
  • 19.
    Applica;ons ● Whatproblems can we solve with a GA? – Optimization & Design – TSP, function optimizations, time tables.. – Approximate NP-Hard problems – Simulation – Modeling, system identification – Evolutionary machine learning “Mom and dad jet engine can get together and have baby jet engines. You find the ones that work better, mate them, and just keep going.” - Goldberg
  • 20.
    Example: Shape op;miza;on ● NASA: Satellite truss or boom design – the design of satellite trusses with enhanced vibration isolation characteristics – produced using Genetic Algorithm methods and a highly customized vibrational energy flow code ● Evolutionary Design: 20.000% better!!!
  • 21.
    Example: Antenna design (NASA) ● Encode antenna structure into a genome ● Use GA to evolve an antenna ● Evaluation: Convert the genotype into an antenna structure ● Simulate using antenna simulation software
  • 22.
  • 23.
    GA terminology: ●Population ● Individuals – Chromosomes – Representation? ● Generations – Evolution ● Fitness – How “fit” is the individual? ● Development – Selection – Reproduction
  • 24.
    Evolu;on – from one genera;on to the next ● Duplication? -> No improvement ● Randomly produced? -> Past advances are not preserved ● Fitness is not preserved by duplication ● Observed variety is not due to random variation ● So, how do we retain past successes? ● How do we use them to increase the probability of fit (and novel) variants? ● Fitness proportional reproduction & genetic operators
  • 25.
    What should our GA do? ● Recombine 'surface' similarities among the fittest individuals... ● Combine 'good ideas' from different good individuals... ● ... because certain substructures in good individuals cause their high fitness, and recombining such 'good ideas' may lead to better individuals...
  • 26.
  • 27.
    Gene;c operators ●Fitness-proportional reproduction ● Genetic recombination -> Crossover ● Mutation -> “copy errors” -> additions / deletions of base pairs
  • 28.
    Gene;c operators: -­‐ Crossover ● Crossover – Sexual reproduction (pass on 50% of your genes) ● Benefits? – Stability – occurs between very similar DNA segments – Leads to clearly defined species! – Stability - lengths of DNA molecules are preserved – Variability – combining “good” ideas
  • 29.
    Gene;c operators: -­‐ Crossover ● Crossover – Single Point – Two point – Uniform
  • 30.
    Gene;c operators: -­‐ Muta;on ● Mutation – Insert / Delete / Substitute ● Mass mutation -> harmful! (e.g. genetic disorder) ● Small changes -> beneficial! -> Variations! ● Help to better adapt to changes in their environment!
  • 32.
    Gene;c operators: -­‐ Muta;on ● Mutation – Inversion 0 0 1 1 1 0 1 0 0 1 => 0 0 1 0 1 0 1 0 0 1 – Substitution 1 2 3 4 8 7 6 9 5 => 1 2 9 4 8 7 6 3 5 – Update 8.3 1.2 4.3 2.2 2.7 7.1 => 8.3 1.2 4.3 2.3 2.7 7.1 – Insertion 1 2 3 4 8 7 6 9 5 (select random) 1 2 3 4 9 8 7 6 5 (insert at random location)
  • 33.
    Gene;c operators: -­‐ Reproduc;on ● Fitness-proportional reproduction / Selection strategies ● Again; survival of the fittest ● Population fitness F = Σk=1 popSize fk ● Roulette Wheel selection ● Rank selection ● Tournament selection ● Elitism – First copies the best chromosome (or a few best chromosomes) to new population. The rest is done in classical way. – Elitism can very rapidly increase performance of GA, because it prevents losing the best found solution.
  • 34.
    RouleOe Wheel selec;on - Rank individuals in increasing order of fitness, from 1 to popsize (n) - Probability of selecting individual vi = fi / F for (int k = 0; k < population.size(); k++) { sum += (population.get(k).getFitness() / populationFitness); if (sum >= random) return population.get(k); }
  • 35.
    Rank selec;on -Rank individuals in increasing order of fitness, from 1 to popsize (n) - Better when fitness differs a lot => No super individuals for (int k = 0; k < population.size(); k++) { double pk = Math.pow(selectionPressure, k + 1); sum += pk; if (sum >= random) return population.get(k); }
  • 36.
  • 37.
    The components of a GA ● Representation / Encoding of a Chromosome – Binary, Permutation, Value... ● Initialization ● Evaluation / Fitness function ● Genetic operators / Selection ● Parameters – Population size – Xover probability – Mutation probability – ...
  • 38.
  • 39.
    Generic GA – Pseudo code ● 1. Choose initial population - random ● 2. Evaluate the fitness of each individual in the population ● 3. Repeat until termination ● Select best-ranking individuals to reproduce (parents) ● Breed new generation through crossover and mutation (genetic operations) and give birth to offspring ● Evaluate the individual fitness of the offspring ● Select individuals for next generation
  • 40.
    Some recommenda;ons ●“Generally good parameters” – High crossover probability! (≈ 0.6) – Low mutation probability! (≈ 0.1 to 0.001) – Population size? - usually bigger is better! ● Chromosome / String size -> determines search space! – e.g. 30 bits? -> search space = 230 = 1.07 billion points
  • 42.
    Problems with GAs ● No convergence guarantee ● Premature convergence ● Disadvantages: – May be difficult to choose encoding – May be difficult to define the fitness function – May be slow (not really a problem with todays computers)
  • 43.
  • 44.
    Why does GAs work? ● Directed and stochastic search! – Population of potential solutions (randomly spread out) – “Re-use” relatively good (surviving) solutions – Exchange information among these relatively good solutions – Search in multiple directions – in parallel! ● Exploration & Exploitation ● Start with an “open mind” - decisions based on randomness – All possible search pathways are theoretically open to a GA – “Uncover solutions of startling and unexpected creativity that might never have occurred to human designers” ● Once you have your GA; simple to solve new problems!!
  • 45.
    Other evolu;onary methods ● Genetic Programming ● Swarms / Ants ● ALife ● More advanced GAs (hierarchical GAs, Evolution strategies, etc.)
  • 46.
    Gene;c Programming (GP) 1) Generate an initial population of random compositions of the functions and terminals of the problem (computer programs). 2) Execute each program in the population and assign it a fitness value according to how well it solves the problem. 3) Create a new population of computer programs. i) Copy the best existing programs ii) Create new computer programs by mutation. iii) Create new computer programs by crossover(sexual reproduction). 4) The best computer program that appeared in any generation, the best-so- far solution, is designated as the result of genetic programming Example: http://genetic.moonlander.googlepages.com/
  • 47.
    Demonstra;ons ● GA& Music, Art ● http://jgap.sourceforge.net/ ● http://kandid.sourceforge.net/ ● Spore, anyone? - Evolving creatures! Karl Sims ● Lee Graham ● http://www.stellaralchemy.com/lee/virtual_creatures.html ● http://www.youtube.com/watch?v=l-qOBi2tAnI ● http://www.youtube.com/watch?v=F-GnKr4rw4M ● http://www.youtube.com/watch?v=OxK5OFPOMZU ● http://www.youtube.com/watch?v=25fFoFxYg7o ● http://www.youtube.com/watch?v=kSXeqPbAP5I ● http://www.youtube.com/watch?v=O82tVjDBc7w ● http://www.youtube.com/watch?v=U5GqpH6EZvo
  • 48.
  • 49.
    Workshop - Representation:Permutations - Crossover: ● PMX (Partially Mapped Xover) ● Order Xover ● Position Based Xover
  • 50.
    Workshop - PMX(Partially Mapped Xover)
  • 51.
  • 52.
  • 53.
    Workshop • Mutation: • Inversion 1 2 3 4 5 6 7 8 9 ==> 1 2 6 5 4 3 7 8 9 • Insertion 1 2 3 4 5 6 7 8 9 (select random city) ==> 1 2 6 3 4 5 7 8 9 (insert in random spot) • Reciprocal Exchange 1 2 3 4 5 6 7 8 9 ==> 1 2 6 4 5 3 7 8 9
  • 54.
  • 55.
    Bibliography ● “Adaptionin Natural and Artificial Systems”, Holland, 1975 ● Evolutionary Computation, Lecture notes, F. Oppacher, Carleton U. ● http://www2.econ.iastate.edu/tesfatsi/holland.gaintro.htm ● http://ti.arc.nasa.gov/projects/esg/research/antenna.htm ● http://www.talkorigins.org/faqs/genalg/genalg.html ● http://www.obitko.com/tutorials/genetic-algorithms/