通用优化工具#
- pygmo.random_decision_vector(prob)#
此函数将生成一个决策向量,其值在输入
problemprob的下限\(lb\)和上限\(ub\)之间均匀随机选择。对于决策向量的连续部分,随机生成的决策向量的第\(i\)个分量将满足\(lb_i \le x_i < ub_i\)。
对于决策向量的离散部分,随机生成的决策向量的第\(i\)个分量保证是一个整数值,使得\(lb_i \le x_i \le ub_i\)。
对于决策向量的连续和离散部分,如果 \(lb_i == ub_i\) 则返回 \(lb_i\)。
- Parameters
prob (
problem) – 输入问题- Returns
问题边界内的随机决策向量
- Return type
- Raises
ValueError – 如果问题的边界不是有限的或大于实现定义的极限
未指定 – 任何由C++和Python之间的失败引发的异常(例如,类型转换错误、函数签名不匹配等)。
- pygmo.batch_random_decision_vector(prob, n)#
此函数将生成一批n个决策向量,其值在输入
problemprob的下限和上限\(lb\)和\(ub\)之间均匀随机选择。 决策向量在返回值中连续排列:对于维度为\(x\)的问题,返回值中的第一个决策向量占据索引范围\(\left[0, x\right)\),第二个决策向量占据范围\(\left[x, 2x\right)\),依此类推。对于决策向量的连续部分,随机生成的决策向量的第\(i\)个分量将满足\(lb_i \le x_i < ub_i\)。
对于决策向量的离散部分,随机生成的决策向量的第\(i\)个分量保证是整数值,使得\(lb_i \le x_i \le ub_i\)。
对于决策向量的连续和离散部分,如果 \(lb_i == ub_i\) 则返回 \(lb_i\)。
- Parameters
- Returns
一批在问题边界内的随机决策向量,连续排列在一维数组中
- Return type
- Raises
OverflowError – 在(不太可能发生的)溢出情况下
ValueError – 如果问题的边界不是有限的或大于实现定义的极限
未指定 – 任何由C++和Python之间的失败引发的异常(例如,类型转换错误、函数签名不匹配等)。
- pygmo.set_global_rng_seed(seed)#
在pygmo中,通常可以通过各种构造函数传递的专用seed关键字参数来控制所有随机生成器的种子。如果没有传递seed,pygmo会使用其全局随机数生成器为你随机创建一个种子。
此函数允许重置全局随机数生成器的种子。这对于轻松创建pygmo的确定性行为非常有用。
- Parameters
seed (
int) – 用于随机数生成的新全局种子
注意
在复杂的并行演化中,即使设置了全局种子,也无法获得确定性的行为,因为pygmo实现了异步模型用于并行执行,线程和进程之间的确切交互无法确定性地重现。
示例
>>> import pygmo as pg >>> pg.set_global_rng_seed(seed = 32) >>> pop = pg.population(prob = pg.ackley(5), size = 20) >>> print(pop.champion_f) [17.26891503] >>> pg.set_global_rng_seed(seed = 32) >>> pop = pg.population(prob = pg.ackley(5), size = 20) >>> print(pop.champion_f) [17.26891503]