# gemseo.problems.scalable.parametric¶

A parametric scalable problem.

Based on [TM10], the scalable MDO problem proposed in [AARDL23] aims to minimize the objective \(x_0^Tx_0 + \sum_{i=1}^N y_i^Ty_i\) whilst satisfying the constraints \(t_1-y_1\leq 0,\ldots,t_N-y_N\leq 0\).

See also

\(y_1,\ldots,y_N\) are computed by \(N\) strongly coupled disciplines as \(y_i=a_i-D_{i,0}x_0-D_{i,i}x_i+\sum_{j=1\atop j\neq i}^N C_{i,j}y_j\) where \(a_i\), \(D_{i,0}\), \(D_{i,i}\) and \(C_{i,j}\) are realizations of random matrices whose coefficients are independent random variables identically distributed as the uniform distribution over \([0,1]\).

See also

The design vector \(x=(x_0,x_1,\ldots,x_N)\) belongs to the design space \([0,1]^{d_0}\times[0,1]^{d_1}\ldots[0,1]^{d_N}\).

See also

The implementation proposes a core that is not based on GEMSEO objects (only NumPy and SciPy capabilities) to experiment the scalable problem outside GEMSEO as well as GEMSEO versions of these core elements.

This problem is said to be *scalable*
because several sizing features can be chosen by the user:

the number of scalable disciplines \(N\),

the number of shared design variables \(x_0\),

the number of local design variables \(x_i\) for each scalable discipline,

the number of coupling variables \(y_i\) for each scalable discipline.

The scalable problem is particularly useful to compare different MDO formulations with respect to the sizing configuration.

The class `ScalableProblem`

helps to define a scalable problem
from `ScalableDisciplineSettings`

,
a number of shared design variables and a level of feasibility.
It also proposes a method `create_scenario()`

to create a scenario for an `MDOFormulation`

and a method `ScalableProblem.create_quadratic_programming_problem()`

to rewrite the MDO problem as a quadratic `OptimizationProblem`

.
Lastly,
the problem can be made uncertain by adding a centered random vector
per coupling equation:
\(Y_i=a_i-D_{i,0}x_0-D_{i,i}x_i+\sum_{j=1\atop j\neq i}^N C_{i,j}y_j+U_i\).
These random vectors \(U_1,\ldots,U_N\) are independent
and the covariance matrix of \(U_i\) is denoted \(\Sigma_i\).