Implement diversity selection.
Diversity selection is performed by trying to select individuals
from the population that aren't already in the new_population. A group
of selected individuals is then subjected to selection using
a passed selection routine.
If new individuals can not be selected, new individuals will be
randomly generated and inserted into the population.
Methods
|
|
__init__
_get_new_organism
select
|
|
__init__
|
__init__ (
self,
internal_selector,
genome_generator,
)
Initialize a diversity selector.
Arguments:
internal_selector - A selection object that will be used to select
individuals based on fitness, perform crossover, mutation and repair.
genome_generator - A function that, when called, will return a
genome to be used for a new organism. The genome returned must
be a MutableSeq() object.
|
|
_get_new_organism
|
_get_new_organism (
self,
new_pop,
old_pop,
)
Get a new organism from old_pop that isn't in new_pop.
This attempts to select an organism from old_pop that isn't in
new_pop. If we can't do this in the number of tries specified
by the class attribute random_tries, we generate a new random
organism and return that.
|
|
select
|
select ( self, population )
Perform selection on the current population, encouraging diversity.
|
|