Skip to content

v1.4.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 11 Jan 21:38
· 16 commits to main since this release
1d18cd4

EvoLP v1.4.0

In preparation for EvoLP 2.0, we are changing the names of many operators and updating the type hierarchy. This is to ensure that operators are used on the appropriate individuals, and to allow for other types of selectors/mutators/recombinators. We also added 2 new continuous (multimodal) functions and fixed a bug with the generational GA.

New test functions

  • eggholder
  • rana

Bugfixes

  • Fixed a bug in which the simple version of GA failed to start as it was iterating through an unallocated AbstractArray.

Enhancements

  • Improved documentation about the Result type. It now mentions the runtime method and showcases a list of the returned information.
  • Improved the documentation page about extending EvoLP
  • The BenchmarkTools package is no longer a requirement of EvoLP
  • Added a test suite for selectors and updated the rest of the test suites

Deprecations

All types and functions mentioned here still exist with the old names, but will be removed in a future release. Consider updating your code to use the new names.

Logbook-ready algorithms

Built-in algorithms now have an in-place version. For example, GA is the simple version of the Genetic Algorithm, where only the result is returned. On the other hand, GA! modifies and updates the Logbook argument. For more information, see issue #77.

Selection methods

SelectionMethod was renamed to Selector. It now features a new subtype, ParentSelector. In the future, it will contain other type of selectors (for example for survival, crowding or migration in islands).

Steady-state Selection Methods

All selectors are now steady-state by default. The following selectors have been renamed:

  • RankBasedSelectionSteady is now RankBasedSelector
  • RouletteWheelSelectionSteady is now RouletteWheelSelector
  • TournamentSelectionSteady is now TournamentSelector
  • TruncationSelectionSteady is now TruncationSelector

Generational selection methods

Generational versions of selection methods will disappear in a future version. We recommend you update your algorithms and perform the selection for every individual in the population directly. The affected selectors are:

  • RankBasedSelectionGenerational
  • RouletteWheelSelectionGenerational
  • TournamentSelectionGenerational
  • TruncationSelectionGenerational

Mutation methods

MutationMethod was renamed to Mutator. It now features three new subtypes, ContinuousMutator, BinaryMutator and PermutationMutator.

Renamed mutators

  • BitwiseMutation is now BitwiseMutator
  • GaussianMutation is now GaussianMutator
  • InsertMutation is now InsertionMutator (to be consistent with Inversion)
  • InversionMutation is now InversionMutator
  • ScrambleMutation is now ScrambleMutator
  • SwapMutation is now SwapMutator

Crossover methods

CrossoverMethod was renamed to Recombinator (to keep it consistent with the rest of the operators). It now features 2 subtypes: NumericRecombinator and PermutationRecombinator.

Renamed recombinators

  • InterpolationCrossover is now InterpolationRecombinator
  • OrderOneCrossover is now OX1Recombinator
  • SinglePointCrossover is now SinglePointRecombinator
  • TwoPointCrossover is now TwoPointRecombinator
  • UniformCrossover is now UniformRecombinator

Additional notes

Diff since v1.3.0

Merged pull requests:

Closed issues:

  • Performance discussion (#70)
  • Update Result documentation (#76)
  • Logger-enabled algorithms should use the exclamation mark in their name (#77)
  • Add idun-islands test functions to EvoLP (#78)
  • Update test suite for benchmark functions (#79)
  • Deprecation of operators (#80)
  • Add type ontology to documentation (#81)
  • Test suite for selectors (#82)
  • Add types to signature in real-valued test functions (#83)