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