交集集合

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

class pyomo.contrib.pyros.uncertainty_sets.IntersectionSet(**unc_sets)[源代码]

基础:UncertaintySet

一系列不确定性集合的交集,每个集合由一个UncertaintySet对象表示。

Parameters:

**unc_sets (dict) – PyROS UncertaintySet 对象,用于构造交集。必须提供至少两个不确定性集。所有集合必须具有相同的维度。

示例

以原点为中心的2D盒子(正方形)与2D超球面(圆)的交集:

>>> from pyomo.contrib.pyros import (
...     BoxSet, AxisAlignedEllipsoidalSet, IntersectionSet,
... )
>>> square = BoxSet(bounds=[[-1.5, 1.5], [-1.5, 1.5]])
>>> circle = AxisAlignedEllipsoidalSet(
...     center=[0, 0],
...     half_lengths=[2, 2],
... )
>>> # to construct intersection, pass sets as keyword arguments
>>> intersection = IntersectionSet(set1=square, set2=circle)
>>> intersection.all_sets
UncertaintySetList([...])
__init__(**unc_sets)[source]

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

方法

__init__(**unc_sets)

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

compute_auxiliary_uncertain_param_vals(point)

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

intersect(Q1, Q2)

获取两个不确定性集合的交集,考虑其中任一集合为离散的情况。

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

属性

all_sets

要取其交集的不确定性集合的列表。

dim

交集集的维度。

geometry

交集集合的几何形状。

parameter_bounds

交集集的不确定参数值边界。

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

static intersect(Q1, Q2)[source]

获取两个不确定性集合的交集,考虑其中任一集合为离散的情况。

Parameters:
Returns:

集合的交集。如果两个操作数集合都是DiscreteScenarioSet实例,则返回DiscreteScenarioSet;否则,返回IntersectionSet

Return type:

DiscreteScenarioSetIntersectionSet

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:

如果点在集合中则为真,否则为假。

Return type:

bool

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 all_sets

要取其交集的不确定性集合的列表。必须至少包含2个元素。

此属性可以通过任何UncertaintySet对象的可迭代对象设置,并且表现出与list类似的行为。

Type:

UncertaintySetList

property dim

交集集的维度。

Type:

int

property geometry

交集集的几何。 参见Geometry类文档。

property parameter_bounds

交集集的不确定参数值边界。

目前,由于通常无法在没有访问优化求解器的情况下计算边界,因此列表为空。

property type

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

Type:

str