通用优化工具#

pygmo.sbx_crossover(parent1, parent2, bounds, nix, p_cr, eta_c, seed)#

此函数将对两个染色体parent1parent2的连续部分进行二进制交叉,并对它们的整数部分进行两点交叉。交叉只会以概率p_cr发生。如果是这种情况,染色体的每个连续部分将以0.5的概率进行交叉。

Parameters
  • parent1 (数组类对象) – 第一个染色体

  • parent2 (数组类对象) – 第二个染色体

  • bounds (2-D 数组类对象) – 问题边界

  • nix (int) – 染色体的整数维度

  • p_cr (float) – 交叉概率

  • eta_c (float) – 交叉分布指数

  • seed (int) – 内部随机数生成器使用的种子

Returns

numpy.ndarray:包含两个交叉的染色体

Return type

tuple

Raises
  • ValueError – 如果 bounds parent1 parent2 的长度不相等,如果下界不小于或等于上界,如果 nix 大于父代大小,或者在 boundsp_creta_c 中检测到无限值

  • 未指定 – 任何由C++和Python之间的交互失败引发的异常(例如,类型转换错误、函数签名不匹配等)。

另请参阅C++类pagmo::sbx_crossover的文档。


pygmo.polynomial_mutation(dv, bounds, nix, p_m, eta_m, seed)#

此函数将对染色体dv的连续部分执行多项式变异,并对剩余的整数部分执行均匀变异。

Parameters
  • dv (数组类对象) – 染色体

  • bounds (2-D 数组类对象) – 问题边界

  • nix (int) – 染色体的整数维度

  • p_m (float) – 变异概率

  • eta_m (float) – 变异分布指数

  • seed (int) – 内部随机数生成器使用的种子

Returns

numpy.ndarray:包含两个交叉的染色体

Return type

tuple

Raises
  • ValueError – 如果 boundsdv 的长度不相等,如果下界不小于或等于上界,如果 nix 大于父级大小,或者在 boundsp_meta_m 中检测到无限值

  • 未指定 – 任何由C++和Python之间的交互失败引发的异常(例如,类型转换错误、函数签名不匹配等)。

另请参阅C++类pagmo::polynomial_mutation的文档。