Changelog¶
History¶
Version 0.2.33 (2023-02-15)¶
previous major fix was not fixed. This time it is fixed.
Version 0.2.30 (2023-01-25)¶
major bug fix: for installing, if numpy is not present could not install due to importing in
setup.py
Version 0.2.29 (2022-11-22)¶
Added
is_deterministic
to GeneticProgram. This is used only if the GP is deterministic.If the GP is deterministic, the function call is sped up through memoisation (i.e. cached results).
Version 0.2.28 (2022-11-01)¶
Fixed bug in Node repr if operator is None.
Added new
population_growth_function
to Island, easier to switch between stead-state and generational.Added new population growth functions to
utils
.IslandError
added toutils
.Moved
x
from toutils
.
Version 0.2.27 (2022-09-02)¶
A
population_evaluation_function
can now be added to define custom fitness function calls to individuals.This makes the way open for multi server fitness evaluation.
Added
natural_selection.utils
.Moved
clone_classic
tonatural_selection.utils
.Moved
get_random_string
tonatural_selection.utils
.Moved
default_save_checkpoint_function
tonatural_selection.utils
.Moved
post_evolution_function_save_all
tonatural_selection.utils
.Added
evaluate_individual_multiproc_wrapper
tonatural_selection.utils
.Added
evaluate_individuals_sequentially
tonatural_selection.utils
.
Version 0.2.26 (2022-06-29)¶
Major work on expanding package to include Genetic Programming.
Added tree generation function
random_generate
to genetic_programs.Renamed
natural_selection.genetic_programs.functions
tonatural_selection.genetic_programs.node_operators
.Added
is_empty
to Node class.Added
breadth
andmax_breadth
to Node class, useful for doing crossover.Added more history “stamps” to Island for alien spawn, migrant import.
General work on
GeneticProgram
class.Added
create_genetic_program
to Island for easy wrapper.Added
get_subtree
to Node class to find a subtree at the given point.Added
set_subtree
to Node class to set a subtree at the given point.Node operators now have a
strict_precedence
parameter to solve issues where argument precedence is important.Fixed issue with genetic code checks by adding
force_update
to both GeneticProgram and Individual.
Version 0.2.25 (2022-06-20)¶
Implemented new multiprocessing ability. Can now specify with the
core_count
param to split up evaluation over multiple cores.Major refactoring.
Island
is now imported from the main package, to make it future proof for running genetic programs.
Version 0.2.24 (2022-04-07)¶
Added param
with_replacement
to selection functions.
Version 0.2.23 (2022-04-05)¶
Added a new ability to spawn new aliens at the end of each generation.
Added
alien_spawn_function
to Island initialisation.
Version 0.2.22 (2022-04-03)¶
Renamed the
elite_selection
toparent_selection
due to misleading name.Renamed the original
parent_selection
toparent_combination
due to misleading name.Removed the
elite
in parent selection functions.Added
selection_roulette
to parent selection.Added new
crossover_one_binary_union
crossover operator for binary string union.
Version 0.2.21 (2022-03-13)¶
Added the ability to add properties to islands, much like with individuals, chromosomes and genes.
add_new_property
,get_properties
, andget
.
Version 0.2.20 (2022-03-11)¶
Added the param
maximise_function
to Island, to either maximise the function (default) or when set to false to minimise the function.
Version 0.2.19 (2021-12-29)¶
Fixed minor issue when loading an island and logging not working.
Version 0.2.18 (2021-11-19)¶
Print crossover logs after resetting offspring
Adding all properties of individuals to lineage nodes.
Added
get
to Individuals to safely return properties.Custom crossover functions can now add
gene_inheritance
to offspring to detail what percentages offspring inherit.
Version 0.2.17 (2021-11-16)¶
Added
write_lineage_json
to Island to easily dump lineage graph to JSON file.
Version 0.2.16 (2021-11-16)¶
Added
lineage
to Island, to easily track the lineage of parents/offsrping. This is especially handy for enforcing genetic diversity.Added
write_report
to Island, for printing generational history to file.Logging now writes individuals as strings, not the full representation, thus logs are less cluttered.
Version 0.2.15 (2021-10-08)¶
Added ability to give the chromosome creation function through to initialisation
chromosome_create_func
, overcoming deep copy issues.
Version 0.2.14 (2021-10-02)¶
Bug fix in
create_individual
of island after adding new init params to Individual class.
Version 0.2.13 (2021-10-02)¶
Moved the save checkpoint function from the Island class into utils as
save_checkpoint_function
.Added
pre_generation_check_function
to Islandevolve
for performing custom pre generation actions.Added
post_generation_check_function
to Islandevolve
for performing custom post generation actions.Added
post_evolution_function
to Islandevolve
for performing custom post evolution actions.
Version 0.2.12 (2021-09-29)¶
Added deep copying on randomly creating new gene (to avoid referencing).
Version 0.2.11 (2021-09-24)¶
Fixed flaw where chromosome and individual properties aren’t being copied with initialisation.
Renamed
_verbose_logging
toverbose_logging
to publicly expose.
Version 0.2.10 (2021-09-08)¶
Fixed bug in
name
param of Island.Removed the need to pass a dict of params to
evaluate
function of individuals
Version 0.2.9 (2021-09-01)¶
Fixed major bug in
initialise_population_mutation_function
, due to chromosomes not being copied
Version 0.2.8 (2021-09-01)¶
Added new randomise function:
mutation_randomize_n_point
Added new initialisation function
initialise_population_mutation_function
to use the defined mutation function
Version 0.2.7 (2021-08-31)¶
Fixed major bug in not adding new offspring due to genetic code not being reset
Version 0.2.6 (2021-08-31)¶
Renamed
force_genetic_diversity
toallow_twins
Added new tournament selection function of unique only selection, see
selection_elites_tournament_unique
Fixed bug in
crossover_two_n_point
where crossover was just swapping genes, and effectively not creating true offspringLogging offspring stats too
Now individuals and chromosomes can have custom properties easily added
Version 0.2.5 (2021-08-18)¶
Fitness function now takes the individual instead of chromosome
Fitness not reset for offspring
Documentation extended