qpOASES
3.2.1
An Implementation of the Online Active Set Strategy
|
Go to the documentation of this file.
38 #ifndef QPOASES_QPROBLEMB_HPP
39 #define QPOASES_QPROBLEMB_HPP
131 real_t*
const cputime = 0,
133 const real_t*
const xOpt = 0,
135 const real_t*
const yOpt = 0,
137 const Bounds*
const guessedBounds = 0,
139 const real_t*
const _R = 0
174 real_t*
const cputime = 0,
176 const real_t*
const xOpt = 0,
178 const real_t*
const yOpt = 0,
180 const Bounds*
const guessedBounds = 0,
182 const real_t*
const _R = 0
210 const char*
const g_file,
211 const char*
const lb_file,
213 const char*
const ub_file,
217 real_t*
const cputime = 0,
219 const real_t*
const xOpt = 0,
221 const real_t*
const yOpt = 0,
223 const Bounds*
const guessedBounds = 0,
225 const char*
const R_file = 0
250 const real_t*
const lb_new,
252 const real_t*
const ub_new,
256 real_t*
const cputime = 0,
258 const Bounds*
const guessedBounds = 0
284 const char*
const lb_file,
286 const char*
const ub_file,
290 real_t*
const cputime = 0,
292 const Bounds*
const guessedBounds = 0
473 const real_t*
const ub_new
503 const Bounds*
const guessedBounds,
539 const real_t*
const lb_new,
540 const real_t*
const ub_new,
584 const char*
const g_file,
585 const char*
const lb_file,
587 const char*
const ub_file
597 const char*
const lb_file,
599 const char*
const ub_file,
711 const real_t*
const lb_new,
712 const real_t*
const ub_new
724 const real_t*
const lb_new,
726 const real_t*
const ub_new,
735 const int_t*
const idxList,
783 const Bounds*
const guessedBounds,
804 const real_t*
const lb_new,
806 const real_t*
const ub_new,
812 int_t nWSRperformed = 0,
833 const real_t*
const lb_new,
835 const real_t*
const ub_new,
841 int_t nWSRperformed = 0,
897 const real_t*
const delta_lb,
898 const real_t*
const delta_ub,
911 const real_t*
const delta_lb,
912 const real_t*
const delta_ub,
913 const real_t*
const delta_xFX,
914 const real_t*
const delta_xFR,
915 const real_t*
const delta_yFX,
int_t getNAC() const
Definition: QProblem.ipp:83
Abstract base class for interfacing tailored matrix-vector operations.
Definition: Matrices.hpp:59
Stores internal information for tabular (debugging) output.
Definition: Types.hpp:302
real_t * lb
Definition: QProblemB.hpp:975
virtual returnValue getDualSolution(real_t *const yOpt) const
Definition: QProblemB.cpp:799
void applyGivens(real_t c, real_t s, real_t nu, real_t xold, real_t yold, real_t &xnew, real_t &ynew) const
Definition: QProblemB.ipp:447
BEGIN_NAMESPACE_QPOASES typedef double real_t
Definition: Types.hpp:171
@ RET_INDEX_OUT_OF_BOUNDS
Definition: MessageHandling.hpp:70
real_t * tempC
Definition: QProblem.hpp:1069
int_t getNAC() const
Definition: Constraints.ipp:83
Abstract base class for interfacing matrix-vector operations tailored to symmetric matrices.
Definition: Matrices.hpp:292
Manages all user-specified options for solving QPs.
Definition: Options.hpp:56
returnValue setupAuxiliaryQPgradient()
Definition: QProblemB.cpp:2871
returnValue removeBound(int_t number, BooleanType updateCholesky)
Definition: QProblemB.cpp:3554
virtual returnValue printProperties()
Definition: QProblemB.cpp:873
returnValue loadQPvectorsFromFile(const char *const g_file, const char *const lb_file, const char *const ub_file, real_t *const g_new, real_t *const lb_new, real_t *const ub_new) const
Definition: QProblemB.cpp:1877
real_t * lbA
Definition: QProblem.hpp:1044
int_t getNEC() const
Definition: Constraints.ipp:56
QProblemStatus getStatus() const
Definition: QProblemB.ipp:100
returnValue setupAuxiliaryQPsolution(const real_t *const xOpt, const real_t *const yOpt)
Definition: QProblemB.cpp:2830
#define END_NAMESPACE_QPOASES
Definition: Types.hpp:110
BooleanType isBlocking(real_t num, real_t den, real_t epsNum, real_t epsDen, real_t &t) const
Definition: QProblemB.ipp:474
real_t ramp0
Definition: QProblemB.hpp:1000
BooleanType
Definition: Types.hpp:203
virtual int_t getNZ() const
Definition: QProblemB.cpp:690
virtual real_t getRowNorm(int_t rNum, int_t type=2) const =0
Bounds bounds
Definition: QProblemB.hpp:978
virtual returnValue backsolveR(const real_t *const b, BooleanType transposed, real_t *const a) const
Definition: QProblemB.cpp:1623
Options getOptions() const
Definition: QProblemB.ipp:182
real_t * Ax_l
Definition: QProblem.hpp:1055
returnValue clear()
Definition: QProblemB.cpp:1024
QProblemStatus
Definition: Types.hpp:233
HessianType
Definition: Types.hpp:248
Manages working sets of constraints.
Definition: Constraints.hpp:56
real_t tau
Definition: QProblemB.hpp:986
QProblemB()
Definition: QProblemB.cpp:51
#define BEGIN_NAMESPACE_QPOASES
Definition: Types.hpp:107
returnValue areBoundsConsistent(const real_t *const lb, const real_t *const ub) const
Definition: QProblemB.cpp:1954
Manages working sets of bounds (i.e. box constraints).
Definition: Bounds.hpp:56
returnValue solveRegularisedQP(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, int_t &nWSR, real_t *const cputime, int_t nWSRperformed=0, BooleanType isFirstCall=BT_TRUE)
Definition: QProblemB.cpp:2654
returnValue getConstraints(Constraints &_constraints) const
Definition: QProblem.ipp:48
BooleanType freeHessian
Definition: QProblemB.hpp:971
returnValue performRatioTest(int_t nIdx, const int_t *const idxList, const SubjectTo *const subjectTo, const real_t *const num, const real_t *const den, real_t epsNum, real_t epsDen, real_t &t, int_t &BC_idx) const
Definition: QProblemB.cpp:2065
int_t getNC() const
Definition: Constraints.ipp:47
@ BT_TRUE
Definition: Types.hpp:206
BooleanType isSolved() const
Definition: QProblemB.ipp:121
virtual returnValue times(int_t xN, real_t alpha, const real_t *x, int_t xLD, real_t beta, real_t *y, int_t yLD) const =0
BooleanType isUnbounded() const
Definition: QProblemB.ipp:142
real_t * Ax_u
Definition: QProblem.hpp:1057
returnValue changeActiveSet(int_t BC_idx, SubjectToStatus BC_status)
Definition: QProblemB.cpp:3354
uint_t count
Definition: QProblemB.hpp:996
int_t getNIAC() const
Definition: QProblem.ipp:92
Implements the online active set strategy for box-constrained QPs.
Definition: QProblemB.hpp:63
real_t * ub
Definition: QProblemB.hpp:976
BooleanType isZero(real_t x, real_t TOL=ZERO)
Definition: Utils.ipp:60
int_t getNC() const
Definition: QProblem.ipp:65
SymmetricMatrix * H
Definition: QProblemB.hpp:972
Flipper flipper
Definition: QProblemB.hpp:1006
returnValue setupQPdataFromFile(const char *const H_file, const char *const g_file, const char *const lb_file, const char *const ub_file)
Definition: QProblemB.cpp:1805
Provides additional tools for analysing QP solutions.
Definition: SolutionAnalysis.hpp:57
void computeGivens(real_t xold, real_t yold, real_t &xnew, real_t &ynew, real_t &c, real_t &s) const
Definition: QProblemB.ipp:409
Interfaces matrix-vector operations tailored to symmetric sparse matrices.
Definition: Matrices.hpp:936
returnValue getBounds(Bounds &_bounds) const
Definition: QProblemB.ipp:48
virtual returnValue computeCholesky()
Definition: QProblemB.cpp:1366
returnValue setupAuxiliaryQPbounds(BooleanType useRelaxation)
Definition: QProblemB.cpp:2911
real_t * x
Definition: QProblemB.hpp:983
returnValue determineDataShift(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, real_t *const delta_g, real_t *const delta_lb, real_t *const delta_ub, BooleanType &Delta_bB_isZero)
Definition: QProblemB.cpp:1694
returnValue copy(const QProblemB &rhs)
Definition: QProblemB.cpp:1081
virtual returnValue performRamping()
Definition: QProblemB.cpp:2163
const real_t INFTY
Definition: Constants.hpp:61
Interfaces matrix-vector operations tailored to general dense matrices.
Definition: Matrices.hpp:328
@ BT_FALSE
Definition: Types.hpp:205
returnValue setHessianType(HessianType _hessianType)
Definition: QProblemB.ipp:160
returnValue init(SymmetricMatrix *_H, const real_t *const _g, const real_t *const _lb, const real_t *const _ub, int_t &nWSR, real_t *const cputime=0, const real_t *const xOpt=0, const real_t *const yOpt=0, const Bounds *const guessedBounds=0, const real_t *const _R=0)
Definition: QProblemB.cpp:253
real_t * R
Definition: QProblemB.hpp:980
Base class for managing working sets of bounds and constraints.
Definition: SubjectTo.hpp:56
real_t * y
Definition: QProblemB.hpp:984
returnValue setLBA(const real_t *const lbA_new)
Definition: QProblem.ipp:186
real_t * Ax
Definition: QProblem.hpp:1053
Matrix * A
Definition: QProblem.hpp:1042
QProblemStatus status
Definition: QProblemB.hpp:988
returnValue setUB(const real_t *const ub_new)
Definition: QProblemB.ipp:360
returnValue determineStepDirection(const real_t *const delta_g, const real_t *const delta_lb, const real_t *const delta_ub, BooleanType Delta_bB_isZero, real_t *const delta_xFX, real_t *const delta_xFR, real_t *const delta_yFX)
Definition: QProblemB.cpp:3042
uint_t getCount() const
Definition: QProblemB.ipp:216
returnValue printOptions() const
Definition: QProblemB.cpp:1010
real_t * g
Definition: QProblemB.hpp:974
virtual returnValue getWorkingSet(real_t *workingSet)
Definition: QProblemB.cpp:644
SubjectToStatus
Definition: Types.hpp:272
PrintLevel getPrintLevel() const
Definition: QProblemB.ipp:206
returnValue
Defines all symbols for global return values.
Definition: MessageHandling.hpp:64
returnValue obtainAuxiliaryWorkingSet(const real_t *const xOpt, const real_t *const yOpt, const Bounds *const guessedBounds, Bounds *auxiliaryBounds) const
Definition: QProblemB.cpp:1479
virtual returnValue performDriftCorrection()
Definition: QProblemB.cpp:3405
Constraints constraints
Definition: QProblem.hpp:1047
returnValue determineHessianType()
Definition: QProblemB.cpp:1176
virtual returnValue setupInitialCholesky()
Definition: QProblemB.cpp:1447
virtual QProblemB & operator=(const QProblemB &rhs)
Definition: QProblemB.cpp:195
int_t getNEC() const
Definition: QProblem.ipp:74
returnValue addBound(int_t number, SubjectToStatus B_status, BooleanType updateCholesky)
Definition: QProblemB.cpp:3484
returnValue setupQPdata(SymmetricMatrix *_H, const real_t *const _g, const real_t *const _lb, const real_t *const _ub)
Definition: QProblemB.cpp:1757
BooleanType unbounded
Definition: QProblemB.hpp:991
@ RET_INVALID_ARGUMENTS
Definition: MessageHandling.hpp:71
returnValue setOptions(const Options &_options)
Definition: QProblemB.ipp:191
BooleanType isInfeasible() const
Definition: QProblemB.ipp:133
returnValue performStep(const real_t *const delta_g, const real_t *const delta_lb, const real_t *const delta_ub, const real_t *const delta_xFX, const real_t *const delta_xFR, const real_t *const delta_yFX, int_t &BC_idx, SubjectToStatus &BC_status)
Definition: QProblemB.cpp:3209
returnValue solveInitialQP(const real_t *const xOpt, const real_t *const yOpt, const Bounds *const guessedBounds, const real_t *const _R, int_t &nWSR, real_t *const cputime)
Definition: QProblemB.cpp:2259
Auxiliary class for storing a copy of the current matrix factorisations.
Definition: Flipper.hpp:57
real_t getObjVal() const
Definition: QProblemB.cpp:700
int_t getNIAC() const
Definition: Constraints.ipp:92
HessianType getHessianType() const
Definition: QProblemB.ipp:151
BooleanType shallRefactorise(const Bounds *const guessedBounds) const
Definition: QProblemB.cpp:3456
virtual returnValue setupSubjectToType()
Definition: QProblemB.cpp:1281
int_t rampOffset
Definition: QProblemB.hpp:1002
@ SUCCESSFUL_RETURN
Definition: MessageHandling.hpp:68
returnValue setUBA(const real_t *const ubA_new)
Definition: QProblem.ipp:234
virtual returnValue getWorkingSetConstraints(real_t *workingSetC)
Definition: QProblemB.cpp:678
int_t getNV() const
Definition: QProblemB.ipp:64
#define THROWERROR(retval)
Definition: MessageHandling.hpp:456
TabularOutput tabularOutput
Definition: QProblemB.hpp:1008
BooleanType usingRegularisation() const
Definition: QProblemB.ipp:170
BooleanType freeConstraintMatrix
Definition: QProblem.hpp:1041
returnValue setPrintLevel(PrintLevel _printlevel)
Definition: QProblemB.cpp:824
@ ST_DISABLED
Definition: Types.hpp:266
returnValue setLB(const real_t *const lb_new)
Definition: QProblemB.ipp:312
HessianType hessianType
Definition: QProblemB.hpp:993
BooleanType haveCholesky
Definition: QProblemB.hpp:981
real_t * ubA
Definition: QProblem.hpp:1045
returnValue regulariseHessian()
Definition: QProblemB.cpp:1999
real_t getRelativeHomotopyLength(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new)
Definition: QProblemB.cpp:2113
returnValue printIteration(int_t iter, int_t BC_idx, SubjectToStatus BC_status, real_t homotopyLength, BooleanType isFirstCall=BT_TRUE)
Definition: QProblemB.cpp:3692
real_t * delta_xFR_TMP
Definition: QProblemB.hpp:998
returnValue getPrimalSolution(real_t *const xOpt) const
Definition: QProblemB.cpp:774
BooleanType infeasible
Definition: QProblemB.hpp:990
real_t regVal
Definition: QProblemB.hpp:994
SymSparseMat * createDiagSparseMat(int_t n, real_t diagVal=1.0)
Definition: QProblemB.cpp:2038
returnValue updateFarBounds(real_t curFarBound, int_t nRamp, const real_t *const lb_new, real_t *const lb_new_far, const real_t *const ub_new, real_t *const ub_new_far) const
Definition: QProblemB.cpp:2202
returnValue resetCounter()
Definition: QProblemB.ipp:225
int_t getNFX() const
Definition: QProblemB.ipp:82
Options options
Definition: QProblemB.hpp:1004
virtual returnValue reset()
Definition: QProblemB.cpp:210
virtual returnValue setupAuxiliaryQP(const Bounds *const guessedBounds)
Definition: QProblemB.cpp:2980
BooleanType isInitialised() const
Definition: QProblemB.ipp:109
@ RET_QPOBJECT_NOT_SETUP
Definition: MessageHandling.hpp:100
returnValue setA(Matrix *A_new)
Definition: QProblem.ipp:107
@ HST_UNKNOWN
Definition: Types.hpp:256
returnValue hotstart(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, int_t &nWSR, real_t *const cputime=0, const Bounds *const guessedBounds=0)
Definition: QProblemB.cpp:414
virtual returnValue getWorkingSetBounds(real_t *workingSetB)
Definition: QProblemB.cpp:653
int_t getNFV() const
Definition: QProblemB.ipp:91
PrintLevel
Definition: Types.hpp:212
virtual ~QProblemB()
Definition: QProblemB.cpp:183
real_t ramp1
Definition: QProblemB.hpp:1001
BooleanType isCPUtimeLimitExceeded(const real_t *const cputime, real_t starttime, int_t nWSR) const
Definition: QProblemB.cpp:1971
returnValue setG(const real_t *const g_new)
Definition: QProblemB.ipp:293
returnValue setInfeasibilityFlag(returnValue returnvalue, BooleanType doThrowError=BT_FALSE)
Definition: QProblemB.cpp:1938
returnValue solveQP(const real_t *const g_new, const real_t *const lb_new, const real_t *const ub_new, int_t &nWSR, real_t *const cputime, int_t nWSRperformed=0, BooleanType isFirstCall=BT_TRUE)
Definition: QProblemB.cpp:2407
int_t getNFR() const
Definition: QProblemB.ipp:73
returnValue setType(int_t i, SubjectToType value)
Definition: SubjectTo.ipp:90
int int_t
Definition: Types.hpp:180
returnValue setH(SymmetricMatrix *H_new)
Definition: QProblemB.ipp:239
returnValue setupAuxiliaryWorkingSet(const Bounds *const auxiliaryBounds, BooleanType setupAfresh)
Definition: QProblemB.cpp:2763