Filter Content By
Version
Text Search
Constants
The following list contains the set of constants needed by the Gurobi
.NET interface. You would refer to them using a GRB.
prefix
(e.g., GRB.Status.OPTIMAL
).
// Model status codes (after call to optimize()) /// <summary> /// Optimization status codes /// </summary> public class Status { /// <summary> /// Model is loaded, but no solution information is available. /// </summary> public const int LOADED = 1; /// <summary> /// Model was solved to optimality (subject to tolerances) and an optimal /// solution is available. /// </summary> public const int OPTIMAL = 2; /// <summary> /// Model was proven to be infeasible. /// </summary> public const int INFEASIBLE = 3; /// <summary> /// Model was proven to be either infeasible or unbounded. /// </summary> public const int INF_OR_UNBD = 4; /// <summary> /// Model was proven to be unbounded. /// </summary> public const int UNBOUNDED = 5; /// <summary> /// Optimal objective was proven to be worse than the value specified /// in the Cutoff parameter. /// </summary> public const int CUTOFF = 6; /// <summary> /// Optimization terminated because the total number of simplex /// iterations performed exceeded the limit specified in the IterationLimit /// parameter. /// </summary> public const int ITERATION_LIMIT = 7; /// <summary> /// Optimization terminated because the total number of branch-and-cut /// nodes explored exceeded the limit specified in the NodeLimit /// parameter. /// </summary> public const int NODE_LIMIT = 8; /// <summary> /// Optimization terminated because the total elapsed time /// exceeded the limit specified in the TimeLimit parameter. /// </summary> public const int TIME_LIMIT = 9; /// <summary> /// Optimization terminated because the number of solutions found /// reached the value specified in the SolutionLimit parameter. /// </summary> public const int SOLUTION_LIMIT = 10; /// <summary> /// Optimization was terminated by the user. /// </summary> public const int INTERRUPTED = 11; /// <summary> /// Optimization was terminated due to unrecoverable numerical /// difficulties. /// </summary> public const int NUMERIC = 12; /// <summary> /// Optimization terminated with a sub-optimal solution. /// </summary> public const int SUBOPTIMAL = 13; /// <summary> /// Optimization is still in progress. /// </summary> public const int INPROGRESS = 14; /// <summary> /// User specified objective limit (a bound on either the best objective /// or the best bound), and that limit has been reached. /// </summary> public const int USER_OBJ_LIMIT = 15; } /// <summary> /// Batch status codes /// </summary> public class BatchStatus { /// <summary> /// Batch object was created, but is not ready to be scheduled. /// See the Batch Optimization section of the manual for more details. /// </summary> public const int CREATED = 1; /// <summary> /// The Batch object has been completely specified, and now is waiting /// for a job to finish processing the request. /// See the Batch Optimization section of the manual for more details. /// </summary> public const int SUBMITTED = 2; /// <summary> /// Batch processing was aborted by the user. /// See the Batch Optimization section of the manual for more details. /// </summary> public const int ABORTED = 3; /// <summary> /// Batch processing failed. /// See the Batch Optimization section of the manual for more details. /// </summary> public const int FAILED = 4; /// <summary> /// A Batch Job successfully processed the Batch request. /// See the Batch Optimization section of the manual for more details. /// </summary> public const int COMPLETED = 5; } // Version numbers /// <summary> /// Major number /// </summary> public const int VERSION_MAJOR = 9; /// <summary> /// Minor number /// </summary> public const int VERSION_MINOR = 1; /// <summary> /// Technical number /// </summary> public const int VERSION_TECHNICAL = 2; // Basis status info /// <summary> /// Variable is basic. /// </summary> public const int BASIC = 0; /// <summary> /// Variable is non-basic at lower bound. /// </summary> public const int NONBASIC_LOWER = -1; /// <summary> /// Variable is non-basic at upper bound. /// </summary> public const int NONBASIC_UPPER = -2; /// <summary> /// Variable is superbasic. /// </summary> public const int SUPERBASIC = -3; // Constraint senses public const char LESS_EQUAL = '<'; public const char GREATER_EQUAL = '>'; public const char EQUAL = '='; // Variable types public const char CONTINUOUS = 'C'; public const char BINARY = 'B'; public const char INTEGER = 'I'; public const char SEMICONT = 'S'; public const char SEMIINT = 'N'; // Objective sense public const int MINIMIZE = 1; public const int MAXIMIZE = -1; // SOS types public const int SOS_TYPE1 = 1; public const int SOS_TYPE2 = 2; // General constraint types public const int GENCONSTR_MAX = 0; public const int GENCONSTR_MIN = 1; public const int GENCONSTR_ABS = 2; public const int GENCONSTR_AND = 3; public const int GENCONSTR_OR = 4; public const int GENCONSTR_INDICATOR = 5; public const int GENCONSTR_PWL = 6; public const int GENCONSTR_POLY = 7; public const int GENCONSTR_EXP = 8; public const int GENCONSTR_EXPA = 9; public const int GENCONSTR_LOG = 10; public const int GENCONSTR_LOGA = 11; public const int GENCONSTR_POW = 12; public const int GENCONSTR_SIN = 13; public const int GENCONSTR_COS = 14; public const int GENCONSTR_TAN = 15; // Numeric constants public const double INFINITY = 1e100; public const double UNDEFINED = 1e101; public const int MAXINT = 2000000000; // Other constants public const int DEFAULT_CS_PORT = 61000; // Limits public const int MAX_STRLEN = 512; public const int MAX_NAMELEN = 255; public const int MAX_TAGLEN = 10240; public const int MAX_CONCURRENT = 64; // Callback constants /// <summary> /// Gurobi callback codes. /// </summary> public class Callback { /// <summary> /// Periodic polling callback. /// </summary> public const int POLLING = 0; /// <summary> /// Currently performing presolve. /// </summary> public const int PRESOLVE = 1; /// <summary> /// Currently in simplex. /// </summary> public const int SIMPLEX = 2; /// <summary> /// Currently in MIP. /// </summary> public const int MIP = 3; /// <summary> /// Found a new MIP incumbent. /// </summary> public const int MIPSOL = 4; /// <summary> /// Currently exploring a MIP node. /// </summary> public const int MIPNODE = 5; /// <summary> /// Currently in barrier. /// </summary> public const int BARRIER = 7; /// <summary> /// Printing a log message. /// </summary> public const int MESSAGE = 6; /// <summary> /// Currently in multi-objective optimization. /// </summary> public const int MULTIOBJ = 8; /// <summary> /// Returns the number of columns removed by presolve to this point. /// </summary> public const int PRE_COLDEL = 1000; /// <summary> /// Returns the number of rows removed by presolve to this point. /// </summary> public const int PRE_ROWDEL = 1001; /// <summary> /// Returns the number of constraint senses changed by presolve to this /// point. /// </summary> public const int PRE_SENCHG = 1002; /// <summary> /// Returns the number of bounds changed by presolve to this point. /// </summary> public const int PRE_BNDCHG = 1003; /// <summary> /// Returns the number of coefficients changed by presolve to this point. /// </summary> public const int PRE_COECHG = 1004; /// <summary> /// Returns the current simplex iteration count. /// </summary> public const int SPX_ITRCNT = 2000; /// <summary> /// Returns the current simplex objective value. /// </summary> public const int SPX_OBJVAL = 2001; /// <summary> /// Returns the current simplex primal infeasibility. /// </summary> public const int SPX_PRIMINF = 2002; /// <summary> /// Returns the current simplex dual infeasibility. /// </summary> public const int SPX_DUALINF = 2003; /// <summary> /// Returns 1 if the model has been perturbed. /// </summary> public const int SPX_ISPERT = 2004; /// <summary> /// Returns the current best objective value. /// </summary> public const int MIP_OBJBST = 3000; /// <summary> /// Returns the current best objective bound. /// </summary> public const int MIP_OBJBND = 3001; /// <summary> /// Returns the current explored node count. /// </summary> public const int MIP_NODCNT = 3002; /// <summary> /// Returns the current solution count. /// </summary> public const int MIP_SOLCNT = 3003; /// <summary> /// Returns the current cutting plane count. /// </summary> public const int MIP_CUTCNT = 3004; /// <summary> /// Returns the current unexplored node count. /// </summary> public const int MIP_NODLFT = 3005; /// <summary> /// Returns the current simplex iteration count. /// </summary> public const int MIP_ITRCNT = 3006; /// <summary> /// Returns the new solution. /// </summary> public const int MIPSOL_SOL = 4001; /// <summary> /// Returns the objective value for the new solution. /// </summary> public const int MIPSOL_OBJ = 4002; /// <summary> /// Returns the current best objective value. /// </summary> public const int MIPSOL_OBJBST = 4003; /// <summary> /// Returns the current best objective bound. /// </summary> public const int MIPSOL_OBJBND = 4004; /// <summary> /// Returns the current explored node count. /// </summary> public const int MIPSOL_NODCNT = 4005; /// <summary> /// Returns the current solution count. /// </summary> public const int MIPSOL_SOLCNT = 4006; /// <summary> /// Returns the status of the current node relaxation. /// </summary> public const int MIPNODE_STATUS = 5001; /// <summary> /// Returns the current node relaxation solution or ray. /// </summary> public const int MIPNODE_REL = 5002; /// <summary> /// Returns the current best objective value. /// </summary> public const int MIPNODE_OBJBST = 5003; /// <summary> /// Returns the current best objective bound. /// </summary> public const int MIPNODE_OBJBND = 5004; /// <summary> /// Returns the current explored node count. /// </summary> public const int MIPNODE_NODCNT = 5005; /// <summary> /// Returns the current solution count. /// </summary> public const int MIPNODE_SOLCNT = 5006; /// <summary> /// Returns the branching variable for the current node. /// </summary> public const int MIPNODE_BRVAR = 5007; /// <summary> /// Returns the current barrier iteration count. /// </summary> public const int BARRIER_ITRCNT = 7001; /// <summary> /// Returns the current barrier primal objective value. /// </summary> public const int BARRIER_PRIMOBJ = 7002; /// <summary> /// Returns the current barrier dual objective value. /// </summary> public const int BARRIER_DUALOBJ = 7003; /// <summary> /// Returns the current barrier primal infeasibility. /// </summary> public const int BARRIER_PRIMINF = 7004; /// <summary> /// Returns the current barrier dual infeasibility. /// </summary> public const int BARRIER_DUALINF = 7005; /// <summary> /// Returns the current barrier complementarity violation. /// </summary> public const int BARRIER_COMPL = 7006; /// <summary> /// Returns the message that is being printed. /// </summary> public const int MSG_STRING = 6001; /// <summary> /// Returns the elapsed solver runtime (in seconds). /// </summary> public const int RUNTIME = 6002; /// <summary> /// Returns the current objective count already optimized. /// </summary> public const int MULTIOBJ_OBJCNT = 8001; /// <summary> /// Returns the current solution count. /// </summary> public const int MULTIOBJ_SOLCNT = 8002; /// <summary> /// Returns the new solution. /// </summary> public const int MULTIOBJ_SOL = 8003; } // Errors /// <summary> /// Gurobi error codes. /// </summary> public class Error { /// <summary> /// Available memory was exhausted. /// </summary> public const int OUT_OF_MEMORY = 10001; /// <summary> /// NULL input value provided for a required argument. /// </summary> public const int NULL_ARGUMENT = 10002; /// <summary> /// Invalid input value. /// </summary> public const int INVALID_ARGUMENT = 10003; /// <summary> /// Tried to query or set an unknown attribute. /// </summary> public const int UNKNOWN_ATTRIBUTE = 10004; /// <summary> /// Tried to query or set an attribute that could not be accessed. /// </summary> public const int DATA_NOT_AVAILABLE = 10005; /// <summary> /// Index for attribute query was out of range. /// </summary> public const int INDEX_OUT_OF_RANGE = 10006; /// <summary> /// Tried to query or set an unknown parameter. /// </summary> public const int UNKNOWN_PARAMETER = 10007; /// <summary> /// Tried to set a parameter to a value that is outside its valid range. /// </summary> public const int VALUE_OUT_OF_RANGE = 10008; /// <summary> /// Failed to obtain a Gurobi license. /// </summary> public const int NO_LICENSE = 10009; /// <summary> /// Attempted to solve a model that is larger than the limit for a /// trial license. /// </summary> public const int SIZE_LIMIT_EXCEEDED = 10010; /// <summary> /// Problem in callback. /// </summary> public const int CALLBACK = 10011; /// <summary> /// Failed to read the requested file. /// </summary> public const int FILE_READ = 10012; /// <summary> /// Failed to write the requested file. /// </summary> public const int FILE_WRITE = 10013; /// <summary> /// Numerical error during requested operation. /// </summary> public const int NUMERIC = 10014; /// <summary> /// Attempted to perform infeasibility analysis on a feasible model. /// </summary> public const int IIS_NOT_INFEASIBLE = 10015; /// <summary> /// Requested operation not valid for a MIP model. /// </summary> public const int NOT_FOR_MIP = 10016; /// <summary> /// Tried to access a model while optimization was in progress. /// </summary> public const int OPTIMIZATION_IN_PROGRESS = 10017; /// <summary> /// Constraint, variable, or SOS contained duplicate indices. /// </summary> public const int DUPLICATES = 10018; /// <summary> /// Error in reading or writing a MIP node file. /// </summary> public const int NODEFILE = 10019; /// <summary> /// non-PSD Q matrix in the objective or in a quadratic constraint. /// </summary> public const int Q_NOT_PSD = 10020; /// <summary> /// Equality quadratic constraints. /// </summary> public const int QCP_EQUALITY_CONSTRAINT = 10021; /// <summary> /// Network error. /// </summary> public const int NETWORK = 10022; /// <summary> /// Job rejected from Compute Server queue. /// </summary> public const int JOB_REJECTED = 10023; /// <summary> /// Operation is not supported in the current usage environment. /// </summary> public const int NOT_SUPPORTED = 10024; /// <summary> /// Result is larger than return value allows. /// </summary> public const int EXCEED_2B_NONZEROS = 10025; /// <summary> /// Problem with piecewise-linear objective function. /// </summary> public const int INVALID_PIECEWIE_OBJ = 10026; /// <summary> /// Not allowed to change UpdateMode parameter once model /// has been created. /// </summary> public const int UPDATEMODE_CHANGE = 10027; /// <summary> /// Problem launching Instant Cloud job. /// </summary> public const int CLOUD = 10028; /// <summary> /// An error occurred during model modification or update. /// </summary> public const int MODEL_MODIFICATION = 10029; /// <summary> /// An error occured with the client-server application. /// </summary> public const int CSWORKER = 10030; /// <summary> /// Multi-model tuning invoked on models of different types. /// </summary> public const int TUNE_MODEL_TYPES = 10031; /// <summary> /// Multi-model tuning invoked on models of different types. /// </summary> public const int SECURITY = 10032; /// <summary> /// Tried to access a constraint or variable that is not in the model. /// </summary> public const int NOT_IN_MODEL = 20001; /// <summary> /// Failed to create the requested model. /// </summary> public const int FAILED_TO_CREATE_MODEL = 20002; /// <summary> /// Internal Gurobi error. /// </summary> public const int INTERNAL = 20003; } /// <summary> /// Constant for Method parameter - /// choose method automatically. /// </summary> public const int METHOD_AUTO = -1; /// <summary> /// Constant for Method and NodeMethod parameters - /// use primal simplex. /// </summary> public const int METHOD_PRIMAL = 0; /// <summary> /// Constant for Method and NodeMethod parameters - /// use dual simplex. /// </summary> public const int METHOD_DUAL = 1; /// <summary> /// Constant for Method and NodeMethod parameters - /// use barrier. /// </summary> public const int METHOD_BARRIER = 2; /// <summary> /// Constant for Method parameters - use concurrent optimizer. /// </summary> public const int METHOD_CONCURRENT = 3; /// <summary> /// Constant for Method parameter - use deterministic concurrent optimizer. /// </summary> public const int METHOD_DETERMINISTIC_CONCURRENT = 4; /// <summary> /// minimize linearly weighted sum of penalties for feasrelax model. /// </summary> public const int FEASRELAX_LINEAR = 0; /// <summary> /// minimize quadratically weighted sum of penalties for feasrelax model. /// </summary> public const int FEASRELAX_QUADRATIC = 1; /// <summary> /// minimize weighted cardinality of relaxations for feasrelax model. /// </summary> public const int FEASRELAX_CARDINALITY = 2;