|
1 %* glpk10.tex *% |
|
2 |
|
3 \chapter{Stand-alone LP/MIP Solver} |
|
4 \label{chaglpsol} |
|
5 |
|
6 The GLPK package includes the program \verb|glpsol|, which is a |
|
7 stand-alone LP/MIP solver. This program can be invoked from the command |
|
8 line of from the shell to read LP/MIP problem data in any format |
|
9 supported by GLPK, solve the problem, and write the problem solution |
|
10 obtained to an output text file. |
|
11 |
|
12 \subsubsection*{Usage} |
|
13 |
|
14 \noindent |
|
15 \verb|glpsol| [{\it options\dots}] [{\it filename}] |
|
16 |
|
17 \subsubsection*{General options} |
|
18 |
|
19 \noindent |
|
20 \begin{tabular}{@{}p{30mm}p{92.3mm}@{}} |
|
21 \verb|--mps| & read LP/MIP problem in fixed MPS format \\ |
|
22 \verb|--freemps| & read LP/MIP problem in free MPS format (default)\\ |
|
23 \verb|--lp| & read LP/MIP problem in CPLEX LP format \\ |
|
24 \verb|--glp| & read LP/MIP problem in GLPK format \\ |
|
25 \verb|--math| & read LP/MIP model written in GNU MathProg modeling |
|
26 language \\ |
|
27 \multicolumn{2}{@{}l}{{\tt -m} {\it filename}, {\tt --model} |
|
28 {\it filename}} \\ |
|
29 & read model section and optional data section from |
|
30 {\it filename} (the same as \verb|--math|) \\ |
|
31 \multicolumn{2}{@{}l}{{\tt -d} {\it filename}, {\tt --data} |
|
32 {\it filename}} \\ |
|
33 & read data section from {\it filename} |
|
34 (for \verb|--math| only); if model file also has |
|
35 data section, that section is ignored \\ |
|
36 \multicolumn{2}{@{}l}{{\tt -y} {\it filename}, {\tt --display} |
|
37 {\it filename}} \\ |
|
38 & send display output to {\it filename} |
|
39 (for \verb|--math| only); by default the output is |
|
40 sent to \verb|stdout| \\ |
|
41 \end{tabular} |
|
42 |
|
43 \noindent |
|
44 \begin{tabular}{@{}p{30mm}p{92.3mm}@{}} |
|
45 \verb|--seed| {\it value} |
|
46 & initialize pseudo-random number generator used in |
|
47 MathProg model with specified seed (any integer); |
|
48 if the seed value is specified as \verb|?| |
|
49 (question mark), some random seed will be used\\ |
|
50 \verb|--mincost| & read min-cost flow problem in DIMACS format\\ |
|
51 \verb|--maxflow| & read maximum flow problem in DIMACS format\\ |
|
52 \verb|--simplex| & use simplex method (default) \\ |
|
53 \verb|--interior| & use interior point method (for pure LP only) \\ |
|
54 \multicolumn{2}{@{}l}{{\tt -r} {\it filename}, {\tt --read} |
|
55 {\it filename}} \\ |
|
56 & read solution from {\it filename} rather to find |
|
57 it with the solver \\ |
|
58 \verb|--min| & minimization \\ |
|
59 \verb|--max| & maximization \\ |
|
60 \verb|--scale| & scale problem (default) \\ |
|
61 \verb|--noscale| & do not scale problem \\ |
|
62 \multicolumn{2}{@{}l}{{\tt -o} {\it filename}, {\tt --output} |
|
63 {\it filename}} \\ |
|
64 & write solution to {\it filename} in printable |
|
65 format \\ |
|
66 \multicolumn{2}{@{}l}{{\tt -w} {\it filename}, {\tt --write} |
|
67 {\it filename}} \\ |
|
68 & write solution to {\it filename} in plain text |
|
69 format \\ |
|
70 \multicolumn{2}{@{}l}{{\tt --ranges} {\it filename}} \\ |
|
71 & write sensitivity analysis report to {\it filename} |
|
72 in printable format (simplex only) \\ |
|
73 \verb|--tmlim| {\it nnn} |
|
74 & limit solution time to {\it nnn} seconds |
|
75 (\verb|--tmlim 0| allows obtaining solution at |
|
76 initial point) \\ |
|
77 \verb|--memlim| {\it nnn} |
|
78 & limit available memory to {\it nnn} megabytes \\ |
|
79 \verb|--check| & do not solve problem, check input data only \\ |
|
80 \verb|--name| {\it probname} |
|
81 & change problem name to {\it probname} \\ |
|
82 \verb|--wmps| {\it filename} |
|
83 & write problem to {\it filename} in fixed MPS |
|
84 format \\ |
|
85 \multicolumn{2}{@{}l}{{\tt --wfreemps} {\it filename}} \\ |
|
86 & write problem to {\it filename} in free MPS |
|
87 format \\ |
|
88 \verb|--wlp| {\it filename} |
|
89 & write problem to {\it filename} in CPLEX LP |
|
90 format \\ |
|
91 \verb|--wglp| {\it filename} |
|
92 & write problem to {\it filename} in GLPK format \\ |
|
93 \verb|--log| {\it filename} |
|
94 & write copy of terminal output to {\it filename} \\ |
|
95 \verb|-h|, \verb|--help| |
|
96 & display this help information and exit \\ |
|
97 \verb|-v|, \verb|--version| |
|
98 & display program version and exit \\ |
|
99 \end{tabular} |
|
100 |
|
101 \subsection*{LP basis factorization options} |
|
102 |
|
103 \noindent |
|
104 \begin{tabular}{@{}p{30mm}p{92.3mm}@{}} |
|
105 \verb|--luf| & LU + Forrest--Tomlin update \\ |
|
106 & (faster, less stable; default) \\ |
|
107 \verb|--cbg| & LU + Schur complement + Bartels--Golub update \\ |
|
108 & (slower, more stable) \\ |
|
109 \verb|--cgr| & LU + Schur complement + Givens rotation update \\ |
|
110 & (slower, more stable) \\ |
|
111 \end{tabular} |
|
112 |
|
113 \subsubsection*{Options specific to the simplex solver} |
|
114 |
|
115 \noindent |
|
116 \begin{tabular}{@{}p{30mm}p{92.3mm}@{}} |
|
117 \verb|--primal| & use primal simplex (default) \\ |
|
118 \verb|--dual| & use dual simplex \\ |
|
119 \verb|--std| & use standard initial basis of all slacks \\ |
|
120 \verb|--adv| & use advanced initial basis (default) \\ |
|
121 \verb|--bib| & use Bixby's initial basis\\ |
|
122 \verb|--ini| {\it filename} |
|
123 & use as initial basis previously saved with |
|
124 \verb|-w| \\ |
|
125 & (disables LP presolver) \\ |
|
126 \verb|--steep| & use steepest edge technique (default) \\ |
|
127 \verb|--nosteep| & use standard ``textbook'' pricing \\ |
|
128 \verb|--relax| & use Harris' two-pass ratio test (default) \\ |
|
129 \verb|--norelax| & use standard ``textbook'' ratio test \\ |
|
130 \verb|--presol| & use LP presolver (default; assumes \verb|--scale| |
|
131 and \verb|--adv|) \\ |
|
132 \verb|--nopresol| & do not use LP presolver \\ |
|
133 \verb|--exact| & use simplex method based on exact arithmetic \\ |
|
134 \verb|--xcheck| & check final basis using exact arithmetic \\ |
|
135 \end{tabular} |
|
136 |
|
137 \subsubsection*{Options specific to the interior-point solver} |
|
138 |
|
139 \noindent |
|
140 \begin{tabular}{@{}p{30mm}p{92.3mm}@{}} |
|
141 \verb|--nord| & use natural (original) ordering \\ |
|
142 \verb|--qmd| & use quotient minimum degree ordering \\ |
|
143 \verb|--amd| & use approximate minimum degree ordering (default)\\ |
|
144 \verb|--symamd| & use approximate minimum degree ordering \\ |
|
145 \end{tabular} |
|
146 |
|
147 \subsubsection*{Options specific to the MIP solver} |
|
148 |
|
149 \noindent |
|
150 \begin{tabular}{@{}p{30mm}p{92.3mm}@{}} |
|
151 \verb|--nomip| & consider all integer variables as continuous |
|
152 (allows solving MIP as pure LP) \\ |
|
153 \verb|--first| & branch on first integer variable \\ |
|
154 \verb|--last| & branch on last integer variable \\ |
|
155 \verb|--mostf| & branch on most fractional variable \\ |
|
156 \end{tabular} |
|
157 |
|
158 \noindent |
|
159 \begin{tabular}{@{}p{30mm}p{92.3mm}@{}} |
|
160 \verb|--drtom| & branch using heuristic by Driebeck and Tomlin |
|
161 (default) \\ |
|
162 \verb|--pcost| & branch using hybrid pseudocost heuristic (may be |
|
163 useful for hard instances) \\ |
|
164 \verb|--dfs| & backtrack using depth first search \\ |
|
165 \verb|--bfs| & backtrack using breadth first search \\ |
|
166 \verb|--bestp| & backtrack using the best projection heuristic |
|
167 (default) \\ |
|
168 \verb|--bestb| & backtrack using node with best local bound \\ |
|
169 \verb|--intopt| & use MIP presolver (default)\\ |
|
170 \verb|--nointopt| & do not use MIP presolver\\ |
|
171 \verb|--binarize| & replace general integer variables by binary ones |
|
172 (assumes \verb|--intopt|)\\ |
|
173 \verb|--fpump| & apply feasibility pump heuristic\\ |
|
174 \verb|--gomory| & generate Gomory's mixed integer cuts\\ |
|
175 \verb|--mir| & generate MIR (mixed integer rounding) cuts\\ |
|
176 \verb|--cover| & generate mixed cover cuts\\ |
|
177 \verb|--clique| & generate clique cuts\\ |
|
178 \verb|--cuts| & generate cuts of all classes above (assumes |
|
179 \verb|--intopt|)\\ |
|
180 \verb|--mipgap| {\it tol} |
|
181 & set relative mip gap tolerance to {\it tol}\\ |
|
182 \end{tabular} |
|
183 |
|
184 \bigskip |
|
185 |
|
186 \noindent |
|
187 For description of the MPS format see Appendix \ref{champs}, |
|
188 page \pageref{champs}. |
|
189 |
|
190 \bigskip |
|
191 |
|
192 \noindent |
|
193 For description of the CPLEX LP format see Appendix \ref{chacplex}, |
|
194 page \pageref{chacplex}. |
|
195 |
|
196 \bigskip |
|
197 |
|
198 \noindent |
|
199 For description of the modeling language see the document ``Modeling |
|
200 Language GNU MathProg: Language Reference'' included in the GLPK |
|
201 distribution. |
|
202 |
|
203 \bigskip |
|
204 |
|
205 \noindent |
|
206 For description of the DIMACS min-cost flow problem format and DIMACS |
|
207 maximum flow problem format see the document ``GLPK: Graph and Network |
|
208 Routines'' included in the GLPK distribution. |
|
209 |
|
210 %* eof *% |