Estimation of Distribution Algorithms • Let’s review what have done in EC so far: • We have studied EP and found that each individual searched via Gaussian disturbance. • We have studied GAs and found that: – given two parents and a procreation operator, one can determine the number and types of offspring that are possible of being generated. – Given BLX-0.5 we are actually restricting ourselves to distribution determined by the alleles of the genes of the parents. • We have studied ESs and discovered that a great deal of effort has been placed on adapting normal distributions. Estimation of Distribution Algorithms • We have even discovered that one should not look at operators as “crossover” or “mutation”. We have discovered that the important issue is variation (and the control of the amount variation applied to an individual or population given a specified point-in-time of the evolutionary process). • Is it possible to do away with procreation operators all together? • Remember all of our operators were based (either directly or indirectly on some form of probability distribution/density function. Estimation of Distribution Algorithms • Estimation of Distribution Algorithms do just that! • Typically they operate as follows: – – – – Step 0: Randomly generate a set of individuals (t=0) Step 1: Evaluate the individuals While (not done) Step 2: Select individuals (where ) to be parents • Develop a probability distribution/density function, pt, based on the parents – – – – Step 3: Create offspring using pt Step 4: Evaluate the offspring Step 5: The offspring replace the parents (t = t + 1) Step 6: Goto While Estimation of Distribution Algorithms • The EDA described earlier is and instance of a (_)-EC? • According to [Larranaga, P. and Lozano, J. A., Estimation of Distribution Algorithms: A New Tool for Evolutionary Computation, Kluwer Academic Publishers, 2002.], There are two types of EDAs: – EDAs for Binary-Coded and Discrete Representations, and – EDAs for Real-Code Representations (Continuous Domains). • EDAs for combinatorial optimization will evolve probability distribution functions. • EDAs for continuous domain problems with evolve probability density functions. Estimation of Distribution Algorithms: Binary-Coded Example • The EDA is known as the Univariate Marginal Distribution Algorithm • For our example the EDA will be a (3,6)-EDA (BinaryCoded): • Let’s try to solve the following problem – f(x) = x2, where -2.0 x 2.0, – Let l = 7, therefore our mapping function will be • d(2,-2,7,c) = 4*decode(c)/127 - 2 Estimation of Distribution Algorithms: An Example Run (by hand) • Randomly Generate an Initial Population Genotype Phenotype Fitness Person 1: 1001010 0.331 Fit: ? Person 2: 0100101 - 0.835 Fit: ? Person 3: 1101010 1.339 Fit: ? Person 4: 0110110 - 0.300 Fit: ? Person 5: 1001111 0.488 Fit: ? Person 6: 0001101 - 1.591 Fit: ? Estimation of Distribution Algorithms: An Example Run (by hand) • Evaluate Population at t=0 Genotype Phenotype Person 1: 1001010 0.331 Person 2: 0100101 - 0.835 Person 3: 1101010 1.339 Person 4: 0110110 - 0.300 Person 5: 1001111 0.488 Person 6: 0001101 - 1.591 Fitness Fit: 0.109 Fit: 0.697 Fit: 1.790 Fit: 0.090 Fit: 0.238 Fit: 2.531 Estimation of Distribution Algorithms: An Example (by hand) • Select the best 3 (truncation selection) individuals to be parents. Genotype Phenotype Fitness Person 1: 1001010 0.331 Fit: 0.109 Person 2: 0100101 - 0.835 Fit: 0.697 Person 3: 1101010 1.339 Fit: 1.790 Person 4: 0110110 - 0.300 Fit: 0.090 Person 5: 1001111 0.488 Fit: 0.238 Person 6: 0001101 - 1.591 Fit: 2.531 Estimation of Distribution Algorithms: An Example (by hand) • Construct a joint probability distribution function, p0, given the three parents. Genotype Phenotype Fitness Person 2: 0100101 - 0.835 Fit: 0.697 Person 3: 1101010 1.339 Fit: 1.790 Person 6: 0001101 - 1.591 Fit: 2.531 • Since our genotype only has two values, we only need to be concerned with the probability the value of a gene is 1. The probability that a value of a gene is 0 is 1 minus the probability that it is a 1. Estimation of Distribution Algorithms: An Example (by hand) • Construct a joint probability distribution function, p0, given the three parents. Genotype Phenotype Fitness Person 2: 0100101 - 0.835 Fit: 0.697 Person 3: 1101010 1.339 Fit: 1.790 Person 6: 0001101 - 1.591 Fit: 2.531 • Thus, p0 = – – – – p(g0=1|Parent0) = 0.333, p(g1=1|Parent0) = 0.667 p(g2=1|Parent0) = 0.000, p(g3=1|Parent0) = 0.667 p(g4=1|Parent0) = 0.667, p(g5=1|Parent0) = 0.333 p(g2=1|Parent0) = 0.667 Estimation of Distribution Algorithms: An Example Run (by hand) • Evaluate the Offspring Genotype Phenotype Child 1 : 0001010 - 1.685 Child 2 : 1101101 1.433 Child 3 : 0101101 - 0.583 Child 4 : 0001011 - 1.654 Child 5 : 1100110 1.213 Child 6 : 0100101 - 0.835 Fitness Fit: 2.839 Fit: 2.054 Fit: 0.340 Fit: 2.736 Fit: 1.470 Fit: 0.697 Estimation of Distribution Algorithms: An Example Run (by hand) • Replace the parents with the Offspring Genotype Phenotype Fitness Person 2: 0100101 - 0.835 Fit: 0.697 Person 3: 1101010 1.339 Fit: 1.790 Person 6: 0001101 - 1.591 Fit: 2.531 Child 1 Child 2 Child 3 Child 4 Child 5 Child 6 Genotype Phenotype Fitness : 0001010 - 1.685 Fit: 2.839 : 1101101 1.433 Fit: 2.054 : 0101101 - 0.583 Fit: 0.340 : 0001011 - 1.654 Fit: 2.736 : 1100110 1.213 Fit: 1.470 : 0100101 - 0.835 Fit: 0.697 Estimation of Distribution Algorithms: An Example Run (by hand) • Select the best 3 for Parent1 Genotype Phenotype Person 1: 0001010 - 1.685 Person 2: 1101101 1.433 Person 3: 0101101 - 0.583 Person 4: 0001011 - 1.654 Person 5: 1100110 1.213 Person 6: 0100101 - 0.835 Fitness Fit: 2.839 Fit: 2.054 Fit: 0.340 Fit: 2.736 Fit: 1.470 Fit: 0.697 Estimation of Distribution Algorithms • Given our example is it possible for premature convergence to exist in EDA-based search? • What can be done to remedy this situation? • What would the probability distribution function look like if more that two values (alleles) could be assigned to a gene? • What would be the benefits of using a (+)-EDA? • What may be some disadvantages of using a (+)scheme? Estimation of Distribution Algorithms: Real-Coded Example (by hand) • Estimation of Distribution Algorithms: An Example Run (by hand) • Randomly Generate an Initial Population Phenotype Fitness Person 1: 0.331 Fit: ? Person 2: - 0.835 Fit: ? Person 3: 1.339 Fit: ? Person 4: - 0.300 Fit: ? Person 5: 0.488 Fit: ? Person 6: - 1.591 Fit: ? Estimation of Distribution Algorithms: Real-Coded Example (by hand) • Evaluate Initial Population Phenotype Fitness Person 1: 0.331 Fit: 0.110 Person 2: - 0.835 Fit: 0.697 Person 3: 1.339 Fit: 1.793 Person 4: - 0.300 Fit: 0.900 Person 5: 0.488 Fit: 0.238 Person 6: - 1.591 Fit: 2.531 Estimation of Distribution Algorithms: Real-Coded Example Run (by hand) • Select best 3 of 6 Phenotype Fitness Person 1: 0.331 Fit: 0.110 Person 2: - 0.835 Fit: 0.697 Person 3: 1.339 Fit: 1.793 Person 4: - 0.300 Fit: 0.900 Person 5: 0.488 Fit: 0.238 Person 6: - 1.591 Fit: 2.531 Estimation of Distribution Algorithms: Real-Coded Example Run (by hand) • Calculate joint density function (Gaussian) Phenotype Fitness Person 3: 1.339 Fit: 1.793 Person 4: - 0.300 Fit: 0.900 Person 6: - 1.591 Fit: 2.531 • xavg= - 0.184, = 1.199 Estimation of Distribution Algorithms: Real-Coded Example Run (by hand) • Create new population of 6 Phenotype Fitness Child 1 : 1.015 Fit: 1.030 Child 2 : - 1.383 Fit: 1.913 Child 3 : - 0.784 Fit: 0.615 Child 4 : 0.416 Fit: 0.173 Child 5 : 0.116 Fit: 0.013 Child 6 : - 1.284 Fit: 1.649 Estimation of Distribution Algorithms: Real-Coded Example Run (by hand) • Replace Parents with Children; select best 3 of 6 Phenotype Fitness Person 1: 1.015 Fit: 1.030 Person 2: - 1.383 Fit: 1.913 Person 3: - 0.784 Fit: 0.615 Person 4: 0.416 Fit: 0.173 Person 5: 0.116 Fit: 0.013 Person 6: - 1.284 Fit: 1.649 Estimation of Distribution Algorithms: Real-Coded Example Run (by hand) • Calculate new joint density function Phenotype Fitness Person 1: 1.015 Fit: 1.030 Person 2: - 1.383 Fit: 1.913 Person 6: - 1.284 Fit: 1.649 • xavg = -0.551; = 1.11