15#ifndef MINOTAURSOS1HANDLER_H
16#define MINOTAURSOS1HANDLER_H
53 bool &should_prune,
double &inf_meas);
61 ModVector & mods, BrVarCandSet &cands,
62 BrCandVector &gencands,
bool & is_inf);
89 void getNzNumSum_(
SOSPtr sos,
const DoubleVector x,
int *nz,
109 static const std::string me_;
121typedef SOS1Handler* SOS1HandlerPtr;
122typedef const SOS1Handler* ConstSOS1HandlerPtr;
Define abstract base class for handlers of various kinds.
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
Definition: Relaxation.h:53
Definition: SOS1Handler.h:27
SolveStatus presolve(PreModQ *, bool *, Solution **)
Presolve. Do not do any presolving.
Definition: SOS1Handler.h:76
Branches getBranches(BrCandPtr cand, DoubleVector &x, RelaxationPtr rel, SolutionPoolPtr s_pool)
Return branches for branching.
Definition: SOS1Handler.cpp:98
void separate(ConstSolutionPtr sol, NodePtr node, RelaxationPtr rel, CutManager *cutman, SolutionPoolPtr s_pool, ModVector &p_mods, ModVector &r_mods, bool *sol_found, SeparationStatus *status)
Empty method as we do not do any separation in SOS1.
Definition: SOS1Handler.cpp:393
~SOS1Handler()
Destroy.
Definition: SOS1Handler.cpp:54
SOS1Handler()
Default constructor.
void relaxNodeFull(NodePtr node, RelaxationPtr rel, bool *is_inf)
Create a relaxation for a node, building from scratch.
Definition: SOS1Handler.cpp:381
double getTol() const
Return the integer tolerance.
Definition: SOS1Handler.cpp:295
bool isFeasible(ConstSolutionPtr sol, RelaxationPtr relaxation, bool &should_prune, double &inf_meas)
Check if a solution is feasible.
Definition: SOS1Handler.cpp:63
void writePreStats(std::ostream &) const
Does nothing.
Definition: SOS1Handler.h:93
std::string getName() const
Return the name of the handler.
Definition: SOS1Handler.cpp:272
void postsolveGetX(const double *, UInt, DoubleVector *)
Does nothing.
void getBranchingCandidates(RelaxationPtr rel, const DoubleVector &x, ModVector &mods, BrVarCandSet &cands, BrCandVector &gencands, bool &is_inf)
find branching candidates.
Definition: SOS1Handler.cpp:163
void relaxInitInc(RelaxationPtr rel, SolutionPool *sp, bool *is_inf)
Create root relaxation if doing incremental node relaxations.
Definition: SOS1Handler.cpp:375
bool isNeeded()
Return true if this handler is needed for the problem.
Definition: SOS1Handler.cpp:349
void relaxInitFull(RelaxationPtr rel, SolutionPool *sp, bool *is_inf)
Create root relaxation if doing full node relaxations.
Definition: SOS1Handler.cpp:369
void relaxNodeInc(NodePtr node, RelaxationPtr rel, bool *is_inf)
Create an incremental relaxation for a node.
Definition: SOS1Handler.cpp:387
void setTol(double tol)
Set the integer tolerance.
Definition: SOS1Handler.cpp:401
bool presolveNode(RelaxationPtr, NodePtr, SolutionPoolPtr, ModVector &, ModVector &)
Does nothing.
Definition: SOS1Handler.h:82
ModificationPtr getBrMod(BrCandPtr cand, DoubleVector &x, RelaxationPtr rel, BranchDirection dir)
Get the modifcation that creates a given (up or down) branch.
Definition: SOS1Handler.cpp:248
Definition: SolutionPool.h:28
Definition: Solution.h:30
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