超体积实用工具#
- class pygmo.hypervolume(points)#
超体积类
从点构造
- Parameters
points (二维数组对象) – 点
- Raises
ValueError – 如果 points 不一致
示例
>>> from pygmo import * >>> points = [[1,2],[0.5, 3],[0.1,3.1]] >>> hv = hypervolume(points = points)
另请参阅C++类
pagmo::hypervolume的文档。__init__(pop)
从总体构造
- Parameters
pop (
population) – 输入的人口- Raises
ValueError – 如果 pop 包含单目标或约束问题
示例
>>> from pygmo import * >>> pop = population(prob = zdt(prob_id = 1), size = 20) >>> hv = hypervolume(pop = pop)
另请参阅C++类
pagmo::hypervolume的文档。- compute(ref_point, hv_algo=auto)#
使用提供的算法计算超体积。如果没有提供算法,则会自动选择一个适用于点维度的精确超体积算法。
- Parameters
ref_point (2d array-like object) – 点
hv_algo (继承自
_hv_algorithm) – 使用的超体积算法
- Returns
假设ref_point为参考点计算的超体积
- Return type
- Raises
ValueError – 如果 ref_point 不被 nadir 点支配
另请参阅C++类
pagmo::hypervolume::compute()的文档。
- contributions(ref_point, hv_algo=auto)#
此方法返回每个点对超体积的独占贡献。 根据hv_algo,此计算可以最优地实现(与在循环中调用
exclusive()相反)。- Parameters
ref_point (2d array-like object) – 点
hv_algo (继承自
_hv_algorithm) – 使用的超体积算法
- Returns
所有点对超体积的贡献
- Return type
一维NumPy浮点数数组
- Raises
ValueError – 如果 ref_point 不合适
另请参阅C++类
pagmo::hypervolume::contributions()的文档。
- exclusive(idx, ref_point, hv_algo=auto)#
计算特定点对超体积的独占贡献。
- Parameters
idx (
int) – 点的索引ref_point (数组类对象) – 参考点
hv_algo (继承自
_hv_algorithm) – 使用的超体积算法
- Returns
所有点对超体积的贡献
- Return type
一维NumPy浮点数数组
- Raises
ValueError – 如果 ref_point 不合适或 idx 超出范围
OverflowError – 如果 idx 为负数或大于实现定义的值
另请参阅C++类
pagmo::hypervolume::exclusive()的文档。
- greatest_contributor(ref_point, hv_algo=auto)#
计算对总超体积贡献最大的点。
- Parameters
ref_point (array-like object) – 参考点
hv_algo (继承自
_hv_algorithm) – 使用的超体积算法
- Raises
ValueError – 如果 ref_point 不合适
另请参阅C++类
pagmo::hypervolume::greatest_contributor()的文档。
- least_contributor(ref_point, hv_algo=auto)#
计算对总体超体积贡献最小的点。
- Parameters
ref_point (数组类对象) – 参考点
hv_algo (继承自
_hv_algorithm) – 使用的超体积算法
- Raises
ValueError – 如果 ref_point 不合适
另请参阅C++类
pagmo::hypervolume::least_contributor()的文档。
- refpoint(offset=0)#
通过获取超体积对象中保存的所有点在每个维度上的最大值来计算一个模拟参考点。 结果是一个必然被所有其他点支配的点,因此可以用于超体积计算。
这一点与通过
nadir()计算的不同,因为在该方法中只考虑了非支配前沿(因此其复杂性也更高)- Parameters
offset (
float) – 参考点- Returns
参考点
- Return type
一维NumPy浮点数数组
另请参阅C++类
pagmo::hypervolume::refpoint()的文档。
- class pygmo.hvwfg(stop_dimension=2)#
来自Walking Fish Group的超体积算法(2011版本)。
此对象可以作为参数传递给类
hypervolume的各种方法,因为它继承自隐藏基类_hv_algorithm- Parameters
stop_dimension (
int) – 输入的人口- Raises
OverflowError – 如果 stop_dimension 为负数或大于实现定义的值
示例
>>> import pygmo as pg >>> hv_algo = pg.hvwfg(stop_dimension = 2)
另请参阅C++类
pagmo::hvwfg的文档。
- class pygmo.hv2d#
二维点的精确超体积算法。
此对象可以作为参数传递给类
hypervolume的各种方法,因为它继承自隐藏的基类_hv_algorithm示例
>>> import pygmo as pg >>> hv_algo = pg.hv2d()
另请参阅C++类
pagmo::hv2d的文档。
- class pygmo.hv3d#
三维点的精确超体积算法。
此对象可以作为参数传递给类
hypervolume的各种方法,因为它继承自隐藏基类_hv_algorithm示例
>>> import pygmo as pg >>> hv_algo = pg.hv3d()
另请参阅C++类
pagmo::hv3d的文档。
- class pygmo.bf_fpras(eps=1e-2, delta=1e-2, seed=random)#
Bringmann-Friedrich近似方法。实现了Bringmann-Friedrich近似方案(FPRAS),简化为近似超体积指标的特殊情况。
此对象可以作为参数传递给类
hypervolume的各种方法,因为它继承自隐藏基类_hv_algorithm示例
>>> import pygmo as pg >>> hv_algo = pg.bf_fpras(eps = 1e-2, delta = 1e-2)
另请参阅C++类
pagmo::bf_fpras的文档。
- class pygmo.bf_approx#
Bringmann-Friedrich近似方法。实现了Bringmann-Friedrich近似方案(FPRAS),简化为近似最小贡献者的特殊情况。
此对象可以作为参数传递给类
hypervolume的各种方法,因为它继承自隐藏基类_hv_algorithm示例
>>> import pygmo as pg >>> hv_algo = pg.bf_approx()
另请参阅C++类
pagmo::bf_approx的文档。