AxisAlignedEllipsoidalSet
(class from pyomo.contrib.pyros.uncertainty_sets
)
- class pyomo.contrib.pyros.uncertainty_sets.AxisAlignedEllipsoidalSet(center, half_lengths)[source]
Bases:
UncertaintySet
An axis-aligned ellipsoid.
- Parameters:
center ((N,) array_like) – Center of the ellipsoid.
half_lengths ((N,) array_like) – Semi-axis lengths of the ellipsoid.
Examples
3D origin-centered unit hypersphere:
>>> from pyomo.contrib.pyros import AxisAlignedEllipsoidalSet >>> sphere = AxisAlignedEllipsoidalSet( ... center=[0, 0, 0], ... half_lengths=[1, 1, 1] ... ) >>> sphere.center array([0, 0, 0]) >>> sphere.half_lengths array([1, 1, 1])
Methods
__init__
(center, half_lengths)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
Center of the ellipsoid.
Dimension N of the axis-aligned ellipsoidal set.
Geometry of the axis-aligned ellipsoidal set.
Semi-axis lengths.
Bounds in each dimension of the axis-aligned ellipsoidal 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 center
Center of the ellipsoid.
- Type:
(N,) numpy.ndarray
- property geometry
Geometry of the axis-aligned ellipsoidal set. See the Geometry class documentation.
- property half_lengths
Semi-axis lengths.
- Type:
(N,) numpy.ndarray