You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
165 lines
7.1 KiB
165 lines
7.1 KiB
%* glpk10.tex *%
|
|
|
|
\chapter{Stand-alone LP/MIP Solver}
|
|
\label{chaglpsol}
|
|
|
|
The GLPK package includes the program \verb|glpsol|, which is a
|
|
stand-alone LP/MIP solver. This program can be invoked from the command
|
|
line to read LP/MIP problem data in any format supported by GLPK, solve
|
|
the problem, and write its solution to an output text file.
|
|
|
|
\para{Usage}
|
|
|
|
\verb|glpsol| [{\it options\dots}] [{\it filename}]
|
|
|
|
\para{General options}
|
|
|
|
\begin{verbatim}
|
|
--mps read LP/MIP problem in fixed MPS format
|
|
--freemps read LP/MIP problem in free MPS format (default)
|
|
--lp read LP/MIP problem in CPLEX LP format
|
|
--glp read LP/MIP problem in GLPK format
|
|
--math read LP/MIP model written in GNU MathProg modeling
|
|
language
|
|
-m filename, --model filename
|
|
read model section and optional data section from
|
|
filename (same as --math)
|
|
-d filename, --data filename
|
|
read data section from filename (for --math only);
|
|
if model file also has data section, it is ignored
|
|
-y filename, --display filename
|
|
send display output to filename (for --math only);
|
|
by default the output is sent to terminal
|
|
--seed value initialize pseudo-random number generator used in
|
|
MathProg model with specified seed (any integer);
|
|
if seed value is ?, some random seed will be used
|
|
--mincost read min-cost flow problem in DIMACS format
|
|
--maxflow read maximum flow problem in DIMACS format
|
|
--cnf read CNF-SAT problem in DIMACS format
|
|
--simplex use simplex method (default)
|
|
--interior use interior point method (LP only)
|
|
-r filename, --read filename
|
|
read solution from filename rather to find it with
|
|
the solver
|
|
--min minimization
|
|
--max maximization
|
|
--scale scale problem (default)
|
|
--noscale do not scale problem
|
|
-o filename, --output filename
|
|
write solution to filename in printable format
|
|
-w filename, --write filename
|
|
write solution to filename in plain text format
|
|
--ranges filename
|
|
write sensitivity analysis report to filename in
|
|
printable format (simplex only)
|
|
--tmlim nnn limit solution time to nnn seconds
|
|
--memlim nnn limit available memory to nnn megabytes
|
|
--check do not solve problem, check input data only
|
|
--name probname change problem name to probname
|
|
--wmps filename write problem to filename in fixed MPS format
|
|
--wfreemps filename
|
|
write problem to filename in free MPS format
|
|
--wlp filename write problem to filename in CPLEX LP format
|
|
--wglp filename write problem to filename in GLPK format
|
|
--wcnf filename write problem to filename in DIMACS CNF-SAT format
|
|
--log filename write copy of terminal output to filename
|
|
-h, --help display this help information and exit
|
|
-v, --version display program version and exit
|
|
\end{verbatim}
|
|
|
|
\para{LP basis factorization options}
|
|
|
|
\begin{verbatim}
|
|
--luf plain LU factorization (default)
|
|
--btf block triangular LU factorization
|
|
--ft Forrest-Tomlin update (requires --luf; default)
|
|
--cbg Schur complement + Bartels-Golub update
|
|
--cgr Schur complement + Givens rotation update
|
|
\end{verbatim}
|
|
|
|
\para{Options specific to the simplex solver}
|
|
|
|
\begin{verbatim}
|
|
--primal use primal simplex (default)
|
|
--dual use dual simplex
|
|
--std use standard initial basis of all slacks
|
|
--adv use advanced initial basis (default)
|
|
--bib use Bixby's initial basis
|
|
--ini filename use as initial basis previously saved with -w
|
|
(disables LP presolver)
|
|
--steep use steepest edge technique (default)
|
|
--nosteep use standard "textbook" pricing
|
|
--relax use Harris' two-pass ratio test (default)
|
|
--norelax use standard "textbook" ratio test
|
|
--presol use presolver (default; assumes --scale and --adv)
|
|
--nopresol do not use presolver
|
|
--exact use simplex method based on exact arithmetic
|
|
--xcheck check final basis using exact arithmetic
|
|
\end{verbatim}
|
|
|
|
\para{Options specific to the interior-point solver}
|
|
|
|
\begin{verbatim}
|
|
--nord use natural (original) ordering
|
|
--qmd use quotient minimum degree ordering
|
|
--amd use approximate minimum degree ordering (default)
|
|
--symamd use approximate minimum degree ordering
|
|
\end{verbatim}
|
|
|
|
\para{Options specific to the MIP solver}
|
|
|
|
\begin{verbatim}
|
|
--nomip consider all integer variables as continuous
|
|
(allows solving MIP as pure LP)
|
|
--first branch on first integer variable
|
|
--last branch on last integer variable
|
|
--mostf branch on most fractional variable
|
|
--drtom branch using heuristic by Driebeck and Tomlin
|
|
(default)
|
|
--pcost branch using hybrid pseudocost heuristic (may be
|
|
useful for hard instances)
|
|
--dfs backtrack using depth first search
|
|
--bfs backtrack using breadth first search
|
|
--bestp backtrack using the best projection heuristic
|
|
--bestb backtrack using node with best local bound
|
|
(default)
|
|
--intopt use MIP presolver (default)
|
|
--nointopt do not use MIP presolver
|
|
--binarize replace general integer variables by binary ones
|
|
(assumes --intopt)
|
|
--fpump apply feasibility pump heuristic
|
|
--proxy [nnn] apply proximity search heuristic (nnn is time limit
|
|
in seconds; default is 60)
|
|
--gomory generate Gomory's mixed integer cuts
|
|
--mir generate MIR (mixed integer rounding) cuts
|
|
--cover generate mixed cover cuts
|
|
--clique generate clique cuts
|
|
--cuts generate all cuts above
|
|
--mipgap tol set relative mip gap tolerance to tol
|
|
--minisat translate integer feasibility problem to CNF-SAT
|
|
and solve it with MiniSat solver
|
|
\end{verbatim}
|
|
|
|
\newpage
|
|
|
|
\begin{verbatim}
|
|
--objbnd bound add inequality obj <= bound (minimization) or
|
|
obj >= bound (maximization) to integer feasibility
|
|
problem (assumes --minisat)
|
|
\end{verbatim}
|
|
|
|
For description of the MPS format see Appendix \ref{champs}, page
|
|
\pageref{champs}.
|
|
|
|
For description of the CPLEX LP format see Appendix \ref{chacplex},
|
|
page \pageref{chacplex}.
|
|
|
|
For description of the modeling language see the document ``Modeling
|
|
Language GNU MathProg: Language Reference'' included in the GLPK
|
|
distribution.
|
|
|
|
For description of the DIMACS min-cost flow problem format and DIMACS
|
|
maximum flow problem format see the document ``GLPK: Graph and Network
|
|
Routines'' included in the GLPK distribution.
|
|
|
|
%* eof *%
|