38#pragma GCC visibility push(default)
128#pragma GCC visibility pop
Base class for branching rules.
Abstract base class for all branching rules.
STATUS
The enumeration defining the different statuses of variables from the point of view of fixing and set...
@ SetToUpperBound
The variable is set to its upper bound.
The linear program of a subproblem.
The master of the optimization.
Implements a branching rule for setting a binary variable to its lower or upper bound.
double oldLpBound_
The bound of the branching variable in the LP before it is temporarily modified for testing the quali...
virtual void extract(LpSub *lp) override
Overloaded to modify directly the linear programming relaxation.
virtual void unExtract(LpSub *lp) override
Should undo the modifictions of the linear programming relaxtion |lp|.
int variable() const
Returns the number of the branching variable.
virtual int extract(Sub *sub) override
Modifies a subproblem by setting the branching variable.
SetBranchRule(Master *master, int variable, FSVarStat::STATUS status)
Creates a branching rule for setting binary variable according to status.
int variable_
The branching variable.
friend std::ostream & operator<<(std::ostream &out, const SetBranchRule &rhs)
Output operator for set branching rules.
FSVarStat::STATUS status_
The status of the branching variable.
virtual bool branchOnSetVar() override
Redefined for returning true, as this branching rule is setting a binary variable.
bool setToUpperBound() const
Returns true if the branching variable is set to the upper bound, false otherwise.
status of fixed and set variables.