gemseo.algos.opt.multi_start.settings.multi_start_settings module#

Settings for the multi-start algorithm.

Settings MultiStart_Settings(*, enable_progress_bar=None, eq_tolerance=0.01, ineq_tolerance=0.0001, log_problem=True, max_time=0.0, normalize_design_space=False, reset_iteration_counters=True, round_ints=True, use_database=True, use_one_line_progress_bar=False, store_jacobian=True, ftol_rel=0.0, ftol_abs=0.0, max_iter=1000, scaling_threshold=None, stop_crit_n_x=3, xtol_rel=0.0, xtol_abs=0.0, n_start=5, opt_algo_max_iter=0, opt_algo_name='SLSQP', opt_algo_settings=None, doe_algo_name='LHS', doe_algo_settings=None, multistart_file_path='', n_processes=1)[source]#

Bases: BaseOptimizerSettings

The multi-start algorithm settings.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:
  • enable_progress_bar (bool | None)

  • eq_tolerance (Annotated[float, Ge(ge=0), Ge(ge=0)]) --

    By default it is set to 0.01.

  • ineq_tolerance (Annotated[float, Ge(ge=0)]) --

    By default it is set to 0.0001.

  • log_problem (bool) --

    By default it is set to True.

  • max_time (Annotated[float, Ge(ge=0)]) --

    By default it is set to 0.0.

  • normalize_design_space (bool) --

    By default it is set to False.

  • reset_iteration_counters (bool) --

    By default it is set to True.

  • round_ints (bool) --

    By default it is set to True.

  • use_database (bool) --

    By default it is set to True.

  • use_one_line_progress_bar (bool) --

    By default it is set to False.

  • store_jacobian (bool) --

    By default it is set to True.

  • ftol_rel (Annotated[float, Ge(ge=0), Ge(ge=0), Ge(ge=0), Ge(ge=0)]) --

    By default it is set to 0.0.

  • ftol_abs (Annotated[float, Ge(ge=0), Ge(ge=0), Ge(ge=0), Ge(ge=0)]) --

    By default it is set to 0.0.

  • max_iter (Annotated[int, Gt(gt=0)]) --

    By default it is set to 1000.

  • scaling_threshold (Annotated[float, Ge(ge=0)] | None)

  • stop_crit_n_x (Annotated[int, Ge(ge=2)]) --

    By default it is set to 3.

  • xtol_rel (Annotated[float, Ge(ge=0), Ge(ge=0), Ge(ge=0), Ge(ge=0)]) --

    By default it is set to 0.0.

  • xtol_abs (Annotated[float, Ge(ge=0), Ge(ge=0), Ge(ge=0), Ge(ge=0)]) --

    By default it is set to 0.0.

  • n_start (Annotated[int, Gt(gt=0)]) --

    By default it is set to 5.

  • opt_algo_max_iter (Annotated[int, Ge(ge=0)]) --

    By default it is set to 0.

  • opt_algo_name (str) --

    By default it is set to "SLSQP".

  • opt_algo_settings (Mapping[str, Any])

  • doe_algo_name (str) --

    By default it is set to "LHS".

  • doe_algo_settings (Mapping[str, Any])

  • multistart_file_path (str | Path) --

    By default it is set to "".

  • n_processes (Annotated[int, Gt(gt=0)]) --

    By default it is set to 1.

Return type:

None

doe_algo_name: str = 'LHS'#

The name of the DOE algorithm.

The DOE algorthm is used to generate the sub-optimizations starting points.

doe_algo_settings: StrKeyMapping [Optional]#

The settings of the DOE algorithm.

multistart_file_path: str | Path = ''#

The database file path to save the local optima.

If empty, do not save the local optima.

n_processes: PositiveInt = 1#

The maximum number of processes used to parallelize the sub-optimizations.

Constraints:
  • gt = 0

n_start: PositiveInt = 5#

The number of sub-optimizations.

Constraints:
  • gt = 0

normalize_design_space: bool = False#

Whether to normalize the design space variables between 0 and 1.

opt_algo_max_iter: NonNegativeInt = 0#

The maximum number of iterations for each sub-optimization.

If 0, this number is int(max_iter/n_start).

Constraints:
  • ge = 0

opt_algo_name: str = 'SLSQP'#

The name of the sub-optimization algorithm.

opt_algo_settings: StrKeyMapping [Optional]#

The settings of the sub-optimization algorithm.

model_post_init(context, /)#

We need to both initialize private attributes and call the user-defined model_post_init method.

Parameters:
  • self (BaseModel)

  • context (Any)

Return type:

None