椭球集
(类来自 pyomo.contrib.pyros.uncertainty_sets)
- class pyomo.contrib.pyros.uncertainty_sets.EllipsoidalSet(center, shape_matrix, scale=1)[来源]
-
一个一般的椭球体。
- 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])初始化自身(参见类文档字符串)。
计算给定点的辅助不确定参数值。
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分离子问题)。
属性
椭球的中心。
椭球集合的维度 N。
椭球集合的几何形状。
椭球集在每个维度上的边界。
椭球半轴缩放比例的平方(即形状矩阵的特征向量)。
一个正定矩阵,表征椭球的形状和方向。
不确定性集合类型的简要描述。
成员文档
- compute_auxiliary_uncertain_param_vals(point, solver=None)
计算给定点的辅助不确定参数值。 该点不需要位于不确定集合中。
- 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:
is_in_set – 如果点位于不确定性集合中,则为True,否则为False。
- Return type:
注释
此方法在PyROS求解器调用开始时被调用,以确定用户指定的名义参数实现是否位于不确定性集合中。
- set_as_constraint(uncertain_params=None, block=None)[source]
构建一个Pyomo约束块,定义表示不确定参数的变量的不确定性集,用于两阶段鲁棒优化问题或子问题(如PyROS分离子问题)。
- Parameters:
- Returns:
添加或处理的组件集合。
- Return type:
- property center
椭球的中心。
- Type:
(N,) numpy.ndarray
- property geometry
椭球集合的几何形状。 参见Geometry类文档。
- property parameter_bounds
椭球集在每个维度上的边界。
- Returns:
列表,长度为N,包含2元组。每个元组指定其对应维度的边界。
- Return type:
list 元组列表
- property scale
椭球半轴(即形状矩阵的特征向量)的缩放因子的平方。
- Type:
数值类型
- property shape_matrix
一个正定矩阵,用于描述椭球的形状和方向。
- Type:
(N, N) numpy.ndarray