gurobipy.GRB#
- class GRB#
GRB
公开了一组用于 Gurobi API 中的数字代码和字符串的常量。这些常量涵盖了 gurobipy 代码中出现的许多方法参数和状态值的可能值。例如,要使用Model.addVar
创建一个二进制变量,您可以使用GRB.BINARY
:from gurobipy import GRB ... x = model.addVar(vtype=GRB.BINARY)
要在调用
Model.setObjective
时设置目标方向,你可以使用GRB.MINIMIZE
或GRB.MAXIMIZE
:model.setObjective(x + y + z, sense=GRB.MAXIMIZE)
一些常量直接在
GRB
中定义,而其他常量则在子命名空间GRB.Attr
、GRB.Callback
、GRB.Error
、GRB.Param
和GRB.Status
中定义。List of
GRB
constants以下常量是
GRB
类的成员。它们可以通过例如GRB.LOADED
来访问。# Status codes LOADED = 1 OPTIMAL = 2 INFEASIBLE = 3 INF_OR_UNBD = 4 UNBOUNDED = 5 CUTOFF = 6 ITERATION_LIMIT = 7 NODE_LIMIT = 8 TIME_LIMIT = 9 SOLUTION_LIMIT = 10 INTERRUPTED = 11 NUMERIC = 12 SUBOPTIMAL = 13 INPROGRESS = 14 USER_OBJ_LIMIT = 15 WORK_LIMIT = 16 MEM_LIMIT = 17 # Batch status codes BATCH_CREATED = 1 BATCH_SUBMITTED = 2 BATCH_ABORTED = 3 BATCH_FAILED = 4 BATCH_COMPLETED = 5 # Constraint senses LESS_EQUAL = '<' GREATER_EQUAL = '>' EQUAL = '=' # Variable types CONTINUOUS = 'C' BINARY = 'B' INTEGER = 'I' SEMICONT = 'S' SEMIINT = 'N' # Objective sense MINIMIZE = 1 MAXIMIZE = -1 # SOS types SOS_TYPE1 = 1 SOS_TYPE2 = 2 # General constraint types GENCONSTR_MAX = 0 GENCONSTR_MIN = 1 GENCONSTR_ABS = 2 GENCONSTR_AND = 3 GENCONSTR_OR = 4 GENCONSTR_NORM = 5 GENCONSTR_NL = 6 GENCONSTR_INDICATOR = 7 GENCONSTR_PWL = 8 GENCONSTR_POLY = 9 GENCONSTR_EXP = 10 GENCONSTR_EXPA = 11 GENCONSTR_LOG = 12 GENCONSTR_LOGA = 13 GENCONSTR_POW = 14 GENCONSTR_SIN = 15 GENCONSTR_COS = 16 GENCONSTR_TAN = 17 GENCONSTR_LOGISTIC = 18 # Operation codes OPCODE_CONSTANT = 0 OPCODE_VARIABLE = 1 OPCODE_PLUS = 2 OPCODE_MINUS = 3 OPCODE_MULTIPLY = 4 OPCODE_DIVIDE = 5 OPCODE_UMINUS = 6 OPCODE_SQUARE = 7 OPCODE_SQRT = 8 OPCODE_SIN = 9 OPCODE_COS = 10 OPCODE_TAN = 11 OPCODE_POW = 12 OPCODE_EXP = 13 OPCODE_LOG = 14 OPCODE_LOG2 = 15 OPCODE_LOG10 = 16 OPCODE_LOGISTIC = 17 # Basis status BASIC = 0 NONBASIC_LOWER = -1 NONBASIC_UPPER = -2 SUPERBASIC = -3 # Numeric constants INFINITY = 1e100 UNDEFINED = 1e101 MAXINT = 2000000000 # Limits MAX_NAMELEN = 255 MAX_STRLEN = 512 MAX_TAGLEN = 10240 MAX_CONCURRENT = 64 # Other constants DEFAULT_CS_PORT = 61000 # Version number VERSION_MAJOR = 12 VERSION_MINOR = 0 VERSION_TECHNICAL = 0 # Errors ERROR_OUT_OF_MEMORY = 10001 ERROR_NULL_ARGUMENT = 10002 ERROR_INVALID_ARGUMENT = 10003 ERROR_UNKNOWN_ATTRIBUTE = 10004 ERROR_DATA_NOT_AVAILABLE = 10005 ERROR_INDEX_OUT_OF_RANGE = 10006 ERROR_UNKNOWN_PARAMETER = 10007 ERROR_VALUE_OUT_OF_RANGE = 10008 ERROR_NO_LICENSE = 10009 ERROR_SIZE_LIMIT_EXCEEDED = 10010 ERROR_CALLBACK = 10011 ERROR_FILE_READ = 10012 ERROR_FILE_WRITE = 10013 ERROR_NUMERIC = 10014 ERROR_IIS_NOT_INFEASIBLE = 10015 ERROR_NOT_FOR_MIP = 10016 ERROR_OPTIMIZATION_IN_PROGRESS = 10017 ERROR_DUPLICATES = 10018 ERROR_NODEFILE = 10019 ERROR_Q_NOT_PSD = 10020 ERROR_QCP_EQUALITY_CONSTRAINT = 10021 ERROR_NETWORK = 10022 ERROR_JOB_REJECTED = 10023 ERROR_NOT_SUPPORTED = 10024 ERROR_EXCEED_2B_NONZEROS = 10025 ERROR_INVALID_PIECEWISE_OBJ = 10026 ERROR_UPDATEMODE_CHANGE = 10027 ERROR_CLOUD = 10028 ERROR_MODEL_MODIFICATION = 10029 ERROR_CSWORKER = 10030 ERROR_TUNE_MODEL_TYPES = 10031 ERROR_SECURITY = 10032 ERROR_NOT_IN_MODEL = 20001 ERROR_FAILED_TO_CREATE_MODEL = 20002 ERROR_INTERNAL = 20003 # Cuts parameter values CUTS_AUTO = -1 CUTS_OFF = 0 CUTS_CONSERVATIVE = 1 CUTS_AGGRESSIVE = 2 CUTS_VERYAGGRESSIVE = 3 # Presolve parameter values PRESOLVE_AUTO = -1 PRESOLVE_OFF = 0 PRESOLVE_CONSERVATIVE = 1 PRESOLVE_AGGRESSIVE = 2 # Method parameter values METHOD_NONE = -1 METHOD_AUTO = -1 METHOD_PRIMAL = 0 METHOD_DUAL = 1 METHOD_BARRIER = 2 METHOD_CONCURRENT = 3 METHOD_DETERMINISTIC_CONCURRENT = 4 METHOD_DETERMINISTIC_CONCURRENT_SIMPLEX = 5 # BarHomogeneous parameter values BARHOMOGENEOUS_AUTO = -1 BARHOMOGENEOUS_OFF = 0 BARHOMOGENEOUS_ON = 1 # BarOrder parameter values BARORDER_AUTOMATIC = -1 BARORDER_AMD = 0 BARORDER_NESTEDDISSECTION = 1 # MIPFocus parameter values MIPFOCUS_BALANCED = 0 MIPFOCUS_FEASIBILITY = 1 MIPFOCUS_OPTIMALITY = 2 MIPFOCUS_BESTBOUND = 3 # SimplexPricing parameter values SIMPLEXPRICING_AUTO = -1 SIMPLEXPRICING_PARTIAL = 0 SIMPLEXPRICING_STEEPEST_EDGE = 1 SIMPLEXPRICING_DEVEX = 2 SIMPLEXPRICING_STEEPEST_QUICK = 3 # VarBranch parameter values VARBRANCH_AUTO = -1 VARBRANCH_PSEUDO_REDUCED = 0 VARBRANCH_PSEUDO_SHADOW = 1 VARBRANCH_MAX_INFEAS = 2 VARBRANCH_STRONG = 3 # Partition parameter values PARTITION_EARLY = 16 PARTITION_ROOTSTART = 8 PARTITION_ROOTEND = 4 PARTITION_NODES = 2 PARTITION_CLEANUP = 1 # Callback phase values PHASE_MIP_NOREL = 0 PHASE_MIP_SEARCH = 1 PHASE_MIP_IMPROVE = 2 # FeasRelax method parameter values FEASRELAX_LINEAR = 0 FEASRELAX_QUADRATIC = 1 FEASRELAX_CARDINALITY = 2
- GRB.Attr#
在
GRB.Attr
中定义的常量涵盖了属性参考中列出的名称。它们对应于用于获取或设置属性的方法的attrname
参数的可能值(例如,Model.getAttr
,Model.setAttr
)。这些常量只是字符串,因此无论你在哪里使用它们,你也可以选择直接使用字符串。例如,GRB.Attr.Obj
等于字符串"Obj"
。- Example:
x = model.addVar() x.setAttr(GRB.Attr.PoolIgnore, 1)
- GRB.Callback#
在
GRB.Callback
中定义的常量涵盖了回调代码参考中列出的代码。它们对应于在优化期间传递给用户回调的where
参数的可能值,以及Model.cbGet
的what
参数接受的用于在用户回调中查询数据的值。- Example:
def callback(model, where): if where == GRB.Callback.MIP: best_objective = model.cbGet(GRB.Callback.MIP_OBJBST) ...
- GRB.Error#
在
GRB.Error
中定义的常量涵盖了错误代码参考中列出的代码。它们对应于处理gurobipy引发的异常时GurobiError.errno
的可能值。- Example:
try: with gp.Env() as env: ... except gp.GurobiError as e: if e.errno == GRB.Error.NETWORK: ... elif e.errno == GRB.Error.JOB_REJECTED: ... else: ...
- GRB.Param#
在
GRB.Param
中定义的常量涵盖了参数参考中列出的名称。它们对应于Model.setParam
或Env.setParam
的paramname
参数的可能值。这些常量只是字符串,因此无论你在哪里使用它们,你也可以选择直接使用字符串。例如,GRB.Param.DisplayInterval
等于字符串"DisplayInterval"
。- Example:
model.setParam(GRB.Param.MIPGap, 1e-2)