- Special case for single crosspoint and multicrosspoint with individuals of length 1 interchanging it with a random position of the other individual.
- Interchange random positions in uniform cross instead of always even ones.
- Fix uniform cross function with different length individuals.
- Better population refitness taking into account the age effect but not the refitness of previous generations (in previous versions the original fitness was taken instead).
- Fix niches formula:
1.0 - (d / sigma.0).powf(alfa.0)
instead of(1.0 - (d / sigma.0)).powf(alfa.0)
. - Historical of solutions instead of checking only the current generation.
- Improve performance of getting fitnesses and solutions using a normal iterator instead of a parallel one.
- Special case for single crosspoint and multicrosspoint with individuals of length 1 interchanging it with a random position of the other individual.
- Interchange random positions in uniform cross instead of always even ones.
- Fix uniform cross function with different length individuals.
- Better implementation of niches when m is 0.
- Fix niches formula:
1.0 - (d / sigma.0).powf(alfa.0)
instead of(1.0 - (d / sigma.0)).powf(alfa.0)
.
- Optional global cache as
global_cache
feature.
- Special case for single crosspoint and multicrosspoint with individuals of length 1 interchanging it with a random position of the other individual.
- Interchange random positions in uniform cross instead of always even ones.
- Fix uniform cross function with different length individuals.
- Better implementation of niches when m is 0.
- Fix niches formula:
1.0 - (d / sigma.0).powf(alfa.0)
instead of(1.0 - (d / sigma.0)).powf(alfa.0)
.
- Better default
distance
function taking into account individuals of different length.
- Make public
ind
andfitness
attributes ofIndWithFitness
struct.
- More flexibility allowing any struct with a
Vec
inside can implementGenotype
. In 1.x versions this was not possible because Genotype had to implement FromIterator. In 2 versions a from_iter function has been added instead. - Oxigen 2 fix the issue #3 ('Cuadratic' has been replaced by 'Quadratic' in built-in enums). This has not been fixed in 1 versions to not break the interface.
- The
fix
function inGenotype
returns a boolean to specify if the individual has been changed to recompute its fitness. - The number of solutions gotten in each generation is now the number of different solutions using the new
distance
function ofGenotype
. - The
u16
type has been changed tousize
inStopCriterion
,MutationRate
andSelectionRate
traits. PopulationRefitness
trait has been added to optionally refit the individuals of the population comparing them to the other individuals.Niches
built-inPopulationRefitness
function has been added.- The
SurvivalPressure
trait has been redefined and now it kills the individuals instead of returning the indexes to remove. It also receives a list with the pairs of parents and children of the generation. - Many
SurvivalPressure
built-in functions have been added, likeOverpopulation
,CompetitiveOverpopulation
,DeterministicOverpopulation
,ChildrenFightParents
,ChildrenFightMostSimilar
, etc. - The two previous additions allow to search different solutions in different search space areas in order to avoid local suboptimal solutions and find different solutions.
- Other minor improvements.
- Special case for single crosspoint and multicrosspoint with individuals of length 1 interchanging it with a random position of the other individual.
- Interchange random positions in uniform cross instead of always even ones.
- Fix uniform cross function with different length individuals.
- Multipoint and uniform cross functions.
- Fix error in tournaments that did select individuals from 0 to the selection rate instead of the entire population.
- Fix that the age unfitness was not applied to the fitness.
- Fix that cross points cannot be 0, since it generates children identical to parents.
- Fix that the age was not incremented in each generation.
- The progress is NaN at the first generation also in
MutationRate
andSelectionRate
.
- Fix empty fitnesses at the first generation sent to
StopCriterion
,MutationRate
andSelectionRate
. - Add
GenerationAndProgress
,MaxFitness
,MinFitness
andAvgFitness
built-in stop criteria.
- Fix survival pressure
Worst
, that was reducing population size to a half.
- Add
fix
function toGenotype
to allow to repair individuals to satisfy restrictions. SolutionsFound
stop criterion added to specify the desired number of solutions.Progress
stop criterion fixed (it was stopping always at iteration 0).- Improved populations output.
- Permit initial individuals enabling to resume previous executions and coevolution.
- First version.