operon
operon copied to clipboard
Add option to disable evolution / optimization of variable coefficients (fix coefficients to one)
It would be nice to have an option which fixes the coefficients for variables to 1.0.
- This would lead to node counts which are compatible to other GP systems (operon counts variable nodes with coefficients as a single one node.)
- It could help to find correct solutions for the "symbolic test cases" in srbench.
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
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