docstr: Select elite population from the given trials by NSGA-II algorithm.
  
  Args:
      study:
          Target study object.
      population:
          Trials in the study.
  
  Returns:
      A list of trials that are selected as elite population.
docstr_tok: ["Select","elite","population","from","the","given","trials","by","NSGA-II","algorithm",".","Args",":","study",":","Target","study","object",".","population",":","Trials","in","the","study",".","Returns",":","A","list","of","trials","that","are","selected","as","elite","population","."]
code: def __call__(
      self, study: Study, population: list[FrozenTrial]
  ) -> list[FrozenTrial]:
      """Select elite population from the given trials by NSGA-II algorithm.
  
      Args:
          study:
              Target study object.
          population:
              Trials in the study.
  
      Returns:
          A list of trials that are selected as elite population.
      """
      _validate_constraints(population, self._constraints_func)
      dominates = (
          _dominates
          if self._constraints_func is None
          else _constrained_dominates
      )
      population_per_rank = _fast_non_dominated_sort(
          population, study.directions, dominates
      )
  
      elite_population: list[FrozenTrial] = []
      for individuals in population_per_rank:
          if (
              len(elite_population) + len(individuals)
              < self._population_size
          ):
              elite_population.extend(individuals)
          else:
              n = self._population_size - len(elite_population)
              _crowding_distance_sort(individuals)
              elite_population.extend(individuals[:n])
              break
  
      return elite_population
  
file_path: optuna/optuna/samplers/nsgaii/_elite_population_selection_strategy.py
imports: from __future__ import annotations
  from collections import defaultdict
  from collections.abc import Callable
  from collections.abc import Sequence
  import itertools
  import optuna
  from optuna.samplers.nsgaii._dominates import _constrained_dominates
  from optuna.samplers.nsgaii._dominates import _validate_constraints
  from optuna.study import Study
  from optuna.study._multi_objective import _dominates
  from optuna.trial import FrozenTrial
label_desc: Use image node_id 2 for calling the NSGAIIElitePopulationSelectionStrategy obj's underlying member method code with example usage: obj.__call__(study, population) and returns: elite_population