Skip to content

Incorrect Pareto Front Assignment #320

Open
@rtcameron

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions