class_docstr: Simplex Crossover operation used by :class:`~optuna.samplers.NSGAIISampler`.
  
  Uniformly samples child individuals from within a single simplex
  that is similar to the simplex produced by the parent individual.
  For further information about SPX crossover, please refer to the following paper:
  
  - `Shigeyoshi Tsutsui and Shigeyoshi Tsutsui and David E. Goldberg and
    David E. Goldberg and Kumara Sastry and Kumara Sastry
    Progress Toward Linkage Learning in Real-Coded GAs with Simplex Crossover.
    IlliGAL Report. 2000.
    <https://www.researchgate.net/publication/2388486_Progress_Toward_Linkage_Learning_in_Real-Coded_GAs_with_Simplex_Crossover>`_
  
  Args:
      epsilon:
          Expansion rate. If not specified, defaults to ``sqrt(len(search_space) + 2)``.
code: def __init__(self, epsilon: Optional[float] = None) -> None:
      self._epsilon = epsilon
  
file_path: optuna/optuna/samplers/nsgaii/_crossovers/_spx.py
imports: from typing import Optional
  import numpy
  from optuna._experimental import experimental_class
  from optuna.samplers.nsgaii._crossovers._base import BaseCrossover
  from optuna.study import Study
label_desc: Use image node_id 1 to create a new SPXCrossover object from inherited base classes: BaseCrossover with example: obj = SPXCrossover(epsilon)