scalable_problem module¶
The scalable problem.
- class gemseo.problems.mdo.scalable.parametric.scalable_problem.ScalableProblem(discipline_settings=((1, 1), (1, 1)), d_0=1, add_random_variables=False, alpha=0.5, seed=0)[source]
Bases:
ScalableProblem
The scalable problem.
It builds a set of strongly coupled scalable disciplines completed by a system discipline computing the objective function and the constraints.
These disciplines are defined on a unit design space, i.e. design variables belongs to \([0, 1]\).
- Parameters:
discipline_settings (Sequence[ScalableDisciplineSettings]) –
The configurations of the different scalable disciplines.
By default it is set to (ScalableDisciplineSettings(d_i=1, p_i=1), ScalableDisciplineSettings(d_i=1, p_i=1)).
d_0 (int) –
The size of the shared design variable \(x_0\).
By default it is set to 1.
add_random_variables (bool) –
Whether to add a centered random variable \(u_i\) on the output of the \(i\)-th scalable discipline.
By default it is set to False.
alpha (float) –
The proportion of feasible design points.
By default it is set to 0.5.
seed (int) –
The seed for reproducibility.
By default it is set to 0.
- create_quadratic_programming_problem(add_coupling=False, covariance_matrices=(), use_margin=True, margin_factor=2.0, tolerance=0.01)[source]
Create the quadratic programming (QP) version of the MDO problem.
This is an optimization problem to minimize \(0.5x^TQx + c^Tx + d\) with respect to \(x\) under the linear constraints \(Ax-b\leq 0\), where the matrix \(Q\) is symmetric.
In the presence of uncertainties, offsets are added to the objective and constraint expressions.
- Parameters:
add_coupling (bool) –
Whether to add the coupling variables as an observable.
By default it is set to False.
use_margin (bool) –
Whether the statistics used for the constraints are margins or probabilities; if
False
, the random vectors are assumed to be Gaussian.By default it is set to True.
covariance_matrices (Iterable[NDArray[float]]) –
The covariance matrices \(\Sigma_1,\ldots,\Sigma_N\) of the random variables \(U_1,\ldots,U_N\). If empty, do not consider uncertainties.
By default it is set to ().
margin_factor (float) –
The factor \(\kappa\) used in the expression of the margins.
By default it is set to 2.0.
tolerance (float) –
The tolerance level \(\varepsilon\) for the violation probability.
By default it is set to 0.01.
- Returns:
The quadratic optimization problem.
- Return type:
- create_scenario(use_optimizer=True, formulation_name='MDF', **formulation_options)[source]
Create the DOE or MDO scenario associated with this scalable problem.
- Parameters:
- Returns:
The scenario to be executed.
- Return type:
- design_space: _DESIGN_SPACE_CLASS
The design space.
- disciplines: list[_MAIN_DISCIPLINE_CLASS | _SCALABLE_DISCIPLINE_CLASS]
The disciplines.
- qp_problem: QuadraticProgrammingProblem
The quadratic programming problem.
Examples using ScalableProblem¶
Parametric scalable MDO problem - MDF