Opened 3 months ago

Last modified 4 weeks 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 (8)

comment:1 Changed 3 months ago by bburlacu

  • Status changed from new to accepted
  • Type changed from defect to feature request

comment:2 Changed 3 months ago by bburlacu

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)
  • adapt design to HeuristicLab (eg, maybe use scopes, replace utility code with HeuristicLab extensions/utility methods) (partially done)
Last edited 3 months ago by bburlacu (previous) (diff)

comment:3 Changed 3 months ago by bburlacu

Last edited 3 months ago by bburlacu (previous) (diff)

comment:4 Changed 2 months ago by bburlacu

r16630: Migrate to new persistence. Add support for objective scaling.

comment:5 Changed 8 weeks ago by bburlacu

r16649:

  • 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 7 weeks ago by bburlacu

r16657: Improve performance by caching parameter values. Fix plugin dependencies in Plugin.cs.frame

comment:7 Changed 6 weeks ago by bburlacu

r16688: Eliminate unnecessary cloning. Update to HEAL.Attic-pre4, fix AssemblyTitle

comment:8 Changed 4 weeks ago by bburlacu

r16714: Reference HEAL.Attic dll from HL bin folder and add HeuristicLab.Attic to plugin dependencies.

Note: See TracTickets for help on using tickets.