Optimization algorithms options

A simple way to solve OptimizationProblem is to use the API method execute_algo(). E.g.

from gemseo.api import execute_algo
from gemseo.problems.analytical.rosenbrock import Rosenbrock

problem = Rosenbrock()
sol = execute_algo(problem, "L-BFGS-B", max_iter=20)
print sol.f_opt

They are also used in all MDO and DOE scenarios in the dictionary passed to the MDODiscipline.execute() method.

List of available algorithms : L-BFGS-B - NLOPT_BFGS - NLOPT_BOBYQA - NLOPT_COBYLA - NLOPT_MMA - NLOPT_NEWUOA - NLOPT_SLSQP - SLSQP - TNC -

L-BFGS-B

Description

Limited-memory BFGS algorithm implemented in SciPy library

Options

  • disp, int - display information, (Default value = 0)

  • ftol_rel, float - stop criteria, relative tolerance on the objective function, if abs(f(xk)-f(xk+1))/abs(f(xk))<= ftol_rel: stop (Default value = 1e-9)

  • max_fun_eval, int - internal stop criteria on the number of algorithm outer iterations (Default value = 999)

  • max_iter, int - maximum number of iterations, ie unique calls to f(x)

  • maxcor, int - maximum BFGS updates (Default value = 20)

  • normalize_design_space, bool - If True, scales variables in [0, 1]

  • pg_tol, float - stop criteria on the projected gradient norm (Default value = 1e-5)

NLOPT_BFGS

Description

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

Options

  • ctol_abs, float - Absolute tolerance for constraints

  • eq_tolerance, float - equality tolerance

  • ftol_abs, float - Objective function tolerance

  • ftol_rel, float - Relative objective function tolerance

  • ineq_tolerance, float - inequality tolerance

  • init_step, float - initial step size for derivavtive free algorithms increasing init_step will make the initial DOE in COBYLA wider steps in the design variables. By defaults, each variable is set to x0 + a perturbation that worths 0.25*(ub_i-x0_i) for i in xrange(len(x0))

  • max_iter, int - maximum number of iterations

  • max_time, float - Maximum time

  • normalize_design_space, bool - If True, scales variables in [0, 1]

  • stopval, float - Stop when an objective value of at least stopval is found: stop minimizing when an objective value \(\leq\) stopval is found, or stop maximizing a value \(\geq\) stopval is found.

  • xtol_abs, float - Design parameter tolerance

  • xtol_rel, float - Relative design parameter tolerance

NLOPT_BOBYQA

Description

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

Options

  • ctol_abs, float - Absolute tolerance for constraints

  • eq_tolerance, float - equality tolerance

  • ftol_abs, float - Objective function tolerance

  • ftol_rel, float - Relative objective function tolerance

  • ineq_tolerance, float - inequality tolerance

  • init_step, float - initial step size for derivavtive free algorithms increasing init_step will make the initial DOE in COBYLA wider steps in the design variables. By defaults, each variable is set to x0 + a perturbation that worths 0.25*(ub_i-x0_i) for i in xrange(len(x0))

  • max_iter, int - maximum number of iterations

  • max_time, float - Maximum time

  • normalize_design_space, bool - If True, scales variables in [0, 1]

  • stopval, float - Stop when an objective value of at least stopval is found: stop minimizing when an objective value \(\leq\) stopval is found, or stop maximizing a value \(\geq\) stopval is found.

  • xtol_abs, float - Design parameter tolerance

  • xtol_rel, float - Relative design parameter tolerance

NLOPT_COBYLA

Description

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

Options

  • ctol_abs, float - Absolute tolerance for constraints

  • eq_tolerance, float - equality tolerance

  • ftol_abs, float - Objective function tolerance

  • ftol_rel, float - Relative objective function tolerance

  • ineq_tolerance, float - inequality tolerance

  • init_step, float - initial step size for derivavtive free algorithms increasing init_step will make the initial DOE in COBYLA wider steps in the design variables. By defaults, each variable is set to x0 + a perturbation that worths 0.25*(ub_i-x0_i) for i in xrange(len(x0))

  • max_iter, int - maximum number of iterations

  • max_time, float - Maximum time

  • normalize_design_space, bool - If True, scales variables in [0, 1]

  • stopval, float - Stop when an objective value of at least stopval is found: stop minimizing when an objective value \(\leq\) stopval is found, or stop maximizing a value \(\geq\) stopval is found.

  • xtol_abs, float - Design parameter tolerance

  • xtol_rel, float - Relative design parameter tolerance

NLOPT_MMA

Description

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

Options

  • ctol_abs, float - Absolute tolerance for constraints

  • eq_tolerance, float - equality tolerance

  • ftol_abs, float - Objective function tolerance

  • ftol_rel, float - Relative objective function tolerance

  • ineq_tolerance, float - inequality tolerance

  • init_step, float - initial step size for derivavtive free algorithms increasing init_step will make the initial DOE in COBYLA wider steps in the design variables. By defaults, each variable is set to x0 + a perturbation that worths 0.25*(ub_i-x0_i) for i in xrange(len(x0))

  • max_iter, int - maximum number of iterations

  • max_time, float - Maximum time

  • normalize_design_space, bool - If True, scales variables in [0, 1]

  • stopval, float - Stop when an objective value of at least stopval is found: stop minimizing when an objective value \(\leq\) stopval is found, or stop maximizing a value \(\geq\) stopval is found.

  • xtol_abs, float - Design parameter tolerance

  • xtol_rel, float - Relative design parameter tolerance

NLOPT_NEWUOA

Description

NEWUOA + bound constraints implemented in the NLOPT library

Options

  • ctol_abs, float - Absolute tolerance for constraints

  • eq_tolerance, float - equality tolerance

  • ftol_abs, float - Objective function tolerance

  • ftol_rel, float - Relative objective function tolerance

  • ineq_tolerance, float - inequality tolerance

  • init_step, float - initial step size for derivavtive free algorithms increasing init_step will make the initial DOE in COBYLA wider steps in the design variables. By defaults, each variable is set to x0 + a perturbation that worths 0.25*(ub_i-x0_i) for i in xrange(len(x0))

  • max_iter, int - maximum number of iterations

  • max_time, float - Maximum time

  • normalize_design_space, bool - If True, scales variables in [0, 1]

  • stopval, float - Stop when an objective value of at least stopval is found: stop minimizing when an objective value \(\leq\) stopval is found, or stop maximizing a value \(\geq\) stopval is found.

  • xtol_abs, float - Design parameter tolerance

  • xtol_rel, float - Relative design parameter tolerance

NLOPT_SLSQP

Description

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

Options

  • ctol_abs, float - Absolute tolerance for constraints

  • eq_tolerance, float - equality tolerance

  • ftol_abs, float - Objective function tolerance

  • ftol_rel, float - Relative objective function tolerance

  • ineq_tolerance, float - inequality tolerance

  • init_step, float - initial step size for derivavtive free algorithms increasing init_step will make the initial DOE in COBYLA wider steps in the design variables. By defaults, each variable is set to x0 + a perturbation that worths 0.25*(ub_i-x0_i) for i in xrange(len(x0))

  • max_iter, int - maximum number of iterations

  • max_time, float - Maximum time

  • normalize_design_space, bool - If True, scales variables in [0, 1]

  • stopval, float - Stop when an objective value of at least stopval is found: stop minimizing when an objective value \(\leq\) stopval is found, or stop maximizing a value \(\geq\) stopval is found.

  • xtol_abs, float - Design parameter tolerance

  • xtol_rel, float - Relative design parameter tolerance

SLSQP

Description

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

Options

  • disp, int - display information, (Default value = 0)

  • eq_tolerance, float - equality tolerance

  • ftol_rel, float - stop criteria, relative tolerance on the objective function, if abs(f(xk)-f(xk+1))/abs(f(xk))<= ftol_rel: stop (Default value = 1e-9)

  • ineq_tolerance, float - inequality tolerance

  • max_iter, int - maximum number of iterations, ie unique calls to f(x)

  • normalize_design_space, bool - If True, scales variables in [0, 1]

TNC

Description

Truncated Newton (TNC) algorithm implemented in SciPy library

Options

  • disp, int - display information, (Default value = 0)

  • eq_tolerance, float - equality tolerance

  • eta, int - severity of the linesearch, specific to TNC algorithm (Default value = -1.)

  • ftol_rel, float - stop criteria, relative tolerance on the objective function, if abs(f(xk)-f(xk+1))/abs(f(xk))<= ftol_rel: stop (Default value = 1e-9)

  • ineq_tolerance, float - inequality tolerance

  • max_iter, int - maximum number of iterations, ie unique calls to f(x)

  • maxCGit, int - Maximum Conjugate Gradient internal solver iterations (Default value = -1)

  • minfev, float - Minimum function value estimate

  • normalize_design_space, bool - If True, scales variables in [0, 1]

  • offset, float - Value to subtract from each variable.

  • pg_tol, float - stop criteria on the projected gradient norm (Default value = 1e-5)

  • rescale, float - Scaling factor (in log10) used to trigger f value rescaling

  • scale, array - Scaling factors to apply to each variable

  • stepmx, float - Maximum step for the line search.

  • xtol_rel, float - stop criteria, relative tolerance on the design variables, if norm(xk-xk+1)/norm(xk)<= xtol_rel: stop (Default value = 1e-9)