预算集
(类来自 pyomo.contrib.pyros.uncertainty_sets)
- class pyomo.contrib.pyros.uncertainty_sets.BudgetSet(budget_membership_mat, rhs_vec, origin=None)[source]
-
预算集合。
- Parameters:
budget_membership_mat ((L, N) array_like) – 预算约束的关联矩阵。 每一行对应一个单一的预算约束, 并定义了哪些不确定参数 (哪些维度)参与该行的约束。
rhs_vec ((L,) array_like) – 关于集合原点的预算限制(上限)。
origin ((N,) array_like 或 None, 可选) – 预算集的起点。如果提供 None,则起点设置为零向量。
示例
具有一个预算约束且未选择原点的3D预算集(因此原点默认为3D零向量):
>>> from pyomo.contrib.pyros import BudgetSet >>> budget_set = BudgetSet( ... budget_membership_mat=[[1, 1, 1]], ... rhs_vec=[2], ... ) >>> budget_set.budget_membership_mat array([[1, 1, 1]]) >>> budget_set.budget_rhs_vec array([2]) >>> budget_set.origin array([0., 0., 0.])
具有两个预算约束和自定义原点的3D预算集:
>>> budget_custom = BudgetSet( ... budget_membership_mat=[[1, 0, 1], [0, 1, 0]], ... rhs_vec=[1, 1], ... origin=[2, 2, 2], ... ) >>> budget_custom.budget_membership_mat array([[1, 0, 1], [0, 1, 0]]) >>> budget_custom.budget_rhs_vec array([1, 1]) >>> budget_custom.origin array([2, 2, 2])
方法
__init__(budget_membership_mat, rhs_vec[, ...])初始化自身(参见类文档字符串)。
计算给定点的辅助不确定参数值。
is_bounded(config)确定不确定性集合是否有界。
is_nonempty(config)如果不确定性集合非空,则返回True,否则返回False。
is_valid(config)如果不确定性集合是有界且非空的,则返回True,否则返回False。
point_in_set(point)确定给定点是否位于不确定性集合中。
set_as_constraint(**kwargs)构建一个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)
确定给定点是否位于不确定性集合中。
- Parameters:
point ((N,) array-like) – 感兴趣的点(参数值)。
- Returns:
is_in_set – 如果点位于不确定性集合中,则为True,否则为False。
- Return type:
注释
此方法在PyROS求解器调用开始时被调用,以确定用户指定的名义参数实现是否位于不确定性集合中。
- set_as_constraint(**kwargs)[source]
构建一个Pyomo约束块,定义表示不确定参数的变量的不确定性集,用于两阶段鲁棒优化问题或子问题(如PyROS分离子问题)。
- Parameters:
- Returns:
添加或处理的组件集合。
- Return type:
- property budget_membership_mat
预算约束的发生矩阵。每一行对应一个单一的预算约束,并定义了哪些不确定参数参与该行的约束。
- Type:
(L, N) numpy.ndarray
- property budget_rhs_vec
预算限制(上限) 相对于原点。
- Type:
(L,) numpy.ndarray
- property coefficients_mat
定义预算集的所有多面体约束的系数矩阵。由用于定义预算约束的关联矩阵和用于个体不确定参数非负性约束的系数矩阵组成。
此属性无法设置。预算约束的关联矩阵可以通过budget_membership_mat属性进行更改。
- Type:
(L + N, N) numpy.ndarray
- property geometry
预算集的几何形状。 请参阅Geometry类文档。
- property origin
预算集的起源。
- Type:
(N,) numpy.ndarray
- property parameter_bounds
预算集中每个维度的边界。
- Returns:
列表,长度为N,包含2元组。每个元组指定其对应维度的边界。
- Return type:
list 元组列表
- property rhs_vec
定义预算集的多面体约束的右侧向量。这还包括不确定参数的非负性约束的条目。
此属性无法设置,它会根据其他属性自动确定。
- Type:
(L + N,) numpy.ndarray