Skip to content

Incorrect Pareto Front Assignment #320

Description

@rtcameron

Hello!

I'm currently using version 3.3.1 with the nsga2 model on a multi-objective problem, and I had some questions and confusion on how the pareto_fronts list is being created.

In the nsga2 module, the method get_non_dominated_set returns the sets in the order: return dominated_set, non_dominated_set, which seems correct. But then in the next method non_dominated_sorting which actually returns the pareto fronts for the solution space, it pulls them using this block of code:

pareto_front, remaining_set = self.get_non_dominated_set(curr_solutions=remaining_set)
pareto_front = numpy.array(pareto_front, dtype=object)
pareto_fronts.append(pareto_front)

This seems to indicate that the pareto_front is being created based off the dominated set of solutions and not the non-dominated set like I believed it should be. My understanding of the algorithm was that the dominated set was the solutions that were clearly worse than another solution, am I missing something here?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions