Opened 14 years ago
Closed 12 years ago
#1247 closed feature request (done)
Implement RAPGA
Reported by: | swagner | Owned by: | jkarder |
---|---|---|---|
Priority: | high | Milestone: | HeuristicLab 3.3.8 |
Component: | Algorithms.OffspringSelectionGeneticAlgorithm | Version: | 3.3.8 |
Keywords: | Cc: |
Description
Change History (34)
comment:1 Changed 14 years ago by swagner
- Component changed from ### Undefined ### to Algorithms.OffspringSelectionGeneticAlgorithm
- Status changed from new to accepted
comment:2 Changed 14 years ago by swagner
- Status changed from accepted to assigned
comment:3 Changed 12 years ago by ascheibe
- Owner changed from swagner to jkarder
comment:4 Changed 12 years ago by jkarder
- Status changed from assigned to accepted
comment:5 Changed 12 years ago by jkarder
- Version changed from 3.3.1 to branch
comment:6 Changed 12 years ago by jkarder
comment:7 Changed 12 years ago by jkarder
r8330: initial version
comment:8 Changed 12 years ago by jkarder
r8349: added duplication control
comment:9 Changed 12 years ago by jkarder
r8354: forgot to add DuplicateSelector
comment:10 Changed 12 years ago by jkarder
- adjusted event handling
- improved operator graph
- changed default parameter values
comment:11 Changed 12 years ago by jkarder
- added support for batch offspring creation
- added population size analyzer
- improved operator graph
comment:12 Changed 12 years ago by jkarder
r8378: added offspring success analyzer
comment:13 Changed 12 years ago by jkarder
r8379: added parameters
comment:14 Changed 12 years ago by jkarder
- added operator that evaluates expressions
- added selection pressure analyzer
- fixed bug in counting of evaluated solutions
comment:15 Changed 12 years ago by jkarder
r8400: removed batch size parameter initialization in main loop
comment:16 Changed 12 years ago by jkarder
- added similarity calculators
- adjusted event handling
- reformatted code
comment:17 Changed 12 years ago by jkarder
- fixed event handling
- adjusted types
comment:18 Changed 12 years ago by jkarder
- fixed some bugs
- minor code improvements
comment:19 Changed 12 years ago by jkarder
r8629: added reference to algorithm description
comment:20 Changed 12 years ago by jkarder
- Owner changed from jkarder to ascheibe
- Status changed from accepted to reviewing
comment:21 Changed 12 years ago by ascheibe
- Owner changed from ascheibe to jkarder
- Status changed from reviewing to assigned
comment:22 Changed 12 years ago by jkarder
r8631: removed similarity calculators
comment:23 Changed 12 years ago by jkarder
r8642: integrated branch into trunk
comment:24 Changed 12 years ago by jkarder
- Owner changed from jkarder to ascheibe
- Status changed from assigned to reviewing
comment:25 Changed 12 years ago by jkarder
r8643: removed branch RAPGA
comment:26 Changed 12 years ago by ascheibe
- Milestone changed from HeuristicLab 3.3.x Backlog to HeuristicLab 3.3.8
- Version changed from branch to 3.3.7
comment:27 Changed 12 years ago by ascheibe
- Owner changed from ascheibe to jkarder
- Status changed from reviewing to assigned
Thanks for implementing RAPGA. In my opinion this looks very good, I have only 3 reviewing comments:
- As the DuplicatesSelector is a selection operator, it gets discovered by e.g. the GA as a selection operator. Executing a GA with the DuplicatesSelector fails because the SimilarityCalculator is not set. We could fix this by querying the operators collection and setting the SimilarityCalculator if it was not set by the algorithm or problem. This would fix the exception, the question is then if we want such a selection operator because it would mean that we always select duplicates and in the beginning of a GA run it could very well be that no individual is selected. We could switch the two scopes so that the selected scope contains the unique solutions. This would then allow us to have populations in a GA that only contain unique individuals. But of course the population would shrink with algorithm progress and the GA probably can't handle changing population sizes or empty populations. Maybe we should mark it as Non-Discoverable (where the downside is that we can't use this operator anymore for user-defined algorithms) or maybe this isn't a selection operator and we should remove the Selector interface and base class.
- In the DuplicatesSelector you count the number of elements in marks with marks.Count(x => x). This should be marks.Count().
- The Item Name of the SelectionPressureAnalyzer is PopulationSizeAnalyzer, it should be SelectionPressureAnalyzer.
comment:28 Changed 12 years ago by jkarder
r8855: applied some of the changes suggested by ascheibe in comment:27:ticket:1247
comment:29 Changed 12 years ago by jkarder
- Owner changed from jkarder to ascheibe
- Status changed from assigned to reviewing
comment:30 Changed 12 years ago by jkarder
Thanks for your review. It is sufficient to remove the Selector interface as all of the discovery is done using this interface. Even though the DuplicateSelector does not need most of the base class' properties, I decided to still inherit from the SingleObjectiveSelector because of the provided functionality.
comment:31 Changed 12 years ago by jkarder
r8856: updated RAPGA JSSP sample
comment:32 Changed 12 years ago by ascheibe
- Owner changed from ascheibe to jkarder
- Status changed from reviewing to readytorelease
Thanks very much, looks good.
comment:33 Changed 12 years ago by jkarder
Thanks!
comment:34 Changed 12 years ago by swagner
- Resolution set to done
- Status changed from readytorelease to closed
- Version changed from 3.3.7 to 3.3.8
r8313: initial commit