[WIP] Feat: Add COBYLA optimizer #80
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
COBYLA (Constrained Optimisation BY Linear Approximations) is an iterative, derivative-free algorithm for solving constrained optimisation problems. It works by constructing and updating linear approximations of both the objective function and the constraints. These approximations are formed using function values evaluated at the vertices of a carefully structured simplex. At each iteration, the algorithm solves a linear programming subproblem within a trust region. As the method approaches a constrained optimum, the size of the trust region is gradually reduced to refine the solution.
Reference:
Powell, M.J.D. (1994). A Direct Search Optimization Method That Models the Objective and Constraint Functions by Linear Interpolation. In: Gomez, S., Hennart, JP. (eds) Advances in Optimization and Numerical Analysis. Mathematics and Its Applications, vol 275. Springer, Dordrecht.
Source: https://doi.org/10.1007/978-94-015-8330-5_4
Description of the changes
Add and
COBYLA
class tolocal_opt
Add example to
examples/optimization_algorithm
Fixes #73