Minotaur 0.4.1
Docs for developers
Public Member Functions | Friends | List of all members
Minotaur::qpOASESEngine Class Reference

#include <qpOASESEngine.h>

Inheritance diagram for Minotaur::qpOASESEngine:
Inheritance graph
[legend]
Collaboration diagram for Minotaur::qpOASESEngine:
Collaboration graph
[legend]

Public Member Functions

 qpOASESEngine ()
 Default constructor.
 
 qpOASESEngine (EnvPtr env)
 Constructor using given environment options.
 
EnginePtr emptyCopy ()
 Return an empty qpOASESEngine pointer. More...
 
void load (ProblemPtr problem)
 Method to read the problem and initialize qpOASES. More...
 
void clear ()
 Method to unload the current problem. More...
 
EngineStatus solve ()
 Solve the problem that was loaded and report the status. More...
 
double getSolutionValue ()
 Report the solution value from the last solve. More...
 
ConstSolutionPtr getSolution ()
 Report the solution. More...
 
EngineStatus getStatus ()
 Report the status of the last solve. More...
 
void changeBound (ConstraintPtr cons, BoundType lu, double new_val)
 Change a bound of a constraint. More...
 
void changeBound (VariablePtr var, BoundType lu, double new_val)
 Change a bound of a variable. More...
 
void changeBound (VariablePtr var, double new_lb, double new_ub)
 Change both bounds of a variable. More...
 
void addConstraint (ConstraintPtr)
 Add a new constraint to the engine. More...
 
void changeObj (FunctionPtr f, double cb)
 Change objective function. More...
 
void negateObj ()
 Negate the objective function. Min f is changed to Min -f. More...
 
void changeConstraint (ConstraintPtr con, LinearFunctionPtr lf, const double &ub)
 
ConstWarmStartPtr getWarmStart ()
 
WarmStartPtr getWarmStartCopy ()
 
void loadFromWarmStart (WarmStartPtr)
 
void setIterationLimit (int limit)
 
int setDualObjLimit (double)
 Set the dual objective limit. More...
 
void resetIterationLimit ()
 Reset the iteration limit to maximum possible. More...
 
void enableStrBrSetup ()
 Make settings for strong branching. More...
 
void disableStrBrSetup ()
 Restore settings after strong branching. More...
 
void writeStats ()
 
std::string getName () const
 Get the name. More...
 
 ~qpOASESEngine ()
 Destroy.
 
- Public Member Functions inherited from Minotaur::QPEngine
 QPEngine ()
 Constructor. May set default parameters/options here.
 
- Public Member Functions inherited from Minotaur::Engine
 Engine ()
 Default constructor.
 
virtual ~Engine ()
 Destroy.
 
virtual void addConstraint (ConstraintPtr)=0
 Add a new constraint to the engine. More...
 
virtual void changeBound (ConstraintPtr cons, BoundType lu, double new_val)=0
 Change a bound of a constraint. More...
 
virtual void changeBound (VariablePtr var, BoundType lu, double new_val)=0
 Change a bound of a variable. More...
 
virtual void changeBound (VariablePtr var, double new_lb, double new_ub)=0
 Change both bounds of a variable. More...
 
virtual void changeConstraint (ConstraintPtr c, LinearFunctionPtr lf, double lb, double ub)=0
 Change the linear function, and the bounds of a constraint. More...
 
virtual void changeConstraint (ConstraintPtr c, NonlinearFunctionPtr nlf)=0
 Change the nonlinear function, and the bounds of a constraint. More...
 
virtual void changeObj (FunctionPtr f, double cb)=0
 Change objective function. More...
 
virtual void clear ()=0
 Clear the loaded problem, if any, from the engine. More...
 
virtual void disableStrBrSetup ()=0
 Restore settings after strong branching. More...
 
virtual EnginePtr emptyCopy ()
 Get a fresh copy of the engine, without the problem loaded into it. More...
 
virtual void enableStrBrSetup ()=0
 Make settings for strong branching. More...
 
virtual ConstSolutionPtr getSolution ()=0
 Get the solution obtained after solving the problem. More...
 
virtual double getSolutionValue ()=0
 Get the solution value. More...
 
virtual EngineStatus solve ()=0
 Solve the problem that was loaded previously. More...
 
virtual std::string getName () const =0
 Get the name. More...
 
virtual EngineStatus getStatus ()=0
 Get the status of the last solve command. More...
 
virtual std::string getStatusString ()
 Return a string that describes the status in simple words.
 
virtual ConstWarmStartPtr getWarmStart ()=0
 
virtual WarmStartPtr getWarmStartCopy ()=0
 
virtual void load (ProblemPtr problem)=0
 
virtual void loadFromWarmStart (const WarmStartPtr ws)=0
 
virtual void negateObj ()=0
 Negate the objective function. Min f is changed to Min -f. More...
 
virtual LoggerPtr getLogger ()
 Return pointer to the log manager.
 
virtual void removeCons (std::vector< ConstraintPtr > &delcons)=0
 Delete constraints from the engine. More...
 
virtual void resetIterationLimit ()=0
 Reset the iteration limit to maximum possible. More...
 
virtual int setDualObjLimit (double)=0
 Set the dual objective limit. More...
 
virtual void setIterationLimit (int limit)=0
 
virtual void setLogger (LoggerPtr logger)
 Set a new log manager.
 
virtual void setOptionsForSingleSolve ()
 
virtual void setOptionsForRepeatedSolve ()
 Set options to solve the NLP repeatedly, with few changes. More...
 
virtual void writeStats (std::ostream &) const
 
virtual void fillStats (std::vector< double > &)
 Accumulate statistics from different threads in a common data. More...
 

Friends

class Problem
 

Additional Inherited Members

- Protected Attributes inherited from Minotaur::Engine
EngineStatus status_
 Status of the last solve.
 
LoggerPtr logger_
 Keep log.
 

Detailed Description

qpOASESEngine is used to solve QP problems using the parametric primal-dual active set code qpOASES. qpOASES finds a KT point for the bounded QP problem

 minimize    f(x) = x'Hx/2 + g'x

 subject to  lb  <=   x <= ub
             lbA <= A.x <= ubA

where x and g are n-vectors, H is a symmetric n*n matrix, and A is an m*n matrix. If H is also positive semi-definite then the KT point is a global solution, else a stationary point.

Member Function Documentation

◆ addConstraint()

void Minotaur::qpOASESEngine::addConstraint ( ConstraintPtr  )
inlinevirtual

Add a new constraint to the engine.

Implements Minotaur::Engine.

◆ changeBound() [1/3]

void qpOASESEngine::changeBound ( ConstraintPtr  cons,
BoundType  lu,
double  new_val 
)
virtual

Change a bound of a constraint.

Implements Minotaur::Engine.

◆ changeBound() [2/3]

void qpOASESEngine::changeBound ( VariablePtr  var,
BoundType  lu,
double  new_val 
)
virtual

Change a bound of a variable.

Implements Minotaur::Engine.

◆ changeBound() [3/3]

void qpOASESEngine::changeBound ( VariablePtr  var,
double  new_lb,
double  new_ub 
)
virtual

Change both bounds of a variable.

Implements Minotaur::Engine.

◆ changeObj()

void qpOASESEngine::changeObj ( FunctionPtr  f,
double  cb 
)
virtual

Change objective function.

Implements Minotaur::Engine.

◆ clear()

void qpOASESEngine::clear ( )
virtual

Method to unload the current problem.

Implements Minotaur::Engine.

◆ disableStrBrSetup()

void qpOASESEngine::disableStrBrSetup ( )
virtual

Restore settings after strong branching.

Implements Minotaur::Engine.

◆ emptyCopy()

EnginePtr qpOASESEngine::emptyCopy ( )
virtual

Return an empty qpOASESEngine pointer.

Reimplemented from Minotaur::Engine.

◆ enableStrBrSetup()

void qpOASESEngine::enableStrBrSetup ( )
virtual

Make settings for strong branching.

Implements Minotaur::Engine.

◆ getName()

std::string qpOASESEngine::getName ( ) const
virtual

Get the name.

Implements Minotaur::Engine.

◆ getSolution()

ConstSolutionPtr qpOASESEngine::getSolution ( )
virtual

Report the solution.

Implements Minotaur::Engine.

◆ getSolutionValue()

double qpOASESEngine::getSolutionValue ( )
virtual

Report the solution value from the last solve.

Implements Minotaur::Engine.

◆ getStatus()

EngineStatus qpOASESEngine::getStatus ( )
virtual

Report the status of the last solve.

Implements Minotaur::Engine.

◆ getWarmStart()

ConstWarmStartPtr qpOASESEngine::getWarmStart ( )
virtual

Get warm start information from the engine. This warm start information can change if the engine is used to solve something else again.

Implements Minotaur::Engine.

◆ getWarmStartCopy()

WarmStartPtr qpOASESEngine::getWarmStartCopy ( )
virtual

Get a full copy of warm start information from the engine. Does not change even if the engine starts solving something else later on.

Implements Minotaur::Engine.

◆ load()

void qpOASESEngine::load ( ProblemPtr  problem)
virtual

Method to read the problem and initialize qpOASES.

Implements Minotaur::Engine.

◆ loadFromWarmStart()

void qpOASESEngine::loadFromWarmStart ( WarmStartPtr  ws)
virtual

Use warm start information for solving the next problem. May Create a copy of WarmStart and use the copy inside the engine; the copy (but not the original) gets updated after solving a relaxation.

Implements Minotaur::Engine.

◆ negateObj()

void qpOASESEngine::negateObj ( )
virtual

Negate the objective function. Min f is changed to Min -f.

Implements Minotaur::Engine.

◆ resetIterationLimit()

void qpOASESEngine::resetIterationLimit ( )
virtual

Reset the iteration limit to maximum possible.

Implements Minotaur::Engine.

◆ setDualObjLimit()

int Minotaur::qpOASESEngine::setDualObjLimit ( double  )
inlinevirtual

Set the dual objective limit.

Implements Minotaur::Engine.

◆ setIterationLimit()

void qpOASESEngine::setIterationLimit ( int  limit)
virtual

Set a limit on number of iterations. For strong-branching, for instance.

Implements Minotaur::Engine.

◆ solve()

EngineStatus qpOASESEngine::solve ( )
virtual

Solve the problem that was loaded and report the status.

Implements Minotaur::Engine.


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

Minotaur source code documented by Doxygen 1.9.4 on Sat May 17 2025