KrisLibrary  1.0.0
Public Member Functions | Public Attributes | List of all members
Optimization::ConstrainedMinimizationProblem Struct Reference

Same as MinimizationProblem but with nonlinear constraints C(x)=0 and D(x)<=0, bound constraints bmin/bmax. More...

#include <Minimization.h>

Public Member Functions

 ConstrainedMinimizationProblem (ScalarFieldFunction *f, VectorFieldFunction *C, VectorFieldFunction *D)
 
ConvergenceResult SolveGD (int &maxIters)
 Gradient descent.
 
ConvergenceResult StepGD ()
 Returns MaxItersReached on normal exit.
 
ConvergenceResult SolveNewton (int &maxIters)
 Newton iteration.
 
ConvergenceResult StepNewton ()
 Returns MaxItersReached on normal exit.
 
ConvergenceResult StepTR (Real R)
 
void NullspaceProjection (const Vector &x, Vector &dx)
 Helper to project grad onto the constraint nullspace.
 
ConvergenceResult LineMinimizationStep (const Vector &dx, Real &alpha0)
 Helper for line minimzation – like above, but on the manifold surface.
 
bool CheckPoint (const Vector &x) const
 Helper to check point feasibility.
 
bool SolveFeasiblePoint (Vector &x, int maxIters, ConvergenceResult *res=NULL)
 Helper to solve for a feasible point.
 

Public Attributes

ScalarFieldFunctionf
 
VectorFieldFunctionC
 
VectorFieldFunctionD
 
Vector bmin
 
Vector bmax
 
Vector x
 
Real tolx
 
Real tolf
 
Real tolgrad
 
Real tolc
 
bool sparse
 
int verbose
 
std::vector< Vector > * S
 
Real fx
 
Vector grad
 
Matrix H
 
ConstrainedNewtonRoot rootSolver
 

Detailed Description

Same as MinimizationProblem but with nonlinear constraints C(x)=0 and D(x)<=0, bound constraints bmin/bmax.

Performs the line search while maintaining feasibility on the constraint manifold. The initial point must lie in the feasibility set. This isn't really a well established minimization technique and hasn't been tested thoroughly.

StepTR performs a sequential linear programming step with a given trust region. We could implement SQP, but other libraries would probably be better.

If sparse is set to true, C and D are assumed to be subclasses of SparseVectorFunction. Undefined behavior if this does not hold!

Member Function Documentation

ConvergenceResult Optimization::ConstrainedMinimizationProblem::StepTR ( Real  R)

Gradient-based trust-region method Returns MaxItersReached on normal exit, LocalMinimum if R should be increased, Divergence if it should be reduced


The documentation for this struct was generated from the following file: