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

A scalar field v(x) = 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::LPOptimumFunction:
Math::ScalarFieldFunction

Public Member Functions

virtual void InitLP (const Vector &x)
 
virtual void UpdateLP (const Vector &x)
 
virtual bool LPJacobianC (const Vector &x, Matrix &Jc)
 
virtual bool LPJacobianC (const Vector &x, SparseMatrix &Jc)
 
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 Real Eval (const Vector &x)
 
virtual void Gradient (const Vector &x, Vector &grad)
 
virtual Real Gradient_i (const Vector &x, int i)
 
- Public Member Functions inherited from Math::ScalarFieldFunction
virtual std::string VariableLabel (int i) const
 
virtual Real operator() (const Vector &x)
 
virtual Real DirectionalDeriv (const Vector &x, const Vector &h)
 
virtual void Hessian (const Vector &x, Matrix &H)
 
virtual Real Hessian_ij (const Vector &x, int i, int j)
 
virtual Real DirectionalDeriv2 (const Vector &x, const Vector &h)
 

Public Attributes

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

Detailed Description

A scalar field v(x) = 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 LPOptimumFunction::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: