62 double GetCost(IntegerVariable var)
const {
63 CHECK_LT(var, pseudo_costs_.size());
64 return pseudo_costs_[var].CurrentAverage();
70 CHECK_LT(var, pseudo_costs_.size());
71 return pseudo_costs_[var].NumRecords();
75 double CombineScores(
double down_branch,
double up_branch)
const;
91 absl::Span<const double> lp_values);
96 IntegerValue objective_increase);
107 return bound_changes_;
112 struct ObjectiveInfo {
113 std::string DebugString()
const;
117 double lp_bound = -std::numeric_limits<double>::infinity();
118 bool lp_at_optimal =
false;
120 ObjectiveInfo GetCurrentObjectiveInfo();
123 const SatParameters& parameters_;
124 IntegerTrail* integer_trail_;
125 IntegerEncoder* encoder_;
126 ModelLpValues* lp_values_;
127 LinearProgrammingConstraintCollection* lps_;
131 ObjectiveInfo saved_info_;
132 std::vector<VariableBoundChange> bound_changes_;
135 std::vector<IntegerVariable> relevant_variables_;
142 average_unit_objective_increase_;