|
|
Computers > Artificial Intelligence > Genetic Programming > Forum > Projects > Genetic Algorithm:Population Diversity
Click here to post a new message in this thread
| Posted 2008-03-28 01:47:12 by disol |
|
I have built a Genetic Algorithm using the Matlab functions. I am now looking for previous works/projects about how to measure my population Diversity and maintain it at high levels using adaptive mutation and crossover rates. The rates should be Diversity defined. My algorithm uses real number encoding for the genotypes. Can anyone propose anything? Are there any relative papers, because i was not able to find anything to match my expectations exactly... Any help would be appreciate. |
Your best bet in measuring diversity would be to first define "diversity" within the scope of your application. Does diversity represent different gene sets or a different application of those genes (i.e new morphology, new behaviors, new neural networks)? Once you can answer that question you can write a function to sort your "organisms" using your definition of diversity. As far as raising diversity, you should include more offspring. More offspring always equals more diversity. Take the whole set of each generations winners and cross breed the whole lot of them a bunch of times. If you have 10 winners in Generation 1, then produce 1000 children for generation 2 from cross breeding those parents. Diversity comes from different environmental conditions, so offer half your population the main problem and some secondary related problem, and the other half a different secondary problem. If the two halves of your gene pool are each evaluated for fitness on the main problem and then each half of the winners from that generation is also evaluated on its respective secondary problem, massive population divergence will occur and you can then cross breed winners from each half with winners from the other. |
Your best bet in measuring diversity would be to first define "diversity" within the scope of your application. Does diversity represent different gene sets or a different application of those genes (i.e new morphology, new behaviors, new neural networks)? Once you can answer that question you can write a function to sort your "organisms" using your definition of diversity. As far as raising diversity, you should include more offspring. More offspring always equals more diversity. Take the whole set of each generations winners and cross breed the whole lot of them a bunch of times. If you have 10 winners in Generation 1, then produce 1000 children for generation 2 from cross breeding those parents. Diversity comes from different environmental conditions, so offer half your population the main problem and some secondary related problem, and the other half a different secondary problem. If the two halves of your gene pool are each evaluated for fitness on the main problem and then each half of the winners from that generation is also evaluated on its respective secondary problem, massive population divergence will occur and you can then cross breed winners from each half with winners from the other. |
Click here to post a new message in this thread
|
|
|