# 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)