MultiConstraint is an element of Optimization Problem defining a set of restrictions (Constraints) on decision variables.

 

First of all this concept is explained with two examples. Later on in this section we give formal definitions.

 

Example 1

Problem statement:

minimize

 linear(matrix_lin)

Constraint: <= 11

 2 * cvar_risk (0.8, matrix)

Constraint: <= 11

 3 * cvar_risk (0.85,matrix)

Constraint: <= 11

-1 * cvar_risk (0.9, matrix)

Constraint: <= 11

-10 * cvar_risk (0.95,matrix)

 

This problem statement is simplified with MultiConstraint:

minimize

 linear(matrix_lin)

MultiConstraint: <= 11

 vector_coef * cvar_risk (vector_param, matrix)

 

where

vector_param is PSG Vector and contains vector(0.8, 0.85, 0.9, 0.95),

vector_coef is PSG Vector and contains vector(2, 3, -1, -10).

 

Example 2

Problem statement:

minimize

 linear(matrix_lin)

Constraint: >= 1.2, <= 11

 2 * cvar_risk (0.9, matrix_1)

 -7 * variable(b)

Constraint: >= 3.2, <= 11

 3 * cvar_risk (0.9,matrix_6)

 -7 * variable(b)

Constraint: >= 5.7, <= 11

-1 * cvar_risk (0.9, matrix_7)

-7 * variable(b)

Constraint: >= 6.7, <= 11

-10 * cvar_risk (0.9,matrix_9)

-7 * variable(b)

 

This problem statement is simplified with MultiConstraint:

minimize

 linear(matrix_lin)

MultiConstraint: >= vector_lb, <= 11

 vector_coef * cvar_risk (0.9, matrix_1, matrix_6, matrix_7,matrix_9)

 -7 * variable(b)

 

where

vector_lb is a PSG Vector and contains vector(1.2, 3.2, 5.7, 6.7) ,

vector_coef is a PSG Vector and contains vector(2, 3, -1, -10) ,

matrix_1, matrix_6, matrix_7,matrix_9 are input PSG Matrices of CVaR function.

 

 

Formal definition of MultiConstraint:

 

Description

 

MultiConstraint is used in a problem with several similar Constraints and different:

lower and upper bounds;
inputs of PSG functions;
coefficients of PSG functions.

 

Consider the set of constraints:

 

...

 

Syntax

 

MultiConstraint: <constraint name> [ >= vector_lower_bound] [, <= vector_upper_bound] [, linearize = 1]

[<vector_coefficient_1>*] <function 1(vector_parameter_1,matrix_11,...,matrix_N1)>

................................

[<vector_coefficient_K>*] <function K(vector_parameter_K,matrix_1K,...,matrix_NK)>

 

 

where

vector_lower_bound is a PSG Vector including lower bounds ,

vector_upper_bound is a PSG Vector including upper bounds ,

function 1,..., function K are PSG Functions ,

vector_parameter_i is a PSG Vector including parameters of function ,

matrix_ji is an input PSG Matrix of function ,

vector_coefficient_i  is a PSG Vector of coefficients of function .

 

MultiConstraint is equivalent  to the following set of Constraints:

 

Syntax

 

Constraint: <constraint name> [ >= <lower_bound_1>] [, <= <upper_bound_1>] [, linearize = 1]

[<coefficient_11>*] <function 1(parameter_11,matrix_11)>

 ................................

[<coefficient_1K>*] <function K(parameter_1K,matrix_1K)>

 

................................

 

Constraint: <constraint name> [ >= <lower_bound_N>] [, <= <upper_bound_N>] [, linearize = 1]

[<coefficient_N1>*] <function 1(parameter_N1,matrix_N1)>

 ................................

[<coefficient_NK>*] <function K(parameter_NK,matrix_NK)>

 

 

 

Note

 

1. If vector_coefficient_#, or vector_lower_bound_#, or vector_upper_bound_#, or vector_parameter_# contains the same values it can be replaced by one number.

If all components of vector_coefficient_# equals 1 then this vector can be omitted.

2. If all input matrices matrix_1#,...,matrix_N# of function function_# coincide then it is permitted to set only one name of matrix in MultiConstraint.

3. Functions with multiple inputs (for example Maximum CVaR, Probability of Exceedance Multiple, ect) can be used in MultiConstraint if they have different parameters and the same multiple matrices.

The following two constraints

 

Constraint:

 prmulti_pen(0.4,matrix1,matrix2,matrix3)

Constraint:

 prmulti_pen(0.1,matrix1,matrix2,matrix3)

 

can be represented by

 

MultiConstraint:

prmulti_pen(vector_param,matrix1,matrix2,matrix3)

 

If  functions with multiple inputs include different matrices then they can not be used  in MultiConstraint. For instance the following two constraints can not be presented with MultiConstraint:

 

Constraint:

 prmulti_pen(0.4,matrix1,matrix2)

Constraint:

 prmulti_pen(0.1,matrix3,matrix4)

 

4. Input vectors, vector_coefficient_#, vector_lower_bound_#, vector_upper_bound_#, and vector_parameter_# should be prepared as PSG Vector in General (Text) Format.

 

See also

Constraint in Text Format