Public Member Functions | Protected Member Functions | Protected Attributes
CondensingBasedCPsolver Class Reference

Solves banded conic programs arising in optimal control using condensing. More...

#include <condensing_based_cp_solver.hpp>

Inheritance diagram for CondensingBasedCPsolver:
Inheritance graph
[legend]

List of all members.

Public Member Functions

BooleanType areRealTimeParametersDefined () const
virtual BandedCPsolverclone () const
 CondensingBasedCPsolver ()
 CondensingBasedCPsolver (UserInteraction *_userInteraction, uint nConstraints_, const DVector &blockDims_)
 CondensingBasedCPsolver (const CondensingBasedCPsolver &rhs)
virtual returnValue finalizeSolve (BandedCP &cp)
virtual returnValue freezeCondensing ()
virtual returnValue getFirstControl (DVector &u0_) const
uint getNA () const
uint getNC () const
uint getNF () const
uint getNP () const
uint getNU () const
uint getNumPoints () const
uint getNW () const
uint getNX () const
uint getNXA () const
virtual returnValue getParameters (DVector &p_) const
virtual returnValue getVarianceCovariance (DMatrix &var)
virtual returnValue init (const OCPiterate &iter_)
CondensingBasedCPsolveroperator= (const CondensingBasedCPsolver &rhs)
virtual returnValue prepareSolve (BandedCP &cp)
virtual returnValue setRealTimeParameters (const DVector &DeltaX, const DVector &DeltaP=emptyConstVector)
virtual returnValue solve (BandedCP &cp)
virtual returnValue unfreezeCondensing ()
virtual ~CondensingBasedCPsolver ()

Protected Member Functions

returnValue computeCondensingOperator (BandedCP &cp)
returnValue condense (BandedCP &cp)
returnValue expand (BandedCP &cp)
returnValue generateBoundVectors ()
returnValue generateConstraintBlockLine (uint nn, uint rowOffset, uint &rowOffset1)
returnValue generateConstraintVectors (uint nn, uint rowOffset, uint &rowOffset1)
returnValue generateHessianBlockLine (uint nn, uint rowOffset, uint &rowOffset1)
returnValue generateObjectiveGradient ()
returnValue generateStateBoundBlockLine (uint nn, uint rowOffset, uint &rowOffset1)
returnValue generateStateBoundVectors (uint nn, uint rowOffset, uint &rowOffset1)
returnValue initializeCondensingOperator ()
virtual returnValue initializeCPsolver (InfeasibleQPhandling infeasibleQPhandling)
returnValue projectHessian (DMatrix &H_, double dampingFactor)
virtual returnValue setupRelaxedQPdata (InfeasibleQPhandling infeasibleQPhandling, DenseCP &_denseCPrelaxed) const
virtual returnValue setupRelaxedQPdataL1 (DenseCP &_denseCPrelaxed) const
virtual returnValue setupRelaxedQPdataL2 (DenseCP &_denseCPrelaxed) const
virtual returnValue solveCPsubproblem ()
virtual returnValue solveQP (uint maxIter, InfeasibleQPhandling infeasibleQPhandling=IQH_UNDEFINED)

Protected Attributes

BlockMatrix ADense
DVector blockDims
CondensingStatus condensingStatus
DenseCPsolvercpSolver
DenseQPsolvercpSolverRelaxed
BlockMatrix d
DVector deltaP
DVector deltaX
DenseCP denseCP
BlockMatrix gDense
BlockMatrix HDense
BlockMatrix hT
OCPiterate iter
BlockMatrix lbADense
BlockMatrix lbDense
uint nConstraints
BlockMatrix T
BlockMatrix ubADense
BlockMatrix ubDense

Detailed Description

Solves banded conic programs arising in optimal control using condensing.

The class condensing based CP solver is a special solver for band structured conic programs that can be solved via a condensing technique.

Author:
Boris Houska, Hans Joachim Ferreau

Definition at line 59 of file condensing_based_cp_solver.hpp.


Constructor & Destructor Documentation

Default constructor.

Definition at line 46 of file condensing_based_cp_solver.cpp.

CondensingBasedCPsolver::CondensingBasedCPsolver ( UserInteraction _userInteraction,
uint  nConstraints_,
const DVector blockDims_ 
)

Definition at line 58 of file condensing_based_cp_solver.cpp.

Copy constructor (deep copy).

Definition at line 73 of file condensing_based_cp_solver.cpp.

Destructor.

Definition at line 94 of file condensing_based_cp_solver.cpp.


Member Function Documentation

Assignment operator (deep copy).

Implements BandedCPsolver.

Definition at line 130 of file condensing_based_cp_solver.cpp.

Definition at line 1375 of file condensing_based_cp_solver.cpp.

Performes the condensing of the dynamic system if necessary.

Definition at line 510 of file condensing_based_cp_solver.cpp.

Expands the KKT system if necessary.

Definition at line 1076 of file condensing_based_cp_solver.cpp.

Solves a given banded conic program

Reimplemented from BandedCPsolver.

Definition at line 248 of file condensing_based_cp_solver.cpp.

Reimplemented from BandedCPsolver.

Definition at line 329 of file condensing_based_cp_solver.cpp.

Definition at line 938 of file condensing_based_cp_solver.cpp.

returnValue CondensingBasedCPsolver::generateConstraintBlockLine ( uint  nn,
uint  rowOffset,
uint rowOffset1 
) [protected]

Definition at line 762 of file condensing_based_cp_solver.cpp.

returnValue CondensingBasedCPsolver::generateConstraintVectors ( uint  nn,
uint  rowOffset,
uint rowOffset1 
) [protected]

Definition at line 898 of file condensing_based_cp_solver.cpp.

returnValue CondensingBasedCPsolver::generateHessianBlockLine ( uint  nn,
uint  rowOffset,
uint rowOffset1 
) [protected]

Definition at line 694 of file condensing_based_cp_solver.cpp.

Definition at line 1014 of file condensing_based_cp_solver.cpp.

returnValue CondensingBasedCPsolver::generateStateBoundBlockLine ( uint  nn,
uint  rowOffset,
uint rowOffset1 
) [protected]

Definition at line 830 of file condensing_based_cp_solver.cpp.

returnValue CondensingBasedCPsolver::generateStateBoundVectors ( uint  nn,
uint  rowOffset,
uint rowOffset1 
) [protected]

Definition at line 918 of file condensing_based_cp_solver.cpp.

Implements BandedCPsolver.

Definition at line 292 of file condensing_based_cp_solver.cpp.

Implements BandedCPsolver.

Definition at line 278 of file condensing_based_cp_solver.cpp.

Returns a variance-covariance estimate if possible or an error message otherwise.

Returns:
SUCCESSFUL_RETURN RET_MEMBER_NOT_INITIALISED

Reimplemented from BandedCPsolver.

Definition at line 307 of file condensing_based_cp_solver.cpp.

initializes the banded conic solver

Implements BandedCPsolver.

Definition at line 137 of file condensing_based_cp_solver.cpp.

Definition at line 1345 of file condensing_based_cp_solver.cpp.

returnValue CondensingBasedCPsolver::initializeCPsolver ( InfeasibleQPhandling  infeasibleQPhandling) [protected, virtual]

Initializes QP objects.

Returns:
SUCCESSFUL_RETURN
RET_QP_INIT_FAILED

Definition at line 1616 of file condensing_based_cp_solver.cpp.

CondensingBasedCPsolver & CondensingBasedCPsolver::operator= ( const CondensingBasedCPsolver rhs)

Assignment operator (deep copy).

Definition at line 101 of file condensing_based_cp_solver.cpp.

Solves a given banded conic program

Reimplemented from BandedCPsolver.

Definition at line 162 of file condensing_based_cp_solver.cpp.

returnValue CondensingBasedCPsolver::projectHessian ( DMatrix H_,
double  dampingFactor 
) [protected]

Checks whether the Hessian is positive definite and projects
the Hessian based on a heuristic damping factor. If this
damping factor is smaller than 0, the routine does nothing.

Returns:
SUCCESSFUL_RETURN.

Definition at line 354 of file condensing_based_cp_solver.cpp.

returnValue CondensingBasedCPsolver::setRealTimeParameters ( const DVector DeltaX,
const DVector DeltaP = emptyConstVector 
) [virtual]

Reimplemented from BandedCPsolver.

Definition at line 317 of file condensing_based_cp_solver.cpp.

returnValue CondensingBasedCPsolver::setupRelaxedQPdata ( InfeasibleQPhandling  infeasibleQPhandling,
DenseCP _denseCPrelaxed 
) const [protected, virtual]

Determines relaxed (constraints') bounds of an infeasible QP.

Parameters:
_denseCPrelaxedOUTPUT: Relaxed QP data.

Definition at line 1481 of file condensing_based_cp_solver.cpp.

returnValue CondensingBasedCPsolver::setupRelaxedQPdataL1 ( DenseCP _denseCPrelaxed) const [protected, virtual]

Determines relaxed (constraints') bounds of an infeasible QP.

Parameters:
_denseCPrelaxedOUTPUT: Relaxed QP data.

Definition at line 1499 of file condensing_based_cp_solver.cpp.

returnValue CondensingBasedCPsolver::setupRelaxedQPdataL2 ( DenseCP _denseCPrelaxed) const [protected, virtual]

Determines relaxed (constraints') bounds of an infeasible QP.

Parameters:
_denseCPrelaxedOUTPUT: Relaxed QP data.

Definition at line 1558 of file condensing_based_cp_solver.cpp.

Solves a given banded conic program in feedback mode:

Parameters:
cpthe banded conic program to be solved
DeltaXdifference between state estimate and previous prediction
DeltaPdifference between current and previous parameter value

Returns:
SUCCESSFUL_RETURN (if successful)
or a specific error message from the dense CP solver.

Implements BandedCPsolver.

Definition at line 192 of file condensing_based_cp_solver.cpp.

Definition at line 387 of file condensing_based_cp_solver.cpp.

returnValue CondensingBasedCPsolver::solveQP ( uint  maxIter,
InfeasibleQPhandling  infeasibleQPhandling = IQH_UNDEFINED 
) [protected, virtual]

Solves current QP (or relaxation) using not more than the given number of iterations.

Returns:
SUCCESSFUL_RETURN
RET_QP_INIT_FAILED
Parameters:
maxIterMaximum number of iterations.

Definition at line 1639 of file condensing_based_cp_solver.cpp.

Reimplemented from BandedCPsolver.

Definition at line 340 of file condensing_based_cp_solver.cpp.


Member Data Documentation

Constraint matrix

Definition at line 263 of file condensing_based_cp_solver.hpp.

Definition at line 243 of file condensing_based_cp_solver.hpp.

Definition at line 246 of file condensing_based_cp_solver.hpp.

Definition at line 271 of file condensing_based_cp_solver.hpp.

Definition at line 272 of file condensing_based_cp_solver.hpp.

the condensing offset

Definition at line 252 of file condensing_based_cp_solver.hpp.

Definition at line 277 of file condensing_based_cp_solver.hpp.

Definition at line 276 of file condensing_based_cp_solver.hpp.

Definition at line 274 of file condensing_based_cp_solver.hpp.

Objective gradient after condensing

Definition at line 262 of file condensing_based_cp_solver.hpp.

Hessian after condensing

Definition at line 261 of file condensing_based_cp_solver.hpp.

Definition at line 254 of file condensing_based_cp_solver.hpp.

Definition at line 242 of file condensing_based_cp_solver.hpp.

Constraint lower bounds

Definition at line 264 of file condensing_based_cp_solver.hpp.

Simple lower bounds

Definition at line 266 of file condensing_based_cp_solver.hpp.

Definition at line 244 of file condensing_based_cp_solver.hpp.

the condensing operator

Definition at line 251 of file condensing_based_cp_solver.hpp.

Constraint upper bounds

Definition at line 265 of file condensing_based_cp_solver.hpp.

Simple upper bounds

Definition at line 267 of file condensing_based_cp_solver.hpp.


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


acado
Author(s): Milan Vukov, Rien Quirynen
autogenerated on Sat Jun 8 2019 19:40:23