因子模型集

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

class pyomo.contrib.pyros.uncertainty_sets.FactorModelSet(origin, number_of_factors, psi_mat, beta)[source]

基础:UncertaintySet

一个因子模型(即“净阿尔法”模型)集合。

Parameters:
  • origin ((N,) array_like) – 不确定的参数值,围绕这些值进行偏差限制。

  • number_of_factors (int) – 表示集合投影到的空间维度的自然数。

  • psi_mat ((N, F) array_like) – 矩阵,具有满列秩,指定每个不确定参数对每个因子的贡献。 每一行与一个单独的不确定参数相关联。每一列与一个单独的因子相关联。 psi_mat 的列数 F 应等于 number_of_factors。 由于 psi_mat 预期为满列秩,我们要求 F <= N

  • beta (数值类型) – 介于0和1之间的实数值,指定可以同时达到其极值的独立因素的比例。

示例

一个具有2D因子空间的4D因子模型集:

>>> from pyomo.contrib.pyros import FactorModelSet
>>> import numpy as np
>>> fset = FactorModelSet(
...     origin=np.zeros(4),
...     number_of_factors=2,
...     psi_mat=[[0, 0.1], [0, 0.1], [0.1, 0], [0.1, 0]],
...     beta=0.5,
... )
>>> fset.origin
array([0., 0., 0., 0.])
>>> fset.number_of_factors
2
>>> fset.psi_mat
array([[0. , 0.1],
       [0. , 0.1],
       [0.1, 0. ],
       [0.1, 0. ]])
>>> fset.beta
0.5
__init__(origin, number_of_factors, psi_mat, beta)[source]

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

方法

__init__(origin, number_of_factors, psi_mat, ...)

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

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

属性

beta

实数范围从0到1,表示可以同时达到其极值的独立因素的比例。

dim

因子模型集的维度 N

geometry

因子模型集的几何形状。

number_of_factors

表示集合投影到的空间的维度F的自然数。

origin

不确定的参数值,围绕这些值限制偏差。

parameter_bounds

因子模型集中每个维度的边界。

psi_mat

因子载荷矩阵,即一个满列秩矩阵,其中每个条目表示该条目所在列对应的因子与该条目所在行对应的不确定参数之间的关联强度。

type

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

成员文档

compute_auxiliary_uncertain_param_vals(point, solver=None)[source]

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

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:

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

Return type:

bool

set_as_constraint(uncertain_params=None, block=None)[来源]

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

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

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

Returns:

添加或处理的组件集合。

Return type:

UncertaintyQuantification

property beta

实数范围从0到1,表示可以同时达到其极值的独立因素的比例。

请注意,从数学上讲,设置 beta = 0 将强制 尽可能多的因子高于 0 与低于 0 的数量相等 (即“零净阿尔法”模型)。如果 beta = 1, 则该集合在数值上等同于具有边界 [self.origin - psi @ np.ones(F), self.origin + psi @ np.ones(F)].TBoxSet

Type:

数值类型

property dim

因子模型集的维度 N

Type:

int

property geometry

因子模型集的几何。 参见Geometry类文档。

property number_of_factors

表示集合投影到的空间的维度F的自然数。

此属性是不可变的,只能在对象构建时设置,并且必须等于因子加载矩阵 self.psi_mat 的列数。因此,由于我们还要求 self.psi_mat 具有满列秩,number_of_factors 不能超过设定的维度。

Type:

int

property origin

不确定的参数值,围绕这些值进行偏差限制。

Type:

(N,) numpy.ndarray

property parameter_bounds

因子模型集中每个维度的边界。

Returns:

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

Return type:

list 元组列表

property psi_mat

因子载荷矩阵,即一个满列秩矩阵,其中每个条目表示该条目所在列对应的因子与该条目所在行对应的不确定参数之间的关系强度。由于psi_mat预期为满列秩,我们要求F <= N

Type:

(N, F) numpy.ndarray

property type

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

Type:

str