KrisLibrary  1.0.0
Public Member Functions | Public Attributes | List of all members
Optimization::LPOptimizerFunction Class Reference

A vector field v(x) = arg min_y c(x)^T y s.t. q(x) <= A(x)y <= p(x), l(x) <= y <= u(x) where c,A,q,p,l, and u are smooth functions. More...

#include <LPOptimumFunction.h>

Inheritance diagram for Optimization::LPOptimizerFunction:
Math::VectorFieldFunction

Public Member Functions

virtual int NumDimensions () const
 
virtual void InitLP (const Vector &x)
 
virtual void UpdateLP (const Vector &x)
 
virtual bool LPJacobianA_i (const Vector &x, int i, Matrix &JAi)
 
virtual bool LPJacobianA_i (const Vector &x, int i, SparseMatrix &JAi)
 
virtual bool LPJacobianP_i (const Vector &x, int i, Vector &Jpi)
 
virtual bool LPJacobianQ_i (const Vector &x, int i, Vector &Jqi)
 
virtual bool LPJacobianL_j (const Vector &x, int j, Vector &Jlj)
 
virtual bool LPJacobianU_j (const Vector &x, int j, Vector &Juj)
 
virtual void UpdateGLPK (const Vector &x)
 
virtual std::string Label () const
 
virtual void PreEval (const Vector &x)
 
virtual void Eval (const Vector &x, Vector &v)
 
virtual void Jacobian (const Vector &x, Matrix &J)
 
virtual void Jacobian_i (const Vector &x, int i, Vector &Ji)
 
- Public Member Functions inherited from Math::VectorFieldFunction
virtual std::string Label (int i) const
 
virtual std::string VariableLabel (int i) const
 
virtual void operator() (const Vector &x, Vector &v)
 
virtual Real Eval_i (const Vector &x, int i)
 
virtual Real Jacobian_ij (const Vector &x, int i, int j)
 
virtual void Jacobian_j (const Vector &x, int j, Vector &Jj)
 
virtual void DirectionalDeriv (const Vector &x, const Vector &h, Vector &v)
 
virtual Real Divergence (const Vector &x)
 
virtual void Hessian_i (const Vector &x, int i, Matrix &Hi)
 
virtual Real Hessian_ijk (const Vector &x, int i, int j, int k)
 

Public Attributes

bool initialized
 
bool sparse
 
LinearProgram lp
 
LinearProgram_Sparse lps
 
GLPKInterface glpk
 
LinearProgram::Result solveResult
 
Vector yopt
 

Detailed Description

A vector field v(x) = arg min_y c(x)^T y s.t. q(x) <= A(x)y <= p(x), l(x) <= y <= u(x) where c,A,q,p,l, and u are smooth functions.

Subclasses must overload UpdateLP and LPJacobian[Z] if Z depends on x. For faster updating, use InitLP to set up all constant members of the LP and in UpdateLP, only change the members that depend on x.

Member Function Documentation

void LPOptimizerFunction::UpdateGLPK ( const Vector x)
virtual

Subclasses may overload this for a sparse update – may also help with warm start.


The documentation for this class was generated from the following files: