Opened 9 years ago
Closed 7 years ago
#2592 closed feature request (done)
MO-CMA-ES for Realnumbered Problem
Reported by: | bwerth | Owned by: | pfleck |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 3.3.15 |
Component: | Algorithms.CMAEvolutionStrategy | Version: | 3.3.13 |
Keywords: | Cc: |
Description
A multiobjective CMA-ES variant for realnumbered multiobjective problems should be created.
Change History (38)
comment:1 Changed 9 years ago by bwerth
comment:2 Changed 9 years ago by bwerth
r13793 first unfinished implementation similiar to Shark – Machine Learning 3.1
comment:3 Changed 9 years ago by bwerth
r13909 added analysiation and CrowdingIndicator
comment:4 Changed 9 years ago by mkommend
- Milestone changed from HeuristicLab 3.3.14 to HeuristicLab 3.3.15
comment:5 Changed 9 years ago by bwerth
comment:6 Changed 9 years ago by bwerth
r13990 reimplemented Indicators
comment:7 Changed 8 years ago by bwerth
r14269 code cleanup + project refactored
comment:8 Changed 8 years ago by bwerth
- Status changed from new to assigned
comment:9 Changed 8 years ago by bwerth
- Owner changed from bwerth to mkommend
- Status changed from assigned to reviewing
comment:10 Changed 8 years ago by bwerth
r14404 several fixes and cleanups to adapt a more HeuristicLab-Code-Style + renaming of folders and Plugin
comment:11 Changed 8 years ago by mkommend
- Owner changed from mkommend to pfleck
comment:12 Changed 8 years ago by bwerth
r14577 made MOCMAES compatible with MultiObjectiveBasicProblem instead of MultiObjectiveTestfunction, fixed Bug in CrowdingIndicator
comment:13 Changed 8 years ago by bwerth
r14612 made initialization solutionspace-scaling invariant
comment:14 Changed 8 years ago by pfleck
- Fixed scale invariant initialization by changing the initial sigma to a DoubleArray for initializing the covariance matrix (similar to the CMA-ES).
- Made the MO-CMA-ES pausable (although the algorithm state is not yet storable when paused).
comment:15 follow-up: ↓ 17 Changed 8 years ago by pfleck
- Owner changed from pfleck to bwerth
- Status changed from reviewing to assigned
Reviewed the current state of the branch:
General Structure
- Add license information header in all files.
- Put all Indicator implementations into a separate folder called Indicators (however, they should not be in a new namespace). The interface should stay in the root of the project.
- The plugin is called MOCMAColutionStrategy, the algorithm is called MOCMASEvolutionStrategy. Use a consistent name.
- Get rid of the MOCMAESParameters class (e.g. store the values in the MOCMAEvolutionStrategy and pass the whole class into the MOCMAESIndividual).
- Rename the MOCMAESIndividual to Individual (also rename the file).
Code Improvements
- Make the state of the MOCMAEvolutionStrategy storable (the internal variables?) so that it can be paused, stored, reopened and resumed.
- Be careful that all stored fields are storable types as well (e.g. MOCMAESIndividual)
- Remove the Utilities.cs, if possible
- Use DoubleMatrix.CloneAsMatrix instead of the ToArray
- If not possible, create an internal static helper class DoubleMatrixHelper with a extension method CloneAsArray
- Use Linq instead of the ArgMin/Max of the Utilities.cs
- e.g. xxx.OrderBy(x=>x.value).First(x=>x.argument))
- Use DoubleMatrix.CloneAsMatrix instead of the ToArray
I would also suggest to move all multi-objective related stuff into a separate plugin. But this should be done in another ticket since it will also effect some other existing plugins.
comment:16 Changed 8 years ago by bwerth
r15045 improvements/changes as requested:
- Licence headers added
- Indicators moved to folder
- Typo MOCMAS <-> MOCMA corrected
- MOCMAESParameters removed
- MOCMAESIndividual renamed
- Fixed bug in Individual where updates due to unsuccessful children were ignored
- MOCMAEvolutionStrategy is now storable and pausable
- Replaced ArgMin/Max as suggested
- Renamed Utilities to DoubleMatrixHelper and changed both conversion methods to extensions
- Fixed bug where updates in the ReferencePoint were ignored by MOCMAEvolutionStrategy and HypervolumeIndicator
- Some code reordering
- Minor improvement in HypervolumeIndicatoras the overall HV is no longer calculated
comment:17 in reply to: ↑ 15 Changed 8 years ago by abeham
Replying to pfleck:
I would also suggest to move all multi-objective related stuff into a separate plugin. But this should be done in another ticket since it will also effect some other existing plugins.
As of r15080 (#2782) there's a class DominationCalculator in HeuristicLab.Optimization. It's generic over the type of the solution. Please use this class in the future. If you have further stuff, please add it to the MultiObjective folder in that plugin.
comment:18 Changed 8 years ago by bwerth
- removed effectively unused field "rank" from Individual
- removed non-dominated sorting in favor of DominationCalculator
comment:19 Changed 8 years ago by bwerth
- Owner changed from bwerth to pfleck
- Status changed from assigned to reviewing
comment:20 Changed 8 years ago by bwerth
r15175 fixed .csproj and typo in IIndicator
comment:21 Changed 8 years ago by bwerth
r15176 formatting & removed unreferenced enum
comment:22 Changed 8 years ago by bwerth
r15177 removed GUID from MOCMAEvolutionStrategy
comment:23 Changed 8 years ago by pfleck
- Status changed from reviewing to assigned
comment:24 Changed 8 years ago by pfleck
r15178: Merged from branch to trunk
comment:25 Changed 8 years ago by pfleck
r15179: Added missing reference
comment:26 Changed 8 years ago by pfleck
r15180: Added another missing reference.
comment:27 Changed 8 years ago by pfleck
- Renamed ScatterPlotContent to ParetoFrontScatterPlot (also renamed corresponding view).
- Refactored ParetoFrontScatterPlotView (use ScatterPlot internally).
Backwardscompatability was not considered because the old ScatterPlotContent is so new that there is very little chance someone already stored it.
comment:28 Changed 8 years ago by pfleck
r15205 Speed-up MOCMAES by batch-incrementing Evaluations to reduce update-overhead
comment:29 Changed 8 years ago by bwerth
r15206 removed redundant paused/stopped check
comment:30 Changed 8 years ago by pfleck
- Owner changed from pfleck to abeham
- Status changed from assigned to reviewing
Please review r15203. The rest is already reviewed and ready to release.
comment:31 Changed 8 years ago by abeham
- Owner changed from abeham to pfleck
comment:32 Changed 8 years ago by pfleck
r15226 Changed item name as suggested by abeham.
comment:33 Changed 8 years ago by jkarder
r15236: fixed project file
- switched target framework from .NET 4.5.2 to 4.5
- added pre build event for mono builds
comment:34 Changed 8 years ago by pfleck
comment:35 Changed 8 years ago by pfleck
- Status changed from reviewing to readytorelease
comment:36 Changed 8 years ago by pfleck
r15244: merged 15178-15180,15203,15205-15206,15221,15226,15236 to stable
comment:37 Changed 8 years ago by pfleck
r15245 deleted branch
comment:38 Changed 7 years ago by gkronber
- Resolution set to done
- Status changed from readytorelease to closed
r13730 create new branch folder r13731 initial branch r13732 rename folder