15#ifndef MINOTAURQGADVHANDLER_H
16#define MINOTAURQGADVHANDLER_H
58 static const std::string me_;
64 std::vector<ConstraintPtr> nlCons_;
70 std::stack<Modification *> nlpMods_;
138 {
return Branches();};
142 const DoubleVector &, ModVector &,
143 BrVarCandSet &, BrCandVector &,
bool &) {};
156 bool & should_prune,
double &inf_meas);
194 void addInitLinearX_(
const double *x);
208 void fixInts_(
const double *x);
215 void initLinear_(
bool *isInf);
221 void linearAt_(
FunctionPtr f,
double fval,
const double *x,
228 void linearizeObj_();
234 void oaCutToCons_(
const double *nlpx,
const double *lpx,
CutManager *,
238 void addCut_(
const double *nlpx,
const double *lpx,
ConstraintPtr con,
245 void oaCutToObj_(
const double *nlpx,
const double *lpx,
CutManager *,
248 void oaCutEngLim_(
const double *lpx,
CutManager *cutman,
255 void relax_(
bool *is_inf);
267 void updateUb_(
SolutionPoolPtr s_pool,
double *nlp_val,
bool *sol_found);
271 typedef QGAdvHandler* QGAdvHandlerPtr;
Define the base class Engine.
Get information about a Function.
Define abstract base class for handlers of various kinds.
Declare PerspCutHandler class for perspective reformulation (PR). It detects constraints amenable to ...
Declare the base class Modification.
Base class for describing candidates for branching on a node in branch-and-bound.
Definition BrCand.h:32
The Constraint class is used to manage a constraint.
Definition Constraint.h:61
Abstract base class to manage cuts in the relaxation.
Definition CutManager.h:42
Definition Environment.h:28
Base class for handling specific types of constraints or objective.
Definition Handler.h:49
The base class linear function is of the form c'x.
Definition LinearFunction.h:31
Definition Modification.h:29
Definition PerspCutHandler.h:36
Handler for convex constraints, based on quesada-grossmann algorithm.
Definition QGAdvHandler.h:45
~QGAdvHandler()
Destroy.
Definition QGAdvHandler.cpp:127
std::string getName() const
Return the name of the handler.
Definition QGAdvHandler.cpp:816
void separate(ConstSolutionPtr sol, NodePtr node, RelaxationPtr rel, CutManager *cutman, SolutionPoolPtr s_pool, ModVector &p_mods, ModVector &r_mods, bool *sol_found, SeparationStatus *status)
Base class method. Find cuts.
Definition QGAdvHandler.cpp:721
void relaxInitInc(RelaxationPtr rel, bool *is_inf)
Base class method. calls relax_().
Definition QGAdvHandler.cpp:653
void relaxNodeFull(NodePtr node, RelaxationPtr rel, bool *is_inf)
Base class method. Does nothing.
Definition QGAdvHandler.cpp:661
bool isFeasible(ConstSolutionPtr sol, RelaxationPtr relaxation, bool &should_prune, double &inf_meas)
Check if a solution is feasible.
Definition QGAdvHandler.cpp:387
void writeStats(std::ostream &out) const
Show statistics.
Definition QGAdvHandler.cpp:799
void relaxInitFull(RelaxationPtr rel, bool *is_inf)
Base class method. calls relax_().
Definition QGAdvHandler.cpp:647
ModificationPtr getBrMod(BrCandPtr, DoubleVector &, RelaxationPtr, BranchDirection)
Does nothing.
Definition QGAdvHandler.h:146
SolveStatus presolve(PreModQ *, bool *, Solution **sol)
Does nothing.
Definition QGAdvHandler.h:159
void relaxNodeInc(NodePtr node, RelaxationPtr rel, bool *is_inf)
Base class method. Does nothing.
Definition QGAdvHandler.cpp:668
bool presolveNode(RelaxationPtr, NodePtr, SolutionPoolPtr, ModVector &, ModVector &)
Does nothing.
Definition QGAdvHandler.h:162
void postsolveGetX(const double *, UInt, DoubleVector *)
Does nothing.
Definition QGAdvHandler.h:167
Branches getBranches(BrCandPtr, DoubleVector &, RelaxationPtr, SolutionPoolPtr)
Does nothing.
Definition QGAdvHandler.h:136
QGAdvHandler()
Empty constructor.
Definition QGAdvHandler.cpp:48
void getBranchingCandidates(RelaxationPtr, const DoubleVector &, ModVector &, BrVarCandSet &, BrCandVector &, bool &)
Does nothing.
Definition QGAdvHandler.h:141
Definition Relaxation.h:53
Definition SolutionPool.h:28
Definition ActiveNodeStore.h:20
BranchDirection
Two directions for branching.
Definition Types.h:201
unsigned int UInt
Unsigned integer.
Definition Types.h:30
SeparationStatus
Status from separation routine:
Definition Types.h:217
EngineStatus
Different status that an external engine may report.
Definition Types.h:176
SolveStatus
Different states an algorithm like branch-and-bound can be in.
Definition Types.h:158
Definition QGAdvHandler.h:28
size_t nlpI
Number of nlps feasible.
Definition QGAdvHandler.h:31
size_t cuts
Number of nlps hits engine iterations limit.
Definition QGAdvHandler.h:33
size_t nlpIL
Number of nlps infeasible.
Definition QGAdvHandler.h:32
size_t nlpF
Number of nlps solved.
Definition QGAdvHandler.h:30