Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

NSGA tournament sorting only compares two solutions each round #316

Open
Labels
bugSomething isn't working
@noahBax

Description

Looking at the code for tournament_selection_nsga2 in parent_selection.py only the first two solutions in each round of selection are ever compared.

pareto_fronts, solutions_fronts_indices = self.non_dominated_sorting(fitness)
self.pareto_fronts = pareto_fronts.copy()
# Randomly generate pairs of indices to apply for NSGA-II tournament selection for selecting the parents solutions.
rand_indices = numpy.random.randint(low=0.0, 
 high=len(solutions_fronts_indices), 
 size=(num_parents, self.K_tournament))
for parent_num in range(num_parents):
 # Return the indices of the current 2 solutions.
 current_indices = rand_indices[parent_num]
 # Return the front index of the 2 solutions.
 parent_fronts_indices = solutions_fronts_indices[current_indices]
 if parent_fronts_indices[0] < parent_fronts_indices[1]:
 # If the first solution is in a lower pareto front than the second, then select it.
 selected_parent_idx = current_indices[0]
 elif parent_fronts_indices[0] > parent_fronts_indices[1]:
 # If the second solution is in a lower pareto front than the first, then select it.
 selected_parent_idx = current_indices[1]
 else:
 # The 2 solutions are in the same pareto front.
 # The selection is made using the crowding distance.
 ...

K_tournament solution indexes are selected with randint though. This also happens for crowding distance as well.

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

        AltStyle によって変換されたページ (->オリジナル) /