13#ifndef MINOTAURCUTMANAGER_H
14#define MINOTAURCUTMANAGER_H
27 typedef CutManager *CutManagerPtr;
28 typedef const Solution *ConstSolutionPtr;
77 double ub,
bool direct_to_rel,
87 virtual void addCuts(CutVectorIter cbeg, CutVectorIter cend) = 0;
107 virtual std::vector<ConstraintPtr> getPoolCons() = 0;
141 size_t *n_added) = 0;
159 virtual void write(std::ostream &out)
const = 0;
Declare important 'types' used in Minotaur.
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
virtual void addCutToPool(CutPtr c)=0
Add a cut to the pool managed by the cut manager.
virtual void writeStats(std::ostream &out) const =0
Write statistics to output.
virtual void addCut(CutPtr c)=0
Add a cut to be managed by the cut manager.
virtual size_t getNumEnabledCuts() const =0
Get the total number of cuts currently enabled, i.e., added to the relaxation.
virtual size_t getNumDisabledCuts() const =0
Get the total number of cuts currently not enabled.
CutManager()
Empty constructor.
Definition: CutManager.h:46
virtual size_t getNumNewCuts() const =0
Get the total number of cuts added to manager (but not to problem) before the last call to separate()...
virtual void separate(ProblemPtr p, ConstSolutionPtr sol, bool *separated, size_t *n_added)=0
Separate a given point using the cuts in the storage.
virtual ~CutManager()
Destroy.
Definition: CutManager.h:49
virtual size_t getNumCuts() const =0
Get the total number of cuts available to the manager.
virtual void nodeIsProcessed(NodePtr)
Update information when a node is processed.
Definition: CutManager.h:121
virtual void write(std::ostream &out) const =0
Write cuts to output.
virtual void updateRel(ConstSolutionPtr, ProblemPtr)
Update information about cuts in the relaxation.
Definition: CutManager.h:156
virtual void postSolveUpdate(ConstSolutionPtr sol, EngineStatus e_status)=0
virtual void nodeIsBranched(NodePtr, ConstSolutionPtr, int)
Update information on a node which is branched.
Definition: CutManager.h:115
virtual ConstraintPtr addCut(ProblemPtr p, FunctionPtr f, double lb, double ub, bool direct_to_rel, bool never_del)=0
Add a cut.
virtual void addCuts(CutVectorIter cbeg, CutVectorIter cend)=0
Add a cut to be managed by the cut manager. The cut is not added to the problem by this function (See...
virtual void updatePool(ProblemPtr, ConstSolutionPtr)
Update information of the cuts in the pool.
Definition: CutManager.h:149
Store function, bounds and other information about a cut.
Definition: Cut.h:52
Definition: Function.h:37
Definition: Solution.h:30
Definition: ActiveNodeStore.h:20
EngineStatus
Different status that an external engine may report.
Definition: Types.h:176