Avoid nonsensical situation when the maximum number of evaluations is allocated to a deme because fraction of nearest neighbors was set very low (like 0.001) with the intention of spreading evaluations across more demes.
Make sure crossover does not produce more candidates than the maximum number of evaluations set by the user.
Port from https://github.com/opencog/moses/pull/95
Avoid nonsensical situation when the maximum number of evaluations is allocated to a deme because fraction of nearest neighbors was set very low (like 0.001) with the intention of spreading evaluations across more demes.
Make sure crossover does not produce more candidates than the maximum number of evaluations set by the user.