 |
OR-Tools
8.0
|
Go to the documentation of this file.
18 #include "absl/status/status.h"
19 #include "absl/strings/match.h"
20 #include "absl/strings/str_cat.h"
21 #include "absl/strings/str_format.h"
27 constexpr
int GRB_OK = 0;
28 const char kGurobiEnvErrorMsg[] =
29 "Could not load Gurobi environment. Is gurobi correctly installed and "
30 "licensed on this machine?";
32 if (
GRBloadenv(env,
nullptr) != 0 || *env ==
nullptr) {
33 return absl::FailedPreconditionError(
34 absl::StrFormat(
"%s %s", kGurobiEnvErrorMsg,
GRBgeterrormsg(*env)));
36 return absl::OkStatus();
39 std::function<int(
GRBmodel *,
int,
int *,
double *,
double,
double,
42 std::function<int(
GRBmodel *,
int,
int,
int *,
int *,
double *,
double *,
43 double *,
double *,
char *,
char **)>
47 std::function<int(
GRBmodel *,
const char *,
int,
char *)>
50 std::function<int(
GRBmodel *,
const char *,
int,
int,
double *)>
52 std::function<int(
GRBmodel *,
const char *,
int,
double *)>
61 std::function<int(
GRBenv *,
GRBmodel **,
const char *,
int numvars,
double *,
62 double *,
double *,
char *,
char **)>
77 std::function<void(
int *,
int *,
int *)>
GRBversion =
nullptr;
79 std::function<int(
void *cbdata,
int where,
int what,
void *resultP)>
GRBcbget =
81 std::function<int(
void *cbdata,
int cutlen,
const int *cutind,
82 const double *cutval,
char cutsense,
double cutrhs)>
84 std::function<int(
void *cbdata,
int lazylen,
const int *lazyind,
85 const double *lazyval,
char lazysense,
double lazyrhs)>
87 std::function<int(
void *cbdata,
const double *solution,
double *objvalP)>
89 std::function<int(
GRBmodel *
model,
int numnz,
int *cind,
double *cval,
90 char sense,
double rhs,
const char *constrname)>
93 int nvars,
const int *vars,
const double *vals,
char sense,
96 std::function<int(
GRBmodel *
model,
const char *attrname,
int element,
101 std::function<int(
GRBenv *env,
const char *paramname,
const char *
value)>
103 std::function<int(
GRBmodel *
model,
int numsos,
int nummembers,
int *types,
104 int *beg,
int *ind,
double *
weight)>
106 std::function<int(
GRBmodel *
model,
int numlnz,
int *lind,
double *lval,
107 int numqnz,
int *qrow,
int *qcol,
double *qval,
char sense,
108 double rhs,
const char *QCname)>
111 const int *vars,
double constant)>
114 const int *vars,
double constant)>
124 std::function<int(
GRBmodel *
model,
int numqnz,
int *qrow,
int *qcol,
196 VLOG(1) <<
"Try to load from " << full_library_path;
201 const char* gurobi_home_from_env = getenv(
"GUROBI_HOME");
202 #if defined(_MSC_VER) // Windows
207 if (gurobi_home_from_env !=
nullptr &&
209 absl::StrCat(gurobi_home_from_env,
"\\bin\\gurobi90.dll"))) {
213 "C:\\Program Files\\gurobi902\\win64\\bin\\gurobi90.dll")) {
216 #elif defined(__APPLE__) // OS X
221 if (gurobi_home_from_env !=
nullptr &&
223 absl::StrCat(gurobi_home_from_env,
"/lib/libgurobi90.dylib"))) {
227 "/Library/gurobi902/mac64/lib/libgurobi90.dylib")) {
230 #elif defined(__GNUC__) // Linux
231 if (gurobi_home_from_env !=
nullptr &&
233 absl::StrCat(gurobi_home_from_env,
"/lib/libgurobi90.so"))) {
264 bool MPSolver::GurobiIsCorrectlyInstalled() {
267 if (
GRBloadenv(&env,
nullptr) != 0 || env ==
nullptr)
return false;
std::function< int(GRBmodel *model, const char *name, int binvar, int binval, int nvars, const int *vars, const double *vals, char sense, double rhs)> GRBaddgenconstrIndicator
std::function< int(GRBenv **, const char *)> GRBloadenv
std::function< int(GRBmodel *model, int(STDCALL *cb)(CB_ARGS), void *usrdata)> GRBsetcallbackfunc
std::function< int(GRBenv *, const char *, int)> GRBsetintparam
std::function< int(void *cbdata, int where, int what, void *resultP)> GRBcbget
std::function< int(void *cbdata, int lazylen, const int *lazyind, const double *lazyval, char lazysense, double lazyrhs)> GRBcblazy
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
std::function< char *(GRBenv *)> GRBgeterrormsg
bool LoadSpecificGurobiLibrary(const std::string &full_library_path)
absl::Status LoadGurobiEnvironment(GRBenv **env)
std::function< int(GRBmodel *model, const char *name, int resvar, int nvars, const int *vars)> GRBaddgenconstrAnd
std::function< int(GRBmodel *model, const char *name, int resvar, int argvar)> GRBaddgenconstrAbs
std::function< int(GRBmodel *, const char *)> GRBwrite
std::function< int(GRBenv *, const char *)> GRBreadparams
std::function< int(GRBenv *, const char *, double *)> GRBgetdblparam
static void SetGurobiLibraryPath(const std::string &full_library_path)
std::function< int(GRBenv *env, const char *paramname, const char *value)> GRBsetparam
std::function< int(GRBmodel *, const char *, double *)> GRBgetdblattr
std::function< int(GRBmodel *)> GRBfreemodel
std::function< int(GRBenv *, GRBmodel **, const char *, int numvars, double *, double *, double *, char *, char **)> GRBnewmodel
std::function< int(GRBmodel *, const char *, int)> GRBsetintattr
std::function< int(GRBenv *)> GRBresetparams
std::function< int(GRBmodel *, const char *, int, int, double *)> GRBgetdblattrarray
std::function< int(void *cbdata, int cutlen, const int *cutind, const double *cutval, char cutsense, double cutrhs)> GRBcbcut
std::function< int(GRBmodel *model, const char *name, int resvar, int nvars, const int *vars, double constant)> GRBaddgenconstrMax
std::function< int(GRBmodel *model, const char *attrname, int element, int newvalue)> GRBsetintattrelement
std::function< int(GRBmodel *, const char *, int, char)> GRBsetcharattrelement
bool SearchForGurobiDynamicLibrary()
std::function< int(GRBmodel *, const char *, int, double)> GRBsetdblattrelement
static bool LoadGurobiSharedLibrary()
std::function< void(int *, int *, int *)> GRBversion
std::function< int(GRBmodel *, const char *, double)> GRBsetdblattr
std::function< int(GRBmodel *model, int numsos, int nummembers, int *types, int *beg, int *ind, double *weight)> GRBaddsos
std::function< int(GRBmodel *, int, int *, double *, double, double, const char *)> GRBaddrangeconstr
std::function< int(void *cbdata, const double *solution, double *objvalP)> GRBcbsolution
std::function< int(GRBmodel *, const char *, int *)> GRBgetintattr
std::function< int(GRBmodel *model, const char *name, int resvar, int nvars, const int *vars, double constant)> GRBaddgenconstrMin
void LoadGurobiFunctions()
std::function< int(GRBmodel *)> GRBoptimize
std::function< int(GRBmodel *model, int numlnz, int *lind, double *lval, int numqnz, int *qrow, int *qcol, double *qval, char sense, double rhs, const char *QCname)> GRBaddqconstr
std::function< int(GRBmodel *model, const char *name, int resvar, int nvars, const int *vars)> GRBaddgenconstrOr
std::function< int(GRBmodel *model, int numqnz, int *qrow, int *qcol, double *qval)> GRBaddqpterms
std::function< GRBenv *(GRBmodel *)> GRBgetenv
std::function< int(GRBmodel *)> GRBupdatemodel
std::function< int(GRBmodel *, const char *, int, char *)> GRBgetcharattrelement
struct _GRBmodel GRBmodel
std::function< int(GRBenv *, const char *, double)> GRBsetdblparam
std::function< int(GRBmodel *, const char *, int, double *)> GRBgetdblattrelement
std::function< int(GRBmodel *, const char *, int, int *)> GRBgetintattrelement
std::function< void(GRBmodel *)> GRBterminate
std::function< void(GRBenv *)> GRBfreeenv
std::function< int(GRBmodel *model, int numnz, int *cind, double *cval, char sense, double rhs, const char *constrname)> GRBaddconstr
std::unique_ptr< DynamicLibrary > gurobi_dynamic_library
std::function< int(GRBmodel *, int, int, int *, int *, double *, double *, double *, double *, char *, char **)> GRBaddvars
std::string gurobi_library_path