Breaking Changes:
- Replaced legacy .search_space and .search_spaces definitions with the new .gene macro-style for defining genetic attributes.
- Renamed
#value
to#fitness
throughout the codebase for clarity. - Removed deprecated
Gene.crossover
in favor ofGene.combine
. - Removed deprecated
Evolution#crossover
in favor ofEvolution#combination
. - Renamed
Evolvable#after_initialize
toEvolvable#after_initialize_evolvable
. - Changed population initialization and evolvable creation workflow for more consistency.
- Simplified error handling by unifying all exceptions under a single Evolvable::Error type
- Changed
Population#new_evolvables
to only accept acount
parameter, removing theevolvables
parameter. - Changed default
size
parameter inPopulation#initialize
from 40 to 0. - Changed
Population#evolve
defaultcount
parameter fromFloat::INFINITY
to1
.
New Features:
- Added gene clusters for organizing related genes through the
cluster
parameter in gene definitions. - Introduced the
Evolvable::GeneCluster
module for complex gene grouping. - Added
Evolvable::Community
for managing multiple populations and their interactions. - Added genome merging capabilities with
merge_genome!
andload_and_merge_genome!
. - Added
evolve_selected
method to Population for evolving a specific subset of evolvables. - Added automatic method generation for accessing genes and gene clusters by name.
- Added new evolution control methods: evolve_to_goal and evolve_forever for more intuitive lifecycle control.
- Comprehensive YARD documentation and README overhaul.
Full Changelog: v1.2.0...v2.0.0