椭球集

(类来自 pyomo.contrib.pyros.uncertainty_sets)

class pyomo.contrib.pyros.uncertainty_sets.EllipsoidalSet(center, shape_matrix, scale=1)[来源]

基础:UncertaintySet

一个一般的椭球体。

Parameters:
  • center ((N,) array-like) – 椭球的中心。

  • shape_matrix ((N, N) array-like) – 一个正定矩阵,用于描述椭球的形状和方向。

  • scale (数值类型, 可选) – 用于缩放椭球体半轴的平方因子(即形状矩阵的特征向量)。默认值为 1

示例

以原点为中心的3D单位超球体:

>>> from pyomo.contrib.pyros import EllipsoidalSet
>>> import numpy as np
>>> hypersphere = EllipsoidalSet(
...     center=[0, 0, 0],
...     shape_matrix=np.eye(3),
...     scale=1,
... )
>>> hypersphere.center
array([0, 0, 0])
>>> hypersphere.shape_matrix
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])
>>> hypersphere.scale
1

一个具有自定义旋转和缩放的2D椭圆体:

>>> rotated_ellipsoid = EllipsoidalSet(
...     center=[1, 1],
...     shape_matrix=[[4, 2], [2, 4]],
...     scale=0.5,
... )
>>> rotated_ellipsoid.center
array([1, 1])
>>> rotated_ellipsoid.shape_matrix
array([[4, 2],
       [2, 4]])
>>> rotated_ellipsoid.scale
0.5
__init__(center, shape_matrix, scale=1)[source]

初始化自身(参见类文档字符串)。

方法

__init__(center, shape_matrix[, scale])

初始化自身(参见类文档字符串)。

compute_auxiliary_uncertain_param_vals(point)

计算给定点的辅助不确定参数值。

is_bounded(config)

确定不确定性集合是否有界。

is_nonempty(config)

如果不确定性集合非空,则返回True,否则返回False。

is_valid(config)

如果不确定性集合是有界且非空的,则返回True,否则返回False。

point_in_set(point)

确定给定点是否位于不确定性集合中。

set_as_constraint([uncertain_params, block])

构建一个Pyomo约束块,定义表示不确定参数的变量的不确定性集,用于两阶段鲁棒优化问题或子问题(如PyROS分离子问题)。

属性

center

椭球的中心。

dim

椭球集合的维度 N

geometry

椭球集合的几何形状。

parameter_bounds

椭球集在每个维度上的边界。

scale

椭球半轴缩放比例的平方(即形状矩阵的特征向量)。

shape_matrix

一个正定矩阵,表征椭球的形状和方向。

type

不确定性集合类型的简要描述。

成员文档

compute_auxiliary_uncertain_param_vals(point, solver=None)

计算给定点的辅助不确定参数值。 该点不需要位于不确定集合中。

Parameters:
  • point ((N,) array-like) – 兴趣点。

  • solver (Pyomo solver, optional) – 如果需要,可以使用一个Pyomo求解器来计算辅助值。

Returns:

aux_space_pt – 计算出的辅助不确定参数值。

Return type:

numpy.ndarray

is_bounded(config)

确定不确定性集合是否有界。

Parameters:

config (ConfigDict) – PyROS 求解器配置。

Returns:

如果不确定性集合被证明是有界的,则为True,否则为False。

Return type:

bool

注释

此检查通过解决一系列最大化和最小化问题来执行(其中每个问题的目标是一个不确定参数的值)。如果任何优化模型无法成功解决到最优,则返回False。

此方法在PyROS求解器调用的验证步骤期间被调用。

is_nonempty(config)

如果不确定性集合非空,则返回True,否则返回False。

is_valid(config)

如果不确定性集合是有界且非空的,则返回True,否则返回False。

point_in_set(point)[source]

确定给定点是否位于不确定性集合中。

Parameters:

point ((N,) array-like) – 感兴趣的点(参数值)。

Returns:

is_in_set – 如果点位于不确定性集合中,则为True,否则为False。

Return type:

bool

注释

此方法在PyROS求解器调用开始时被调用,以确定用户指定的名义参数实现是否位于不确定性集合中。

set_as_constraint(uncertain_params=None, block=None)[source]

构建一个Pyomo约束块,定义表示不确定参数的变量的不确定性集,用于两阶段鲁棒优化问题或子问题(如PyROS分离子问题)。

Parameters:
  • uncertain_params (None, Var, 或 listVar, 可选) – 表示(主要)不确定参数的变量对象。如果传递了 None,则会构造新的变量对象。

  • block (BlockDataNone, 可选) – 在其上声明约束和任何新变量对象的块。如果传递了None,则会构造一个新的块。

Returns:

添加或处理的组件集合。

Return type:

UncertaintyQuantification

property center

椭球的中心。

Type:

(N,) numpy.ndarray

property dim

椭球集合的维度 N

Type:

int

property geometry

椭球集合的几何形状。 参见Geometry类文档。

property parameter_bounds

椭球集在每个维度上的边界。

Returns:

列表,长度为N,包含2元组。每个元组指定其对应维度的边界。

Return type:

list 元组列表

property scale

椭球半轴(即形状矩阵的特征向量)的缩放因子的平方。

Type:

数值类型

property shape_matrix

一个正定矩阵,用于描述椭球的形状和方向。

Type:

(N, N) numpy.ndarray

property type

不确定性集合类型的简要描述。

Type:

str