1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/doc/glpk10.tex Mon Dec 06 13:09:21 2010 +0100
1.3 @@ -0,0 +1,210 @@
1.4 +%* glpk10.tex *%
1.5 +
1.6 +\chapter{Stand-alone LP/MIP Solver}
1.7 +\label{chaglpsol}
1.8 +
1.9 +The GLPK package includes the program \verb|glpsol|, which is a
1.10 +stand-alone LP/MIP solver. This program can be invoked from the command
1.11 +line of from the shell to read LP/MIP problem data in any format
1.12 +supported by GLPK, solve the problem, and write the problem solution
1.13 +obtained to an output text file.
1.14 +
1.15 +\subsubsection*{Usage}
1.16 +
1.17 +\noindent
1.18 +\verb|glpsol| [{\it options\dots}] [{\it filename}]
1.19 +
1.20 +\subsubsection*{General options}
1.21 +
1.22 +\noindent
1.23 +\begin{tabular}{@{}p{30mm}p{92.3mm}@{}}
1.24 +\verb|--mps| & read LP/MIP problem in fixed MPS format \\
1.25 +\verb|--freemps| & read LP/MIP problem in free MPS format (default)\\
1.26 +\verb|--lp| & read LP/MIP problem in CPLEX LP format \\
1.27 +\verb|--glp| & read LP/MIP problem in GLPK format \\
1.28 +\verb|--math| & read LP/MIP model written in GNU MathProg modeling
1.29 + language \\
1.30 +\multicolumn{2}{@{}l}{{\tt -m} {\it filename}, {\tt --model}
1.31 +{\it filename}} \\
1.32 + & read model section and optional data section from
1.33 + {\it filename} (the same as \verb|--math|) \\
1.34 +\multicolumn{2}{@{}l}{{\tt -d} {\it filename}, {\tt --data}
1.35 +{\it filename}} \\
1.36 + & read data section from {\it filename}
1.37 + (for \verb|--math| only); if model file also has
1.38 + data section, that section is ignored \\
1.39 +\multicolumn{2}{@{}l}{{\tt -y} {\it filename}, {\tt --display}
1.40 +{\it filename}} \\
1.41 + & send display output to {\it filename}
1.42 + (for \verb|--math| only); by default the output is
1.43 + sent to \verb|stdout| \\
1.44 +\end{tabular}
1.45 +
1.46 +\noindent
1.47 +\begin{tabular}{@{}p{30mm}p{92.3mm}@{}}
1.48 +\verb|--seed| {\it value}
1.49 + & initialize pseudo-random number generator used in
1.50 + MathProg model with specified seed (any integer);
1.51 + if the seed value is specified as \verb|?|
1.52 + (question mark), some random seed will be used\\
1.53 +\verb|--mincost| & read min-cost flow problem in DIMACS format\\
1.54 +\verb|--maxflow| & read maximum flow problem in DIMACS format\\
1.55 +\verb|--simplex| & use simplex method (default) \\
1.56 +\verb|--interior| & use interior point method (for pure LP only) \\
1.57 +\multicolumn{2}{@{}l}{{\tt -r} {\it filename}, {\tt --read}
1.58 +{\it filename}} \\
1.59 + & read solution from {\it filename} rather to find
1.60 + it with the solver \\
1.61 +\verb|--min| & minimization \\
1.62 +\verb|--max| & maximization \\
1.63 +\verb|--scale| & scale problem (default) \\
1.64 +\verb|--noscale| & do not scale problem \\
1.65 +\multicolumn{2}{@{}l}{{\tt -o} {\it filename}, {\tt --output}
1.66 +{\it filename}} \\
1.67 + & write solution to {\it filename} in printable
1.68 + format \\
1.69 +\multicolumn{2}{@{}l}{{\tt -w} {\it filename}, {\tt --write}
1.70 +{\it filename}} \\
1.71 + & write solution to {\it filename} in plain text
1.72 + format \\
1.73 +\multicolumn{2}{@{}l}{{\tt --ranges} {\it filename}} \\
1.74 + & write sensitivity analysis report to {\it filename}
1.75 + in printable format (simplex only) \\
1.76 +\verb|--tmlim| {\it nnn}
1.77 + & limit solution time to {\it nnn} seconds
1.78 + (\verb|--tmlim 0| allows obtaining solution at
1.79 + initial point) \\
1.80 +\verb|--memlim| {\it nnn}
1.81 + & limit available memory to {\it nnn} megabytes \\
1.82 +\verb|--check| & do not solve problem, check input data only \\
1.83 +\verb|--name| {\it probname}
1.84 + & change problem name to {\it probname} \\
1.85 +\verb|--wmps| {\it filename}
1.86 + & write problem to {\it filename} in fixed MPS
1.87 + format \\
1.88 +\multicolumn{2}{@{}l}{{\tt --wfreemps} {\it filename}} \\
1.89 + & write problem to {\it filename} in free MPS
1.90 + format \\
1.91 +\verb|--wlp| {\it filename}
1.92 + & write problem to {\it filename} in CPLEX LP
1.93 + format \\
1.94 +\verb|--wglp| {\it filename}
1.95 + & write problem to {\it filename} in GLPK format \\
1.96 +\verb|--log| {\it filename}
1.97 + & write copy of terminal output to {\it filename} \\
1.98 +\verb|-h|, \verb|--help|
1.99 + & display this help information and exit \\
1.100 +\verb|-v|, \verb|--version|
1.101 + & display program version and exit \\
1.102 +\end{tabular}
1.103 +
1.104 +\subsection*{LP basis factorization options}
1.105 +
1.106 +\noindent
1.107 +\begin{tabular}{@{}p{30mm}p{92.3mm}@{}}
1.108 +\verb|--luf| & LU + Forrest--Tomlin update \\
1.109 + & (faster, less stable; default) \\
1.110 +\verb|--cbg| & LU + Schur complement + Bartels--Golub update \\
1.111 + & (slower, more stable) \\
1.112 +\verb|--cgr| & LU + Schur complement + Givens rotation update \\
1.113 + & (slower, more stable) \\
1.114 +\end{tabular}
1.115 +
1.116 +\subsubsection*{Options specific to the simplex solver}
1.117 +
1.118 +\noindent
1.119 +\begin{tabular}{@{}p{30mm}p{92.3mm}@{}}
1.120 +\verb|--primal| & use primal simplex (default) \\
1.121 +\verb|--dual| & use dual simplex \\
1.122 +\verb|--std| & use standard initial basis of all slacks \\
1.123 +\verb|--adv| & use advanced initial basis (default) \\
1.124 +\verb|--bib| & use Bixby's initial basis\\
1.125 +\verb|--ini| {\it filename}
1.126 + & use as initial basis previously saved with
1.127 + \verb|-w| \\
1.128 + & (disables LP presolver) \\
1.129 +\verb|--steep| & use steepest edge technique (default) \\
1.130 +\verb|--nosteep| & use standard ``textbook'' pricing \\
1.131 +\verb|--relax| & use Harris' two-pass ratio test (default) \\
1.132 +\verb|--norelax| & use standard ``textbook'' ratio test \\
1.133 +\verb|--presol| & use LP presolver (default; assumes \verb|--scale|
1.134 + and \verb|--adv|) \\
1.135 +\verb|--nopresol| & do not use LP presolver \\
1.136 +\verb|--exact| & use simplex method based on exact arithmetic \\
1.137 +\verb|--xcheck| & check final basis using exact arithmetic \\
1.138 +\end{tabular}
1.139 +
1.140 +\subsubsection*{Options specific to the interior-point solver}
1.141 +
1.142 +\noindent
1.143 +\begin{tabular}{@{}p{30mm}p{92.3mm}@{}}
1.144 +\verb|--nord| & use natural (original) ordering \\
1.145 +\verb|--qmd| & use quotient minimum degree ordering \\
1.146 +\verb|--amd| & use approximate minimum degree ordering (default)\\
1.147 +\verb|--symamd| & use approximate minimum degree ordering \\
1.148 +\end{tabular}
1.149 +
1.150 +\subsubsection*{Options specific to the MIP solver}
1.151 +
1.152 +\noindent
1.153 +\begin{tabular}{@{}p{30mm}p{92.3mm}@{}}
1.154 +\verb|--nomip| & consider all integer variables as continuous
1.155 + (allows solving MIP as pure LP) \\
1.156 +\verb|--first| & branch on first integer variable \\
1.157 +\verb|--last| & branch on last integer variable \\
1.158 +\verb|--mostf| & branch on most fractional variable \\
1.159 +\end{tabular}
1.160 +
1.161 +\noindent
1.162 +\begin{tabular}{@{}p{30mm}p{92.3mm}@{}}
1.163 +\verb|--drtom| & branch using heuristic by Driebeck and Tomlin
1.164 + (default) \\
1.165 +\verb|--pcost| & branch using hybrid pseudocost heuristic (may be
1.166 + useful for hard instances) \\
1.167 +\verb|--dfs| & backtrack using depth first search \\
1.168 +\verb|--bfs| & backtrack using breadth first search \\
1.169 +\verb|--bestp| & backtrack using the best projection heuristic
1.170 + (default) \\
1.171 +\verb|--bestb| & backtrack using node with best local bound \\
1.172 +\verb|--intopt| & use MIP presolver (default)\\
1.173 +\verb|--nointopt| & do not use MIP presolver\\
1.174 +\verb|--binarize| & replace general integer variables by binary ones
1.175 + (assumes \verb|--intopt|)\\
1.176 +\verb|--fpump| & apply feasibility pump heuristic\\
1.177 +\verb|--gomory| & generate Gomory's mixed integer cuts\\
1.178 +\verb|--mir| & generate MIR (mixed integer rounding) cuts\\
1.179 +\verb|--cover| & generate mixed cover cuts\\
1.180 +\verb|--clique| & generate clique cuts\\
1.181 +\verb|--cuts| & generate cuts of all classes above (assumes
1.182 + \verb|--intopt|)\\
1.183 +\verb|--mipgap| {\it tol}
1.184 + & set relative mip gap tolerance to {\it tol}\\
1.185 +\end{tabular}
1.186 +
1.187 +\bigskip
1.188 +
1.189 +\noindent
1.190 +For description of the MPS format see Appendix \ref{champs},
1.191 +page \pageref{champs}.
1.192 +
1.193 +\bigskip
1.194 +
1.195 +\noindent
1.196 +For description of the CPLEX LP format see Appendix \ref{chacplex},
1.197 +page \pageref{chacplex}.
1.198 +
1.199 +\bigskip
1.200 +
1.201 +\noindent
1.202 +For description of the modeling language see the document ``Modeling
1.203 +Language GNU MathProg: Language Reference'' included in the GLPK
1.204 +distribution.
1.205 +
1.206 +\bigskip
1.207 +
1.208 +\noindent
1.209 +For description of the DIMACS min-cost flow problem format and DIMACS
1.210 +maximum flow problem format see the document ``GLPK: Graph and Network
1.211 +Routines'' included in the GLPK distribution.
1.212 +
1.213 +%* eof *%