Opened 8 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 8 years ago by bwerth
comment:2 Changed 8 years ago by bwerth
r13793 first unfinished implementation similiar to Shark – Machine Learning 3.1
comment:3 Changed 8 years ago by bwerth
r13909 added analysiation and CrowdingIndicator
comment:4 Changed 8 years ago by mkommend
- Milestone changed from HeuristicLab 3.3.14 to HeuristicLab 3.3.15
comment:5 Changed 8 years ago by bwerth
comment:6 Changed 8 years ago by bwerth
r13990 reimplemented Indicators
comment:7 Changed 8 years ago by bwerth
r14269 code cleanup + project refactored
comment:8 Changed 7 years ago by bwerth
- Status changed from new to assigned
comment:9 Changed 7 years ago by bwerth
- Owner changed from bwerth to mkommend
- Status changed from assigned to reviewing
comment:10 Changed 7 years ago by bwerth
r14404 several fixes and cleanups to adapt a more HeuristicLab-Code-Style + renaming of folders and Plugin
comment:11 Changed 7 years ago by mkommend
- Owner changed from mkommend to pfleck
comment:12 Changed 7 years ago by bwerth
r14577 made MOCMAES compatible with MultiObjectiveBasicProblem instead of MultiObjectiveTestfunction, fixed Bug in CrowdingIndicator
comment:13 Changed 7 years ago by bwerth
r14612 made initialization solutionspace-scaling invariant
comment:14 Changed 7 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 7 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 7 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 7 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 put it there.
comment:18 Changed 7 years ago by bwerth
- removed effectively unused field "rank" from Individual
- removed non-dominated sorting in favor of DominationCalculator
comment:19 Changed 7 years ago by bwerth
- Owner changed from bwerth to pfleck
- Status changed from assigned to reviewing
comment:20 Changed 7 years ago by bwerth
r15175 fixed .csproj and typo in IIndicator
comment:21 Changed 7 years ago by bwerth
r15176 formatting & removed unreferenced enum
comment:22 Changed 7 years ago by bwerth
r15177 removed GUID from MOCMAEvolutionStrategy
comment:23 Changed 7 years ago by pfleck
- Status changed from reviewing to assigned
comment:24 Changed 7 years ago by pfleck
r15178: Merged from branch to trunk
comment:25 Changed 7 years ago by pfleck
r15179: Added missing reference
comment:26 Changed 7 years ago by pfleck
r15180: Added another missing reference.
comment:27 Changed 7 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 7 years ago by pfleck
r15205 Speed-up MOCMAES by batch-incrementing Evaluations to reduce update-overhead
comment:29 Changed 7 years ago by bwerth
r15206 removed redundant paused/stopped check
comment:30 Changed 7 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 7 years ago by abeham
- Owner changed from abeham to pfleck
comment:32 Changed 7 years ago by pfleck
r15226 Changed item name as suggested by abeham.
comment:33 Changed 7 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 7 years ago by pfleck
comment:35 Changed 7 years ago by pfleck
- Status changed from reviewing to readytorelease
comment:36 Changed 7 years ago by pfleck
r15244: merged 15178-15180,15203,15205-15206,15221,15226,15236 to stable
comment:37 Changed 7 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