14#ifndef MINOTAURRCHANDLER_H
15#define MINOTAURRCHANDLER_H
62 const DoubleVector &, ModVector &,
63 BrVarCandSet &, BrCandVector &,
bool &) {};
88 void postsolveGetX(
const double *,
UInt, DoubleVector *) {};
119 static const std::string me_;
151 double bestobj,
const double rel_obj,
double xval,
double r,
154 typedef RCHandler* RCHandlerPtr;
Define the base class Engine.
Get information about a Function.
Define abstract base class for handlers of various kinds.
Declare the base class Modification.
Declare important 'types' used in Minotaur.
Base class for describing candidates for branching on a node in branch-and-bound.
Definition: BrCand.h:32
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
Definition: Modification.h:29
Handler for reduced cost strengthening.
Definition: RCHandler.h:42
SolveStatus presolve(PreModQ *, bool *, Solution **)
Initial presolve.
Definition: RCHandler.h:79
void relaxNodeInc(NodePtr, RelaxationPtr, bool *)
Create an incremental relaxation for a node.
Definition: RCHandler.h:100
bool presolveNode(RelaxationPtr, NodePtr, SolutionPoolPtr, ModVector &, ModVector &)
Presolve the problem and its relaxation at a node.
Definition: RCHandler.h:83
bool isFeasible(ConstSolutionPtr, RelaxationPtr, bool &, double &)
Check if a solution is feasible.
Definition: RCHandler.h:75
void getBranchingCandidates(RelaxationPtr, const DoubleVector &, ModVector &, BrVarCandSet &, BrCandVector &, bool &)
find branching candidates.
Definition: RCHandler.h:61
Branches getBranches(BrCandPtr, DoubleVector &, RelaxationPtr, SolutionPoolPtr)
Base class method.
Definition: RCHandler.h:56
~RCHandler()
Destroy.
Definition: RCHandler.cpp:46
RCHandler(EnvPtr env)
Constructor.
Definition: RCHandler.cpp:31
ModificationPtr getBrMod(BrCandPtr, DoubleVector &, RelaxationPtr, BranchDirection)
Get the modifcation that creates a given (up or down) branch.
Definition: RCHandler.h:66
void writeStats(std::ostream &) const
Write statistics to ostream out.
Definition: RCHandler.cpp:237
void relaxNodeFull(NodePtr, RelaxationPtr, bool *)
Create a relaxation for a node, building from scratch.
Definition: RCHandler.h:97
void relaxInitInc(RelaxationPtr, SolutionPool *, bool *)
Create root relaxation if doing incremental node relaxations.
Definition: RCHandler.h:94
void relaxInitFull(RelaxationPtr, SolutionPool *, bool *)
Create root relaxation if doing full node relaxations.
Definition: RCHandler.h:91
std::string getName() const
Return the name of the handler.
Definition: RCHandler.cpp:211
void separate(ConstSolutionPtr sol, NodePtr node, RelaxationPtr rel, CutManager *cutman, SolutionPoolPtr s_pool, ModVector &p_mods, ModVector &q_mods, bool *sol_found, SeparationStatus *status)
add cuts to separate a given point.
Definition: RCHandler.cpp:59
Definition: Relaxation.h:53
Derived class for managing cuts. Adds all violated cuts from the storage to the relaxation and never ...
Definition: SimpleCutMan.h:30
Definition: SolutionPool.h:28
Definition: Solution.h:30
Definition: Variable.h:31
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
SolveStatus
Different states an algorithm like branch-and-bound can be in.
Definition: Types.h:158
Definition: RCHandler.h:28
size_t nub
Number of lower bound changed.
Definition: RCHandler.h:30
double time
Number of Upper Bound Changed
Definition: RCHandler.h:31