GUROBI OPTIMIZER
REFERENCE MANUAL
Version 11.0, Copyright © 2024, Gurobi Optimization, LLC
Contents
1 Introduction 1
2 Detailed Release Notes 11 4
3 C API Overview 10
3.1 Environment Creation and Destruction . . . . . . . . . . . . . . . . . . . . . . . . . . 16
GRBloadenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
GRBemptyenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
GRBstartenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
GRBfreeenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
GRBgetconcurrentenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
GRBgetmultiobjenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
GRBdiscardconcurrentenvs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
GRBdiscardmultiobjenvs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Model Creation and Modification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
GRBloadmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
GRBnewmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
GRBcopymodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
GRBcopymodeltoenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
GRBaddconstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
GRBaddconstrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
GRBaddgenconstrXxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
GRBaddgenconstrMax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
GRBaddgenconstrMin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
GRBaddgenconstrAbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
GRBaddgenconstrAnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
GRBaddgenconstrOr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
GRBaddgenconstrNorm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
GRBaddgenconstrIndicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
GRBaddgenconstrPWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
GRBaddgenconstrPoly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
GRBaddgenconstrExp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
GRBaddgenconstrExpA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
GRBaddgenconstrLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
GRBaddgenconstrLogA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
GRBaddgenconstrLogistic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
GRBaddgenconstrPow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
GRBaddgenconstrSin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
GRBaddgenconstrCos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
i
GRBaddgenconstrTan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
GRBaddqconstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
GRBaddqpterms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
GRBaddrangeconstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
GRBaddrangeconstrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
GRBaddsos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
GRBaddvar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
GRBaddvars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
GRBchgcoeffs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
GRBdelconstrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
GRBdelgenconstrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
GRBdelq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
GRBdelqconstrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
GRBdelsos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
GRBdelvars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
GRBsetobjectiven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
GRBsetpwlobj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
GRBupdatemodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
GRBfreemodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
GRBXaddconstrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
GRBXaddrangeconstrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
GRBXaddvars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
GRBXchgcoeffs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
GRBXloadmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.3 Model Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
GRBoptimize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
GRBoptimizeasync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
GRBpresolvemodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
GRBcomputeIIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
GRBfeasrelax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
GRBfixmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
GRBreset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
GRBsync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.4 Model Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
GRBgetcoeff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
GRBgetconstrbyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
GRBgetconstrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
GRBgetenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
GRBgetgenconstrMax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
GRBgetgenconstrMin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
GRBgetgenconstrAbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
GRBgetgenconstrAnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
GRBgetgenconstrOr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
GRBgetgenconstrNorm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
GRBgetgenconstrIndicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
ii
GRBgetgenconstrPWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
GRBgetgenconstrPoly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
GRBgetgenconstrExp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
GRBgetgenconstrExpA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
GRBgetgenconstrLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
GRBgetgenconstrLogA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
GRBgetgenconstrLogistic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
GRBgetgenconstrPow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
GRBgetgenconstrSin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
GRBgetgenconstrCos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
GRBgetgenconstrTan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
GRBgetjsonsolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
GRBgetpwlobj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
GRBgetq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
GRBgetqconstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
GRBgetqconstrbyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
GRBgetsos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
GRBgetvarbyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
GRBgetvars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
GRBsinglescenariomodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
GRBXgetconstrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
GRBXgetvars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.5 Input-Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
GRBreadmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
GRBread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
GRBwrite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.6 Attribute Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
GRBgetattrinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
GRBgetintattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
GRBsetintattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
GRBgetintattrelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
GRBsetintattrelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
GRBgetintattrarray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
GRBsetintattrarray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
GRBgetintattrlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
GRBsetintattrlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
GRBgetdblattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
GRBsetdblattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
GRBgetdblattrelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
GRBsetdblattrelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
GRBgetdblattrarray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
GRBsetdblattrarray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
GRBgetdblattrlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
GRBsetdblattrlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
GRBgetcharattrelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
iii
GRBsetcharattrelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
GRBgetcharattrarray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
GRBsetcharattrarray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
GRBgetcharattrlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
GRBsetcharattrlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
GRBgetstrattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
GRBsetstrattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
GRBgetstrattrelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
GRBsetstrattrelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
GRBgetstrattrarray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
GRBsetstrattrarray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
GRBgetstrattrlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
GRBsetstrattrlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
GRBgetbatchattrinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.7 Parameter Management and Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
GRBtunemodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
GRBgettuneresult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
GRBgetdblparam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
GRBgetintparam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
GRBgetstrparam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
GRBsetdblparam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
GRBsetintparam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
GRBsetstrparam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
GRBgetdblparaminfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
GRBgetintparaminfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
GRBgetstrparaminfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
GRBreadparams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
GRBwriteparams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.8 Monitoring Progress - Logging and Callbacks . . . . . . . . . . . . . . . . . . . . . . 123
GRBmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
GRBsetcallbackfunc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
GRBgetcallbackfunc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
GRBcbget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
GRBversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.9 Modifying Solver Behavior - Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . 126
GRBcbcut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
GRBcblazy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
GRBcbsolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
GRBcbproceed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
GRBcbstoponemultiobj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
GRBterminate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
3.10 Batch Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
GRBabortbatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
GRBdiscardbatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
GRBfreebatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
iv