Opened 6 years ago
Last modified 3 years ago
#2987 accepted feature request
Implement MOEA/D algorithm in HeuristicLab
Reported by: | bburlacu | Owned by: | bburlacu |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 3.3.x Backlog |
Component: | Algorithms.DataAnalysis | Version: | branch |
Keywords: | Cc: |
Description
The MOEA/D algorithm is a capable metaheuristic for multi-objective optimization. It would be nice to have it in HeuristicLab.
Publication
MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition
Features for HeuristicLab Implementation
- should work with any encoding
- extends BasicAlgorithm, supports Pause
- can use existing operators and analyzers out of the box
- can be extended to implement different flavours (MOEA/D-DRA, MOEA/D-STM, etc.)
Change History (11)
comment:1 Changed 6 years ago by bburlacu
- Status changed from new to accepted
- Type changed from defect to feature request
comment:2 Changed 6 years ago by bburlacu
comment:3 Changed 6 years ago by bburlacu
comment:4 Changed 6 years ago by bburlacu
r16630: Migrate to new persistence. Add support for objective scaling.
comment:5 Changed 6 years ago by bburlacu
- Prevent updating the Ideal and Nadir points with NaN or Infinity values.
- Simplify algorithm code (use arrays instead of lists).
- Add missing StorableType attributes.
- Add hypervolume analysis for the pareto fronts.
comment:6 Changed 6 years ago by bburlacu
r16657: Improve performance by caching parameter values. Fix plugin dependencies in Plugin.cs.frame
comment:7 Changed 6 years ago by bburlacu
r16688: Eliminate unnecessary cloning. Update to HEAL.Attic-pre4, fix AssemblyTitle
comment:8 Changed 6 years ago by bburlacu
r16714: Reference HEAL.Attic dll from HL bin folder and add HeuristicLab.Attic to plugin dependencies.
comment:9 Changed 5 years ago by kyang
EMOA/D may stuck in a specific region (objective space) without any updates:
- DTLZ3: Only explore the region within $f_2 \in (0,0.1)$
- DTLZ7: Only explore the region within $f_2 \in (0,0.8)$
comment:10 follow-up: ↓ 11 Changed 3 years ago by gkronber
@bburlacu please prepare the branch for trunk merge
comment:11 in reply to: ↑ 10 Changed 3 years ago by bburlacu
Replying to gkronber:
@bburlacu please prepare the branch for trunk merge
I had a look at this branch and it looks ok to be merged. I am not aware of any outstanding issues with the algorithm.
r16557: Branch HeuristicLab.Algorithms.DataAnalysis and add initial implementation adapted from jMetal.
r16560: Create separate plugin for MOEA/D
r16561: Store the population as a List, so it can be cleared when the algorithm is finished in order to save memory. Unversion generated files (Plugin.cs and AssemblyInfo.cs)
r16583: Implement better uniform weight generation, objective scaling, algorithm Pause support.
TODO
support all encodings (currently only Symbolic Expressions)proper wiring (+ handle all events)support more than 2 dimensions (implement weight generation - original implementation reads weights from resource files)