gemseo / problems / scalable / parametric

Hide inherited members

scalable_problem module

The scalable problem.

class gemseo.problems.scalable.parametric.scalable_problem.ScalableProblem(discipline_settings=(ScalableDisciplineSettings(d_i=1, p_i=1), ScalableDisciplineSettings(d_i=1, p_i=1)), d_0=1, add_random_variables=False, alpha=0.5, seed=1)[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 an 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 1.

compute_y(x)[source]

Compute the coupling vector \(y\).

Parameters:

x (ndarray[Any, dtype[float]]) – A design point.

Returns:

The coupling vector associated with the design point \(x\).

Return type:

ndarray[Any, dtype[float]]

create_quadratic_programming_problem(add_coupling=False)[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.

Parameters:

add_coupling (bool) –

Whether to add the coupling variables as an observable.

By default it is set to False.

Returns:

The quadratic optimization problem.

Return type:

OptimizationProblem

create_scenario(use_optimizer=True, formulation_name='MDF', **formulation_options)[source]

Create the DOE or MDO scenario associated with this scalable problem.

Parameters:
  • use_optimizer (bool) –

    Whether to use an optimizer or a design of experiments.

    By default it is set to True.

  • formulation_name (str) –

    The name of the formulation.

    By default it is set to “MDF”.

  • **formulation_options (Any) – The options of the formulation.

Returns:

The scenario to be executed.

Return type:

Scenario

design_space: _DESIGN_SPACE_CLASS

The design space.

disciplines: list[_MAIN_DISCIPLINE_CLASS | _SCALABLE_DISCIPLINE_CLASS]

The disciplines.

property main_discipline: _MAIN_DISCIPLINE_CLASS

The main discipline.

qp_problem: QuadraticProgrammingProblem

The quadratic programming problem.

property scalable_disciplines: list[_SCALABLE_DISCIPLINE_CLASS]

The scalable disciplines.

Examples using ScalableProblem

Parametric scalable MDO problem - MDF

Parametric scalable MDO problem - MDF