gemseo_mma / opt / core

Hide inherited members

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 <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[ndarray, 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]