PolyhedralSet
(class from pyomo.contrib.pyros.uncertainty_sets
)
- class pyomo.contrib.pyros.uncertainty_sets.PolyhedralSet(lhs_coefficients_mat, rhs_vec)[source]
Bases:
UncertaintySet
A bounded convex polyhedron or polytope.
- Parameters:
lhs_coefficients_mat ((M, N) array_like) – Left-hand side coefficients for the linear inequality constraints defining the polyhedral set.
rhs_vec ((M,) array_like) – Right-hand side values for the linear inequality constraints defining the polyhedral set. Each entry is an upper bound for the quantity
lhs_coefficients_mat @ x
, where x is an (N,) array representing any point in the polyhedral set.
Examples
2D polyhedral set with 4 defining inequalities:
>>> from pyomo.contrib.pyros import PolyhedralSet >>> pset = PolyhedralSet( ... lhs_coefficients_mat=[[-1, 0], [0, -1], [-1, 1], [1, 0]], ... rhs_vec=[0, 0, 0, 1], ... ) >>> pset.coefficients_mat array([[-1, 0], [ 0, -1], [-1, 1], [ 1, 0]]) >>> pset.rhs_vec array([0, 0, 0, 1])
Methods
__init__
(lhs_coefficients_mat, rhs_vec)Initialize self (see class docstring).
Compute auxiliary uncertain parameter values for a given point.
is_bounded
(config)Determine whether the uncertainty set is bounded.
is_nonempty
(config)Return True if the uncertainty set is nonempty, else False.
is_valid
(config)Return True if the uncertainty set is bounded and non-empty, else False.
point_in_set
(point)Determine whether a given point lies in the uncertainty set.
set_as_constraint
([uncertain_params, block])Construct a block of Pyomo constraint(s) defining the uncertainty set on variables representing the uncertain parameters, for use in a two-stage robust optimization problem or subproblem (such as a PyROS separation subproblem).
Attributes
Coefficient matrix for the (linear) inequality constraints defining the polyhedral set.
Dimension N of the polyhedral set.
Geometry of the polyhedral set.
Bounds in each dimension of the polyhedral set.
Right-hand side values (upper bounds) for the (linear) inequality constraints defining the polyhedral set.
Brief description of the type of the uncertainty set.
Member Documentation
- compute_auxiliary_uncertain_param_vals(point, solver=None)
Compute auxiliary uncertain parameter values for a given point. The point need not be in the uncertainty set.
- Parameters:
point ((N,) array-like) – Point of interest.
solver (Pyomo solver, optional) – If needed, a Pyomo solver with which to compute the auxiliary values.
- Returns:
aux_space_pt – Computed auxiliary uncertain parameter values.
- Return type:
- is_bounded(config)
Determine whether the uncertainty set is bounded.
- Parameters:
config (ConfigDict) – PyROS solver configuration.
- Returns:
True if the uncertainty set is certified to be bounded, and False otherwise.
- Return type:
Notes
This check is carried out by solving a sequence of maximization and minimization problems (in which the objective for each problem is the value of a single uncertain parameter). If any of the optimization models cannot be solved successfully to optimality, then False is returned.
This method is invoked during the validation step of a PyROS solver call.
- is_nonempty(config)
Return True if the uncertainty set is nonempty, else False.
- is_valid(config)
Return True if the uncertainty set is bounded and non-empty, else False.
- point_in_set(point)
Determine whether a given point lies in the uncertainty set.
- Parameters:
point ((N,) array-like) – Point (parameter value) of interest.
- Returns:
is_in_set – True if the point lies in the uncertainty set, False otherwise.
- Return type:
Notes
This method is invoked at the outset of a PyROS solver call to determine whether a user-specified nominal parameter realization lies in the uncertainty set.
- set_as_constraint(uncertain_params=None, block=None)[source]
Construct a block of Pyomo constraint(s) defining the uncertainty set on variables representing the uncertain parameters, for use in a two-stage robust optimization problem or subproblem (such as a PyROS separation subproblem).
- Parameters:
uncertain_params (None, Var, or list of Var, optional) – Variable objects representing the (main) uncertain parameters. If None is passed, then new variable objects are constructed.
block (BlockData or None, optional) – Block on which to declare the constraints and any new variable objects. If None is passed, then a new block is constructed.
- Returns:
A collection of the components added or addressed.
- Return type:
- property coefficients_mat
Coefficient matrix for the (linear) inequality constraints defining the polyhedral set.
In tandem with the rhs_vec attribute, this matrix should be such that the polyhedral set is nonempty and bounded. Such a check is performed only at instance construction.
- Type:
(M, N) numpy.ndarray
- property geometry
Geometry of the polyhedral set. See the Geometry class documentation.
- property parameter_bounds
Bounds in each dimension of the polyhedral set.
Currently, an empty list is returned, as the bounds cannot, in general, be computed without access to an optimization solver.
- property rhs_vec
Right-hand side values (upper bounds) for the (linear) inequality constraints defining the polyhedral set.
- Type:
(M,) numpy.ndarray