Genetic Algorithms Lecture 5 Addendum to the slides of Jason Noble NN II N I NI NI N I N I NN NI NI II Evolutionary Algorithms Binary Genetic Algorithms Variable Encoding and Decoding Generating a Population Generating Offspring: Crossover Mutation Selection Real chromosomes diploid GA almost always (haploid) exception will be explicitly mentioned Evolutionary Algorithms Example (Haupt & Haupt, 2004) Suppose we have a digital map of a mountain range We want to find the highest peak on the map Automatically! Difficult problem for conventional optimization techniques Evolutionary Algorithms Evolutionary Algorithms Variable Encoding Variable Value Decimal Binary Latitude (min) Latitude (max) Longitude (min) 40o,15’ 1 0000000 40o,16’ 128 1111111 105036’ 1 0000000 Longitude (max) 105037’30’’ 128 1111111 Chromosome =[11000110011001] Evolutionary Algorithms X y Generate an Initial Population Assign each chromosome a fitness (in this case simply the height of the point) 00101111000110 11100101100100 12359 11872 00110010001100 13477 00101111001000 12363 11001111111011 11631 01000101111011 12097 11101100000001 12588 01001101110011 Evolutionary Algorithms 11860 Selection (at 50% selection rate) 00101111000110 12359 00110010001100 13477 00101111001000 12363 11101100000001 12588 Selection: •Choose a selection rate •Choose a threshold (all above survive) Evolutionary Algorithms Assume random mating 00101111000110 12359 00110010001100 13477 00101111001000 12363 11101100000001 12588 Selection: •Choose a selection rate •Choose a threshold (all above survive) Evolutionary Algorithms Assume random mating 00101111000110 12359 00110010001100 13477 00101111001000 12363 11101100000001 12588 Selection: •Choose a selection rate •Choose a threshold (all above survive) Evolutionary Algorithms Crossover 00101111000110 00110010001100 00101111001000 11101100000001 Evolutionary Algorithms Crossover 00101111000110 00110010001100 00101111001000 11101100000001 Crossover point Evolutionary Algorithms Crossover 00101111000110 00110010001100 00101111001000 11101100000001 Crossover point Evolutionary Algorithms Crossover 00101111000110 00110010001100 00101111001000 11101100000001 Crossover point Evolutionary Algorithms Crossover 00101111000110 00101100000001 00110010001100 00101111001000 11101100000001 11101111000110 Crossover point Evolutionary Algorithms Crossover 00101111000110 00101100000001 00110010001100 00101111001000 11101100000001 11101111000110 Crossover point Evolutionary Algorithms Crossover 00101111000110 00101100000001 00110010001100 00110111001000 00101111001000 00101010001100 11101100000001 11101111000110 Crossover point Evolutionary Algorithms New generation (almost) 00101111000110 00101100000001 00110010001100 00110111001000 00101111001000 00101010001100 11101100000001 11101111000110 Crossover point Evolutionary Algorithms Mutation 00101111000110 00101100000001 00110010101100 00110111001000 00101111001000 00101010101100 11101100000001 11101111000110 Evolutionary Algorithms Over the generations …. Evolutionary Algorithms Summary: Canonical Genetic Algorithm S1: Set t= 0 S2: Initialize chromosome population P(t) Usually by random init. S3: Evaluate P(t) by a fitness measure S4: while (termination not satisfied) do: begin 1 S4.1 Select for recombination chromosomes from P(t). Let P be the set of selected chromosomes. Choose individuals from P1 to enter the mating pool (MP) 2 S4.2 Recombine the chromosomes in MP forming P . Mutate chromosomes in P2 forming P3 3 S4.3 Select for replacement from P and P(t) forming P(t+1) t = t + 1 end Evolutionary Algorithms Generating offspring Weighted random pairing (roulette wheel weighting) Rank weighting Cost weighting Equivalently allow a number of copies to mate (weighted) Evolutionary Algorithms Generating offspring Roulette wheel selection How many copies take part in mating? Rank weighting Cost weighting http://www.edc.ncl.ac.uk/highlight/rhjanuary2007g02.php/ Evolutionary Algorithms Roulette wheel weighting (1) Rank weighting: assign distributions by rank, make sure that total probability is 1.0 pn Σpn 00110010001100 13477 0.4 0.4 11101100000001 12588 0.3 0.7 00101111000110 12359 0.2 0.9 00101111001000 12363 0.1 1.0 Evolutionary Algorithms Roulette wheel weighting (2) Fitness based weighting: assign distributions by fitness, make sure that total probability is 1.0 Σpn pn 00110010001100 13477 0.265 0.265 11101100000001 12588 0.248 0.513 00101111001000 12363 0.243 0.756 00101111000110 12359 0.243 1.0 Evolutionary Algorithms Roulette wheel weighting (3) Cost based weighting: assign distributions by cost, make sure that total probability is 1.0 pn Σpn 00110010001100 13477-12097 = 1380 0.575 0.575 11101100000001 12588-12097 = 491 0.205 0.780 00101111001000 12363-12097 = 266 12359-12097 = 262 0.111 0.891 0.109 1.0 00101111000110 Evolutionary Algorithms Pairing offspring Randomly Rank based (1-2) (3-4) Prevents overly quick convergence Tournament: Pick two chromosomes Set parameter k Generate random nr r If (r < k) pick fitter (eg. k = 0.75) Elitism: always pick (a couple of) the best Evolutionary Algorithms Real valued chromosomes In case of example: (x, y), where x and y are the spatial coordinates Crossover Discrete recombination Intermediate recombination Line recombination Evolutionary Algorithms Real valued chromosomes Crossover Line recombination (122, 45, 77) and (3,4,3) Generate random positions: (1,2,2) and (1,1,2) Results in: (122, 4, 3) and (122, 45, 3) Evolutionary Algorithms Real valued chromosomes Intermediate recombination Offspring = parent 1 + α(parent 2 – parent 1) Allow area to be slightly larger than hypercube defined by parents Generate α for each position Line recombination Use a single value for α Evolutionary Algorithms Genetic Programming (Koza, 1992,1994,…) Example (Mitchell, 1998): Kepler’s law P2 = cA3, P orbital Period, A average distance from sun Programme for Mars: Program Orb // Mars A = 1.52; P = SQRT(A*A*A); PRINT P END Evolutionary Algorithms Genetic Programming Lisp version (defun orbital_period () ; Mars; (setf A 1.52) (sqrt (A A (* A A)))) Evolutionary Algorithms Parse tree for LISP expression SQRT * * A A Evolutionary Algorithms A Koza’s algorithm Trees consist of functions and terminals Choose a set of functions and terminals, e.g { +, -, *, /, √}; {A} Generate random programmes (trees) which are syntactically correct Evaluate fitness Apply crossover (mutation) Evolutionary Algorithms Crossover / * A √ * A X A A / / A A / A A A / A * A * / / A √ A Evolutionary Algorithms A A / A A A