operon icon indicating copy to clipboard operation
operon copied to clipboard

Add option to disable evolution / optimization of variable coefficients (fix coefficients to one)

Open gkronber opened this issue 2 years ago • 1 comments

It would be nice to have an option which fixes the coefficients for variables to 1.0.

  1. This would lead to node counts which are compatible to other GP systems (operon counts variable nodes with coefficients as a single one node.)
  2. It could help to find correct solutions for the "symbolic test cases" in srbench.

gkronber avatar Sep 25 '21 05:09 gkronber

TODO

  • [ ] tree initialization: ~add option to specify whether variable~ coefficients are ~randomly initialized or~ fixed (i.e. 1.0)
  • [ ] ~mutation: add option to specify whether variable coefficients should be perturbed~ no need, just turn relevant mutations on/off
  • [ ] coefficient tuning: it should be configurable which leaf nodes/coefficients are tuned by the least squares optimizer

Further thoughts

  • tree initialization will always set coefficients to 1
  • another operator will be responsible for initializing coefficient values according to user-defined rules and value distribution
  • coefficient-altering mutations will apply perturbation from a user-defined distribution (one-point, multi-point)
  • all the distributions from <random> will be supported

foolnotion avatar Oct 21 '21 11:10 foolnotion

Marking this issue as done:

  • every node has an Optimize property which turns optimization on/off for its coefficient
  • mutations can take integer distributions
  • symbolic mode is a global flag which disables coefficient tuning and configures mutations work with integers

foolnotion avatar Apr 24 '23 06:04 foolnotion