Description
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?