多面体集合

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

class pyomo.contrib.pyros.uncertainty_sets.PolyhedralSet(lhs_coefficients_mat, rhs_vec)[source]

基础:UncertaintySet

一个有界的凸多面体或多胞体。

Parameters:
  • lhs_coefficients_mat ((M, N) array_like) – 定义多面体集合的线性不等式约束的左侧系数。

  • rhs_vec ((M,) array_like) – 定义多面体集的线性不等式约束的右侧值。 每个条目都是量lhs_coefficients_mat @ x的上限,其中x是表示多面体集中任何点的(N,)数组。

示例

具有4个定义不等式的2D多面体集合:

>>> from pyomo.contrib.pyros import PolyhedralSet
>>> pset = PolyhedralSet(
...     lhs_coefficients_mat=[[-1, 0], [0, -1], [-1, 1], [1, 0]],
...     rhs_vec=[0, 0, 0, 1],
... )
>>> pset.coefficients_mat
array([[-1,  0],
       [ 0, -1],
       [-1,  1],
       [ 1,  0]])
>>> pset.rhs_vec
array([0, 0, 0, 1])
__init__(lhs_coefficients_mat, rhs_vec)[source]

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

方法

__init__(lhs_coefficients_mat, rhs_vec)

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

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分离子问题)。

属性

coefficients_mat

定义多面体集合的(线性)不等式约束的系数矩阵。

dim

多面体集合的维度 N

geometry

多面体集合的几何形状。

parameter_bounds

多面体集在每个维度上的边界。

rhs_vec

定义多面体集的(线性)不等式约束的右侧值(上界)。

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)

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

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 coefficients_mat

定义多面体集合的(线性)不等式约束的系数矩阵。

rhs_vec属性相结合,此矩阵应确保多面体集合非空且有界。此类检查仅在实例构造时执行。

Type:

(M, N) numpy.ndarray

property dim

多面体集合的维度 N

Type:

int

property geometry

多面体集合的几何。 参见几何类文档。

property parameter_bounds

多面体集在每个维度上的边界。

目前,返回的是一个空的列表,因为通常在没有访问优化求解器的情况下无法计算边界。

property rhs_vec

定义多面体集的(线性)不等式约束的右侧值(上界)。

Type:

(M,) numpy.ndarray

property type

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

Type:

str