gemseo_mma / opt / core

mma_optimizer module

MMA optimization solver.

class gemseo_mma.opt.core.mma_optimizer.MMAOptimizer(problem)[source]

Bases: object

Method of Moving Asymptotes optimizer class.

This class run an optimization algorithm to solve Non-linear Optimization problems with constraints. The objective function and the constraints and their gradients are needed for the optimization algorithm. The original implementation the next iteration candidate is computed using mmasub function adapted from https://github.com/arjendeetman/GCMMA-MMA-Python . The external and internal move limit can be tuned to control minimum and maximum local approximation convexity. The max_optimization_step parameter can be used to control the optimization step. To avoid solver divergence in the case of highly non-linear problems one should use smaller values of the max_optimization_step, max_asymptote_distance and min_asymptote_distance.

Constructor.

Parameters:

problem (OptimizationProblem) –

iterate(x0)[source]

Iterate until convergence from the starting guess.

Parameters:

x0 (ndarray) – The starting guess design point.

Returns:

The optimum design point and objective value.

Return type:

tuple[numpy.ndarray, numpy.ndarray]

optimize(**options)[source]

Optimize the problem.

Parameters:

**options (bool | int | float) – The optimization problem options.

Returns:

The optimization solver message and final status.

Return type:

tuple[str, int]

asydecr: float

The decremental factor for unsuccessful iterations.

asyincr: float

The incremental factor for successful iterations.

asyinit: float

The initial asymptotes distance from the current design variable value.

ftol_abs: float

The absolute tolerance on the objective function.

ftol_rel: float

The relative tolerance on the objective function.

max_asymptote_distance: float

The maximum distance of the asymptotes from the current design variable value.

max_iter: int

The maximum number of iterations.

max_optimization_step: float

The maximum optimization step.

message: str

The message of the optimization problem.

min_asymptote_distance: float

The minimum distance of the asymptotes from the current design variable value.

normalize_design_space: bool

Whether to normalize the design space.

problem: OptimizationProblem

The GEMSEO OptimizationProblem to be solved.

tol: float

KKT residual norm tolerance.

xtol_abs: float

The absolute tolerance on the design parameters.

xtol_rel: float

The relative tolerance on the design parameters.