Optimization algorithms
The numerical optimization algorithm handles the balancing between the minimization of the objective and the non-violation of the constraints.
The module OpenPisco.Optim.Algorithms()
collects the optimization algorithms provided by OpenPisco.
Null space optimization algorithm
The class OpenPisco.Optim.Algorithms.OptimAlgoNullSpace
proposes an implementation of a gradient-flow algorithm designed to decrease both the value of the objective function and the violation of the constraints.
See 1 for the theoretical background.
Unconstrained optimization algorithms
Popular penalization methods such as the Augmented Lagrangian reformulate a constrained optimization problem into a sequence of unconstrained optimization problems by incorporating the constraints as penalizations of the objective function.
The class OpenPisco.Optim.Algorithms.OptimAlgoUnconstrained
proposes an implementation of an unconstrained algorithm combining a gradient descent routine with a linear line search.
- 1
Feppon, G. Allaire, C. Dapogny, Null space gradient flows for constrained optimization with applications to shape optimization, COCV, 26, (2020).