Ellipsoidal Uncertainty

class lropt.Ellipsoidal(dimension=None, rho=1.0, p=2, a=None, b=None, c=None, d=None, data=None, ub=None, lb=None, sum_eq=None)

Ellipsoidal uncertainty set, defined as

Uellips={Az+b | z2ρ}

Parameters

rhofloat, optional

Ellipsoid scaling. Default 1.0.

Anp.array, optional

matrix defining A in uncertainty set definition. By default A=I

bnp.array, optional

vector defining b in uncertainty set definition. By default b=0

data: np.array, optional

An array of uncertainty realizations, where each row is one realization. Required if the uncertainty should be trained, or if loss function passed.

loss: function, optional

The loss function used to train the uncertainty set. Required if uncertainty set parameters should be trained or if data is passed. Function must use torch tensors, and arguments to loss function must be given in the same order as cvxpy variables defined in problem.

c: np.array, optional

matrix defining the lhs of the polyhedral support: :math: cu le d. By default None.

d: np.array, optional

vector defining the rhs of the polyhedral support: :math: cu le d. By default None.

ub: np.array | float, optional

vector or float defining the upper bound of the support. If scalar, broadcast to a vector. By default None.

lb: np.array | float, optional

vector or float defining the lower bound of the support. If scalar, broadcast to a vector. By default None.

sum_eq: np.array | float, optinal

vector or float defining an equality constraint for the uncertain vector. By default None.

Returns

Ellipsoidal

Ellipsoidal uncertainty set.