qpOASES
3.2.1
An Implementation of the Online Active Set Strategy
|
Manages all user-specified options for solving QPs. More...
#include <Options.hpp>
Public Member Functions | |
Options () | |
Options (const Options &rhs) | |
~Options () | |
Options & | operator= (const Options &rhs) |
returnValue | setToDefault () |
returnValue | setToReliable () |
returnValue | setToMPC () |
returnValue | setToFast () |
returnValue | ensureConsistency () |
returnValue | print () const |
Protected Member Functions | |
returnValue | copy (const Options &rhs) |
This class manages all user-specified options used for solving quadratic programs.
BEGIN_NAMESPACE_QPOASES Options::Options | ( | ) |
Default constructor.
References setToDefault().
Options::Options | ( | const Options & | rhs | ) |
Options::~Options | ( | ) |
Destructor.
|
protected |
Copies all members from given rhs object.
rhs | Rhs object. |
References boundRelaxation, boundTolerance, dropBoundPriority, dropEqConPriority, dropIneqConPriority, enableCholeskyRefactorisation, enableDriftCorrection, enableDropInfeasibles, enableEqualities, enableFarBounds, enableFlippingBounds, enableFullLITests, enableInertiaCorrection, enableNZCTests, enableRamping, enableRegularisation, END_NAMESPACE_QPOASES, epsDen, epsFlipping, epsIterRef, epsLITests, epsNum, epsNZCTests, epsRegularisation, finalRamping, growFarBounds, initialFarBounds, initialRamping, initialStatusBounds, maxDualJump, maxPrimalJump, numRefinementSteps, numRegularisationSteps, printLevel, rcondSMin, SUCCESSFUL_RETURN, and terminationTolerance.
Referenced by operator=(), and Options().
returnValue Options::ensureConsistency | ( | ) |
Ensures that all options have consistent values by automatically adjusting inconsistent ones. Note: This routine cannot (and does not try to) ensure that values are set to reasonable values that make the QP solution work!
References boundRelaxation, boundTolerance, BT_FALSE, BT_TRUE, enableCholeskyRefactorisation, enableDriftCorrection, EPS, epsFlipping, epsIterRef, epsLITests, epsNZCTests, epsRegularisation, finalRamping, growFarBounds, initialFarBounds, initialRamping, maxDualJump, maxPrimalJump, numRefinementSteps, numRegularisationSteps, RET_OPTIONS_ADJUSTED, SUCCESSFUL_RETURN, terminationTolerance, and THROWWARNING.
Referenced by QProblemB::setOptions().
returnValue Options::print | ( | ) | const |
Prints values of all options.
References boundRelaxation, boundTolerance, convertBooleanTypeToString(), convertPrintLevelToString(), convertSubjectToStatusToString(), enableCholeskyRefactorisation, enableDriftCorrection, enableEqualities, enableFarBounds, enableFlippingBounds, enableFullLITests, enableInertiaCorrection, enableNZCTests, enableRamping, enableRegularisation, epsDen, epsFlipping, epsIterRef, epsLITests, epsNum, epsNZCTests, epsRegularisation, finalRamping, growFarBounds, initialFarBounds, initialRamping, initialStatusBounds, MAX_STRING_LENGTH, maxDualJump, maxPrimalJump, myPrintf(), numRefinementSteps, numRegularisationSteps, printLevel, rcondSMin, SUCCESSFUL_RETURN, and terminationTolerance.
Referenced by QProblemB::printOptions().
returnValue Options::setToDefault | ( | ) |
Sets all options to default values.
References boundRelaxation, boundTolerance, BT_FALSE, BT_TRUE, dropBoundPriority, dropEqConPriority, dropIneqConPriority, enableCholeskyRefactorisation, enableDriftCorrection, enableDropInfeasibles, enableEqualities, enableFarBounds, enableFlippingBounds, enableFullLITests, enableInertiaCorrection, enableNZCTests, enableRamping, enableRegularisation, EPS, epsDen, epsFlipping, epsIterRef, epsLITests, epsNum, epsNZCTests, epsRegularisation, finalRamping, growFarBounds, initialFarBounds, initialRamping, initialStatusBounds, maxDualJump, maxPrimalJump, numRefinementSteps, numRegularisationSteps, PL_HIGH, PL_MEDIUM, PL_NONE, printLevel, rcondSMin, ST_LOWER, SUCCESSFUL_RETURN, and terminationTolerance.
Referenced by Options(), setToMPC(), and setToReliable().
returnValue Options::setToFast | ( | ) |
Same as setToMPC( ), for ensuring backwards compatibility.
References setToMPC().
returnValue Options::setToMPC | ( | ) |
Sets all options to values resulting in minimum solution time.
References BT_FALSE, BT_TRUE, enableDriftCorrection, enableEqualities, enableFarBounds, enableFlippingBounds, enableNZCTests, enableRamping, enableRegularisation, EPS, initialStatusBounds, numRefinementSteps, numRegularisationSteps, setToDefault(), ST_INACTIVE, SUCCESSFUL_RETURN, and terminationTolerance.
Referenced by main(), and setToFast().
returnValue Options::setToReliable | ( | ) |
Sets all options to values resulting in maximum reliabilty.
References BT_TRUE, enableCholeskyRefactorisation, enableFullLITests, numRefinementSteps, setToDefault(), and SUCCESSFUL_RETURN.
real_t Options::boundRelaxation |
Offset for relaxing (constraints') bounds at beginning of an initial homotopy. It is also as initial value for far bounds.
Referenced by copy(), ensureConsistency(), print(), setToDefault(), QProblem::setupAuxiliaryQPbounds(), QProblemB::setupAuxiliaryQPbounds(), and QProblem::updateActivitiesForHotstart().
real_t Options::boundTolerance |
Lower/upper (constraints') bound tolerance (an inequality constraint whose lower and upper bounds differ by less is regarded to be an equality constraint).
Referenced by copy(), ensureConsistency(), QProblemB::hotstart(), QProblem::hotstart(), QProblemB::obtainAuxiliaryWorkingSet(), QProblem::obtainAuxiliaryWorkingSet(), print(), setToDefault(), QProblemB::setupSubjectToType(), and QProblem::setupSubjectToType().
int_t Options::dropBoundPriority |
...
Referenced by copy(), QProblem::dropInfeasibles(), and setToDefault().
int_t Options::dropEqConPriority |
...
Referenced by copy(), QProblem::dropInfeasibles(), and setToDefault().
int_t Options::dropIneqConPriority |
...
Referenced by copy(), QProblem::dropInfeasibles(), and setToDefault().
int_t Options::enableCholeskyRefactorisation |
Specifies the frequency of full refactorisation of proj. Hessian (otherwise updates).
Referenced by copy(), ensureConsistency(), main(), print(), setToDefault(), setToReliable(), QProblem::solveQP(), and QProblemB::solveQP().
int_t Options::enableDriftCorrection |
Specifies the frequency of drift corrections (0 = off).
Referenced by copy(), ensureConsistency(), print(), setToDefault(), setToMPC(), QProblem::solveQP(), and QProblemB::solveQP().
BooleanType Options::enableDropInfeasibles |
BooleanType Options::enableEqualities |
Specifies whether equalities shall be always treated as active constraints.
Referenced by copy(), print(), setToDefault(), setToMPC(), QProblemB::setupSubjectToType(), and QProblem::setupSubjectToType().
BooleanType Options::enableFarBounds |
Specifies whether far bounds shall be used or not.
Referenced by copy(), QProblemB::hotstart(), QProblem::hotstart(), print(), QProblemB::setInfeasibilityFlag(), setToDefault(), setToMPC(), QProblemB::setupSubjectToType(), and QProblem::setupSubjectToType().
BooleanType Options::enableFlippingBounds |
Specifies whether flipping bounds shall be used or not.
Referenced by copy(), QProblemB::determineHessianType(), print(), QProblem::removeBound(), QProblemB::removeBound(), QProblem::removeConstraint(), setToDefault(), and setToMPC().
BooleanType Options::enableFullLITests |
Specifies whether condition-hardened LI test shall be used or not.
Referenced by QProblem::addBound_checkLI(), QProblem::addConstraint_checkLI(), copy(), print(), setToDefault(), setToReliable(), and QProblem::setupAuxiliaryWorkingSet().
BooleanType Options::enableInertiaCorrection |
Specifies whether the working set should be repaired when negative curvature is discovered during hotstart.
Referenced by copy(), print(), and setToDefault().
BooleanType Options::enableNZCTests |
Specifies whether nonzero curvature tests shall be used.
Referenced by QProblem::changeActiveSet(), copy(), print(), setToDefault(), setToMPC(), QProblem::setupAuxiliaryWorkingSet(), and QProblem::updateActivitiesForHotstart().
BooleanType Options::enableRamping |
Specifies whether ramping shall be enabled or not.
Referenced by copy(), print(), setToDefault(), setToMPC(), QProblem::solveInitialQP(), QProblem::solveQP(), QProblemB::solveQP(), QProblemB::updateFarBounds(), and QProblem::updateFarBounds().
BooleanType Options::enableRegularisation |
Specifies whether Hessian matrix shall be regularised in case semi-definiteness is detected.
Referenced by copy(), QProblemB::determineHessianType(), print(), QProblemB::regulariseHessian(), setToDefault(), setToMPC(), QProblemB::setupInitialCholesky(), and QProblem::setupInitialCholesky().
real_t Options::epsDen |
Denominator tolerance for ratio tests.
Referenced by SQProblemSchur::addBound_ensureLI(), QProblem::addBound_ensureLI(), SQProblemSchur::addConstraint_ensureLI(), QProblem::addConstraint_ensureLI(), copy(), QProblem::dropInfeasibles(), QProblem::ensureNonzeroCurvature(), QProblem::performStep(), QProblemB::performStep(), print(), and setToDefault().
real_t Options::epsFlipping |
Tolerance of squared Cholesky diagonal factor which triggers flipping bound.
Referenced by copy(), ensureConsistency(), print(), QProblem::removeBound(), QProblemB::removeBound(), QProblem::removeConstraint(), and setToDefault().
real_t Options::epsIterRef |
Early termination tolerance for iterative refinement.
Referenced by copy(), QProblem::determineStepDirection(), QProblemB::determineStepDirection(), ensureConsistency(), print(), and setToDefault().
real_t Options::epsLITests |
Tolerance for linear independence tests.
Referenced by QProblem::addBound_checkLI(), SQProblemSchur::addBound_checkLISchur(), QProblem::addConstraint_checkLI(), SQProblemSchur::addConstraint_checkLISchur(), copy(), ensureConsistency(), print(), setToDefault(), and QProblem::setupAuxiliaryWorkingSet().
real_t Options::epsNum |
Numerator tolerance for ratio tests.
Referenced by SQProblemSchur::addBound_ensureLI(), QProblem::addBound_ensureLI(), SQProblemSchur::addConstraint_ensureLI(), QProblem::addConstraint_ensureLI(), copy(), QProblem::ensureNonzeroCurvature(), QProblem::performStep(), QProblemB::performStep(), print(), and setToDefault().
real_t Options::epsNZCTests |
Tolerance for nonzero curvature tests.
Referenced by copy(), ensureConsistency(), QProblem::ensureNonzeroCurvature(), print(), and setToDefault().
real_t Options::epsRegularisation |
Scaling factor of identity matrix used for Hessian regularisation.
Referenced by copy(), ensureConsistency(), print(), QProblemB::regulariseHessian(), and setToDefault().
real_t Options::finalRamping |
Final value for Ramping Strategy.
Referenced by copy(), ensureConsistency(), print(), QProblemB::QProblemB(), QProblemB::reset(), and setToDefault().
real_t Options::growFarBounds |
Factor to grow Far Bounds.
Referenced by copy(), ensureConsistency(), QProblemB::hotstart(), QProblem::hotstart(), print(), and setToDefault().
real_t Options::initialFarBounds |
Initial size of Far Bounds.
Referenced by copy(), ensureConsistency(), QProblemB::hotstart(), QProblem::hotstart(), print(), and setToDefault().
real_t Options::initialRamping |
Start value for Ramping Strategy.
Referenced by copy(), ensureConsistency(), print(), QProblemB::QProblemB(), QProblemB::reset(), and setToDefault().
SubjectToStatus Options::initialStatusBounds |
Initial status of bounds at first iteration.
Referenced by copy(), main(), QProblemB::obtainAuxiliaryWorkingSet(), print(), setToDefault(), setToMPC(), SQProblem::setupNewAuxiliaryQP(), QProblem::solveInitialQP(), and QProblemB::solveInitialQP().
real_t Options::maxDualJump |
Maximum allowed jump in dual variables in linear independence tests.
Referenced by SQProblemSchur::addBound_ensureLI(), QProblem::addBound_ensureLI(), SQProblemSchur::addConstraint_ensureLI(), QProblem::addConstraint_ensureLI(), copy(), ensureConsistency(), print(), and setToDefault().
real_t Options::maxPrimalJump |
Maximum allowed jump in primal variables in nonzero curvature tests.
Referenced by copy(), ensureConsistency(), QProblem::ensureNonzeroCurvature(), print(), and setToDefault().
int_t Options::numRefinementSteps |
Maximum number of iterative refinement steps.
Referenced by copy(), QProblem::determineStepDirection(), QProblemB::determineStepDirection(), SQProblemSchur::determineStepDirection2(), ensureConsistency(), main(), print(), setToDefault(), setToMPC(), and setToReliable().
int_t Options::numRegularisationSteps |
Maximum number of successive regularisation steps.
Referenced by copy(), QProblemB::determineHessianType(), ensureConsistency(), print(), setToDefault(), setToMPC(), QProblem::solveRegularisedQP(), and QProblemB::solveRegularisedQP().
PrintLevel Options::printLevel |
Print level.
Referenced by SQProblemSchur::addBound(), SQProblemSchur::addConstraint(), copy(), SQProblemSchur::correctInertia(), SQProblemSchur::deleteFromSchurComplement(), QProblemB::getPrintLevel(), main(), print(), QProblem::printIteration(), QProblemB::printIteration(), QProblem::printProperties(), QProblemB::printProperties(), QProblemB::QProblemB(), SQProblemSchur::removeBound(), SQProblemSchur::removeConstraint(), SQProblemSchur::repairSingularWorkingSet(), SQProblemSchur::resetSchurComplement(), QProblemB::setOptions(), QProblemB::setPrintLevel(), setToDefault(), SQProblemSchur::setupAuxiliaryQP(), SQProblemSchur::setupAuxiliaryWorkingSet(), QProblem::solveQP(), QProblemB::solveQP(), and SQProblemSchur::undoDeleteFromSchurComplement().
real_t Options::rcondSMin |
Minimum reciprocal condition number of S before refactorization is triggered
Referenced by copy(), print(), and setToDefault().
real_t Options::terminationTolerance |
Termination tolerance.
Referenced by copy(), ensureConsistency(), print(), setToDefault(), setToMPC(), QProblem::solveQP(), and QProblemB::solveQP().