因子模型集
(类来自 pyomo.contrib.pyros.uncertainty_sets)
- class pyomo.contrib.pyros.uncertainty_sets.FactorModelSet(origin, number_of_factors, psi_mat, beta)[source]
-
一个因子模型(即“净阿尔法”模型)集合。
- 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, ...)初始化自身(参见类文档字符串)。
计算给定点的辅助不确定参数值。
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分离子问题)。
属性
实数范围从0到1,表示可以同时达到其极值的独立因素的比例。
因子模型集的维度 N。
因子模型集的几何形状。
表示集合投影到的空间的维度F的自然数。
不确定的参数值,围绕这些值限制偏差。
因子模型集中每个维度的边界。
因子载荷矩阵,即一个满列秩矩阵,其中每个条目表示该条目所在列对应的因子与该条目所在行对应的不确定参数之间的关联强度。
不确定性集合类型的简要描述。
成员文档
- 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:
- is_bounded(config)
确定不确定性集合是否有界。
- Parameters:
config (ConfigDict) – PyROS 求解器配置。
- Returns:
如果不确定性集合被证明是有界的,则为True,否则为False。
- Return type:
注释
此检查通过解决一系列最大化和最小化问题来执行(其中每个问题的目标是一个不确定参数的值)。如果任何优化模型无法成功解决到最优,则返回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:
- set_as_constraint(uncertain_params=None, block=None)[来源]
构建一个Pyomo约束块,定义表示不确定参数的变量的不确定性集,用于两阶段鲁棒优化问题或子问题(如PyROS分离子问题)。
- Parameters:
- Returns:
添加或处理的组件集合。
- Return type:
- property beta
实数范围从0到1,表示可以同时达到其极值的独立因素的比例。
请注意,从数学上讲,设置
beta = 0将强制 尽可能多的因子高于 0 与低于 0 的数量相等 (即“零净阿尔法”模型)。如果beta = 1, 则该集合在数值上等同于具有边界[self.origin - psi @ np.ones(F), self.origin + psi @ np.ones(F)].T的 BoxSet。- Type:
数值类型
- property geometry
因子模型集的几何。 参见Geometry类文档。
- property number_of_factors
表示集合投影到的空间的维度F的自然数。
此属性是不可变的,只能在对象构建时设置,并且必须等于因子加载矩阵
self.psi_mat的列数。因此,由于我们还要求self.psi_mat具有满列秩,number_of_factors 不能超过设定的维度。- Type:
- 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