14 #ifndef OR_TOOLS_GLOP_ENTERING_VARIABLE_H_
15 #define OR_TOOLS_GLOP_ENTERING_VARIABLE_H_
17 #include "absl/random/bit_gen_ref.h"
54 bool nothing_to_recompute,
const UpdateRow& update_row,
55 Fractional cost_variation, std::vector<ColIndex>* bound_flip_candidates,
56 ColIndex* entering_col);
63 bool nothing_to_recompute,
const UpdateRow& update_row,
64 Fractional cost_variation, ColIndex* entering_col);
70 std::string
StatString()
const {
return stats_.StatString(); }
83 absl::BitGenRef random_;
87 GlopParameters parameters_;
93 num_perfect_ties(
"num_perfect_ties", this) {}
102 std::vector<ColIndex> equivalent_entering_choices_;
106 struct ColWithRatio {
111 bool operator<(
const ColWithRatio& other)
const {
112 if (
ratio == other.ratio) {
114 return col > other.col;
118 return ratio > other.ratio;
127 std::vector<ColWithRatio> breakpoints_;
130 int64_t num_operations_ = 0;
EnteringVariable(const VariablesInfo &variables_info, absl::BitGenRef random, ReducedCosts *reduced_costs)
ABSL_MUST_USE_RESULT Status DualPhaseIChooseEnteringColumn(bool nothing_to_recompute, const UpdateRow &update_row, Fractional cost_variation, ColIndex *entering_col)
void SetParameters(const GlopParameters ¶meters)
double DeterministicTime() const
std::string StatString() const
ABSL_MUST_USE_RESULT Status DualChooseEnteringColumn(bool nothing_to_recompute, const UpdateRow &update_row, Fractional cost_variation, std::vector< ColIndex > *bound_flip_candidates, ColIndex *entering_col)
static double DeterministicTimeForFpOperations(int64_t n)
Collection of objects used to extend the Constraint Solver library.
Fractional coeff_magnitude