9 GeneticAlgorithms
9 GeneticAlgorithms
Outline
o Can evolution be intelligent?
o Genetic algorithms
o Case study
o Genetic programming
2
Can evolution be intelligent?
o Evolutionary computation simulates evolution on a
computer. The result of such a simulation is a series
of optimization algorithms, usually based on a simple
set of rules. Optimization iteratively improves the
quality of solutions until an optimal, or at least
feasible, solution is found.
o The evolutionary approach is based on
computational models of natural selection and
genetics. We call them evolutionary computation, an
umbrella term that combines genetic algorithms,
evolution strategies and genetic programming.
3
Simulation of natural evolution
5
Genetic algorithms
o All methods of evolutionary computation simulate
natural evolution by creating a population of
individuals, evaluating their fitness, generating a new
population through genetic operations, and
repeating this process a number of times.
6
Genetic Algorithms
o In the early 1970s, John Holland introduced the
concept of genetic algorithms.
o His aim was to make computers do what nature
does. Holland was concerned with algorithms that
manipulate strings of binary digits.
1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1
7
o Nature has an ability to adapt and learn without
being told what to do. In other words, nature finds
good chromosomes blindly. GAs do the same. Two
mechanisms link a GA to the problem it is solving:
encoding and evaluation.
o The GA uses a measure of fitness of individual
chromosomes to carry out reproduction. As
reproduction takes place, the crossover operator
exchanges parts of two single chromosomes, and the
mutation operator changes the gene value in some
randomly chosen location of the chromosome.
8
Basic genetic algorithms
o Step 1: Represent the problem variable domain as a
chromosome of a fixed length, choose the size of a
chromosome population N, the crossover probability
pc and the mutation probability pm.
10
Basic genetic algorithms
o Step 6: Create a pair of offspring chromosomes by applying the
genetic operators: crossover( )عبورand mutation ()طفرة.
o Step 10: Go to Step 4, and repeat the process until the termination
criterion is satisfied.
11
Genetic algorithms
o GA represents an iterative process. Each iteration is
called a generation ()جيل. A typical number of
generations for a simple GA can range from 50 to
over 500. The entire set of generations is called a
run.
o Because GAs use a stochastic search method, the
fitness of a population may remain stable for a
number of generations before a superior
chromosome appears.
12
Genetic algorithms: case study
o A simple example will help us to understand how a
GA works. Let us find the maximum value of the
function (15x – x2) where parameter x varies
between 0 and 15. For simplicity, we may assume
that x takes only integer values. Thus, chromosomes
can be built with only four genes:
Integer Binary code Integer Binary code Integer Binary code
1 0001 6 0110 11 1011
2 0010 7 0111 12 1100
3 0011 8 1000 13 1101
4 0100 9 1001 14 1110
5 0101 10 1010 15 1111
13
o Suppose that the size of the chromosome population
N is 6, the crossover probability pc equals 0.7, and
the mutation probability pm equals 0.001. The fitness
function in our example is defined by
f(x) = 15 x - x2
14
The fitness function and chromosome locations
Chromosome Chromosome Decoded Chromosome Fitness
label string integer fitness ratio, %
X1 1100 12 36 16.5
X2 0100 4 44 20.2
X3 0001 1 14 6.4
X4 1110 14 14 6.4
X5 0111 7 56 25.7
X6 1001 9 54 24.8
60 60
f(x)
50 50
40 40
30 30
20 20
10 10
0 0
0 5 10 15 0 5 10 15
x x
(a) Chromosome initial locations. (b) Chromosome final locations.15
o In natural selection, only the fittest species can
survive, breed, and thereby pass their genes on to
the next generation. GAs use a similar approach, but
unlike nature, the size of the chromosome
population remains unchanged from one generation
to the next.
o The last column in Table shows the ratio of the
individual chromosome’s fitness to the population’s
total fitness. This ratio determines the
chromosome’s chance of being selected for mating.
The chromosome’s average fitness improves from
one generation to the next.
16
Selection
o The most commonly used chromosome selection
techniques is the roulette wheel selection.
100 0
X1: 16.5%
16.5
X2: 20.2%
75.2 X3: 6.4%
X4: 6.4%
X5: 25.3%
36.7 X6: 24.8%
49.5 43.1
17
Crossover operator
o In our example, we have an initial population of 6
chromosomes. Thus, to establish the same
population in the next generation, the roulette wheel
would be spun six times.
o Once a pair of parent chromosomes is selected, the
crossover operator is applied.
18
o First, the crossover operator randomly chooses a
crossover point where two parent chromosomes
“break”, and then exchanges the chromosome parts
after that point. As a result, two new offspring are
created.
o If a pair of chromosomes does not cross over, then
the chromosome cloning takes place, and the
offspring are created as exact copies of each parent.
19
Crossover
X6i 1 0 00 1 0 1 00 00 X2i
X1i 0 11 00 00
1 0 11 11 11 X5i
X2i 0 1 0 0 0 1 1 1 X5i
20
Mutation operator
o Mutation represents a change in the gene.
o Mutation is a background operator. Its role is to
provide a guarantee that the search algorithm is not
trapped on a local optimum.
o The mutation operator flips a randomly selected
gene in a chromosome.
o The mutation probability is quite small in nature, and
is kept low for GAs, typically in the range between
0.001 and 0.01.
21
Mutation
22
The genetic algorithm cycle
23
24
Outline
o Can evolution be intelligent?
o Genetic algorithms
o Case study
o Genetic programming
25
Genetic programming
o One of the central problems in computer science is
how to make computers solve problems without
being explicitly programmed to do so.
o Genetic programming offers a solution through the
evolution of computer programs by methods of
natural selection.
o Genetic programming is an extension of the genetic
algorithm, but the goal of genetic programming is
not just to evolve a bit-string representation of some
problem but the computer code that solves the
problem.
26
o Genetic programming is a recent development in the
area of evolutionary computation. It was greatly
stimulated in the 1990s by John Koza.
o According to Koza, genetic programming searches
the space of possible computer programs for a
program that is highly fit for solving the problem at
hand.
o Any computer program is a sequence of operations
(functions) applied to values (arguments), but
different programming languages may include
different types of statements and operations, and
have different syntactic restrictions.
27
o Since genetic programming manipulates programs by
applying genetic operators, a programming language
should permit a computer program to be
manipulated as data and the newly created data to
be executed as a program. For these reasons, LISP
was chosen as the main language for genetic
programming.
28
LISP structure
o LISP has a highly symbol-oriented structure. Its basic
data structures are atoms and lists. An atom is the
smallest indivisible element of the LISP syntax. The
number 21, the symbol X and the string “This is a
string” are examples of LISP atoms. A list is an object
composed of atoms and/or other lists. LISP lists are
written as an ordered collection of items inside a pair
of parentheses.
29
LISP structure
For example, the list
( (*A B) C)
calls for the application of the subtraction function
() to two arguments, namely the list (*A B) and the
atom C. First, LISP applies the multiplication function
(*) to the atoms A and B.
Once the list (*A B) is evaluated, LISP applies the
subtraction function () to the two arguments, and
thus evaluates the entire list
( (*A B) C)
30
Graphical representation of LISP S-expressions
o Both atoms and lists are called symbolic expressions
or S-expressions. In LISP, all data and all programs
are S-expressions. This gives LISP the ability to
operate on programs as if they were data. In other
words, LISP programs can modify themselves or even
write other LISP programs. This remarkable property
of LISP makes it very attractive for genetic
programming.
o Any LISP S-expression can be depicted as a rooted
point-labelled tree with ordered branches.
31
LISP S-expression ( - (*A B) C)
* C
A B
32
How do we apply genetic programming to a
problem?
o Before applying genetic programming to a problem,
we must accomplish five preparatory steps:
1. Determine the set of terminals.
2. Select the set of primitive functions.
3. Define the fitness function.
4. Decide on the parameters for controlling the run.
5. Choose the method for designating a result of the
run.
33
o The Pythagorean Theorem helps us to illustrate these
preparatory steps and demonstrate the potential of
genetic programming. The theorem says that the
hypotenuse, c, of a right triangle with short sides a
and b is given by
c a b
2 2
34
o To measure the performance of the as-yet-
undiscovered computer program, we will use a
number of different fitness cases. The fitness cases
for the Pythagorean Theorem are represented by the
samples of right triangles in Table. These fitness
cases are chosen at random over a range of values of
variables a and b.
Side a Side b Hypotenuse c Side a Side b Hypotenuse c
3 5 5.830952 12 10 15.620499
8 14 16.124515 21 6 21.840330
18 2 18.110770 7 4 8.062258
32 11 33.837849 16 24 28.844410
4 3 5.000000 2 9 9.219545
35
o Step 1: Determine the set of terminals.
The terminals correspond to the inputs of the
computer program to be discovered. Our program
takes two inputs, a and b.
37
o Step 4: Decide on the parameters for controlling the
run. For controlling a run, genetic programming uses
the same primary parameters as those used for GAs.
They include the population size and the maximum
number of generations to be run.
38
o Once these five steps are complete, a run can be
made. The run of genetic programming starts with a
random generation of an initial population of
computer programs. Each program is composed of
functions +, -, *, / and sqrt, and terminals a and b.
* sqrt
sqrt a a b sqrt b
a b
* * a
a a a b b b
40
Crossover in genetic programming:
Two offspring S-expressions
sqrt sqrt
sqrt a * b
* a a b a b
* b b
a a a b
41
Mutation in genetic programming
o A mutation operator can randomly change any
function or any terminal in the LISP S-expression.
Under mutation, a function can only be replaced by a
function and a terminal can only be replaced by a
terminal.
42
Mutation in genetic programming:
Original S-expressions
* sqrt
sqrt a a b sqrt b
a b
* * a
a a a b b b
43
Mutation in genetic programming:
Mutated S-expressions
* sqrt
sqrt a a b sqrt a
a b
* * a
a a a b b b
44
Fitness history of the best S-expression
100
sqrt
80
F i t n e s s, %
60
40
* *
20
a a b b
0
0 1 2 3 4
Gen e ra t io n s Best of gene ration
45