Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

valbranchrule.h
Go to the documentation of this file.
1 
33 #pragma once
34 
36 
37 #pragma GCC visibility push(default)
38 namespace abacus {
39 
40 
42 class ValBranchRule : public BranchRule {
43 public:
44 
46 
51  ValBranchRule(Master *master, int variable, double value)
52  : BranchRule(master), variable_(variable), value_(value) { }
53 
54 
55  virtual ~ValBranchRule() { }
56 
57 
59 
67  friend std::ostream &operator<<(std::ostream &out, const ValBranchRule &rhs);
68 
69 
71 
77  virtual int extract(Sub *sub) override;
78 
79 
81 
84  virtual void extract(LpSub *lp) override;
85 
86 
87  virtual void unExtract(LpSub *lp) override;
88 
89 
91  int variable() const {
92  return variable_;
93  }
94 
95 
97  double value() const {
98  return value_;
99  }
100 
101 
102 private:
103  int variable_;
104  double value_;
105  double oldLpLBound_;
106  double oldLpUBound_;
107 };
108 
109 }
110 #pragma GCC visibility pop
branchrule.h
Base class for branching rules.
abacus::BranchRule
Abstract base class for all branching rules.
Definition: branchrule.h:60
abacus
Definition: ILPClusterPlanarity.h:50
abacus::ValBranchRule::variable
int variable() const
Returns the number of the branching variable.
Definition: valbranchrule.h:91
abacus::ValBranchRule::oldLpLBound_
double oldLpLBound_
Definition: valbranchrule.h:105
abacus::ValBranchRule
Implements a branching rule for setting a variable to a certain value.
Definition: valbranchrule.h:42
abacus::ValBranchRule::~ValBranchRule
virtual ~ValBranchRule()
Definition: valbranchrule.h:55
abacus::ValBranchRule::oldLpUBound_
double oldLpUBound_
Definition: valbranchrule.h:106
abacus::ValBranchRule::operator<<
friend std::ostream & operator<<(std::ostream &out, const ValBranchRule &rhs)
Output operator for val branching rules.
abacus::ValBranchRule::ValBranchRule
ValBranchRule(Master *master, int variable, double value)
Creates a branching rule for setting variable to value.
Definition: valbranchrule.h:51
abacus::ValBranchRule::unExtract
virtual void unExtract(LpSub *lp) override
Should undo the modifictions of the linear programming relaxtion |lp|.
abacus::ValBranchRule::variable_
int variable_
The branching variable.
Definition: valbranchrule.h:103
abacus::ValBranchRule::value
double value() const
Returns the value of the branching variable.
Definition: valbranchrule.h:97
abacus::LpSub
The linear program of a subproblem.
Definition: lpsub.h:62
abacus::ValBranchRule::extract
virtual int extract(Sub *sub) override
Modifies a subproblem by setting the branching variable.
abacus::Sub
The subproblem.
Definition: sub.h:69
abacus::ValBranchRule::value_
double value_
The value the branching variable is set to.
Definition: valbranchrule.h:104
abacus::Master
The master of the optimization.
Definition: master.h:70