summaryrefslogtreecommitdiff
path: root/glpk-5.0/doc/glpk10.tex
blob: 1943ef02e8ace41c20b717423931f749f1bfff76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
%* 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
   --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 *%