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 constraintseq_tolerance,
float
- equality toleranceftol_abs,
float
- Objective function toleranceftol_rel,
float
- Relative objective function toleranceineq_tolerance,
float
- inequality toleranceinit_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 iterationsmax_time,
float
- Maximum timenormalize_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 tolerancextol_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 constraintseq_tolerance,
float
- equality toleranceftol_abs,
float
- Objective function toleranceftol_rel,
float
- Relative objective function toleranceineq_tolerance,
float
- inequality toleranceinit_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 iterationsmax_time,
float
- Maximum timenormalize_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 tolerancextol_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 constraintseq_tolerance,
float
- equality toleranceftol_abs,
float
- Objective function toleranceftol_rel,
float
- Relative objective function toleranceineq_tolerance,
float
- inequality toleranceinit_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 iterationsmax_time,
float
- Maximum timenormalize_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 tolerancextol_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 constraintseq_tolerance,
float
- equality toleranceftol_abs,
float
- Objective function toleranceftol_rel,
float
- Relative objective function toleranceineq_tolerance,
float
- inequality toleranceinit_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 iterationsmax_time,
float
- Maximum timenormalize_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 tolerancextol_rel,
float
- Relative design parameter tolerance
NLOPT_NEWUOA¶
Description¶
NEWUOA + bound constraints implemented in the NLOPT library
Options¶
ctol_abs,
float
- Absolute tolerance for constraintseq_tolerance,
float
- equality toleranceftol_abs,
float
- Objective function toleranceftol_rel,
float
- Relative objective function toleranceineq_tolerance,
float
- inequality toleranceinit_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 iterationsmax_time,
float
- Maximum timenormalize_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 tolerancextol_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 constraintseq_tolerance,
float
- equality toleranceftol_abs,
float
- Objective function toleranceftol_rel,
float
- Relative objective function toleranceineq_tolerance,
float
- inequality toleranceinit_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 iterationsmax_time,
float
- Maximum timenormalize_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 tolerancextol_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 toleranceftol_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 tolerancemax_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 toleranceeta,
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 tolerancemax_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 estimatenormalize_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 rescalingscale,
array
- Scaling factors to apply to each variablestepmx,
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)