12#ifndef MINOTAURBQPDENGINE_H
13#define MINOTAURBQPDENGINE_H
23 typedef Environment* EnvPtr;
24 typedef Problem* ProblemPtr;
25 typedef Solution* SolutionPtr;
77 double lb,
double ub);
125 void removeCons(std::vector<ConstraintPtr> &delcons);
179 const int maxIterLimit_;
182 static const std::string me_;
221 void setConsBounds_();
230 void setInitialPoint_();
233 void setVarBounds_();
239 void solve_(
int mode,
double &f);
242 void storeSol_(
double f);
264 void write(std::ostream &out)
const;
Information for restarting from the previous optimal solution.
Definition: BqpdEngine.h:248
int * info
Information on return from bqpd.
Definition: BqpdEngine.h:309
~BqpdData()
Destroy.
Definition: BqpdEngine.cpp:936
int * la
Storage for jacobian.
Definition: BqpdEngine.h:321
int * lp
Workspace associated with recursion.
Definition: BqpdEngine.h:306
double * ws
Storage for hessian values and other things.
Definition: BqpdEngine.h:324
double * e
Steepest-edge normalization coefficients .
Definition: BqpdEngine.h:291
double * bl
Lower bounds for variables and constraints.
Definition: BqpdEngine.h:312
double * x
Initial point for solving QP.
Definition: BqpdEngine.h:285
int * ls
Indices of the active constraints .
Definition: BqpdEngine.h:300
double * bu
Upper bounds for variables and constraints.
Definition: BqpdEngine.h:315
double * g
Gradient vector of f(x).
Definition: BqpdEngine.h:297
BqpdData(UInt n_t, UInt m_t, int kmax_t, UInt maxa_t, UInt lh1_t, UInt nJac, bool zero=true)
Constructor.
Definition: BqpdEngine.cpp:818
void write(std::ostream &out) const
Display all data.
Definition: BqpdEngine.cpp:1001
int peq
Pointer to equality constraints, used by bqpd.
Definition: BqpdEngine.h:330
UInt lh1
Number of nonzeros in Hessian.
Definition: BqpdEngine.h:276
UInt nJac
Number of nonzeros in Jacobian.
Definition: BqpdEngine.h:279
double * a
Storage for jacobian.
Definition: BqpdEngine.h:318
UInt m
Number of constraints.
Definition: BqpdEngine.h:270
UInt maxa
Size of a.
Definition: BqpdEngine.h:282
double * alp
Workspace associated with recursion.
Definition: BqpdEngine.h:303
BqpdData * clone()
Allocate space and copy.
Definition: BqpdEngine.cpp:866
int * lws
Storage for hessian indices and other things.
Definition: BqpdEngine.h:327
double * r
Residuals/multipliers.
Definition: BqpdEngine.h:288
double * w
Denominators for ratio tests.
Definition: BqpdEngine.h:294
void copyFrom(const BqpdData *rhs)
Only copy. No space allocation.
Definition: BqpdEngine.cpp:903
int kmax
kmax given to bqpd
Definition: BqpdEngine.h:273
UInt n
Number of variables.
Definition: BqpdEngine.h:267
Definition: BqpdEngine.h:53
void changeObj(FunctionPtr f, double cb)
Change objective function.
Definition: BqpdEngine.cpp:714
EngineStatus solve()
Solve the problem that was loaded and report the status.
Definition: BqpdEngine.cpp:360
void changeBound(ConstraintPtr cons, BoundType lu, double new_val)
Change a bound of a constraint.
Definition: BqpdEngine.cpp:671
void enableStrBrSetup()
Make settings for strong branching.
Definition: BqpdEngine.cpp:751
std::string getName() const
Get the name.
Definition: BqpdEngine.cpp:809
void loadFromWarmStart(WarmStartPtr)
Definition: BqpdEngine.h:119
void clear()
Method to unload the current problem.
Definition: BqpdEngine.cpp:132
void setIterationLimit(int limit)
Definition: BqpdEngine.cpp:778
ConstSolutionPtr getSolution()
Report the solution.
Definition: BqpdEngine.cpp:656
EnginePtr emptyCopy()
Return an empty BqpdEngine pointer.
Definition: BqpdEngine.cpp:117
double getSolutionValue()
Report the solution value from the last solve.
Definition: BqpdEngine.cpp:646
ConstWarmStartPtr getWarmStart()
Definition: BqpdEngine.h:110
void changeConstraint(ConstraintPtr con, LinearFunctionPtr lf, double lb, double ub)
Change the linear function, and the bounds of a constraint.
Definition: BqpdEngine.cpp:734
void writeStats(std::ostream &out) const
Definition: BqpdEngine.cpp:794
void resetIterationLimit()
Reset the iteration limit to maximum possible.
Definition: BqpdEngine.cpp:788
BqpdEngine(EnvPtr env)
Constructor using given environment options.
Definition: BqpdEngine.cpp:46
void removeCons(std::vector< ConstraintPtr > &delcons)
Delete constraints from the engine.
Definition: BqpdEngine.cpp:200
~BqpdEngine()
Destroy.
Definition: BqpdEngine.cpp:83
void disableStrBrSetup()
Restore settings after strong branching.
Definition: BqpdEngine.cpp:765
void addConstraint(ConstraintPtr)
Add a new constraint to the engine.
Definition: BqpdEngine.cpp:111
EngineStatus getStatus()
Report the status of the last solve.
Definition: BqpdEngine.cpp:665
void load(ProblemPtr problem)
Method to read the problem and initialize bqpd.
Definition: BqpdEngine.cpp:123
WarmStartPtr getWarmStartCopy()
Definition: BqpdEngine.h:113
int setDualObjLimit(double)
Set the dual objective limit.
Definition: BqpdEngine.h:134
void negateObj()
Negate the objective function. Min f is changed to Min -f.
Definition: BqpdEngine.cpp:724
The Constraint class is used to manage a constraint.
Definition: Constraint.h:61
Definition: Environment.h:28
Definition: Function.h:37
The base class linear function is of the form c'x.
Definition: LinearFunction.h:31
Base class for nonlinear functions.
Definition: NonlinearFunction.h:31
Definition: QPEngine.h:24
Definition: Solution.h:30
Definition: Variable.h:31
Definition: WarmStart.h:45
Definition: ActiveNodeStore.h:20
BoundType
Different types of variable-bounds.
Definition: Types.h:131
unsigned int UInt
Unsigned integer.
Definition: Types.h:30
EngineStatus
Different status that an external engine may report.
Definition: Types.h:176
Definition: BqpdEngine.h:27
UInt strIters
Sum of number of iterations in all calls.
Definition: BqpdEngine.h:34
double cTime
Time taken in strong branching alone.
Definition: BqpdEngine.h:32
double time
Calls to solve while strong branching.
Definition: BqpdEngine.h:30
double strTime
Sum of time taken in all calls to solve.
Definition: BqpdEngine.h:31
UInt strCalls
Total number of calls to solve.
Definition: BqpdEngine.h:29
UInt iters
Time taken in copying data for strong-branching.
Definition: BqpdEngine.h:33