16.01.2013 Views

An Introduction to Genetic Algorithms - Boente

An Introduction to Genetic Algorithms - Boente

An Introduction to Genetic Algorithms - Boente

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Repeat N times:<br />

Choose a random integer r between 0 and T.<br />

Loop through the individuals in the population, summing the expected values, until the sum is greater than or<br />

equal <strong>to</strong> r. The individual whose expected value puts the sum over this limit is the one selected.<br />

This s<strong>to</strong>chastic method statistically results in the expected number of offspring for each individual. However,<br />

with the relatively small populations typically used in GAs, the actual number of offspring allocated <strong>to</strong> an<br />

individual is often far from its expected value (an extremely unlikely series of spins of the roulette wheel<br />

could even allocate all offspring <strong>to</strong> the worst individual in the population). James Baker (1987) proposed a<br />

different sampling method—"s<strong>to</strong>chastic universal sampling" (SUS)—<strong>to</strong> minimize this "spread" (the range of<br />

possible actual values, given an expected value). Rather than spin the roulette wheel N times <strong>to</strong> select N<br />

parents, SUS spins the wheel once—but with N equally spaced pointers, which are used <strong>to</strong> selected the N<br />

parents. Baker (1987) gives the following code fragment for SUS (in C):<br />

ptr = Rand(); /* Returns random number uniformly distributed in [0,1] */<br />

for (sum = i = 0; i < N; i++)<br />

for (sum += ExpVal(i,t); sum > ptr; ptr++)<br />

Select(i);<br />

where i is an index over population members and where ExpVal(i,t) gives the expected value of individual i at<br />

time t. Under this method, each individual i is guaranteed <strong>to</strong> reproduce at least ExpVal(i,t) times but no<br />

more than ExpVal(i,t) times. (The proof of this is left as an exercise.)<br />

SUS does not solve the major problems with fitness−proportionate selection. Typically, early in the search the<br />

fitness variance in the population is high and a small number of individuals are much fitter than the others.<br />

Under fitness−proportionate selection, they and their descendents will multiply quickly in the population, in<br />

effect preventing the GA from doing any further exploration. This is known as "premature convergence." In<br />

other words, fitness−proportionate selection early on often puts <strong>to</strong>o much emphasis on "exploitation" of<br />

highly fit strings at the expense of exploration of other regions of the search space. Later in the search, when<br />

all individuals in the population are very similar (the fitness variance is low), there are no real fitness<br />

differences for selection <strong>to</strong> exploit, and evolution grinds <strong>to</strong> a near halt. Thus, the rate of evolution depends on<br />

the variance of fitnesses in the population.<br />

Sigma Scaling<br />

Chapter 4: Theoretical Foundations of <strong>Genetic</strong> <strong>Algorithms</strong><br />

To address such problems, GA researchers have experimented with several "scaling" methods—methods for<br />

mapping "raw" fitness values <strong>to</strong> expected values so as <strong>to</strong> make the GA less susceptible <strong>to</strong> premature<br />

convergence. One example is "sigma scaling" (Forrest 1985; it was called "sigma truncation" in Goldberg<br />

1989a), which keeps the selection pressure (i.e., the degree <strong>to</strong> which highly fit individuals are allowed many<br />

offspring) relatively constant over the course of the run rather than depending on the fitness variances in the<br />

population. Under sigma scaling, an individual's expected value is a function of its fitness, the population<br />

mean, and the population standard deviation. A example of sigma scaling would be<br />

where ExpVal(i,t) is the expected value of individual i at time t, f(i) is the fitness of i,f(t) is the mean fitness of<br />

the population at time t, and Ã(t) is the standard deviation of the population fitnesses at time t. This function,<br />

125

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!