PyROS Uncertainty Sets

Overview

In PyROS, the uncertainty set of a robust optimization problem is represented by an instance of a subclass of the UncertaintySet abstract base class. PyROS provides a suite of pre-implemented concrete subclasses to facilitate instantiation of uncertainty sets that are commonly used in the optimization literature. Custom uncertainty set types can be implemented by subclassing UncertaintySet.

Note

The UncertaintySet class is an abstract class and therefore cannot be directly instantiated.

Pre-Implemented Uncertainty Set Types

The pre-implemented UncertaintySet subclasses are enumerated below:

AxisAlignedEllipsoidalSet(center, half_lengths)

An axis-aligned ellipsoidal region.

BoxSet(bounds)

A hyperrectangle (or box).

BudgetSet(budget_membership_mat, rhs_vec[, ...])

A budget set.

CardinalitySet(origin, positive_deviation, gamma)

A cardinality-constrained (i.e., "gamma") set.

DiscreteScenarioSet(scenarios)

A set of finitely many distinct points (or scenarios).

EllipsoidalSet(center, shape_matrix[, ...])

A general ellipsoidal region.

FactorModelSet(origin, number_of_factors, ...)

A factor model (i.e., "net-alpha" model) set.

IntersectionSet(**unc_sets)

An intersection of two or more uncertainty sets, each of which is represented by an UncertaintySet object.

PolyhedralSet(lhs_coefficients_mat, rhs_vec)

A bounded convex polyhedron or polytope.

Mathematical definitions of the pre-implemented UncertaintySet subclasses are provided below.

Table 2 Mathematical definitions of PyROS uncertainty sets of dimension \(n\).

Uncertainty Set Type

Input Data

Mathematical Definition

AxisAlignedEllipsoidalSet

\(\begin{array}{l} q^0 \in \mathbb{R}^{n}, \\ \alpha \in \mathbb{R}_{+}^{n} \end{array}\)

\(\left\{ q \in \mathbb{R}^{n} \middle| \begin{array}{l} \displaystyle\sum_{\substack{i = 1: \\ \alpha_{i} > 0}}^{n} \left(\frac{q_{i} - q_{i}^{0}}{\alpha_{i}}\right)^2 \leq 1 \\ q_{i} = q_{i}^{0} \,\forall\,i : \alpha_{i} = 0 \end{array} \right\}\)

BoxSet

\(\begin{array}{l} q ^{\text{L}} \in \mathbb{R}^{n}, \\ q^{\text{U}} \in \mathbb{R}^{n} \end{array}\)

\(\{q \in \mathbb{R}^n \mid q^\mathrm{L} \leq q \leq q^\mathrm{U}\}\)

BudgetSet

\(\begin{array}{l} q^{0} \in \mathbb{R}^{n}, \\ b \in \mathbb{R}_{+}^{L}, \\ B \in \{0, 1\}^{L \times n} \end{array}\)

\(\left\{ q \in \mathbb{R}^{n} \middle| \begin{array}{l} \begin{pmatrix} B \\ -I \end{pmatrix} q \leq \begin{pmatrix} b + Bq^{0} \\ -q^{0} \end{pmatrix} \end{array} \right\}\)

CardinalitySet

\(\begin{array}{l} q^{0} \in \mathbb{R}^{n}, \\ \hat{q} \in \mathbb{R}_{+}^{n}, \\ \Gamma \in [0, n] \end{array}\)

\(\left\{ q \in \mathbb{R}^{n} \middle| \begin{array}{l} \exists\,\xi \in [0, 1]^n\,:\\ \quad \,q = q^{0} + \hat{q} \circ \xi \\ \quad \displaystyle \sum_{i=1}^{n} \xi_{i} \leq \Gamma \end{array} \right\}\)

DiscreteScenarioSet

\(q^{1}, q^{2},\dots , q^{S} \in \mathbb{R}^{n}\)

\(\{q^{1}, q^{2}, \dots , q^{S}\}\)

EllipsoidalSet

\(\begin{array}{l} q^0 \in \mathbb{R}^n, \\ P \in \mathbb{S}_{++}^{n}, \\ s \in \mathbb{R}_{+} \end{array}\)

\(\{q \in \mathbb{R}^{n} \mid (q - q^{0})^{\intercal} P^{-1} (q - q^{0}) \leq s\}\)

FactorModelSet

\(\begin{array}{l} q^{0} \in \mathbb{R}^{n}, \\ \Psi \in \mathbb{R}^{n \times F}, \\ \beta \in [0, 1] \end{array}\)

\(\left\{ q \in \mathbb{R}^{n} \middle| \begin{array}{l} \exists\,\xi \in [-1, 1]^F \,:\\ \quad q = q^{0} + \Psi \xi \\ \quad \displaystyle\bigg| \sum_{j=1}^{F} \xi_{j} \bigg| \leq \beta F \end{array} \right\}\)

IntersectionSet

\(\mathcal{Q}_{1}, \mathcal{Q}_{2}, \dots , \mathcal{Q}_{m} \subset \mathbb{R}^{n}\)

\(\displaystyle \bigcap_{i=1}^{m} \mathcal{Q}_{i}\)

PolyhedralSet

\(\begin{array}{l} A \in \mathbb{R}^{m \times n}, \\ b \in \mathbb{R}^{m}\end{array}\)

\(\{q \in \mathbb{R}^{n} \mid A q \leq b\}\)

Custom Uncertainty Set Types

A custom uncertainty set type in which all uncertain parameters are modeled as continuous quantities can be implemented by subclassing UncertaintySet. For discrete sets, we recommend using the pre-implemented DiscreteScenarioSet subclass instead of implementing a new set type. PyROS does not support mixed-integer uncertainty set types.