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 *% |
---|