Genetic Algorithms Yohai Trabelsi. Outline Evolution in the nature Genetic Algorithms and Genetic...

Preview:

Citation preview

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

Upper left image by 慕尼黑啤酒

Parent selectio

n

Recombination

Mutation

Surv

ivor

sele

ctio

nInitialization

• 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 evolution-

Nils 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 don’t 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

Upper left image by 慕尼黑啤酒

Parent selectio

n

Recombination

Mutation

Surv

ivor

sele

ctio

nInitialization

terminatio

n

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. 100110113. 011000014. 101001105. 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. fitness(01001010)=-32. fitness(10011011)=-33. fitness(01100001)=-54. fitness(10100110)=-45. 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 1…8• 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 it’s 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 doesn’t have any pieces or if he

can’t 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

can’t produce good players.• Improvements on a random player don’t 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 nodesReturnvalue

Return type

Node name

Ephemeral Random Constant

Floating point

ERC

Boolean false value

Boolean False

Boolean true value

Boolean True

1 Floating point

One

0 Floating point

Zero

Basic function nodesReturnvalue

Node name

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

F1 + F2

Domain-specific nodesEnemyKingCount

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 didn’t reached:

o Select the best candidates for being parents.o Make the new generation by crossover and mutationo Evaluate the fitness of the new generation.

• Make initial population• While the termination condition didn’t reached:

o Select the best candidates for being parents.o Make the new generation by crossover and mutationo 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 didn’t reached:

o Select the best candidates for being parents.o Make the new generation by crossover and mutationo 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 didn’t reached:

o Select the best candidates for being parents.o Make the new generation by crossover and mutationo 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 sub-tree, 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 two-way 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 didn’t reached:

o Select the best candidates for being parents.o Make the new generation by crossover and mutationo 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.

Recommended