Opened 5 years ago
Closed 4 years ago
#3067 closed enhancement (done)
Crossover probability for SubtreeCrossover
Reported by: | gkronber | Owned by: | gkronber |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 3.3.17 |
Component: | Encodings.SymbolicExpressionTreeEncoding | Version: | |
Keywords: | Cc: |
Description
Some genetic programming variants allow a copy operation where neither crossover nor mutation are applied to selected parent trees.
This is helpful for certain problem instances using a multi-tree representation (via MultiEncoding) where we want to prevent that a crossover event causes crossover for all trees.
One way to add this is to add a crossover rate to the general genetic algorithm variations that we are using in HL for GP.
Another and easier way is to implement this in the crossover operator using a crossover probability.
Attachments (2)
Change History (15)
comment:1 Changed 5 years ago by gkronber
comment:2 Changed 5 years ago by gkronber
r17491: fix reproducability by calling the PRNG only when probability is < 1
comment:3 Changed 5 years ago by gkronber
- Status changed from new to accepted
- Version set to trunk
comment:4 Changed 5 years ago by gkronber
comment:5 Changed 4 years ago by gkronber
- Owner changed from gkronber to mkommend
- Status changed from accepted to reviewing
comment:6 Changed 4 years ago by mkommend
- Owner changed from mkommend to gkronber
- Status changed from reviewing to assigned
Reviewed r17490, r17491, and r17492.
I have two comments that should be addressed:
- Why have you chosen to use a DoubleValue instead of a PercentValue? The latter is displayed more nicely, in line with InternalCrossoverPointProbability (which is also a PercentValue) and can be restricted to [0,1].
- What is the reason for randomly selecting a parent if no crossover is performed? I would have expected that the first parent (parent0) is always returned. Similarly to the fallback if no valid crossover points in the parents can be chosen.
comment:7 Changed 4 years ago by gkronber
r17871: changed CrossoverProbabilityParameter to PercentValue and return parent0 when no crossover is performed.
comment:8 Changed 4 years ago by gkronber
- Owner changed from gkronber to mkommend
- Status changed from assigned to reviewing
Changed 4 years ago by gkronber
Changed 4 years ago by gkronber
comment:9 Changed 4 years ago by gkronber
comment:10 Changed 4 years ago by mkommend
comment:11 Changed 4 years ago by mkommend
- Owner changed from mkommend to gkronber
- Status changed from reviewing to readytorelease
comment:12 Changed 4 years ago by gkronber
r17975: merged r17490:17492 and r17871:17872 from trunk to stable
comment:13 Changed 4 years ago by gkronber
- Resolution set to done
- Status changed from readytorelease to closed
- Version trunk deleted
r17490: add crossover probability for subtree crossover and initialized it to 100%
This change breaks reproduceability of old experiments because we added a call to the random number generator.