Free cookie consent management tool by TermsFeed Policy Generator

Opened 6 years ago

Last modified 2 years ago

#2825 accepted feature request

Implement NSGA-III

Reported by: abeham Owned by: chaider
Priority: medium Milestone: HeuristicLab 3.3.17
Component: Algorithms Version:
Keywords: Cc:


NSGA-III is originally developed for problems with >3 objective, but is also an improvement over NSGA-II even for problems with 3 objectives. There exists a unified version of NSGA-III (U-NSGA-III) that can be applied to problems with any number of objectives which is probably interesting to implement in HL.

Change History (8)

comment:1 Changed 6 years ago by abeham

  • Version 3.3.14 deleted

comment:2 Changed 4 years ago by abeham

  • Milestone changed from HeuristicLab 3.3.16 to HeuristicLab 3.3.17

comment:3 Changed 4 years ago by gkronber

r17231: created a branch

comment:4 Changed 4 years ago by gkronber

  • Owner set to dleko
  • Status changed from new to assigned

comment:5 Changed 3 years ago by jkarder

Please accept this ticket and add a comment for every revision you create.

r17551: Create NSGA3 plugin.
r17557: Add parameters for algorithm.
r17558: Generate structured reference points and show them in Results tab.
r17559: Initialize and analyze solutions of first generation.
r17615: The list of Reference Points are now a storable field in the NSGA3 class.

  • Implement the first part of NSGA3.
  • Solutions are saved in a List.
  • Minor changes in Utility.cs.


  • The reference points and the fronts are no longer stored.
  • Minor restructuring in NSGA3.


  • Add storable generation field.
  • Add StorableType attribute to Solution class.

r17619: Implement second part of NSGA3. Add random field to ReferencePoint.
r17657: Implement recombination.
r17658: Add better error handling for MinArgMin and MaxArgMax methods. Add comments describing the methods.
r17661: Correct reference point generation.
r17662: Correction: Use NumberOfObjectives instead of Problem.Encoding.Length where it is correct.
r17663: Initialize population size with the correct number (according to NSGA-III paper).
r17664: Add generation count to results. Minor refactoring.
r17665: Refactoring: Move selection logic to its own static class.
r17666: Add Unit test project.
r17667: Bugfix: The correct number of reference points are returned on ReferencePoint.GetNumberOfGeneratedReferencePoints.
r17668: Bugfix.
r17669: Add scatter plot for resulting fitness values.

comment:6 Changed 3 years ago by gkronber

  • Owner changed from dleko to gkronber
  • Status changed from assigned to accepted

comment:7 Changed 2 years ago by gkronber

  • Owner changed from gkronber to chaider
  • Status changed from accepted to assigned

@chaider: please test the implementation and check the code.

comment:8 Changed 2 years ago by chaider

  • Status changed from assigned to accepted
Note: See TracTickets for help on using tickets.