optuna.samplers.nsgaii.BaseCrossover

class optuna.samplers.nsgaii.BaseCrossover[源代码]

交叉操作的基类。

交叉操作由 NSGAIISampler 用于从 n 个父个体的参数创建新的参数组合。

注意

此类的具体实现预计只接受数值分布的参数。目前,只有分类参数的交叉操作(均匀交叉)内置于 NSGAIISampler 中。

方法

crossover(parents_params, rng, study, ...)

对选定的父个体执行交叉操作。

属性

n_parents

执行交叉操作所需的父个体数量。

abstractmethod crossover(parents_params, rng, study, search_space_bounds)[源代码]

对选定的父个体执行交叉操作。

此方法在 sample_relative() 中调用。

参数:
  • parents_params (np.ndarray) – 维度为 num_parents x num_parametersnumpy.ndarray。表示每个父个体的参数空间。对于数值参数,此空间是连续的。

  • rng (np.random.RandomState) – numpy.random.RandomState 的实例。

  • study (Study) – 目标研究对象。

  • search_space_bounds (np.ndarray) – 维度为 len_search_space x 2numpy.ndarray,表示从转换后的搜索空间构建的数值分布边界。

返回:

包含新参数组合的 1 维 numpy.ndarray

返回类型:

np.ndarray

abstract property n_parents: int

执行交叉操作所需的父个体数量。