Minotaur 0.4.1
Docs for developers
|
#include <Engine.h>
Public Member Functions | |
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... | |
Protected Attributes | |
EngineStatus | status_ |
Status of the last solve. | |
LoggerPtr | logger_ |
Keep log. | |
An Engine is a solver that can solve a Problem. In most invocations of an engine, we will solve a Relaxation. This is an abstract base class and all engines are implemented are derived from here.
|
pure virtual |
Add a new constraint to the engine.
Implemented in Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::UnoEngine, Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::OsiLPEngine, and Minotaur::qpOASESEngine.
|
pure virtual |
Change a bound of a constraint.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Change a bound of a variable.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Change both bounds of a variable.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Change the linear function, and the bounds of a constraint.
[in] | c | Original constraint that is to be changed. |
[lf] | The new linear function. | |
[lb] | The new lower bound. | |
[ub] | The new upper bound. |
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, and Minotaur::UnoEngine.
|
pure virtual |
Change the nonlinear function, and the bounds of a constraint.
[in] | c | Original constraint that is to be changed. |
[nlf] | The new nonlinear function. |
Implemented in Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::OsiLPEngine, Minotaur::BqpdEngine, Minotaur::IpoptEngine, and Minotaur::UnoEngine.
|
pure virtual |
Change objective function.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Clear the loaded problem, if any, from the engine.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Restore settings after strong branching.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
inlinevirtual |
Get a fresh copy of the engine, without the problem loaded into it.
Reimplemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Make settings for strong branching.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
inlinevirtual |
Accumulate statistics from different threads in a common data.
Reimplemented in Minotaur::CplexLPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, and Minotaur::UnoEngine.
|
pure virtual |
Get the name.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Get the solution obtained after solving the problem.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Get the solution value.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Get the status of the last solve command.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Get warm start information from the engine. This warm start information can change if the engine is used to solve something else again.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure 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.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Initialize the engine to solve the given problem. Memory is allocated in this function.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure 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.
Implemented in Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::UnoEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::BqpdEngine, and Minotaur::qpOASESEngine.
|
pure virtual |
Negate the objective function. Min f is changed to Min -f.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Delete constraints from the engine.
[in] | delcons | A vector of constraint pointers that should be deleted from the engine. |
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, and Minotaur::UnoEngine.
|
pure virtual |
Reset the iteration limit to maximum possible.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Set the dual objective limit.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
pure virtual |
Set a limit on number of iterations. For strong-branching, for instance.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, Minotaur::UnoEngine, Minotaur::CplexLPEngine, and Minotaur::CplexMILPEngine.
|
inlinevirtual |
Set options to solve the NLP repeatedly, with few changes.
Reimplemented in Minotaur::IpoptEngine, and Minotaur::UnoEngine.
|
inlinevirtual |
Set options to solve the NLP only once or very few times, with possibly several changes.
Reimplemented in Minotaur::IpoptEngine, and Minotaur::UnoEngine.
|
pure virtual |
Solve the problem that was loaded previously.
Implemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, Minotaur::qpOASESEngine, and Minotaur::UnoEngine.
|
inlinevirtual |
Write statistics to the logger. If the log level is too low, no statistics may be written.
Reimplemented in Minotaur::BqpdEngine, Minotaur::CbcEngine, Minotaur::CplexLPEngine, Minotaur::CplexMILPEngine, Minotaur::FilterSQPEngine, Minotaur::IpoptEngine, Minotaur::OsiLPEngine, and Minotaur::UnoEngine.