Program-Trace-Optimisation / PTO

Program Trace Optimisation
GNU General Public License v3.0
2 stars 0 forks source link

Could we have a tree-structured trace crossover? #1

Open jmmcd opened 2 weeks ago

jmmcd commented 2 weeks ago

We have: def crossover_one_point_ind(self, sol1, sol2): # coarse only

This makes sense because a "one-point crossover" means choosing one "split point" somewhere in a linear genome.

However, in GP we have subtree crossover. Would it be interesting to view the traces as trees, choose compatible random cutpoints, and exchange subtrees?

amoraglio commented 2 weeks ago

The design phylosopy of PTO is that search operators look at traces as labelled linear structures, whatever the labels are.

With structured names, the induced phenotypic search operators corresponds to meaningful operators on phenotypes, i.e. for GP meaningful operators on GP trees (this is the idea of implicit design).

I'd stick to this phylosophy and see how far it can go, and how much the induced operators make sense across representations. This is because it is easy to generalise existing methaeuristics to a linear trace representation, and less so to a tree structured trace representation. The idea phylosopy of PTO is to keep operators on traces generic and representation agnostic, and the customisation is emergent from the naming scheme used.

On Sun, 20 Oct 2024, 13:09 James McDermott, @.***> wrote:

We have: def crossover_one_point_ind(self, sol1, sol2): # coarse only

This makes sense because a "one-point crossover" means choosing one "split point" somewhere in a linear genome.

However, in GP we have subtree crossover. Would it be interesting to view the traces as trees, choose compatible random cutpoints, and exchange subtrees?

— Reply to this email directly, view it on GitHub https://github.com/Program-Trace-Optimisation/PTO/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABCZ477TYVRBDPWVJINEESLZ4OMPVAVCNFSM6AAAAABQIORDG6VHI2DSMVQWIX3LMV43ASLTON2WKOZSGYYDANBQGAYDMNY . You are receiving this because you are subscribed to this thread.Message ID: @.***>