Options for Optimization algorithms

Algorithm
▲▼
Library
▲▼
Name in GEMSEO
▲▼
Handle equality constraints
▲▼
Handle inequality constraints
▲▼
Handle float variables
▲▼
Handle integer variables
▲▼
Handle multiobjective
▲▼
Require gradient
▲▼
Differential evolution SciPy DIFFERENTIAL_EVOLUTION
Dual annealing SciPy DUAL_ANNEALING
L-BFGS-B SciPy L-BFGS-B
Linear interior point SciPy LINEAR_INTERIOR_POINT
BFGS NLopt NLOPT_BFGS
BOBYQA NLopt NLOPT_BOBYQA
COBYLA NLopt NLOPT_COBYLA
MMA NLopt NLOPT_MMA
NEWUOA NLopt NLOPT_NEWUOA
SLSQP NLopt NLOPT_SLSQP
BOBYQA PDFO PDFO_BOBYQA
COBYLA PDFO PDFO_COBYLA
NEWUOA PDFO PDFO_NEWUOA
Revised simplex SciPy REVISED_SIMPLEX
SHGO SciPy SHGO
Simplex SciPy SIMPLEX
SLSQP SciPy SLSQP
TNC SciPy TNC

DIFFERENTIAL_EVOLUTION

Module: gemseo.algos.opt.lib_scipy_global

Differential Evolution algorithm

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.differential_evolution.html.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The other algorithms options.

  • atol : float, optional

    The absolute tolerance for convergence.

    By default it is set to 0.0.

  • eq_tolerance : float, optional

    The tolerance on equality constraints.

    By default it is set to 1e-06.

  • ftol_abs : float, optional

    A stop criteria, the absolute tolerance on the objective function. If abs(f(xk)-f(xk+1))<= ftol_rel: stop.

    By default it is set to 1e-09.

  • ftol_rel : float, optional

    A stop criteria, the relative tolerance on the objective function. If abs(f(xk)-f(xk+1))/abs(f(xk))<= ftol_rel: stop.

    By default it is set to 1e-09.

  • ineq_tolerance : float, optional

    The tolerance on inequality constraints.

    By default it is set to 1e-06.

  • init : str, optional

    Either the type of population initialization to be used or an array specifying the initial population.

    By default it is set to latinhypercube.

  • iters : int, optional

    The number of iterations used in the construction of the simplicial complex.

    By default it is set to 1.

  • local_options : Mapping[str, Any], optional

    The options for the local optimization algorithm, only for shgo, see scipy.optimize doc.

    By default it is set to None.

  • max_iter : int, optional

    The maximum number of iterations, i.e. unique calls to f(x).

    By default it is set to 999.

  • n : int, optional

    The number of sampling points used in the construction of the simplicial complex.

    By default it is set to 100.

  • niters : int, optional

    The number of iterations used in the construction of the simplicial complex.

    By default it is set to 1.

  • normalize_design_space : bool, optional

    If True, variables are scaled in [0, 1].

    By default it is set to True.

  • polish : bool, optional

    Whether to use the L-BFGS-B algorithm to polish the best population member at the end.

    By default it is set to True.

  • popsize : int, optional

    A multiplier for setting the total population size. The population has popsize * len(x) individuals.

    By default it is set to 15.

  • recombination : float, optional

    The recombination constant.

    By default it is set to 0.7.

  • sampling_method : str, optional

    The method to compute the initial points. Current built in sampling method options are halton, sobol and simplicial.

    By default it is set to simplicial.

  • seed : int, optional

    The seed to be used for repeatable minimizations. If None, the numpy.random.RandomState singleton is used.

    By default it is set to 1.

  • strategy : str, optional

    The differential evolution strategy to use.

    By default it is set to best1bin.

  • tol : float, optional

    The relative tolerance for convergence.

    By default it is set to 0.01.

  • updating : str, optional

    The strategy to update the solution vector. If "immediate", the best solution vector is continuously updated within a single generation. With ‘deferred’, the best solution vector is updated once per generation. Only ‘deferred’ is compatible with parallelization, and the workers keyword can over-ride this option.

    By default it is set to immediate.

  • workers : int, optional

    The number of processes for parallel execution.

    By default it is set to 1.

  • xtol_abs : float, optional

    A stop criteria, the absolute tolerance on the design variables. If norm(xk-xk+1)<= xtol_abs: stop.

    By default it is set to 1e-09.

  • xtol_rel : float, optional

    A stop criteria, the relative tolerance on the design variables. If norm(xk-xk+1)/norm(xk)<= xtol_rel: stop.

    By default it is set to 1e-09.

DUAL_ANNEALING

Module: gemseo.algos.opt.lib_scipy_global

Dual annealing

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.dual_annealing.html.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The other algorithms options.

  • atol : float, optional

    The absolute tolerance for convergence.

    By default it is set to 0.0.

  • eq_tolerance : float, optional

    The tolerance on equality constraints.

    By default it is set to 1e-06.

  • ftol_abs : float, optional

    A stop criteria, the absolute tolerance on the objective function. If abs(f(xk)-f(xk+1))<= ftol_rel: stop.

    By default it is set to 1e-09.

  • ftol_rel : float, optional

    A stop criteria, the relative tolerance on the objective function. If abs(f(xk)-f(xk+1))/abs(f(xk))<= ftol_rel: stop.

    By default it is set to 1e-09.

  • ineq_tolerance : float, optional

    The tolerance on inequality constraints.

    By default it is set to 1e-06.

  • init : str, optional

    Either the type of population initialization to be used or an array specifying the initial population.

    By default it is set to latinhypercube.

  • iters : int, optional

    The number of iterations used in the construction of the simplicial complex.

    By default it is set to 1.

  • local_options : Mapping[str, Any], optional

    The options for the local optimization algorithm, only for shgo, see scipy.optimize doc.

    By default it is set to None.

  • max_iter : int, optional

    The maximum number of iterations, i.e. unique calls to f(x).

    By default it is set to 999.

  • n : int, optional

    The number of sampling points used in the construction of the simplicial complex.

    By default it is set to 100.

  • niters : int, optional

    The number of iterations used in the construction of the simplicial complex.

    By default it is set to 1.

  • normalize_design_space : bool, optional

    If True, variables are scaled in [0, 1].

    By default it is set to True.

  • polish : bool, optional

    Whether to use the L-BFGS-B algorithm to polish the best population member at the end.

    By default it is set to True.

  • popsize : int, optional

    A multiplier for setting the total population size. The population has popsize * len(x) individuals.

    By default it is set to 15.

  • recombination : float, optional

    The recombination constant.

    By default it is set to 0.7.

  • sampling_method : str, optional

    The method to compute the initial points. Current built in sampling method options are halton, sobol and simplicial.

    By default it is set to simplicial.

  • seed : int, optional

    The seed to be used for repeatable minimizations. If None, the numpy.random.RandomState singleton is used.

    By default it is set to 1.

  • strategy : str, optional

    The differential evolution strategy to use.

    By default it is set to best1bin.

  • tol : float, optional

    The relative tolerance for convergence.

    By default it is set to 0.01.

  • updating : str, optional

    The strategy to update the solution vector. If "immediate", the best solution vector is continuously updated within a single generation. With ‘deferred’, the best solution vector is updated once per generation. Only ‘deferred’ is compatible with parallelization, and the workers keyword can over-ride this option.

    By default it is set to immediate.

  • workers : int, optional

    The number of processes for parallel execution.

    By default it is set to 1.

  • xtol_abs : float, optional

    A stop criteria, the absolute tolerance on the design variables. If norm(xk-xk+1)<= xtol_abs: stop.

    By default it is set to 1e-09.

  • xtol_rel : float, optional

    A stop criteria, the relative tolerance on the design variables. If norm(xk-xk+1)/norm(xk)<= xtol_rel: stop.

    By default it is set to 1e-09.

L-BFGS-B

Module: gemseo.algos.opt.lib_scipy

Limited-memory BFGS algorithm implemented in SciPy library

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fmin_l_bfgs_b.html.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The other algorithm options.

  • disp : int, optional

    The display information flag.

    By default it is set to 0.

  • eq_tolerance : float, optional

    The equality tolerance.

    By default it is set to 0.01.

  • eta : float, optional

    The severity of the line search, specific to the TNC algorithm.

    By default it is set to -1.0.

  • factr : float, optional

    A stop criteria on the projected gradient norm, stop if max_i (grad_i)<eps_mach * factr, where eps_mach is the machine precision.

    By default it is set to 10000000.0.

  • ftol_abs : float, optional

    A stop criteria, the absolute tolerance on the objective function. If abs(f(xk)-f(xk+1))<= ftol_rel: stop.

    By default it is set to 1e-09.

  • ftol_rel : float, optional

    A stop criteria, the relative tolerance on the objective function. If abs(f(xk)-f(xk+1))/abs(f(xk))<= ftol_rel: stop.

    By default it is set to 1e-09.

  • ineq_tolerance : float, optional

    The inequality tolerance.

    By default it is set to 0.0001.

  • max_fun_eval : int, optional

    The internal stop criteria on the number of algorithm outer iterations.

    By default it is set to 999.

  • max_iter : int, optional

    The maximum number of iterations, i.e. unique calls to f(x).

    By default it is set to 999.

  • max_ls_step_nb : int, optional

    The maximum number of line search steps per iteration.

    By default it is set to 20.

  • max_ls_step_size : float, optional

    The maximum step for the line search.

    By default it is set to 0.0.

  • max_time : float, optional

    The maximum runtime in seconds, disabled if 0.

    By default it is set to 0.

  • maxCGit : int, optional

    The maximum Conjugate Gradient internal solver iterations.

    By default it is set to -1.

  • maxcor : int, optional

    The maximum BFGS updates.

    By default it is set to 20.

  • minfev : float, optional

    The minimum function value estimate.

    By default it is set to 0.0.

  • normalize_design_space : int, optional

    If True, scales variables to [0, 1].

    By default it is set to True.

  • offset : float | None, optional

    Value to subtract from each variable. If None, the offsets are (up+low)/2 for interval bounded variables and x for the others.

    By default it is set to None.

  • pg_tol : float, optional

    A stop criteria on the projected gradient norm.

    By default it is set to 1e-05.

  • rescale : float, optional

    The scaling factor (in log10) used to trigger f value rescaling.

    By default it is set to -1.

  • scale : float | None, optional

    The scaling factor to apply to each variable. If None, the factors are up-low for interval bounded variables and 1+|x| for the others.

    By default it is set to None.

  • stepmx : float, optional

    The maximum step for the line search.

    By default it is set to 0.0.

  • xtol_abs : float, optional

    A stop criteria, absolute tolerance on the design variables. If norm(xk-xk+1)<= xtol_abs: stop.

    By default it is set to 1e-09.

  • xtol_rel : float, optional

    A stop criteria, the relative tolerance on the design variables. If norm(xk-xk+1)/norm(xk)<= xtol_rel: stop.

    By default it is set to 1e-09.

LINEAR_INTERIOR_POINT

Module: gemseo.algos.opt.lib_scipy_linprog

Linear programming by the interior-point method implemented in the SciPy library

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/optimize.linprog-interior-point.html.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The other algorithm’s options.

  • autoscale : bool, optional

    If True, then the linear problem is scaled. Refer to the SciPy documentation for more details.

    By default it is set to False.

  • callback : Callable[[OptimizeResult], Any] | None, optional

    A function to be called at least once per iteration. Takes a scipy.optimize.OptimizeResult as single argument. If None, no function is called. Refer to the SciPy documentation for more details.

    By default it is set to None.

  • disp : bool, optional

    Whether to print convergence messages.

    By default it is set to False.

  • max_iter : int, optional

    The maximum number of iterations, i.e. unique calls to the objective function.

    By default it is set to 999.

  • normalize_design_space : bool, optional

    If True, scales variables in [0, 1].

    By default it is set to True.

  • presolve : bool, optional

    If True, then attempt to detect infeasibility, unboundedness or problem simplifications before solving. Refer to the SciPy documentation for more details.

    By default it is set to True.

  • redundancy_removal : bool, optional

    If True, then linearly dependent equality-constraints are removed.

    By default it is set to True.

  • verbose : bool, optional

    If True, then the convergence messages are printed.

    By default it is set to False.

NLOPT_BFGS

Module: gemseo.algos.opt.lib_nlopt

Broyden-Fletcher-Goldfarb-Shanno method (BFGS) implemented in the NLOPT library

More details about the algorithm and its options on https://nlopt.readthedocs.io/en/latest/NLopt_Algorithms/#low-storage-bfgs.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The additional algorithm-specific options.

  • ctol_abs : float, optional

    The absolute tolerance on the constraints.

    By default it is set to 1e-06.

  • eq_tolerance : float, optional

    The tolerance on the equality constraints.

    By default it is set to 0.01.

  • ftol_abs : float, optional

    The absolute tolerance on the objective function.

    By default it is set to 1e-14.

  • ftol_rel : float, optional

    The relative tolerance on the objective function.

    By default it is set to 1e-08.

  • ineq_tolerance : float, optional

    The tolerance on the inequality constraints.

    By default it is set to 0.0001.

  • init_step : float, optional

    The initial step size for derivative-free algorithms. Increasing init_step will make the initial DOE in COBYLA take wider steps in the design variables. By default, each variable is set to x0 plus a perturbation given by 0.25*(ub_i-x0_i) for i=0, …, len(x0)-1.

    By default it is set to 0.25.

  • max_iter : int, optional

    The maximum number of iterations.

    By default it is set to 999.

  • max_time : float, optional

    The maximum runtime in seconds. The value 0 means no runtime limit.

    By default it is set to 0.0.

  • normalize_design_space : bool, optional

    If True, normalize the design variables between 0 and 1.

    By default it is set to True.

  • stopval : float | None, optional

    The objective value at which the optimization will stop. Stop minimizing when an objective value \(\leq\) stopval is found, or stop maximizing when a value \(\geq\) stopval is found. If None, this termination condition will not be active.

    By default it is set to None.

  • xtol_abs : float, optional

    The absolute tolerance on the design parameters.

    By default it is set to 1e-14.

  • xtol_rel : float, optional

    The relative tolerance on the design parameters.

    By default it is set to 1e-08.

NLOPT_BOBYQA

Module: gemseo.algos.opt.lib_nlopt

Bound Optimization BY Quadratic Approximation (BOBYQA) implemented in the NLOPT library

More details about the algorithm and its options on https://nlopt.readthedocs.io/en/latest/NLopt_Algorithms/#bobyqa.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The additional algorithm-specific options.

  • ctol_abs : float, optional

    The absolute tolerance on the constraints.

    By default it is set to 1e-06.

  • eq_tolerance : float, optional

    The tolerance on the equality constraints.

    By default it is set to 0.01.

  • ftol_abs : float, optional

    The absolute tolerance on the objective function.

    By default it is set to 1e-14.

  • ftol_rel : float, optional

    The relative tolerance on the objective function.

    By default it is set to 1e-08.

  • ineq_tolerance : float, optional

    The tolerance on the inequality constraints.

    By default it is set to 0.0001.

  • init_step : float, optional

    The initial step size for derivative-free algorithms. Increasing init_step will make the initial DOE in COBYLA take wider steps in the design variables. By default, each variable is set to x0 plus a perturbation given by 0.25*(ub_i-x0_i) for i=0, …, len(x0)-1.

    By default it is set to 0.25.

  • max_iter : int, optional

    The maximum number of iterations.

    By default it is set to 999.

  • max_time : float, optional

    The maximum runtime in seconds. The value 0 means no runtime limit.

    By default it is set to 0.0.

  • normalize_design_space : bool, optional

    If True, normalize the design variables between 0 and 1.

    By default it is set to True.

  • stopval : float | None, optional

    The objective value at which the optimization will stop. Stop minimizing when an objective value \(\leq\) stopval is found, or stop maximizing when a value \(\geq\) stopval is found. If None, this termination condition will not be active.

    By default it is set to None.

  • xtol_abs : float, optional

    The absolute tolerance on the design parameters.

    By default it is set to 1e-14.

  • xtol_rel : float, optional

    The relative tolerance on the design parameters.

    By default it is set to 1e-08.

NLOPT_COBYLA

Module: gemseo.algos.opt.lib_nlopt

Constrained Optimization BY Linear Approximations (COBYLA) implemented in the NLOPT library

More details about the algorithm and its options on https://nlopt.readthedocs.io/en/latest/NLopt_Algorithms/#cobyla-constrained-optimization-by-linear-approximations.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The additional algorithm-specific options.

  • ctol_abs : float, optional

    The absolute tolerance on the constraints.

    By default it is set to 1e-06.

  • eq_tolerance : float, optional

    The tolerance on the equality constraints.

    By default it is set to 0.01.

  • ftol_abs : float, optional

    The absolute tolerance on the objective function.

    By default it is set to 1e-14.

  • ftol_rel : float, optional

    The relative tolerance on the objective function.

    By default it is set to 1e-08.

  • ineq_tolerance : float, optional

    The tolerance on the inequality constraints.

    By default it is set to 0.0001.

  • init_step : float, optional

    The initial step size for derivative-free algorithms. Increasing init_step will make the initial DOE in COBYLA take wider steps in the design variables. By default, each variable is set to x0 plus a perturbation given by 0.25*(ub_i-x0_i) for i=0, …, len(x0)-1.

    By default it is set to 0.25.

  • max_iter : int, optional

    The maximum number of iterations.

    By default it is set to 999.

  • max_time : float, optional

    The maximum runtime in seconds. The value 0 means no runtime limit.

    By default it is set to 0.0.

  • normalize_design_space : bool, optional

    If True, normalize the design variables between 0 and 1.

    By default it is set to True.

  • stopval : float | None, optional

    The objective value at which the optimization will stop. Stop minimizing when an objective value \(\leq\) stopval is found, or stop maximizing when a value \(\geq\) stopval is found. If None, this termination condition will not be active.

    By default it is set to None.

  • xtol_abs : float, optional

    The absolute tolerance on the design parameters.

    By default it is set to 1e-14.

  • xtol_rel : float, optional

    The relative tolerance on the design parameters.

    By default it is set to 1e-08.

NLOPT_MMA

Module: gemseo.algos.opt.lib_nlopt

Method of Moving Asymptotes (MMA)implemented in the NLOPT library

More details about the algorithm and its options on https://nlopt.readthedocs.io/en/latest/NLopt_Algorithms/#mma-method-of-moving-asymptotes-and-ccsa.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The additional algorithm-specific options.

  • ctol_abs : float, optional

    The absolute tolerance on the constraints.

    By default it is set to 1e-06.

  • eq_tolerance : float, optional

    The tolerance on the equality constraints.

    By default it is set to 0.01.

  • ftol_abs : float, optional

    The absolute tolerance on the objective function.

    By default it is set to 1e-14.

  • ftol_rel : float, optional

    The relative tolerance on the objective function.

    By default it is set to 1e-08.

  • ineq_tolerance : float, optional

    The tolerance on the inequality constraints.

    By default it is set to 0.0001.

  • init_step : float, optional

    The initial step size for derivative-free algorithms. Increasing init_step will make the initial DOE in COBYLA take wider steps in the design variables. By default, each variable is set to x0 plus a perturbation given by 0.25*(ub_i-x0_i) for i=0, …, len(x0)-1.

    By default it is set to 0.25.

  • max_iter : int, optional

    The maximum number of iterations.

    By default it is set to 999.

  • max_time : float, optional

    The maximum runtime in seconds. The value 0 means no runtime limit.

    By default it is set to 0.0.

  • normalize_design_space : bool, optional

    If True, normalize the design variables between 0 and 1.

    By default it is set to True.

  • stopval : float | None, optional

    The objective value at which the optimization will stop. Stop minimizing when an objective value \(\leq\) stopval is found, or stop maximizing when a value \(\geq\) stopval is found. If None, this termination condition will not be active.

    By default it is set to None.

  • xtol_abs : float, optional

    The absolute tolerance on the design parameters.

    By default it is set to 1e-14.

  • xtol_rel : float, optional

    The relative tolerance on the design parameters.

    By default it is set to 1e-08.

NLOPT_NEWUOA

Module: gemseo.algos.opt.lib_nlopt

NEWUOA + bound constraints implemented in the NLOPT library

More details about the algorithm and its options on https://nlopt.readthedocs.io/en/latest/NLopt_Algorithms/#newuoa-bound-constraints.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The additional algorithm-specific options.

  • ctol_abs : float, optional

    The absolute tolerance on the constraints.

    By default it is set to 1e-06.

  • eq_tolerance : float, optional

    The tolerance on the equality constraints.

    By default it is set to 0.01.

  • ftol_abs : float, optional

    The absolute tolerance on the objective function.

    By default it is set to 1e-14.

  • ftol_rel : float, optional

    The relative tolerance on the objective function.

    By default it is set to 1e-08.

  • ineq_tolerance : float, optional

    The tolerance on the inequality constraints.

    By default it is set to 0.0001.

  • init_step : float, optional

    The initial step size for derivative-free algorithms. Increasing init_step will make the initial DOE in COBYLA take wider steps in the design variables. By default, each variable is set to x0 plus a perturbation given by 0.25*(ub_i-x0_i) for i=0, …, len(x0)-1.

    By default it is set to 0.25.

  • max_iter : int, optional

    The maximum number of iterations.

    By default it is set to 999.

  • max_time : float, optional

    The maximum runtime in seconds. The value 0 means no runtime limit.

    By default it is set to 0.0.

  • normalize_design_space : bool, optional

    If True, normalize the design variables between 0 and 1.

    By default it is set to True.

  • stopval : float | None, optional

    The objective value at which the optimization will stop. Stop minimizing when an objective value \(\leq\) stopval is found, or stop maximizing when a value \(\geq\) stopval is found. If None, this termination condition will not be active.

    By default it is set to None.

  • xtol_abs : float, optional

    The absolute tolerance on the design parameters.

    By default it is set to 1e-14.

  • xtol_rel : float, optional

    The relative tolerance on the design parameters.

    By default it is set to 1e-08.

NLOPT_SLSQP

Module: gemseo.algos.opt.lib_nlopt

Sequential Least-Squares Quadratic Programming (SLSQP) implemented in the NLOPT library

More details about the algorithm and its options on https://nlopt.readthedocs.io/en/latest/NLopt_Algorithms/#slsqp.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The additional algorithm-specific options.

  • ctol_abs : float, optional

    The absolute tolerance on the constraints.

    By default it is set to 1e-06.

  • eq_tolerance : float, optional

    The tolerance on the equality constraints.

    By default it is set to 0.01.

  • ftol_abs : float, optional

    The absolute tolerance on the objective function.

    By default it is set to 1e-14.

  • ftol_rel : float, optional

    The relative tolerance on the objective function.

    By default it is set to 1e-08.

  • ineq_tolerance : float, optional

    The tolerance on the inequality constraints.

    By default it is set to 0.0001.

  • init_step : float, optional

    The initial step size for derivative-free algorithms. Increasing init_step will make the initial DOE in COBYLA take wider steps in the design variables. By default, each variable is set to x0 plus a perturbation given by 0.25*(ub_i-x0_i) for i=0, …, len(x0)-1.

    By default it is set to 0.25.

  • max_iter : int, optional

    The maximum number of iterations.

    By default it is set to 999.

  • max_time : float, optional

    The maximum runtime in seconds. The value 0 means no runtime limit.

    By default it is set to 0.0.

  • normalize_design_space : bool, optional

    If True, normalize the design variables between 0 and 1.

    By default it is set to True.

  • stopval : float | None, optional

    The objective value at which the optimization will stop. Stop minimizing when an objective value \(\leq\) stopval is found, or stop maximizing when a value \(\geq\) stopval is found. If None, this termination condition will not be active.

    By default it is set to None.

  • xtol_abs : float, optional

    The absolute tolerance on the design parameters.

    By default it is set to 1e-14.

  • xtol_rel : float, optional

    The relative tolerance on the design parameters.

    By default it is set to 1e-08.

PDFO_BOBYQA

Module: gemseo.algos.opt.lib_pdfo

Bound Optimization By Quadratic Approximation

More details about the algorithm and its options on https://www.pdfo.net/.

Mandatory and optional parameters:

Parameters
  • **kwargs : OptionType

    The other algorithm’s options.

  • chkfunval : bool, optional

    A flag used when debugging. If both options[‘debug’] and options[‘chkfunval’] are True, an extra function/constraint evaluation would be performed to check whether the returned values of the objective function and constraint match the returned x.

    By default it is set to False.

  • classical : bool, optional

    The flag indicating whether to call the classical Powell code or not.

    By default it is set to False.

  • debug : bool, optional

    The debugging flag.

    By default it is set to False.

  • ensure_bounds : bool, optional

    Whether to project the design vector onto the design space before execution.

    By default it is set to True.

  • ftarget : float, optional

    The target value of the objective function. If a feasible iterate achieves an objective function value lower or equal to options[‘ftarget’], the algorithm stops immediately.

    By default it is set to -inf.

  • ftol_abs : float, optional

    A stop criteria, absolute tolerance on the objective function, if abs(f(xk)-f(xk+1))<= ftol_rel: stop.

    By default it is set to 1e-12.

  • ftol_rel : float, optional

    A stop criteria, relative tolerance on the objective function, if abs(f(xk)-f(xk+1))/abs(f(xk))<= ftol_rel: stop.

    By default it is set to 1e-12.

  • max_iter : int, optional

    The maximum number of iterations.

    By default it is set to 500.

  • max_time : float, optional

    The maximum runtime in seconds, disabled if 0.

    By default it is set to 0.

  • normalize_design_space : bool, optional

    If True, normalize the design space.

    By default it is set to True.

  • quiet : bool, optional

    The flag of quietness of the interface. If True, the output message will not be printed.

    By default it is set to True.

  • rhobeg : float, optional

    The initial value of the trust region radius.

    By default it is set to 0.5.

  • rhoend : float, optional

    The final value of the trust region radius. Indicates the accuracy required in the final values of the variables.

    By default it is set to 1e-06.

  • scale : bool, optional

    The flag indicating whether to scale the problem according to the bound constraints.

    By default it is set to False.

  • xtol_abs : float, optional

    A stop criteria, absolute tolerance on the design variables, if norm(xk-xk+1)<= xtol_abs: stop.

    By default it is set to 1e-12.

  • xtol_rel : float, optional

    A stop criteria, relative tolerance on the design variables, if norm(xk-xk+1)/norm(xk)<= xtol_rel: stop.

    By default it is set to 1e-12.

PDFO_COBYLA

Module: gemseo.algos.opt.lib_pdfo

Constrained Optimization By Linear Approximations

More details about the algorithm and its options on https://www.pdfo.net/.

Mandatory and optional parameters:

Parameters
  • **kwargs : OptionType

    The other algorithm’s options.

  • chkfunval : bool, optional

    A flag used when debugging. If both options[‘debug’] and options[‘chkfunval’] are True, an extra function/constraint evaluation would be performed to check whether the returned values of the objective function and constraint match the returned x.

    By default it is set to False.

  • classical : bool, optional

    The flag indicating whether to call the classical Powell code or not.

    By default it is set to False.

  • debug : bool, optional

    The debugging flag.

    By default it is set to False.

  • ensure_bounds : bool, optional

    Whether to project the design vector onto the design space before execution.

    By default it is set to True.

  • ftarget : float, optional

    The target value of the objective function. If a feasible iterate achieves an objective function value lower or equal to options[‘ftarget’], the algorithm stops immediately.

    By default it is set to -inf.

  • ftol_abs : float, optional

    A stop criteria, absolute tolerance on the objective function, if abs(f(xk)-f(xk+1))<= ftol_rel: stop.

    By default it is set to 1e-12.

  • ftol_rel : float, optional

    A stop criteria, relative tolerance on the objective function, if abs(f(xk)-f(xk+1))/abs(f(xk))<= ftol_rel: stop.

    By default it is set to 1e-12.

  • max_iter : int, optional

    The maximum number of iterations.

    By default it is set to 500.

  • max_time : float, optional

    The maximum runtime in seconds, disabled if 0.

    By default it is set to 0.

  • normalize_design_space : bool, optional

    If True, normalize the design space.

    By default it is set to True.

  • quiet : bool, optional

    The flag of quietness of the interface. If True, the output message will not be printed.

    By default it is set to True.

  • rhobeg : float, optional

    The initial value of the trust region radius.

    By default it is set to 0.5.

  • rhoend : float, optional

    The final value of the trust region radius. Indicates the accuracy required in the final values of the variables.

    By default it is set to 1e-06.

  • scale : bool, optional

    The flag indicating whether to scale the problem according to the bound constraints.

    By default it is set to False.

  • xtol_abs : float, optional

    A stop criteria, absolute tolerance on the design variables, if norm(xk-xk+1)<= xtol_abs: stop.

    By default it is set to 1e-12.

  • xtol_rel : float, optional

    A stop criteria, relative tolerance on the design variables, if norm(xk-xk+1)/norm(xk)<= xtol_rel: stop.

    By default it is set to 1e-12.

PDFO_NEWUOA

Module: gemseo.algos.opt.lib_pdfo

NEWUOA

More details about the algorithm and its options on https://www.pdfo.net/.

Mandatory and optional parameters:

Parameters
  • **kwargs : OptionType

    The other algorithm’s options.

  • chkfunval : bool, optional

    A flag used when debugging. If both options[‘debug’] and options[‘chkfunval’] are True, an extra function/constraint evaluation would be performed to check whether the returned values of the objective function and constraint match the returned x.

    By default it is set to False.

  • classical : bool, optional

    The flag indicating whether to call the classical Powell code or not.

    By default it is set to False.

  • debug : bool, optional

    The debugging flag.

    By default it is set to False.

  • ensure_bounds : bool, optional

    Whether to project the design vector onto the design space before execution.

    By default it is set to True.

  • ftarget : float, optional

    The target value of the objective function. If a feasible iterate achieves an objective function value lower or equal to options[‘ftarget’], the algorithm stops immediately.

    By default it is set to -inf.

  • ftol_abs : float, optional

    A stop criteria, absolute tolerance on the objective function, if abs(f(xk)-f(xk+1))<= ftol_rel: stop.

    By default it is set to 1e-12.

  • ftol_rel : float, optional

    A stop criteria, relative tolerance on the objective function, if abs(f(xk)-f(xk+1))/abs(f(xk))<= ftol_rel: stop.

    By default it is set to 1e-12.

  • max_iter : int, optional

    The maximum number of iterations.

    By default it is set to 500.

  • max_time : float, optional

    The maximum runtime in seconds, disabled if 0.

    By default it is set to 0.

  • normalize_design_space : bool, optional

    If True, normalize the design space.

    By default it is set to True.

  • quiet : bool, optional

    The flag of quietness of the interface. If True, the output message will not be printed.

    By default it is set to True.

  • rhobeg : float, optional

    The initial value of the trust region radius.

    By default it is set to 0.5.

  • rhoend : float, optional

    The final value of the trust region radius. Indicates the accuracy required in the final values of the variables.

    By default it is set to 1e-06.

  • scale : bool, optional

    The flag indicating whether to scale the problem according to the bound constraints.

    By default it is set to False.

  • xtol_abs : float, optional

    A stop criteria, absolute tolerance on the design variables, if norm(xk-xk+1)<= xtol_abs: stop.

    By default it is set to 1e-12.

  • xtol_rel : float, optional

    A stop criteria, relative tolerance on the design variables, if norm(xk-xk+1)/norm(xk)<= xtol_rel: stop.

    By default it is set to 1e-12.

REVISED_SIMPLEX

Module: gemseo.algos.opt.lib_scipy_linprog

Linear programming by a two-phase revised simplex algorithm implemented in the SciPy library

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/optimize.linprog-revised_simplex.html.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The other algorithm’s options.

  • autoscale : bool, optional

    If True, then the linear problem is scaled. Refer to the SciPy documentation for more details.

    By default it is set to False.

  • callback : Callable[[OptimizeResult], Any] | None, optional

    A function to be called at least once per iteration. Takes a scipy.optimize.OptimizeResult as single argument. If None, no function is called. Refer to the SciPy documentation for more details.

    By default it is set to None.

  • disp : bool, optional

    Whether to print convergence messages.

    By default it is set to False.

  • max_iter : int, optional

    The maximum number of iterations, i.e. unique calls to the objective function.

    By default it is set to 999.

  • normalize_design_space : bool, optional

    If True, scales variables in [0, 1].

    By default it is set to True.

  • presolve : bool, optional

    If True, then attempt to detect infeasibility, unboundedness or problem simplifications before solving. Refer to the SciPy documentation for more details.

    By default it is set to True.

  • redundancy_removal : bool, optional

    If True, then linearly dependent equality-constraints are removed.

    By default it is set to True.

  • verbose : bool, optional

    If True, then the convergence messages are printed.

    By default it is set to False.

SHGO

Module: gemseo.algos.opt.lib_scipy_global

Simplicial homology global optimization

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.shgo.html.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The other algorithms options.

  • atol : float, optional

    The absolute tolerance for convergence.

    By default it is set to 0.0.

  • eq_tolerance : float, optional

    The tolerance on equality constraints.

    By default it is set to 1e-06.

  • ftol_abs : float, optional

    A stop criteria, the absolute tolerance on the objective function. If abs(f(xk)-f(xk+1))<= ftol_rel: stop.

    By default it is set to 1e-09.

  • ftol_rel : float, optional

    A stop criteria, the relative tolerance on the objective function. If abs(f(xk)-f(xk+1))/abs(f(xk))<= ftol_rel: stop.

    By default it is set to 1e-09.

  • ineq_tolerance : float, optional

    The tolerance on inequality constraints.

    By default it is set to 1e-06.

  • init : str, optional

    Either the type of population initialization to be used or an array specifying the initial population.

    By default it is set to latinhypercube.

  • iters : int, optional

    The number of iterations used in the construction of the simplicial complex.

    By default it is set to 1.

  • local_options : Mapping[str, Any], optional

    The options for the local optimization algorithm, only for shgo, see scipy.optimize doc.

    By default it is set to None.

  • max_iter : int, optional

    The maximum number of iterations, i.e. unique calls to f(x).

    By default it is set to 999.

  • n : int, optional

    The number of sampling points used in the construction of the simplicial complex.

    By default it is set to 100.

  • niters : int, optional

    The number of iterations used in the construction of the simplicial complex.

    By default it is set to 1.

  • normalize_design_space : bool, optional

    If True, variables are scaled in [0, 1].

    By default it is set to True.

  • polish : bool, optional

    Whether to use the L-BFGS-B algorithm to polish the best population member at the end.

    By default it is set to True.

  • popsize : int, optional

    A multiplier for setting the total population size. The population has popsize * len(x) individuals.

    By default it is set to 15.

  • recombination : float, optional

    The recombination constant.

    By default it is set to 0.7.

  • sampling_method : str, optional

    The method to compute the initial points. Current built in sampling method options are halton, sobol and simplicial.

    By default it is set to simplicial.

  • seed : int, optional

    The seed to be used for repeatable minimizations. If None, the numpy.random.RandomState singleton is used.

    By default it is set to 1.

  • strategy : str, optional

    The differential evolution strategy to use.

    By default it is set to best1bin.

  • tol : float, optional

    The relative tolerance for convergence.

    By default it is set to 0.01.

  • updating : str, optional

    The strategy to update the solution vector. If "immediate", the best solution vector is continuously updated within a single generation. With ‘deferred’, the best solution vector is updated once per generation. Only ‘deferred’ is compatible with parallelization, and the workers keyword can over-ride this option.

    By default it is set to immediate.

  • workers : int, optional

    The number of processes for parallel execution.

    By default it is set to 1.

  • xtol_abs : float, optional

    A stop criteria, the absolute tolerance on the design variables. If norm(xk-xk+1)<= xtol_abs: stop.

    By default it is set to 1e-09.

  • xtol_rel : float, optional

    A stop criteria, the relative tolerance on the design variables. If norm(xk-xk+1)/norm(xk)<= xtol_rel: stop.

    By default it is set to 1e-09.

SIMPLEX

Module: gemseo.algos.opt.lib_scipy_linprog

Linear programming by the two-phase simplex algorithm implemented in the SciPy library

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/optimize.linprog-simplex.html.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The other algorithm’s options.

  • autoscale : bool, optional

    If True, then the linear problem is scaled. Refer to the SciPy documentation for more details.

    By default it is set to False.

  • callback : Callable[[OptimizeResult], Any] | None, optional

    A function to be called at least once per iteration. Takes a scipy.optimize.OptimizeResult as single argument. If None, no function is called. Refer to the SciPy documentation for more details.

    By default it is set to None.

  • disp : bool, optional

    Whether to print convergence messages.

    By default it is set to False.

  • max_iter : int, optional

    The maximum number of iterations, i.e. unique calls to the objective function.

    By default it is set to 999.

  • normalize_design_space : bool, optional

    If True, scales variables in [0, 1].

    By default it is set to True.

  • presolve : bool, optional

    If True, then attempt to detect infeasibility, unboundedness or problem simplifications before solving. Refer to the SciPy documentation for more details.

    By default it is set to True.

  • redundancy_removal : bool, optional

    If True, then linearly dependent equality-constraints are removed.

    By default it is set to True.

  • verbose : bool, optional

    If True, then the convergence messages are printed.

    By default it is set to False.

SLSQP

Module: gemseo.algos.opt.lib_scipy

Sequential Least-Squares Quadratic Programming (SLSQP) implemented in the SciPy library

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/optimize.minimize-slsqp.html.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The other algorithm options.

  • disp : int, optional

    The display information flag.

    By default it is set to 0.

  • eq_tolerance : float, optional

    The equality tolerance.

    By default it is set to 0.01.

  • eta : float, optional

    The severity of the line search, specific to the TNC algorithm.

    By default it is set to -1.0.

  • factr : float, optional

    A stop criteria on the projected gradient norm, stop if max_i (grad_i)<eps_mach * factr, where eps_mach is the machine precision.

    By default it is set to 10000000.0.

  • ftol_abs : float, optional

    A stop criteria, the absolute tolerance on the objective function. If abs(f(xk)-f(xk+1))<= ftol_rel: stop.

    By default it is set to 1e-09.

  • ftol_rel : float, optional

    A stop criteria, the relative tolerance on the objective function. If abs(f(xk)-f(xk+1))/abs(f(xk))<= ftol_rel: stop.

    By default it is set to 1e-09.

  • ineq_tolerance : float, optional

    The inequality tolerance.

    By default it is set to 0.0001.

  • max_fun_eval : int, optional

    The internal stop criteria on the number of algorithm outer iterations.

    By default it is set to 999.

  • max_iter : int, optional

    The maximum number of iterations, i.e. unique calls to f(x).

    By default it is set to 999.

  • max_ls_step_nb : int, optional

    The maximum number of line search steps per iteration.

    By default it is set to 20.

  • max_ls_step_size : float, optional

    The maximum step for the line search.

    By default it is set to 0.0.

  • max_time : float, optional

    The maximum runtime in seconds, disabled if 0.

    By default it is set to 0.

  • maxCGit : int, optional

    The maximum Conjugate Gradient internal solver iterations.

    By default it is set to -1.

  • maxcor : int, optional

    The maximum BFGS updates.

    By default it is set to 20.

  • minfev : float, optional

    The minimum function value estimate.

    By default it is set to 0.0.

  • normalize_design_space : int, optional

    If True, scales variables to [0, 1].

    By default it is set to True.

  • offset : float | None, optional

    Value to subtract from each variable. If None, the offsets are (up+low)/2 for interval bounded variables and x for the others.

    By default it is set to None.

  • pg_tol : float, optional

    A stop criteria on the projected gradient norm.

    By default it is set to 1e-05.

  • rescale : float, optional

    The scaling factor (in log10) used to trigger f value rescaling.

    By default it is set to -1.

  • scale : float | None, optional

    The scaling factor to apply to each variable. If None, the factors are up-low for interval bounded variables and 1+|x| for the others.

    By default it is set to None.

  • stepmx : float, optional

    The maximum step for the line search.

    By default it is set to 0.0.

  • xtol_abs : float, optional

    A stop criteria, absolute tolerance on the design variables. If norm(xk-xk+1)<= xtol_abs: stop.

    By default it is set to 1e-09.

  • xtol_rel : float, optional

    A stop criteria, the relative tolerance on the design variables. If norm(xk-xk+1)/norm(xk)<= xtol_rel: stop.

    By default it is set to 1e-09.

TNC

Module: gemseo.algos.opt.lib_scipy

Truncated Newton (TNC) algorithm implemented in SciPy library

More details about the algorithm and its options on https://docs.scipy.org/doc/scipy/reference/optimize.minimize-tnc.html.

Mandatory and optional parameters:

Parameters
  • **kwargs : Any

    The other algorithm options.

  • disp : int, optional

    The display information flag.

    By default it is set to 0.

  • eq_tolerance : float, optional

    The equality tolerance.

    By default it is set to 0.01.

  • eta : float, optional

    The severity of the line search, specific to the TNC algorithm.

    By default it is set to -1.0.

  • factr : float, optional

    A stop criteria on the projected gradient norm, stop if max_i (grad_i)<eps_mach * factr, where eps_mach is the machine precision.

    By default it is set to 10000000.0.

  • ftol_abs : float, optional

    A stop criteria, the absolute tolerance on the objective function. If abs(f(xk)-f(xk+1))<= ftol_rel: stop.

    By default it is set to 1e-09.

  • ftol_rel : float, optional

    A stop criteria, the relative tolerance on the objective function. If abs(f(xk)-f(xk+1))/abs(f(xk))<= ftol_rel: stop.

    By default it is set to 1e-09.

  • ineq_tolerance : float, optional

    The inequality tolerance.

    By default it is set to 0.0001.

  • max_fun_eval : int, optional

    The internal stop criteria on the number of algorithm outer iterations.

    By default it is set to 999.

  • max_iter : int, optional

    The maximum number of iterations, i.e. unique calls to f(x).

    By default it is set to 999.

  • max_ls_step_nb : int, optional

    The maximum number of line search steps per iteration.

    By default it is set to 20.

  • max_ls_step_size : float, optional

    The maximum step for the line search.

    By default it is set to 0.0.

  • max_time : float, optional

    The maximum runtime in seconds, disabled if 0.

    By default it is set to 0.

  • maxCGit : int, optional

    The maximum Conjugate Gradient internal solver iterations.

    By default it is set to -1.

  • maxcor : int, optional

    The maximum BFGS updates.

    By default it is set to 20.

  • minfev : float, optional

    The minimum function value estimate.

    By default it is set to 0.0.

  • normalize_design_space : int, optional

    If True, scales variables to [0, 1].

    By default it is set to True.

  • offset : float | None, optional

    Value to subtract from each variable. If None, the offsets are (up+low)/2 for interval bounded variables and x for the others.

    By default it is set to None.

  • pg_tol : float, optional

    A stop criteria on the projected gradient norm.

    By default it is set to 1e-05.

  • rescale : float, optional

    The scaling factor (in log10) used to trigger f value rescaling.

    By default it is set to -1.

  • scale : float | None, optional

    The scaling factor to apply to each variable. If None, the factors are up-low for interval bounded variables and 1+|x| for the others.

    By default it is set to None.

  • stepmx : float, optional

    The maximum step for the line search.

    By default it is set to 0.0.

  • xtol_abs : float, optional

    A stop criteria, absolute tolerance on the design variables. If norm(xk-xk+1)<= xtol_abs: stop.

    By default it is set to 1e-09.

  • xtol_rel : float, optional

    A stop criteria, the relative tolerance on the design variables. If norm(xk-xk+1)/norm(xk)<= xtol_rel: stop.

    By default it is set to 1e-09.