Happy-Algorithms-League / hal-cgp

Cartesian genetic programming (CGP) in pure Python.
GNU General Public License v3.0
28 stars 10 forks source link

Always use `reorder=True` and remove possiblity to configure this? #347

Open jakobj opened 2 years ago

jakobj commented 2 years ago

Is there a downside to reordering the genome? If not I think we should remove the possibility of choosing this setting and just always doing it. We need to keep an eye on the number of configurable parameters since with every parameter the learning curve becomes steeper and the probability of choosing "wrong" settings increases.

What do you think @HenrikMettler?

HenrikMettler commented 2 years ago

In principle I agree, I quickly want to check in the literature though, whether there are case where this is disadvantageous

HenrikMettler commented 2 years ago

From Goldman and Punch 2014 (Analysis of Cartesian Genetic Programming’s Evolutionary Mechanisms): Compared on median evaluations to success, Normal and Reorder are likely to be equally good for simple problems, with some suggestion that Reorder performs better as prob- lems become more difficult. In general DAG was found to be unnecessarily time consuming, as it required higher algorith- mic complexity without any performance gain. As such we would suggest Reorder for general future CGP use

So I would say we should, as you suggested, use reorder=True as default