Derived class for managing cuts. Adds all violated cuts from the storage to the relaxation and never removes any. If a new cut is reported but not violated by the current solution then it is added to storage. This manager does not check for duplicacy or any other numerical problems in cuts.
More...
|
| SimpleCutMan () |
| Empty constructor.
|
|
| SimpleCutMan (EnvPtr env, ProblemPtr p) |
| Default constructor. More...
|
|
| ~SimpleCutMan () |
| Destroy.
|
|
void | addCut (CutPtr c) |
| Add a cut to be managed by the cut manager. More...
|
|
ConstraintPtr | addCut (ProblemPtr p, FunctionPtr f, double lb, double ub, bool directToRel, bool neverDelete) |
| Add a cut. More...
|
|
void | addCuts (CutVectorIter cbeg, CutVectorIter cend) |
| Add a cut to be managed by the cut manager. The cut is not added to the problem by this function (See separate() for it). More...
|
|
size_t | getNumCuts () const |
| Get the total number of cuts available to the manager. More...
|
|
size_t | getNumEnabledCuts () const |
| Get the total number of cuts currently enabled, i.e., added to the relaxation. More...
|
|
size_t | getNumDisabledCuts () const |
| Get the total number of cuts currently not enabled. More...
|
|
size_t | getNumNewCuts () const |
| Get the total number of cuts added to manager (but not to problem) before the last call to separate() or postSolveUpdate(). More...
|
|
void | postSolveUpdate (ConstSolutionPtr sol, EngineStatus eng_status) |
|
void | separate (ProblemPtr p, ConstSolutionPtr sol, bool *separated, size_t *added) |
| Separate a given point using the cuts in the storage. More...
|
|
void | write (std::ostream &out) const |
| Write cuts to output. More...
|
|
void | writeStats (std::ostream &out) const |
| Write statistics to output. More...
|
|
| CutManager () |
| Empty constructor.
|
|
virtual | ~CutManager () |
| Destroy.
|
|
virtual void | addCut (CutPtr c)=0 |
| Add a cut to be managed by the cut manager. More...
|
|
virtual void | addCutToPool (CutPtr c)=0 |
| Add a cut to the pool managed by the cut manager. More...
|
|
virtual ConstraintPtr | addCut (ProblemPtr p, FunctionPtr f, double lb, double ub, bool direct_to_rel, bool never_del)=0 |
| Add a cut. More...
|
|
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 separate() for it). More...
|
|
virtual size_t | getNumCuts () const =0 |
| Get the total number of cuts available to the manager. More...
|
|
virtual size_t | getNumEnabledCuts () const =0 |
| Get the total number of cuts currently enabled, i.e., added to the relaxation. More...
|
|
virtual size_t | getNumDisabledCuts () const =0 |
| Get the total number of cuts currently not enabled. More...
|
|
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() or postSolveUpdate(). More...
|
|
virtual std::vector< ConstraintPtr > | getPoolCons ()=0 |
|
virtual void | nodeIsBranched (NodePtr, ConstSolutionPtr, int) |
| Update information on a node which is branched. More...
|
|
virtual void | nodeIsProcessed (NodePtr) |
| Update information when a node is processed. More...
|
|
virtual void | postSolveUpdate (ConstSolutionPtr sol, EngineStatus e_status)=0 |
|
virtual void | separate (ProblemPtr p, ConstSolutionPtr sol, bool *separated, size_t *n_added)=0 |
| Separate a given point using the cuts in the storage. More...
|
|
virtual void | updatePool (ProblemPtr, ConstSolutionPtr) |
| Update information of the cuts in the pool. More...
|
|
virtual void | updateRel (ConstSolutionPtr, ProblemPtr) |
| Update information about cuts in the relaxation. More...
|
|
virtual void | write (std::ostream &out) const =0 |
| Write cuts to output. More...
|
|
virtual void | writeStats (std::ostream &out) const =0 |
| Write statistics to output. More...
|
|
Derived class for managing cuts. Adds all violated cuts from the storage to the relaxation and never removes any. If a new cut is reported but not violated by the current solution then it is added to storage. This manager does not check for duplicacy or any other numerical problems in cuts.