Concepts
Features
Reference
GRB exposes a set of constants for numeric codes and strings used in theGurobi API. These constants cover the possible values of many methodarguments and status values that occur in gurobipy code. For example, tocreate a binary variable usingModel.addVar, you would useGRB.BINARY:
fromgurobipyimportGRB...x=model.addVar(vtype=GRB.BINARY)
To set the objective direction in a call toModel.setObjective,you would useGRB.MINIMIZE orGRB.MAXIMIZE:
model.setObjective(x+y+z,sense=GRB.MAXIMIZE)
Some constants are defined directly inGRB while others are defined inthe sub-namespacesGRB.Attr,GRB.Callback,GRB.Error,GRB.Param, andGRB.Status.
GRB constantsThe following constants are members of theGRB class. They areaccessible as, for example,GRB.LOADED.
# Status codesLOADED=1OPTIMAL=2INFEASIBLE=3INF_OR_UNBD=4UNBOUNDED=5CUTOFF=6ITERATION_LIMIT=7NODE_LIMIT=8TIME_LIMIT=9SOLUTION_LIMIT=10INTERRUPTED=11NUMERIC=12SUBOPTIMAL=13INPROGRESS=14USER_OBJ_LIMIT=15WORK_LIMIT=16MEM_LIMIT=17LOCALLY_OPTIMAL=18LOCALLY_INFEASIBLE=19# Batch status codesBATCH_CREATED=1BATCH_SUBMITTED=2BATCH_ABORTED=3BATCH_FAILED=4BATCH_COMPLETED=5# Constraint sensesLESS_EQUAL='<'GREATER_EQUAL='>'EQUAL='='# Variable typesCONTINUOUS='C'BINARY='B'INTEGER='I'SEMICONT='S'SEMIINT='N'# Objective senseMINIMIZE=1MAXIMIZE=-1# SOS typesSOS_TYPE1=1SOS_TYPE2=2# General constraint typesGENCONSTR_MAX=0GENCONSTR_MIN=1GENCONSTR_ABS=2GENCONSTR_AND=3GENCONSTR_OR=4GENCONSTR_NORM=5GENCONSTR_NL=6GENCONSTR_INDICATOR=7GENCONSTR_PWL=8GENCONSTR_POLY=9GENCONSTR_EXP=10GENCONSTR_EXPA=11GENCONSTR_LOG=12GENCONSTR_LOGA=13GENCONSTR_POW=14GENCONSTR_SIN=15GENCONSTR_COS=16GENCONSTR_TAN=17GENCONSTR_LOGISTIC=18# Operation codesOPCODE_CONSTANT=0OPCODE_VARIABLE=1OPCODE_PLUS=2OPCODE_MINUS=3OPCODE_MULTIPLY=4OPCODE_DIVIDE=5OPCODE_UMINUS=6OPCODE_SQUARE=7OPCODE_SQRT=8OPCODE_SIN=9OPCODE_COS=10OPCODE_TAN=11OPCODE_POW=12OPCODE_EXP=13OPCODE_LOG=14OPCODE_LOG2=15OPCODE_LOG10=16OPCODE_LOGISTIC=17OPCODE_TANH=18OPCODE_SIGNPOW=19# Basis statusBASIC=0NONBASIC_LOWER=-1NONBASIC_UPPER=-2SUPERBASIC=-3# Numeric constantsINFINITY=1e100UNDEFINED=1e101MAXINT=2000000000# LimitsMAX_NAMELEN=255MAX_STRLEN=512MAX_TAGLEN=10240MAX_CONCURRENT=64# Other constantsDEFAULT_CS_PORT=61000# Version numberVERSION_MAJOR=13VERSION_MINOR=0VERSION_TECHNICAL=0# ErrorsERROR_OUT_OF_MEMORY=10001ERROR_NULL_ARGUMENT=10002ERROR_INVALID_ARGUMENT=10003ERROR_UNKNOWN_ATTRIBUTE=10004ERROR_DATA_NOT_AVAILABLE=10005ERROR_INDEX_OUT_OF_RANGE=10006ERROR_UNKNOWN_PARAMETER=10007ERROR_VALUE_OUT_OF_RANGE=10008ERROR_NO_LICENSE=10009ERROR_SIZE_LIMIT_EXCEEDED=10010ERROR_CALLBACK=10011ERROR_FILE_READ=10012ERROR_FILE_WRITE=10013ERROR_NUMERIC=10014ERROR_IIS_NOT_INFEASIBLE=10015ERROR_NOT_FOR_MIP=10016ERROR_OPTIMIZATION_IN_PROGRESS=10017ERROR_DUPLICATES=10018ERROR_NODEFILE=10019ERROR_Q_NOT_PSD=10020ERROR_QCP_EQUALITY_CONSTRAINT=10021ERROR_NETWORK=10022ERROR_JOB_REJECTED=10023ERROR_NOT_SUPPORTED=10024ERROR_EXCEED_2B_NONZEROS=10025ERROR_INVALID_PIECEWISE_OBJ=10026ERROR_UPDATEMODE_CHANGE=10027ERROR_CLOUD=10028ERROR_MODEL_MODIFICATION=10029ERROR_CSWORKER=10030ERROR_TUNE_MODEL_TYPES=10031ERROR_SECURITY=10032ERROR_NOT_IN_MODEL=20001ERROR_FAILED_TO_CREATE_MODEL=20002ERROR_INTERNAL=20003# Cuts parameter valuesCUTS_AUTO=-1CUTS_OFF=0CUTS_CONSERVATIVE=1CUTS_AGGRESSIVE=2CUTS_VERYAGGRESSIVE=3# Presolve parameter valuesPRESOLVE_AUTO=-1PRESOLVE_OFF=0PRESOLVE_CONSERVATIVE=1PRESOLVE_AGGRESSIVE=2# Method parameter valuesMETHOD_NONE=-1METHOD_AUTO=-1METHOD_PRIMAL=0METHOD_DUAL=1METHOD_BARRIER=2METHOD_CONCURRENT=3METHOD_DETERMINISTIC_CONCURRENT=4METHOD_DETERMINISTIC_CONCURRENT_SIMPLEX=5METHOD_PDHG=6# BarHomogeneous parameter valuesBARHOMOGENEOUS_AUTO=-1BARHOMOGENEOUS_OFF=0BARHOMOGENEOUS_ON=1# BarOrder parameter valuesBARORDER_AUTOMATIC=-1BARORDER_AMD=0BARORDER_NESTEDDISSECTION=1# MIPFocus parameter valuesMIPFOCUS_BALANCED=0MIPFOCUS_FEASIBILITY=1MIPFOCUS_OPTIMALITY=2MIPFOCUS_BESTBOUND=3# SimplexPricing parameter valuesSIMPLEXPRICING_AUTO=-1SIMPLEXPRICING_PARTIAL=0SIMPLEXPRICING_STEEPEST_EDGE=1SIMPLEXPRICING_DEVEX=2SIMPLEXPRICING_STEEPEST_QUICK=3# VarBranch parameter valuesVARBRANCH_AUTO=-1VARBRANCH_PSEUDO_REDUCED=0VARBRANCH_PSEUDO_SHADOW=1VARBRANCH_MAX_INFEAS=2VARBRANCH_STRONG=3# Partition parameter valuesPARTITION_EARLY=16PARTITION_ROOTSTART=8PARTITION_ROOTEND=4PARTITION_NODES=2PARTITION_CLEANUP=1# Callback phase valuesPHASE_MIP_NOREL=0PHASE_MIP_SEARCH=1PHASE_MIP_IMPROVE=2# FeasRelax method parameter valuesFEASRELAX_LINEAR=0FEASRELAX_QUADRATIC=1FEASRELAX_CARDINALITY=2
The constants defined inGRB.Attr cover the names listed in theAttributes reference. They correspond to possiblevalues of theattrname argument of methods used to get or set attributes(Model.getAttr,Model.setAttr, for example). Theseconstants are simply strings, so wherever you might use them, you also havethe option of using the string directly. For example,GRB.Attr.Obj isequal to the string"Obj".
x=model.addVar()x.setAttr(GRB.Attr.PoolIgnore,1)
The constants defined inGRB.Callback cover the codes listed in theCallback Codes reference. They correspond topossible values of thewhere argument passed to the user callback duringoptimization, and values accepted by thewhat argument ofModel.cbGet to query data within the user callback.
defcallback(model,where):ifwhere==GRB.Callback.MIP:best_objective=model.cbGet(GRB.Callback.MIP_OBJBST)...
The constants defined inGRB.Error cover the codes listed in theError Codes reference. They correspond to possiblevalues ofGurobiError.errno when handlingexceptions raised by gurobipy.
try:withgp.Env()asenv:...exceptgp.GurobiErrorase:ife.errno==GRB.Error.NETWORK:...elife.errno==GRB.Error.JOB_REJECTED:...else:...
The constants defined inGRB.Param cover the names listed in theParameters reference. They correspond to possiblevalues of theparamname argument ofModel.setParam orEnv.setParam. These constants are simply strings, so wherever youmight use them, you also have the option of using the string directly. Forexample,GRB.Param.DisplayInterval is equal to the string"DisplayInterval".
model.setParam(GRB.Param.MIPGap,1e-2)
The constants defined inGRB.Status cover the codes listed in theStatus Codes reference. They correspond to values oftheStatus attribute of theModel object.
model.optimize()ifmodel.Status==GRB.Status.OPTIMAL:...elifmodel.Status==GRB.Status.INFEASIBLE:...else:...
Help and Feedback