Next: Suggestions for labs
Up: Lecture plans
Previous: Lecture plans
Based on Natural Selection
- The algorithm operates on a population of individuals
- Each individual is a potential solution to a given problem
and is typically represented as a fixed-length binary string which
equates to a chromosome in real organisms
- After an initial population is randomly generated, the algorithm
evolves the population through three operators:
- selection which equates to survival of the fittest;
- crossover which represents mating between individuals;
- mutation which introduces random modifications.
Selection Operator
- Key idea: give preference to better individuals,
allowing them to pass on their genes to the next generation
- The goodness of each individual depends on its fitness
- Fitness may be determined by an objective function or by a
subjective judgement
Crossover Operator
- Two individuals are chosen from the population using the
selection operator
- A crossover site along the bit strings is randomly chosen
- The values of the two strings are exchanged up to this point
If S1=000000 and S2=111111 and the crossover point is 2
then S1'=110000 and S2'=001111
- The two new offspring created from this mating are put into the
next generation of the population
- By recombining portions of good individuals, this process is
likely create even better individuals
Mutation Operator
- With some low probability, a portion of the new individuals
will have some of their bits flipped
- Its purpose is to maintain diversity within the population and
inhibit premature convergence
Effects of the Genetic Operators
- Using selection alone will tend to fill the population with copies of
the best individual from the initial population
- Using selection and crossover will tend to cause the algorithm
to converge on a good but sub-optimal solution
- Using mutation alone induces a random walk through the search space
- Using selection and mutation creates a parallel, noise-tolerant,
hill climbing algorithm
The Algorithm
- randomly initialize population(t)
- determine fitness of population(t)
- repeat
- select parents from population(t)
- perform crossover on parents creating population(t+1)
- perform mutation on population(t+1)
- determine fitness of population(t+1)
- until best individual is good enough
Applications
- Computer-aided design
- Criminal justice
- Financial prediction
- Scheduling
- Oil exploration
- Robot control
- Combined with neural networks
Next: Suggestions for labs
Up: Lecture plans
Previous: Lecture plans