43
Genetic Algorithms Introduction Advanced

Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Embed Size (px)

Citation preview

Page 1: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Genetic Algorithms Introduction Advanced

Page 2: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications Chinese Version of Introduction

Page 3: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Simple Genetic Algorithms: Illustrations An Illustration Based on Portfolio Optimiz

ation An Illustration Based on Facial Mask Desi

gn

Page 4: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Simple Genetic Algorithms: Applications Portfolio Optimization

Page 5: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Genetic Algorithms: Advanced Theory Variants of Genetic Algorithms Genetic Algorithms and Other Machine Le

arning Tools

Page 6: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Variants of Genetic Algorithms Adaptive Genetic Algorithms (AGA) Niching Genetic Algorithms (NGA) Interactive Genetic Algorithms (IGA) Adaptive Genetic Algorithms

Page 7: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Father of GAs Genetic algorithms were originally

developed by Holland (1975). They are a class of adaptive search and

optimization techniques based on an evolutionary process.

Page 8: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Chromosomes By representing potential or candidate solut

ions to a problem using vectors consisting of binary digits or bits, mathematical operations known as crossover and mutation, can be performed.

These operations are analogous to the genetic recombinations of the chromosomes in living organisms.

Page 9: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Genetic Operation By performing these operations,

generations of new candidates can be created and evolved over time through an iterative procedure.

However, there do exist restrictions on the process of crossover so as to ensure that better performing candidates are evolved over time.

Page 10: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

What is it? Similar to the theory of natural selection or

survival of the fittest, the better performing candidates have a better than average probability of surviving and reproducing relative to the lower performing candidates which eventually get eliminated from the population.

Page 11: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Fitness Function and Selection The performance of each candidate can be

assessed using a suitable objective function.

A selection process based on performance is applied to determine which of the candidates should participate in crossover, and thereby pass on their favorable traits to future generations.

Page 12: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Process of Improvement It is through this process of ``survival of

the fittest'' that better solutions are developed over time.

This evolutionary process continues until the best (or better) performing individual(s), consisting of hopefully the optimal or near optimal solutions, dominate the population.

Page 13: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Binary Strings Binary representation is convenient but not

necessary for the application of the recombination operations.

These vectors also known as strings, are linear combinations of zeros and ones, for example [0 1 0 0 1].

Page 14: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

An Example A binary representation

is based on the binary number system which has a corresponding equivalent decimal value given by

Page 15: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

An Example For example, the decimal equivalent of the

vector [0 1 0 0 1] is

= 8 + 1 = 9

Page 16: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Selection Method Rank-Based Selection Roulette-Wheel Selection Tournament Selection

Page 17: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Rank-Based Selection The Reference The Procedure

Page 18: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Reference Whitley D. (1989), ``The GENITOR Algo

rithm and Selection Pressure: Why Rank-Based Allocation of Reproductive Trials is Best, ’’ in: D. J. Schaffer (ed.) Proceedings of the Third International Conference on Genetic Algorithms, Morgan Kaufmann, San Mateo, pp.116--121.

Page 19: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

The Procedure This approach involves ranking all

candidates according to performance and then replacing the worst performing candidates by copies of the better performing candidates.

Page 20: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Crossover The method by which promising (better

performing) candidates are combined, is through a process of binary recombination known as crossover.

One-Point Crossover

Page 21: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

One-Point Crossover To illustrate the process of crossover,

assume that two vectors

are chosen at random and that the position of partitioning is randomly chosen to be between the second and third elements of each vector.

A = [1 0 1 0 0] B = [0 1 0 1 0 ]

Page 22: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

A = [1 0 | 1 0 0] B = [0 1 | 0 1 0 ]

C = [1 0 | 0 1 0 ] D = [0 1 | 1 0 0 ]

C = [1 0 0 1 0 ] D = [0 1 1 0 0 ]

Page 23: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Mutation Mutation involves the introduction of

random shocks into the population, by slightly altering the binary representation of candidates.

This increases the diversity in the population and unlike crossover, randomly re-directs the search procedure into new areas of the solution space which may or may not be beneficial.

Page 24: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Mutation This action underpins the genetic

algorithms ability to find novel inconspicuous solutions and avoid being anchored at local optimum solutions.

Mathematically, this operation is represented by switching a binary digit from a one to a zero or vice versa.

Page 25: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Mutation However, the probability of this occurrence

is normally very low, so as to not unnecessarily disrupt the search process.

This operation can be illustrated by an example.

Page 26: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

An Example Assume that the third element in vector C

undergoes mutation.

C = [1 0 0 1 0 ]

E = [1 0 1 1 0 ]

Page 27: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

The genetic algorithm procedure can be summarized by the following steps: Create an initial population of candidates rando

mly. Evaluate the performance of each candidate. Select the candidates for recombination. Perform crossover and mutation. Evaluate the performance of the new candidates. Return to step 3, unless a termination criterion i

s satisfied.

Page 28: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Termination Criteria The last step in the genetic algorithm

involves checking a well-defined termination criterion.

The termination criterion adopted, is satisfied when either one of the following conditions is met:

Page 29: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Termination Criteria The population converges to a unique

individual. A predetermined maximum number of

generations is reached. There has been no improvement in the

population for a certain number.

Page 30: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

In a Nutshell The genetic algorithms, first proposed by

Holland (1975), seek to mimic some of the natural evolution and selection.

The first step of Holland’s genetic algorithm is to represent a legal solution of a problem by a string of genes known as a chromosome.

Page 31: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

In a Nutshell Then an initial population of chromosome

is generated randomly at the first generation.

At each generation, the fitness of each chromosome in the population is evaluated by a fitness function.

Page 32: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

In a Nutshell The chromosomes with higher fitness have

a higher possibility to be selected to produce offspring for the next generation.

After many generations of evolution, the optimal solution of the problem is hopefully be found in the population.

Page 33: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Goldberg (1989) Goldberg D. E. (1989),

Genetic Algorithms in Search, Optimisation, and Machine Learning. Addison-Wesley, Reading.

Page 34: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Michalewicz (1996) Michalewicz, Z. (199

6), Genetic Algorithms + Data Structures = Evolution Programs, Springer.

Page 35: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Vose (1999) Vose M. D. (1999), T

he Simple Genetic Algorithm : Foundations and Theory (Complex Adaptive Systems). Bradford Books;

Page 36: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications
Page 37: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications
Page 38: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications
Page 39: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications
Page 40: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications
Page 41: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications
Page 42: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications

Genetic Algorithms and Other Machine Learning Tools Simulated Annealing

Page 43: Genetic Algorithms Introduction Advanced. Simple Genetic Algorithms: Introduction What is it? In a Nutshell References The Pseudo Code Illustrations Applications