2
$\begingroup$

When implementing a genetic algorithm, I understand the basic idea is to have an initial population of a certain size. Then, we pick two individuals from a population, construct two new individuals (using mutation and crossover), repeat this process X number of times and the replace the old population with the new population, based on selecting the fittest.

In this method, the population size remains fixed. In reality in evolution, populations undergo fluctuations in population sizes (e.g. population bottlenecks, and new speciations).

I understand the disadvantages of variable populations sizes from a biological view are, for example, a bottleneck will reduce the population to minimal levels, so not much evolution will occur. Are there disadvantages to using variable population sizes in genetic algorithms, from a programming perspective? I was thinking the numbers per population could follow a distribution of some sort so they don't just randomly fluctuate erratically, but maybe this does not make sense to do.

$\endgroup$
1
$\begingroup$

Population size is a tricky issue even in pure biological models. Biological population sizes obviously vary. The two great protagonists of the argument were Ronald Fisher and Sewell Wright, with argument being between Fisher favouring few large populations against Wright’s many small interconnected populations. There is evidence that evolution occurs more rapidly in Wright’s model but the evidence is inconclusive. The theory concentrates on the probability that a mutation will occur and then become dominant in a population. In a small population a beneficial mutation is more likely to be selected for reproduction, but premature convergence is a serious danger. While in a larger population a mutant is less likely to be removed from the population during reproduction. I would strongly recommend a read of Games of life by Karl Sigmund.

$\endgroup$
5
  • $\begingroup$ When you say " There is evidence that evolution occurs more rapidly in Wright’s model but the evidence is inconclusive", maybe you should cite some reliable research paper that provides this evidence. Not sure if this answer is based on the book that you're suggesting. $\endgroup$
    – nbro
    Jan 2 at 21:03
  • 1
    $\begingroup$ The result is widely reported, with a suitable reference being The Island Model Genetic Algorithm: On Separability, Population Size and Convergence researchgate.net/publication/… $\endgroup$
    – Nick
    Jan 2 at 22:04
  • $\begingroup$ In any case, how does this answers the question "Are there any disadvantages to using a variable population size in genetic algorithms?" Here you're just talking about the trade-off between big and small population sizes and not about variable population sizes. The OP accepted this answer, but it doesn't really address the actual question, to be honest. So, I suggest that you do a little bit of research (in case you don't know the answer to the actual question), then provide the answer to the actual question too. $\endgroup$
    – nbro
    Jan 3 at 12:16
  • 1
    $\begingroup$ I can send you my PhD thesis if you want? To answer the question in full would take more time than I have at the moment. But if you want more info on varying population sizes I’d suggest you read Yin and Germans paper A Fast Genetic Algorithm with Sharing Scheme Using Cluster Analysis Methods in Multimodal Function Optimization, which applies cluster analysis to each population to dynamically form breeding populations of similar individuals. $\endgroup$
    – Nick
    Jan 4 at 13:11
  • $\begingroup$ You should edit this answer to include the info that you added in these comments and try to address more the original question by at least linking to the resource that talks about varying population sizes. $\endgroup$
    – nbro
    Jan 6 at 21:34
0
$\begingroup$

using different population sizes at different stages of the optimization process can be beneficial. With large population sizes you can effectively explore the landscape to find proper areas. Large population sizes helps in finding global optima or high fitness local optima. However, using large populations require more fitness evaluations and waste of computational resources. With a small population you can effectively exploit a previously find appropriate area and get high accuracy solutions. For this reason, some works suggest to use a large population at the start of the algorithm and gradually, decrease its size, like [Improving the search performance of SHADE using linear population size reduction]. Also, some dynamic optimization methods, use dynamic population sizes. For instance, they create sub-populations when it is necessary to discover more optima or to cover the landscape, they decrease their sub-populations when they detect a change or new appropriate uncovered area in the landscape.

$\endgroup$
1
  • $\begingroup$ "some works suggest to use a large population at the start of the algorithm and gradually, decrease its size", can you please cite those works (and provide a link)? Also, please, provide references for the other parts of this answer too, such as for the part "Also, some dynamic optimization methods, use dynamic population sizes" and for the initial claim "using different population sizes at different stages of the optimization process can be beneficial.". $\endgroup$
    – nbro
    Jan 6 at 17:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.