16#ifndef OR_TOOLS_SAT_LP_UTILS_H_
17#define OR_TOOLS_SAT_LP_UTILS_H_
19#include "ortools/linear_solver/linear_solver.pb.h"
21#include "ortools/sat/boolean_problem.pb.h"
22#include "ortools/sat/cp_model.pb.h"
23#include "ortools/sat/sat_parameters.pb.h"
54 MPModelProto* mp_model);
70 MPModelProto* mp_model);
78 const MPModelProto& mp_model,
79 CpModelProto* cp_model);
86 LinearBooleanProblem* problem);
90 glop::LinearProgram* lp);
103 const glop::LinearProgram& lp, SatSolver* sat_solver,
104 double max_time_in_seconds);
109 LinearBooleanProblem* problem);
bool SolveLpAndUseSolutionForSatAssignmentPreference(const glop::LinearProgram &lp, SatSolver *sat_solver, double max_time_in_seconds)
void RemoveNearZeroTerms(const SatParameters ¶ms, MPModelProto *mp_model)
void ConvertBooleanProblemToLinearProgram(const LinearBooleanProblem &problem, glop::LinearProgram *lp)
std::vector< double > DetectImpliedIntegers(bool log_info, MPModelProto *mp_model)
bool ConvertBinaryMPModelProtoToBooleanProblem(const MPModelProto &mp_model, LinearBooleanProblem *problem)
bool SolveLpAndUseIntegerVariableToStartLNS(const glop::LinearProgram &lp, LinearBooleanProblem *problem)
int FixVariablesFromSat(const SatSolver &solver, glop::LinearProgram *lp)
std::vector< double > ScaleContinuousVariables(double scaling, double max_bound, MPModelProto *mp_model)
bool ConvertMPModelProtoToCpModelProto(const SatParameters ¶ms, const MPModelProto &mp_model, CpModelProto *cp_model)
int FindRationalFactor(double x, int limit, double tolerance)
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...