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.