You are on page 1of 58

Genetic

Algorithms
Yohai Trabelsi

Outline

Evolution in the nature


Genetic Algorithms and Genetic Programming
A simple example for Genetic Algorithms
An example for Genetic programming

Evolution in the nature


Genetic Algorithms and Genetic Programming
A simple example for Genetic Algorithms
An example for Genetic programming

Evolution in the nature


A Chromosome:
o A string of DNA.
o Each living cell has some.

Image by Magnus Manske

Each chromosome
contains a set of genes.
A gene is a block of DNA.
Each gene determines
some aspect of the
organism
(e.g., eye colour).

Reproduction in the nature


Reproduction involves:
1. Recombination of genes from parents.
2. Small amounts of mutation (errors) in copying.
One type of
recombination is
crossover.

Reproduction involves:
1. Recombination of genes from parents.
2. Small amounts of mutation (errors) in
copying.

Right image by Jerry Friedman.

In the nature, fitness describes the ability to


survive and reproduce.
Images by
ShwSie

The evolution cycle


Parent
selection

Su
se r v
le iv
c t or
io
n

Initialization

Upper left image by

Recombination

Mutation

Evolution in the nature


Genetic Algorithms and Genetic
Programming
A simple example for Genetic Algorithms
An example for Genetic programming

Some history
First work of computer simulation of evolutionNils Aall Barricelli(1954)
In the 1950s and 1960s several researchers
began independently studying evolutionary
systems.
The field has experienced impressive growth over
the past two decades.

Genetic Algorithms
The research on Genetic Algorithms focuses on
imitating the evolution cycle in Algorithms.
That method is applicable for many hard search
and optimization problems.

Initialization
Initialization is the process of making the first
generation.
During the algorithm our goal will be to improve
them by imitating the nature.

Termination.
In the nature we dont have (yet) a point that the
process stops.
In many cases an algorithm that runs forever is
useless.
We should try to find the correct time for
terminating the whole process.
o That time may be after the results are good and/or before the
running time is too long.

The modified evolution


cycle
Parent
selection

Su
se r v
le iv
c t or
io
n

Initialization

ter

na
mi

ion

Upper left image by

Recombination

Mutation

GA-Some definitions
In any generation there is a group of
individuals that belongs to that generation.
We call that group population.
Fitness will be a function from individuals to real
numbers.
The product of the recombination process is an
offspring.

Genetic Programming
Genetic Programming is Genetic Algorithm
wherein the population contains programs rather
than bitstrings.

Evolution in the nature


Genetic Algorithms and Genetic Programming
A simple example for Genetic Algorithms
An example for Genetic programming

A simple example
Problem:
Find the binary number 11010010.

Initialization
We start with 5 random binary numbers with 8
digits each.
1. 01001010
2. 10011011
3. 01100001
4. 10100110
5. 01010011

The fitness function


We define the fitness of a number to be the sum
of the distances of its digits from these in the
target, with the sign minus.
The target: 11010010
fitness(01001010)=

The target: 11010010


1.
2.
3.
4.
5.

fitness(01001010)=-3
fitness(10011011)=-3
fitness(01100001)=-5
fitness(10100110)=-4
fitness(01010011)=-2

Parent Selection
In each generation, some constant number of
parents, say, 4 are chosen. Higher is the fitness,
greater is the probability of choosing the
individual.

{-3,-3, -5,-4,-2}
Assume we select , .
fitness() > fitness() selected.

We get {}

Recombination
Two selected parents will be coupled with
probability 0.5.
() , (, ), ()
3 is selected as a random number from 18
Then we do a crossover:
From () we get ()
We repeat that for each selected couple.

Mutation
For

each digit in each of the offsprings , we make


the bit flip with probability 0.05.
For we have .

The process and its


termination
We repeat the cycle until one of the numbers that
we get would have fitness 0 (that is would be
identical to the desired one).
We expect that it will not be too long in
comparison to checking the fitness of all the
numbers in the range.
Our hope is based on choosing parents with
higher fitness and on producing next generations
similarly to the nature.

Some Results
Similar

example, where the target was Hello


world achieved the score in generation 65.
(population size=40 options)
In our simple case there are options in total.

Evolution in the nature


Genetic Algorithms and Genetic Programming
A simple example for Genetic Algorithms
An example for Genetic programming

American Checkers

Michel32Nl

Lose Checkers
The rules are the same as in the original game.
The goal is opposite to the goal in the original
game: Each player tries to lose all of his pieces.
Player wins if he doesnt have any pieces or if he
cant do any move.

The complexity
There

are roughly legal positions.


In chess there are .

Previous work
There are few recent results on Lose checkers.
They concentrate either on search or on finding a
good evaluation function.
They can help to improve good players but they
cant produce good players.
Improvements on a random player dont worth
much.

The algorithm
The individuals will be trees.
Each tree will behave like evaluation function for
the board states (more details later).
A tree represents a chromosome.
Each tree contains nodes.
A node represents a gene.
There are three kinds of nodes:
o Basic Terminal Nodes.
o Basic Function Nodes.
o Domain-Specific Terminal Nodes.

Basic terminal nodes


Return
value

Return type

Node name

Ephemeral
Random
Constant

Floating
point

ERC

Boolean false
value

Boolean

False

Boolean true
value

Boolean

True

Floating
point

One

Floating
point

Zero

Basic function nodes


Return
value
Logical AND of parameters
True iff F1 F2
Logical NAND of parameters
Logical NOR of parameters
Logical NOT of B1
Logical OR of parameters
F1 if B1 is true and F2 otherwise
F1 F2
F1 multiplied by preset random number
F1

Node name

Domain-specific nodes
EnemyKingCount
EnemyManCount
EnemyPieceCount
FriendlyKingCount
FriendlyManCount
FriendlyPieceCount
FriendlyKingCount EnemyKingCount

KingCount

FriendlyManCount EnemyManCount

ManCount

FriendlyPieceCount EnemyPieceCount

PieceCount

King factor value

KingFactor

The number of plies available to the player

Mobility

Domain specific- details of a


square
True iff square empty

IsEmptySquare(X,Y)

True iff square occupied by friendly piece

IsFriendlyPiece(X,Y)

True iff square occupied by king

IsKingPiece(X,Y)

True iff square occupied by man

IsManPiece(X,Y)

An example for board


evaluation tree

The algorithm
Make initial population
While the termination condition didnt reached:
o Select the best candidates for being parents.
o Make the new generation by crossover and mutation
o Evaluate the fitness of the new generation.

Make initial population


While the termination condition didnt reached:
o Select the best candidates for being parents.
o Make the new generation by crossover and mutation
o Evaluate the fitness of the new generation.

The initial population


The size of the population is one of the running
parameters.
We select the trees randomly.
Their maximum allowed depth is also a running
parameter.
We omit the details of the random selection.

Make initial population


While the termination condition didnt reached:
o Select the best candidates for being parents.
o Make the new generation by crossover and mutation
o Evaluate the fitness of the new generation.

Selection

Fitness evaluation
We define GuideArr to be an array of guide
players.
Some of them are random players which are
useful for evaluating initial runs.
Others, alpha-beta players, are based on search
up to some level and random behavior since that
level.
CoPlayNum is the number of players which are
selected randomly from the current population for
playing with the individual
under evaluation.
Image by Jon Sullivan

Fitness evaluation

back

Make initial population


While the termination condition didnt reached:
o Select the best candidates for being parents.
o Make the new generation by crossover and mutation
o Check whether the termination condition reached

Crossover
Randomly

choose two different previously


unselected individuals from the population.
If then
o Perform one-way crossover with I1 as donor and I2 as receiver

Else
o Perform two-way crossover with I1 and I2

End if.

Two way crossover


Randomly select an internal node in each of the
two individuals.
Swap the subtrees rooted at these nodes.

One way crossover


Randomly select an internal node in each of the
two individuals as a root of selected subtree.
One individual (donor) inserts a copy of its
selected sub-tree into another
individual(receiver), in place of its selected subtree, while the donor itself remains unchanged.

Similar to gene
transfer in
bacteria,

image by Y tambe

Using the one way crossover gives the fitter


individuals an additional survival advantage.
They still can change due to the standard twoway crossover.

Mutation
We randomly choose a node in the tree for
mutation.
We do probabilistic decision whether to use the
traditional tree building mutation method or the
Local mutation method.
The probability for each method is given as a
parameter to our algorithm.

Traditional mutation
Traditional tree building mutation:
o Done by replacing the selected node with a new subtree.

The drawback of using only the traditional


mutation is that a mutation can change
dramatically the fitness of an individual.

Local mutation
Each node that returns a floating-point value
has a floating-point variable attached with it
(initialized to 1).
The returned value of the node was the
normal value multiplied by the variable.
The mutation is a small
change in the variable.

Make initial population


While the termination condition didnt reached:
o Select the best candidates for being parents.
o Make the new generation by crossover and mutation
o Check whether the termination condition reached

Termination

The number of Generations until the termination


will be a parameter of our program.

The Players

Use alpha-beta search algorithm.


Evaluate non-terminal states using the individual
The depth of the search is 3.
There are more methods.

Some Results

1000 games were played against some alpha-beta


players.

The Score: 1 point was


given for win and 0.5
For drawn.