194 time_limit_(model->GetOrCreate<
TimeLimit>()),
208 bool* folded =
nullptr);
216 std::string extra_info =
"");
239 int* num_new_constraints =
nullptr);
248 return constraint_infos_;
254 return lp_constraints_;
259 return expanded_lp_solution_;
262 return expanded_reduced_costs_;
271 return num_shortened_constraints_;
279 return type_to_num_cuts_;
297 const auto it = reduced_costs_map_.find(l);
298 if (it == reduced_costs_map_.end())
return 0;
299 return absl::int128(it->second.value());
307 reduced_costs_gap_ = 0;
308 reduced_costs_map_.clear();
309 reduced_costs_is_cached_ =
false;
310 reduced_cost_constraint_.CopyFrom(ct);
334 void ComputeObjectiveParallelism(ConstraintIndex ct_index);
339 void RescaleActiveCounts(
double scaling_factor);
343 void PermanentlyRemoveSomeConstraints();
346 void FillDerivedFields(ConstraintInfo* info);
353 bool current_lp_is_changed_ =
false;
356 int64_t last_simplification_timestamp_ = 0;
361 std::vector<ConstraintIndex> lp_constraints_;
368 absl::flat_hash_map<size_t, ConstraintIndex> equiv_constraints_;
371 bool reduced_costs_is_cached_ =
false;
372 absl::int128 reduced_costs_gap_ = 0;
373 absl::flat_hash_map<Literal, IntegerValue> reduced_costs_map_;
376 int64_t num_constraint_updates_ = 0;
377 int64_t num_simplifications_ = 0;
378 int64_t num_merged_constraints_ = 0;
379 int64_t num_shortened_constraints_ = 0;
380 int64_t num_split_constraints_ = 0;
381 int64_t num_coeff_strenghtening_ = 0;
383 int64_t num_cuts_ = 0;
384 int64_t num_add_cut_calls_ = 0;
385 absl::btree_map<std::string, int> type_to_num_cuts_;
387 bool objective_is_defined_ =
false;
388 bool objective_norm_computed_ =
false;
389 double objective_l2_norm_ = 0.0;
398 double sum_of_squared_objective_coeffs_ = 0.0;
399 absl::flat_hash_map<IntegerVariable, double> objective_map_;
414 double constraint_active_count_increase_ = 1.0;
416 int32_t num_deletable_constraints_ = 0;