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