glpkConstants: Constants, Return and Status Codes of GLPK

Description Control Parameters LP/MIP problem object basis factorization control parameters simplex method control parameters interior-point solver control parameters integer optimizer control parameters additional row attributes enable/disable flag reason codes branch selection indicator return codes condition indicator MPS file format Author(s) References See Also


This is a list containing constants used by GLPK. Cunsult the glpk manual for more information, in praticular for the control parameters.

Control Parameters


MSG_LEV <- 101 Message level for terminal output (default: GLP_MSG_ALL).
METH <- 102 Simplex method option (default: GLP_PRIMAL).
PRICING <- 103 Pricing technique (default: GLP_PT_PSE).
R_TEST <- 104 Ratio test technique (default: GLP_RT_HAR).
IT_LIM <- 105 Simplex iteration limit (default: INT_MAX).
TM_LIM <- 106 Searching time limit, in milliseconds (default: INT_MAX).
OUT_FRQ <- 107 Output frequency, in iterations (default: 500).
OUT_DLY <- 108 Output delay, in milliseconds (default: 0).
PRESOLVE <- 109 LP presolver option (default: GLP_OFF).
TOL_BND <- 201 Tolerance used to check if the basic solution is primal feasible (default: 1e-7).
TOL_DJ <- 202 Tolerance used to check if the basic solution is dual feasible (default: 1e-7).
TOL_PIV <- 203 Tolerance used to choose eligble pivotal elements of the simplex table (default: 1e-10).
OBJ_LL <- 204 Lower limit of the objective function (default: -DBL_MAX).
OBJ_UL <- 205 Upper limit of the objective function (default: DBL_MAX).

The exact simplex method uses only the parameters IT_LIM and TM_LIM.


MSG_LEV <- 101 Message level for terminal output (default: GLP_MSG_ALL).
ORD_ALG <- 301 Ordering algorithm used prior to Cholesky factorization (default: GLP_ORD_AMD).


MSG_LEV <- 101 Message level for terminal output (default: GLP_MSG_ALL).
TM_LIM <- 106 Searching time limit, in milliseconds (default: INT_MAX).
OUT_FRQ <- 107 Output frequency, in iterations (default: 5000).
OUT_DLY <- 108 Output delay, in milliseconds (default: 10000).
PRESOLVE <- 109 MIP presolver option (default: GLP_OFF).
BR_TECH <- 601 Branching technique option (default: GLP_BR_DTH).
BT_TECH <- 602 Backtracking technique option (default: GLP_BT_BLB).
PP_TECH <- 603 Preprocessing technique option (default: GLP_PP_ALL).
FP_HEUR <- 604 Feasibility pump heuristic option (default: GLP_OFF).
GMI_CUTS <- 605 Gomory's mixed integer cut option (default: GLP_OFF).
MIR_CUTS <- 606 Mixed integer rounding (MIR) cut option (default: GLP_OFF).
COV_CUTS <- 607 Mixed cover cut option (default: GLP_OFF).
CLQ_CUTS <- 608 Clique cut option (default: GLP_OFF).
CB_SIZE <- 609 The number of extra (up to 256) bytes allocated for each node of the branch-and-bound tree to store application-specific data. On creating a node these bytes are initialized by binary zeros (default: 0).
BINARIZE <- 610 LP presolver option (default: GLP_OFF).
CB_FUNC <- 651 Use a user defined callback routine glpkCallback which is written in the file ‘glpkCallback.c’. This file should be edited according to the users requirements. If set to GLP_ON, the callback routine defined there is used (default: NULL).
TOL_INT <- 701 Absolute tolerance used to check if optimal solution to the current LP relaxation is integer feasible (default: 1e-5).
TOL_OBJ <- 702 Relative tolerance used to check if the objective value in optimal solution to the current LP relaxation is not better than in the best known inte- ger feasible solution (default: 1e-7).
MIP_GAP <- 703 The relative mip gap tolerance. If the relative mip gap for currently known best integer feasible solution falls below this tolerance, the solver terminates the search. This allows obtainig suboptimal integer feasible solutions if solving the problem to optimality takes too long time (default: 0.0).

Basis Factorization

TYPE <- 401 Basis factorization type (default: GLP_BF_FT).
LU_SIZE <- 402 Initial size of the Sparse Vector Area (default: 0).
PIV_LIM <- 403 computing LU-factorization of the basis matrix (default: 4).
SUHL <- 404 computing LU-factorization of the basis matrix (default: GLP_ON).
NFS_MAX <- 405 Maximal number of additional row-like factors (default: 100).
NRS_MAX <- 406 Maximal number of additional rows and columns (default: 100).
RS_SIZE <- 407 Initial size of the Sparse Vector Area (default: 0).
PIV_TOL <- 501 Threshold pivoting (Markowitz) tolerance (default: 0.10).
EPS_TOL <- 502 Epsilon tolerance (default: 1e-15).
MAX_GRO <- 503 Maximal growth of elements of factor U (default: 1e+10).
UPD_TOL <- 504 Update tolerance (default: 1e-6).

LP/MIP problem object

optimization direction flag

GLP_MIN <- 1 minimization
GLP_MAX <- 2 maximization

kind of structural variable

GLP_CV <- 1 continuous variable
GLP_IV <- 2 integer variable
GLP_BV <- 3 binary variable

type of auxiliary/structural variable

GLP_FR <- 1 free variable
GLP_LO <- 2 variable with lower bound
GLP_UP <- 3 variable with upper bound
GLP_DB <- 4 double-bounded variable
GLP_FX <- 5 fixed variable

status of auxiliary/structural variable

GLP_BS <- 1 basic variable
GLP_NL <- 2 non-basic variable on lower bound
GLP_NU <- 3 non-basic variable on upper bound
GLP_NF <- 4 non-basic free variable
GLP_NS <- 5 non-basic fixed variable

scaling options

GLP_SF_GM <- 0x01 perform geometric mean scaling
GLP_SF_EQ <- 0x10 perform equilibration scaling
GLP_SF_2N <- 0x20 round scale factors to power of two
GLP_SF_SKIP <- 0x40 skip if problem is well scaled
GLP_SF_AUTO <- 0x80 choose scaling options automatically

solution indicator

GLP_SOL <- 1 basic solution
GLP_IPT <- 2 interior-point solution
GLP_MIP <- 3 mixed integer solution

solution status

GLP_UNDEF <- 1 solution is undefined
GLP_FEAS <- 2 solution is feasible
GLP_INFEAS <- 3 solution is infeasible
GLP_NOFEAS <- 4 no feasible solution exists
GLP_OPT <- 5 solution is optimal
GLP_UNBND <- 6 solution is unbounded

basis factorization control parameters


GLP_BF_FT <- 0x01 LUF + Forrest-Tomlin
GLP_BF_BG <- 0x02 LUF + Schur compl. + Bartels-Golub
GLP_BF_GR <- 0x03 LUF + Schur compl. + Givens rotation
GLP_BF_LUF <- 0x00 plain LU-factorization
GLP_BF_BTF <- 0x10 block triangular LU-factorization

simplex method control parameters

msg_lev message level:

GLP_MSG_OFF <- 0 no output
GLP_MSG_ERR <- 1 warning and error messages only
GLP_MSG_ON <- 2 normal output
GLP_MSG_ALL <- 3 full output
GLP_MSG_DBG <- 4 debug output

meth simplex method option:

GLP_PRIMAL <- 1 use primal simplex
GLP_DUALP <- 2 use dual; if it fails, use primal
GLP_DUAL <- 3 use dual simplex

pricing pricing technique:

GLP_PT_STD <- 0x11 standard (Dantzig rule)
GLP_PT_PSE <- 0x22 projected steepest edge

r_test ratio test technique:

GLP_RT_STD <- 0x11 standard (textbook)
GLP_RT_HAR <- 0x22 two-pass Harris' ratio test

interior-point solver control parameters

ord_alg ordering algorithm:

GLP_ORD_NONE <- 0 natural (original) ordering
GLP_ORD_QMD <- 1 quotient minimum degree (QMD)
GLP_ORD_AMD <- 2 approx. minimum degree (AMD)
GLP_ORD_SYMAMD <- 3 approx. minimum degree (SYMAMD)

integer optimizer control parameters

br_tech branching technique:

GLP_BR_FFV <- 1 first fractional variable
GLP_BR_LFV <- 2 last fractional variable
GLP_BR_MFV <- 3 most fractional variable
GLP_BR_DTH <- 4 heuristic by Driebeck and Tomlin
GLP_BR_HPC <- 5 hybrid pseudocost

bt_tech backtracking technique:

GLP_BT_DFS <- 1 depth first search
GLP_BT_BFS <- 2 breadth first search
GLP_BT_BLB <- 3 best local bound
GLP_BT_BPH <- 4 best projection heuristic

pp_tech preprocessing technique:

GLP_PP_NONE <- 0 disable preprocessing
GLP_PP_ROOT <- 1 preprocessing only on root level
GLP_PP_ALL <- 2 preprocessing on all levels

additional row attributes

the row origin flag

GLP_RF_REG <- 0 regular constraint
GLP_RF_LAZY <- 1 "lazy" constraint
GLP_RF_CUT <- 2 cutting plane constraint

the row class descriptor klass

GLP_RF_GMI <- 1 Gomory's mixed integer cut
GLP_RF_MIR <- 2 mixed integer rounding cut
GLP_RF_COV <- 3 mixed cover cut
GLP_RF_CLQ <- 4 clique cut

enable/disable flag

GLP_ON <- 1 enable something
GLP_OFF <- 0 disable something

reason codes

GLP_IROWGEN <- 0x01 request for row generation
GLP_IBINGO <- 0x02 better integer solution found
GLP_IHEUR <- 0x03 request for heuristic solution
GLP_ICUTGEN <- 0x04 request for cut generation
GLP_IBRANCH <- 0x05 request for branching
GLP_ISELECT <- 0x06 request for subproblem selection
GLP_IPREPRO <- 0x07 request for preprocessing

branch selection indicator

GLP_NO_BRNCH <- 0 select no branch
GLP_DN_BRNCH <- 1 select down-branch
GLP_UP_BRNCH <- 2 select up-branch

return codes

GLP_EBADB <- 0x01 invalid basis
GLP_ESING <- 0x02 singular matrix
GLP_ECOND <- 0x03 ill-conditioned matrix
GLP_EBOUND <- 0x04 invalid bounds
GLP_EFAIL <- 0x05 solver failed
GLP_EOBJLL <- 0x06 objective lower limit reached
GLP_EOBJUL <- 0x07 objective upper limit reached
GLP_EITLIM <- 0x08 iteration limit exceeded
GLP_ETMLIM <- 0x09 time limit exceeded
GLP_ENOPFS <- 0x0A no primal feasible solution
GLP_ENODFS <- 0x0B no dual feasible solution
GLP_EROOT <- 0x0C root LP optimum not provided
GLP_ESTOP <- 0x0D search terminated by application
GLP_EMIPGAP <- 0x0E relative mip gap tolerance reached
GLP_ENOFEAS <- 0x0F no primal/dual feasible solution
GLP_ENOCVG <- 0x10 no convergence
GLP_EINSTAB <- 0x11 numerical instability
GLP_EDATA <- 0x12 invalid data
GLP_ERANGE <- 0x13 result out of range

condition indicator

GLP_KKT_PE <- 1 primal equalities
GLP_KKT_PB <- 2 primal bounds
GLP_KKT_DE <- 3 dual equalities
GLP_KKT_DB <- 4 dual bounds
GLP_KKT_CS <- 5 complementary slackness

MPS file format

GLP_MPS_DECK <- 1 fixed (ancient)
GLP_MPS_FILE <- 2 free (modern)


Gabriel Gelius-Dietrich <[email protected]>

Maintainer: Mayo Roettger <[email protected]>


Based on the package glpk by Lopaka Lee.

The GNU GLPK home page at

See Also

status_codeGLPK, return_codeGLPK

glpkAPI documentation built on Sept. 21, 2018, 6:22 p.m.