16#ifndef OR_TOOLS_SAT_LP_UTILS_H_
17#define OR_TOOLS_SAT_LP_UTILS_H_
55 MPModelProto* mp_model);
60 MPModelProto* mp_model,
61 SolverLogger* logger);
67 const MPModelProto& mp_model,
68 SolverLogger* logger);
75 SolverLogger* logger);
85 SolverLogger* logger);
93 const MPModelProto& mp_model,
94 CpModelProto* cp_model,
95 SolverLogger* logger);
109 const std::vector<std::pair<int, double>>& objective,
110 double objective_offset,
bool maximize,
111 CpModelProto* cp_model, SolverLogger* logger);
123 const CpModelProto& model_proto_with_floating_point_objective,
124 const CpObjectiveProto& integer_objective,
125 const int64_t inner_integer_objective_lower_bound);
132 LinearBooleanProblem* problem);
136 glop::LinearProgram* lp);
bool ScaleAndSetObjective(const SatParameters ¶ms, const std::vector< std::pair< int, double > > &objective, double objective_offset, bool maximize, CpModelProto *cp_model, SolverLogger *logger)
void ConvertBooleanProblemToLinearProgram(const LinearBooleanProblem &problem, glop::LinearProgram *lp)
bool ConvertBinaryMPModelProtoToBooleanProblem(const MPModelProto &mp_model, LinearBooleanProblem *problem)
void RemoveNearZeroTerms(const SatParameters ¶ms, MPModelProto *mp_model, SolverLogger *logger)
bool ConvertMPModelProtoToCpModelProto(const SatParameters ¶ms, const MPModelProto &mp_model, CpModelProto *cp_model, SolverLogger *logger)
bool MPModelProtoValidationBeforeConversion(const SatParameters ¶ms, const MPModelProto &mp_model, SolverLogger *logger)
bool MakeBoundsOfIntegerVariablesInteger(const SatParameters ¶ms, MPModelProto *mp_model, SolverLogger *logger)
double ComputeTrueObjectiveLowerBound(const CpModelProto &model_proto_with_floating_point_objective, const CpObjectiveProto &integer_objective, const int64_t inner_integer_objective_lower_bound)
std::vector< double > ScaleContinuousVariables(double scaling, double max_bound, MPModelProto *mp_model)
std::vector< double > DetectImpliedIntegers(MPModelProto *mp_model, SolverLogger *logger)
int FindRationalFactor(double x, int limit, double tolerance)
Collection of objects used to extend the Constraint Solver library.