Skip to content

v2.0.0

Latest
Compare
Choose a tag to compare
@mattruzicka mattruzicka released this 10 May 23:50

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 of Gene.combine.
  • Removed deprecated Evolution#crossover in favor of Evolution#combination.
  • Renamed Evolvable#after_initialize to Evolvable#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 a count parameter, removing the evolvables parameter.
  • Changed default size parameter in Population#initialize from 40 to 0.
  • Changed Population#evolve default count parameter from Float::INFINITY to 1.

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! and load_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