The solver "xpress" uses FICO XPRESS (by FICO,
http://www.fico.com/xpress) to solve integer, mixed-integer, linear
programming, and quadratic programming problems. Normally xpress is
invoked by AMPL's solve command, which gives the invocation
xpress stub -AMPL
in which stub.nl is an AMPL generic output file (possibly written
by "ampl -obstub" or "ampl -ogstub"). After solving the problem,
xpress writes a stub.sol file for use by ampl's solve and solution
commands. When you run ampl, this all happens automatically if you
give the AMPL commands
option solver xpress;
solve;
You can control xpress by setting the environment variable xpress_options
appropriately (either by using ampl's option command, or by using the
shell's set and export commands before you invoke ampl). You can put
one or more (white-space separated) phrases in $xpress_options. For
details, invoke
xpress -=
or perhaps
xpress '-='
(depending on your shell). The output this gives is shown at the end
of this file.
When XPRESS finds the problem unbounded and a basis is available,
a ray is returned in suffix unbdd.
For problems with several integer (or binary) variable declarations,
it sometimes helps to specify branching priorities for the integer
variables. When XPRESS has a choice of which integer variable to
bound (or fix) during its branch-and-bound algorithm, it chooses
a variable with the highest priority. You can declare suffix priority
and assign individual priorities (between 0 and 2147483647) to each
integer variable.
You can also declare suffix direction and use it to convey individual
branching directions (-1 for down, 0 for no specification, or 1 for
up) for each integer variable.
----------
INSTALLING
==========
On Linux systems, libxprl.so.* and libxprs.so.* (where the values of
"*" depend on the current version of XPRESS) and the lib* files to
which they point need to appear in a directory named in
$LD_LIBRARY_PATH. File "xpress" is a very short and human-readable
shell script that sets LD_LIBRARY_PATH and invokes xpressx (the real
binary file). As distributed, "xpress" assumes that xpressx is in
/usr/local/bin and the lib* files are in /usr/local/lib. You can
easiy change these assumptions by editing the xpress shell script.
This script needs to appear somewhere in your usual search $PATH.
MacOSX systems are similar to Linux systems, but with
DYLD_LIBRARY_PATH in place of LD_LIBRARY_PATH. The xpress script
assumes the appropriate lib* files are in /usr/local/lib/x86_64 -- but
you can easily change this detail.
On MS Windows systems, xpress.exe and the relevant xprl.dll and
xprs.dll must appear somewhere in your usual search $PATH (or in the
current directory).
When obtained from netlib, "xrpess" for Linux is called xpress.linux
and "xpress" for MacOSX is called xpress.macosx.
-----------------------
solve_result_num values
=======================
Here is a table of solve_result_num values that "xpress" can return
to an AMPL session, along with the text that appears in the associated
solve_message.
Value Message
000 Optimal solution found
001 LP has been optimised
002 Global search complete
100 Objective is worse than cutoff
101 Cutoff in dual
102 Global search incomplete
200 Infeasible problem
201 Global search complete - no integer solution found
300 Unbounded problem
301 Unbounded problem with some integer variables
400 Unfinished optimisation
401 Global search incomplete - no integer solution found
500 Problem has not been loaded (should not happen)
501 LP has not been optimized (probably LP Infeasible)
502 Problem unsolved (should not happen)
510 Problem is not convex (indefinite QP)
520 Multiple SIGINTs (Control-C's) received
Additionally, for values < 200, solve_result_num is increased by 10 if
integer variables must be rounded to integer values.
---------------------------------------
Keyword listing (output of "xpress -=")
=======================================
autoperturb whether to introduce perturbations when the simplex
method encounters too many degnerate pivots:
1 = yes (default); 0 = no
backtrack choice of next node when solving MIP problems:
1 = withdrawn; formerly choice 2 until a feasible
integer solution has been found, then
Forrest-Hirst-Tomlin choice
2 = node with best estimated solution
3 = node with best bound on the solution (default)
4 = deepest node (depth-first search)
5 = highest node (breadth-first search)
6 = earliest-created node
7 = most recently created node
8 = random choice
9 = node with fewest LP relaxation infeasibilities
10 = combination of 2 and 9
11 = combination of 2 and 4
backtracktie how to break ties for the next MIP node:
same choices as for "backtrack"
barcrash choice of crash procedure for crossover:
0 = no crash
1-6 = available strategies:
1 = most conservative, 6 = most agreessive
bardualstop barrier method convergence tolerance on
dual infeasibilities (default = 1e-8)
bargapstop barrier method convergence tolerance on
the relative duality gap (default = 0)
barindeflimit maximum indefinite factorizations to tolerate in the barrier
algorithm for solving a QP: stop when the limit is hit;
default = 15
bariterlimit maximum number of Newton Barrier iterations (default 200)
barorder Cholesky factorization pivot order for barrier algorithm:
0 = automatic choice (default)
1 = minimum degree
2 = minimum local fill
3 = nested disection
baroutput amount of output for the barrier method:
0 = no output
1 = each iteration (default)
barpresolve level of barrier-specific presolve effort:
0 = use standard presolve (default)
barprimalstop barrier method convergence tolerance on
primal infeasibilities (default = 1e-8)
barrier [no assignment] use the Newton Barrier algorithm
barstart choice of starting point for barrier method:
0 = automatic choice (default)
1 = heuristics based on magnitudes of matrix entries
2 = use pseudoinverse of constraint matrix
barstepstop barrier method convergence tolerance: stop when
step size <= barstepstop (default = 1e-10)
barthreads number of threads (default 1) used in the Newton Barrier
algorithm
basisin load initial basis from specified file
basisout save final basis to specified file
bigm infeasibility penalty (default 1024)
bigmmethod 0 = phase I/II, 1 = BigM method (default)
branchchoice whether to explore branch with min. or max.
estimate first:
0 = explore branch with min. estimate first (default)
1 = explore branch with max. estimate first
2 = if an incumbent solution exists, first explore
the branch satisfied by the incumbent;
otherwise use choice 0 (min. est. first)
3 = explore the first branch that moves the branching
variable away from its value at the root node;
if the branching entity is not a simple
variable, assume branchchoice=0
branchdisj whether to branch on general split disjunctions
while solving MIPs:
-1 = automatic choice (default)
0 = disabled
1 = cautious strategy: create branches only for
general integers with a wide range
2 = moderate strategy
3 = agressive strategy: create disjunctive branches
for both binary and integer variables
branchstruct whether to search for special structure
during branch and bound:
-1 = automatic choice (default)
0 = no
1 = yes
breadthfirst number of MIP nodes included in best-first search
(default 10) before switching to local-first search
cachesize cache size in Kbytes -- relevant to Newton Barrier:
-1 = determined automatically for Intel
default = system-dependent (-1 for Intel)
choleskyalg type of Cholesky factorization used:
0 = Push (default), 1 = Pull
choleskytol zero tolerance for Cholesky pivots (default 1e-15)
in the Newton Barrier algorithm
convexitychk whether to check convexity before solving:
0 = no
1 = yes (default)
corespercpu number of cores to assume per cpu; default = -1 ==> number
detected; the cachesize is divided by this number
covercuts for MIPS, the number of rounds of lifted-cover inequalities
at the top node (default = -1 = automatic choice)
cpuplatform whether the Newton Barrier method should use AVX or
SSE2 instructions on platforms that offer both:
-1 = automatic choice (default)
0 = use generic code: neither AVX nor SSE2
1 = use SSE2
2 = use AVX
cputime which times to report when logfile is speccified:
0 = elapsed time
1 = CPU time (default)
crash type of simplex crash:
0 = none
1 = one-pass search for singletons
2 = multi-pass search for singletons (default)
3 = multi-pass search including slacks
4 = at most 10 passes, only considering slacks
at the end
n = (for n > 10) like 4, but at most n-10 passes
crossover whether to find a simplex basis after the barrier alg.:
1 = yes (default), 0 = no
cutdepth maximum MIP tree depth at which to generate cuts:
0 = no cuts
-1 = automatic choice (default)
cutfactor limit on number of cuts and cut coefficients
added while solving MIPs:
-1 = automatic choice (default)
0 = do not add cuts
> 0 ==> multiple of number of original constraints
cutfreq MIP cuts are only generated at tree depths that are integer
multiples of cutfreq; -1 = automatic choice (default)
cutselect detailed control of cuts at MIP root node:
sum of
16 = clique cuts
32 = mixed-integer founding (MIR) cuts
64 = lifted cover cuts
1024 = flow path cuts
2048 = implication cuts
4096 = automatic lift-and-project strategy
8192 = disable cutting from cut rows
16384 = lifted GUB cover cuts
-1 = all available cuts (default)
cutstrategy how aggressively to generate MIP cuts; more ==> fewer nodes
but more time per node:
-1 = automatic choice (default)
0 = no cuts
1 = conservative strategy
2 = moderate strategy
3 = aggressive strategy
defaultalg algorithm to use when none of "barrier", "dual", or "primal"
is specified:
1 = automatic choice (default)
2 = dual simplex
3 = primal simplex
4 = Newton Barrier
densecollimit number of nonzeros above which a column is treated as dense
in the barrier algorithm's Cholesky factorization:
0 = automatic choice (default)
deterministic whether a MIP search should be deterministic:
0 = no
1 = yes (default)
dual [no assignment] use the dual simplex algorithm
dualgradient dual simplex pricing strategy:
-1 = automatic choice
0 = Devex
1 = steepest edge
dualize whether the barrier algorithm should solve dual problems:
-1 = automatic choice (default)
0 = solve primal problem
1 = solve dual problem
dualstrategy how to remove infeasibilities when re-optimizing
with the dual algorithm during MIP solves:
0 = use primal algorithm
1 = use dual algorithm (default)
eigenvaltol regard the matrix in a quadratic form as indefinite if its
smallest eigvenalue is < -eigevnaltol; default = 1e-6
elimtol Markowitz tolerance for the elimination phase of
XPRESS's presolve; default = 0.001
etatol zero tolerance on eta elements; default varies with XPRESS
version; default = 1e-12 or 1e-13 with some versions.
Use etatol=? to see the current value.
feaspump whether to run the Feasibility Pump heuristic at the top
node during branch-and-bound: one of
0 = no (default)
1 = yes
2 = only if other heurstics found no integer solution
feastol zero tolerance on RHS; default = 1e-6
gomcuts gomory cuts at root: -1 = automatic choice (default)
hdive_rand value between 0 and 1 inclusive affecting randomization
in the diving heuristic: 0 (default) ==> none;
1 ==> full;
intermediate values ==> intermediate behavior
hdive_speed controls tradeoff between speed and solution quality
in the diving heuristic: an integer between -2 and 3:
-2 = automatic bias toward quality
-1 = automatic bias toward speed
0 = emphasize quality
4 = emphasize speed
1-3 = intermediate emphasis
hdive_strategy strategy for diving heuristic: integer between -1 and 10:
-1 = automatic choice (default)
0 = do not use the diving heursistic
1-10 = preset strategies for diving
heurdepth deprecated: no longer has any effect:
maximum depth of branch-and-bound tree search at which to apply
heuristics; 0 = no heuristics (default)
heureffort factor (default 1.0) affecting how much work local search
heuristics should do. Higher values cause more local
searches over larger neighborhoods
heurfreq during branch and bound, heuristics are applied at nodes
whose depth from the root is zero modulo heurfreq
(default 5)
heurmaxsol deprecated: no longer has any effect:
maximum number of heuristic solutions to find during
branch-and-bound tree search (default 10)
heurnodes deprecated: no longer has any effect:
maximum nodes at which to use heuristics during
branch-and-bound tree search (default 1000)
heurroot bit vector controlling local search heuristics to
apply at the root node: sum of
1 = large-neighborhood search: may be slow, but may
find solutions far from the incumbent
2 = small-neighborhood search about node LP solution
4 = small-neighborhood search about integer solutions
default = 2
heursearch how often the local search heurstic should be run
during branch-and-bound:
-1 = automatic choice (default)
0 = never
n > 0 ==> every n nodes
heurstrategy heuristic strategy for branch and bound: one of
-1 = automatic choice (default)
0 = no heuristics
1 = rounding heuristics (sometimes useful)
heurthreads number of threads for the root node
of branch-and-bound:
-1 = determined from "threads" keyword
0 = no separate threads (default)
n > 0 ==> use n threaeds
heurtree heuristics to apply during tree search: sum of
the same values as for heurroot; default 2
iis [no assignment] if the problem is infeasible, find an
Irreducible Independent Set of infeasible constraints
indlinbigm largest "big M" value to use in converting indicator
constraints to regular constraints;
default = 1e5
indprelinbigm largest "big M" value to use in converting indicator
constraints to regular constraints during
XPRESS presolve; default = 100.0
invertfreq maximum simplex iterations before refactoring the basis:
-1 = automatic choice (default)
invertmin minimum simplex iterations before refactoring the basis:
default = 3
keepbasis basis choice for the next LP iteration:
0 = ignore previous basis
1 = use previous basis (default)
2 = use previous basis only if the number of basic
variables == number of constraints
keepnrows 1 (default) if unconstrained rows are to be kept, else 0
lnpbest number of global infeasible entities for which to create
lift-and-project cuts during each round of Gomory cuts
at the top node (default 50)
lnpiterlimit maximum iterations for each lift-and-project cut
(default 10)
localchoice when to backtrack between two child nodes
during a "dive":
1 = (default) never backtrack from the first child
unless it is dropped (i.e., is infeasible
or cut off)
2 = always solve both nodes first
3 = automatic choice
logfile name of log file (default = no log file)
lpiterlimit simplex iteration limit (default 2147483645)
lplog frequency of printing simplex iteration log (default 100)
lpthreads number of threads in concurrent LP solves:
-1 = determine from "threads" keyword (default)
n > 0 ==> use n threads
markowitztol Markowitz tolerance used when factoring the basis matrix
(default 0.01)
matrixtol zero tolerance on matrix elements (default 1e-9)
maxcuttime maximum time (CPU seconds) to spend generating cuts
and reoptimizing (default = 0 ==> no limit)
maxiis maximum number of Irreducible Infeasible Sets to find:
-1 = no limit (default)
0 = none
maxim [no assignment] force maximization of the objective
maximise [no assignment] force maximization of the objective
maximize [no assignment] force maximization of the objective
maxlocalbt max height above current node to look
for a local backtrack candidate node; default = 1
maxlogcale max log2 of factors used in scaling; must be
>= 0 and <= 64; default 64
maxmipsol maximum number of integer solutions to find:
0 = no limit (default)
maxnode maximum number of MIP nodes to explore; default = 100000000
maxpagelines maximum output lines between page breaks in logfile
(default 23)
maxtime maximum solution time allowed (default = 0 ==> no limit)
minim [no assignment] force minimization of the objective
minimise [no assignment] force minimization of the objective
minimize [no assignment] force minimization of the objective
mipabscutoff initial MIP cutoff: ignore MIP nodes with objective values
worse than mipabscutoff; default = 1e40 for
minimization, -1e40 for maximization
mipabsstop stop MIP search if abs(MIPOBJVAL - BESTBOUND) <= mipabsstop
(default 0)
mipaddcutoff amount to add to the objective function of the best integer
solution found to give the new MIP cutoff
(default -1e-5)
miplog MIP printing level to logfile (default -100):
-n = print summary line every n MIP nodes
0 = no MIP summary lines
1 = only print a summary at the end
2 = log each solution found
3 = log each node
mipops MIP solver options: one of
0 = traditional primal first phase (default)
1 = Big M primal first phase
2 = traditional dual first
3 = Big M dual first
4 = always use artificial bounds in dual
5 = use original basis only when warmstarting
6 = skip primal bound flips for ranged primals
7 = also do single-pivot crash
8 = suppress agressive dual perturbations
mippresolve MIP presolve done at each node: sum of
1 = reduced-cost fixing
2 = logical preprocessing of binary variables
4 = probing of binary variables
default determined from constraint-matrix properties
miprelcutoff fraction of best integer solution found to add to MIP cutoff
(default 1e-4)
miprelstop stop MIP search if
abs(MIPOBJVAL - BESTBOUND) < miprelstop * abs(BESTBOUND)
(default = 0)
mipstart synonym for mipstartvalue
mipstartstatus use incoming statuses on MIP problems (default 1 = yes)
mipstartvalue whether to use the specified initial guess (if supplied)
when solving a MIP problem:
0 = no
1 = yes (default)
mipthreads number of threads to use solving mixed-integer
programming problems:
-1 = use "threads" keyword (default)
n > 0 ==> use n threads
miptol integer feasibility tolerance (default 5e-6)
network [no assignment] try to find and exploit an embedded network
nodefilebias a value between 0 and 1 (inclusive) that influences
operations when "treememlimit" (on how much of the
branch-and-bound tree should be kept in memory) has
been exceeded:
0 ==> compress every node before writing anything to
the "nodefile";
1 ==> write nodes to the "nodefile" immediately;
values between 0 and 1 give intermediate behavior.
Default = 0.5
nodeselection next MIP node control (default determined from
matrix characteristics):
1 = local first: choose among descendant and sibling
nodes if available, else from all outstanding nodes
2 = best first of all outstanding nodes
3 = local depth first: choose among descendant and
sibling nodes if available, else from deepest nodes
4 = best first for breadthfirst nodes, then local first
5 = pure depth first: choose among deepest nodes
objno objective number (0=none, 1=first...)
optimalitytol tolerance on reduced cost (default 1e-6)
outlev message level:
1 = all
2 = information
3 = warnings & errors only (default)
4 = errors
5 = none
outputtol zero tolerance on print values (default 1e-5)
penalty minimum absolute penalty variable coefficient;
default = automatic choice
perturb perturb factor if autoperturb is set to 1;
0 = default = automatic choice
pivottol zero tolerance for pivots; default = 1e-9
ppfactor partial-pricing candidate-list size factor (default 1.0)
precoefelim whether XPRESSMP's presolve should recombine constraints:
0 = no,
1 = yes, as many as possible
2 = yes, cautiously (default)
predomcol whether XPRESSMP's presolve should remove variables
when solving MIP problems:
-1 = automatic choice (default)
0 = no
1 = yes, cautiously
2 = yes, check all candidates
predomrow whether XPRESSMP's presolve should remove constraints
when solving MIP problems:
-1 = automatic choice (default)
0 = no
1 = yes, cautiously
2 = yes, medium strategy
3 = yes, check all candidates
preduprow how XPRESS's presolve should deal with duplicate rows
in MIP problems:
-1 = automatic choice (default),
0 = do not remove duplicate rows (constraints)
1 = remove duplicate rows identical in all variables
2 = like 1 but allowing simple penalty variables
3 = like 1 but allowing more complex penalty variables
preprobing how much probing on binary variables to do during
XPRESSMP's presolve:
-1 = automatic choice (default)
0 = none
1 = light probing
2 = full probing
3 = repeated full probing
presolve whether to use XPRESS's presolver:
0 = no
1 = yes, removing redundant bounds (default)
2 = yes, retaining redundant bounds
presolvemaxgrow factor by which the number of nonzero coefficients
may grow during XPRESS's presolve (default 0.1)
presolveops reductions to use in XPRESSMP's presolve:
sum of
1 = 2^0 = remove singleton columns
2 = 2^1 = remove singleton constraints (rows)
4 = 2^2 = forcing row removal (whatever that is)
8 = 2^3 = dual reductions
16 = 2^4 = redundant constraint (row) removal
32 = 2^5 = duplicate variable removal
64 = 2^6 = duplicate constraint removal
128 = 2^7 = strong dual reductions
256 = 2^8 = variable eliminations
512 = 2^9 = no IP reductions
1024 = 2^10 = no semicontinuous variable detection
2048 = 2^11 = no advanced IP reductions
16384 = 2^14 = remove linearly dependent constraints
32768 = 2^15 = no integer variable and SOS detection
default = 511 (bits 0-8 set)
pricingalg primal simplex pricing method:
-1 = partial pricing
0 = automatic choice (default)
1 = Devex pricing
primal [no assignment] use the primal simplex algorithm
primalunshift whether the primal alg. calls the dual to unshift:
0 = yes (default)
1 = no
pseudocost default pseudo-cost assumed for forcing an integer variable
to an integer value (default = 0.01)
pseudocost_ud how to update pseudocosts during branch-and-bound:
-1 = automatic choice (default)
0 = no updates
1 = use only regular branches
2 = use regular and strong branch results
3 = use results from all nodes
quadunshift whether quadratic simplex should do an extra
purification after finding a solution:
-1 = automatic choice (default)
0 = no
1 = yes
ray whether to return a ray of unboundedness in suffix .unbdd:
0 ==> no (default)
1 ==> yes, after suppressing XPRESS's presolve
2 ==> yes, without suppressing XPRESS's presolve
The last setting (ray=2) may give wrong results when
XPRESS's presolve detects infeasibility. Both ray=1
and ray=2 cause reoptimization with primal simplex if
some other algorithm was used. No ray is returned for
MIP problems.
relax [no assignment] ignore integrality
relaxtreemem fraction of memory limit by which to relax "treememlimit"
when too much structural data appears; default 0.1
relpivottol relative pivot tolerance (default 1e-6)
repairindefq whether to repair indefinite quadratic forms:
0 = yes
1 = no (default)
rootpresolve whether to presolve after root cutting and heuristics:
-1 = automatic choice (default)
0 = no
1 = yes
round whether to round integer variables to integral values before
returning the solution, and whether to report that
XPRESS returned noninteger values for integer values
(default 1): sum of
1 ==> round nonintegral integer variables
2 ==> do not modify solve_result
4 ==> do not modify solve_message
8 ==> modify even if maxerr < 1e-9
Modifications take place only if XPRESS assigned
nonintegral values to one or more integer variables,
and (for round < 8) only if the maximum deviation from
integrality exceeded 1e-9.
sbbest For MIP problems, the number of infeasible
global entities on which to perform strong branching
(default -1 = automatic)
sbeffort multiplier on strong-branching controls that
are set to "automatic"; default = 1.0
sbestimate how to compute pseudo costs from the local node
when selecting an infeasible entity to branch on:
-1 = automatic choice (default)
1-6 = particular strategies (not described)
sbiterlimit Number of dual iterations to perform the strong branching
(default 0 for none)
sbselect size of candidate list for strong branching:
-2 = low-effort automatic choice (default)
-1 = high-effort automatic choice
n >= 0 ==> include max(n, sbbest) candidates
scaling how to scale the constraint matrix before optimizing: sum of
1 = 2^0 = row scaling
2 = 2^1 = column scaling
4 = 2^2 = row scaling again
8 = 2^3 = maximum scaling
16 = 2^4 = Curtis-Reid
32 = 2^5 = scale by maximum element (rather
than by geometric mean)
128 = 2^7 = objective-function scaling
256 = 2^8 = excluding quadratic part of constraint
when calculating scaling factors
512 = 2^9 = scale before presolve
1024 = 2^10 = do not scale constraints (rows) up
2048 = 2^11 = do not scale variables up
4096 = 2^12 = do global objective function scaling
8192 = 2^13 = do right-hand side scaling
default = 163
sleeponthreadwait whether threads should sleep while awaiting work:
0 = no (busy-wait; default)
1 = yes (sleep; may add overhead)
sos whether to use explicit SOS information (default 1 = yes)
sos2 whether to tell XPRESS about SOS2 constraints for
nonconvex piecewise-linear terms (default 1 = yes)
sosreftol minimum relative gap between reference row entries
default = 1e-6
symmetry amount of effort to detect symmetry in MIP problems:
0 = none: do not attempt symmetry detection
1 = modest effort (default)
2 = agressive effort
tempbounds whether dual simplex should put temporary bounds on
unbounded variables:
-1 = automatic choice (default)
0 = no
1 = yes
threads default number of threads to use:
-1 = automatic choice (based on hardware)
n > 0 ==> use n threads
timing [no assignment] give timing statistics
trace whether to explain infeasibility:
0 = no (default)
1 = yes
treecompress level of effort at data compression when branch-and-bound
memory exceedss "treememlimit": higher ==> greater
effort (taking more time); default = 2
treecovercuts number of rounds of lifted-cover inequalities at MIP nodes
other than the top node (cf covercuts); default = 1
treecuts cuts to generate at nodes during tree search:
sum of
32 = 2^5 = clique cuts
64 = 2^6 = mixed-integer rounding (MIR) cuts
64 = 2^7 = lifted-cover cuts
2048 = 2^11 = flow-path cuts
4096 = 2^12 = implication cuts
8192 = 2^13 = lift-and-project cuts
16384 = 2^14 = disable cutting from row cuts
32768 = 2^15 = lifted GUB cover cuts
65536 = 2^16 = zero-half cuts
131072 = 2^17 = indicator cuts
default = 521983
treegomcuts number of rounds of Gomory cuts to generate at MIP nodes
other than the top node (cf covercuts); default = 1
treememlimit an integer: soft limit in megabytes on memory to use for
branch-and-bound trees. Default = 0 ==> automatic choice.
treememtarget fraction of "treememlimit" to try to recover by compression
or writing to nodefile when "treememlimit" is
exceeded. Default = 0.1
treeoutlev how much to report about branch-and-bound trees
(if allowed by outlev): sum of
1 = regular summaries
2 = report tree compression and output to nodefile
default = 3
varselection how to score the integer variables at a MIP node, for
branching on a variable with minimum score:
-1 = automatic choice (default)
1 = minimum of the 'up' and 'down' pseudo-costs
2 = 'up' pseudo-cost + 'down' pseudo-cost
3 = maximum of the 'up' and 'down' pseudo-costs plus
twice their minimum
4 = maximum of the 'up' and 'down' pseudo-costs
5 = the 'down' pseudo-cost
6 = the 'up' pseudo-cost
version Report version details before solving the problem. This is
a single-word "phrase" that does not accept a value
assignment.
wantsol=... solution report without -AMPL: sum of
1 ==> write .sol file
2 ==> print primal variable values
4 ==> print dual variable values
8 ==> do not print solution message
----------------------------------------------
Mappings of keywords to Xpress parameter names
==============================================
For the possible convenience of readers of the Xpress-Optimizer
Reference Manual, the following table shows the Xpress parameter names
associated with the above keywords.
Keyword Xpress parameter
autoperturb XPRS_AUTOPERTURB
backtrack XPRS_BACKTRACK
backtracktie XPRS_BACKTRACKTIE
barcrash XPRS_BARCRASH
bardualstop XPRS_BARDUALSTOP
bargapstop XPRS_BARGAPSTOP
barindeflimit XPRS_BARINDEFLIMIT
bariterlimit XPRS_BARITERLIMIT
barorder XPRS_BARORDER
baroutput XPRS_BAROUTPUT
barpresolve XPRS_BARPRESOLVEOPS
barprimalstop XPRS_BARPRIMALSTOP
barstart XPRS_BARSTART
barstepstop XPRS_BARSTEPSTOP
barthreads XPRS_BARTHREADS
bigm XPRS_BIGM
bigmmethod XPRS_BIGMMETHOD
branchchoice XPRS_BRANCHCHOICE
branchdisj XPRS_BRANCHDISJ
branchstruct XPRS_BRANCHSTRUCTURAL
breadthfirst XPRS_BREADTHFIRST
cachesize XPRS_CACHESIZE
choleskyalg XPRS_CHOLESKYALG
choleskytol XPRS_CHOLESKYTOL
convexitychk XPRS_IFCHECKCONVEXITY
corespercpu XPRS_CORESPERCPU
covercuts XPRS_COVERCUTS
cpuplatform XPRS_CPUPLATFORM
cputime XPRS_CPUTIME
crash XPRS_CRASH
crossover XPRS_CROSSOVER
cutdepth XPRS_CUTDEPTH
cutfactor XPRS_CUTFACTOR
cutfreq XPRS_CUTFREQ
cutselect XPRS_CUTSELECT
cutstrategy XPRS_CUTSTRATEGY
defaultalg XPRS_DEFAULTALG
degradefactor XPRS_DEGRADEFACTOR
densecollimit XPRS_DENSECOLLIMIT
deterministic XPRS_DETERMINISTIC
dualgradient XPRS_DUALGRADIENT
dualize XPRS_DUALIZE
dualstrategy XPRS_DUALSTRATEGY
eigenvaltol XPRS_EIGENVALUETOL
elimtol XPRS_ELIMTOL
etatol XPRS_ETATOL
feaspump XPRS_FEASIBILITYPUMP
feastol XPRS_FEASTOL
gomcuts XPRS_GOMCUTS
hdive_rand XPRS_HEURDIVERANDOMIZE
hdive_speed XPRS_HEURDIVESPEEDUP
hdive_strategy XPRS_HEURDIVESTRATEGY
heurdepth XPRS_HEURDEPTH
heureffort XPRS_HEURSEARCHEFFORT
heurfreq XPRS_HEURFREQ
heurmaxsol XPRS_HEURMAXSOL
heurnodes XPRS_HEURNODES
heurroot XPRS_HEURSEARCHROOTSELECT
heursearch XPRS_HEURSEARCHFREQ
heurstrategy XPRS_HEURSTRATEGY
heurthreads XPRS_HEURTHREADS
heurtree XPRS_HEURSEARCHTREESELECT
indlinbigm XPRS_INDLINBIGM
indprelinbigm XPRS_INDPRELINBIGM
invertfreq XPRS_INVERTFREQ
invertmin XPRS_INVERTMIN
keepbasis XPRS_KEEPBASIS
keepnrows XPRS_KEEPNROWS
lnpbest XPRS_LNPBEST
lnpiterlimit XPRS_LNPITERLIMIT
localchoice XPRS_LOCALCHOICE
lpiterlimit XPRS_LPITERLIMIT
lplog XPRS_LPLOG
lpthreads XPRS_LPTHREADS
markowitztol XPRS_MARKOWITZTOL
matrixtol XPRS_MATRIXTOL
maxcuttime XPRS_MAXCUTTIME
maxiis XPRS_MAXIIS
maxlocalbt XPRS_MAXLOCALBACKTRACK
maxlogcale XPRS_MAXSCALEFACTOR
maxmipsol XPRS_MAXMIPSOL
maxnode XPRS_MAXNODE
maxpagelines XPRS_MAXPAGELINES
maxslaves XPRS_MAXSLAVE
maxtime XPRS_MAXTIME
mipabscutoff XPRS_MIPABSCUTOFF
mipabsstop XPRS_MIPABSSTOP
mipaddcutoff XPRS_MIPADDCUTOFF
miplog XPRS_MIPLOG
mipops XPRS_QSIMPLEXOPS
mippresolve XPRS_MIPPRESOLVE
miprelcutoff XPRS_MIPRELCUTOFF
miprelstop XPRS_MIPRELSTOP
miptarget XPRS_MIPTARGET
mipthreads XPRS_MIPTHREADS
miptol XPRS_MIPTOL
nodefilebias XPRS_GLOBALFILEBIAS
nodeselection XPRS_NODESELECTION
optimalitytol XPRS_OPTIMALITYTOL
outputtol XPRS_OUTPUTTOL
penalty XPRS_PENALTY
perturb XPRS_PERTURB
pivottol XPRS_PIVOTTOL
ppfactor XPRS_PPFACTOR
precoefelim XPRS_PRECOEFELIM
predomcol XPRS_PREDOMCOL
predomrow XPRS_PREDOMROW
preduprow XPRS_PREDUPROW
preprobing XPRS_PREPROBING
presolve XPRS_PRESOLVE
presolvemaxgrow XPRS_PRESOLVEMAXGROW
presolveops XPRS_PRESOLVEOPS
pricingalg XPRS_PRICINGALG
primalops XPRS_PRIMALOPS
primalunshift XPRS_PRIMALUNSHIFT
pseudocost XPRS_PSEUDOCOST
pseudocost_ud XPRS_HISTORYCOSTS
quadunshift XPRS_QUADRATICUNSHIFT
relaxtreemem XPRS_RELAXTREEMEMORYLIMIT
relpivottol XPRS_RELPIVOTTOL
repairindefq XPRS_REPAIRINDEFINITEQ
rootpresolve XPRS_ROOTPRESOLVE
sbbest XPRS_SBBEST
sbeffort XPRS_SBEFFORT
sbestimate XPRS_SBESTIMATE
sbiterlimit XPRS_SBITERLIMIT
sbselect XPRS_SBSELECT
scaling XPRS_SCALING
sleeponthreadwait XPRS_SLEEPONTHREADWAIT
sosreftol XPRS_SOSREFTOL
symmetry XPRS_SYMMETRY
tempbounds XPRS_TEMPBOUNDS
threads XPRS_THREADS
trace XPRS_TRACE
treecompress XPRS_TREECOMPRESSION
treecovercuts XPRS_TREECOVERCUTS
treecuts XPRS_TREECUTSELECT
treegomcuts XPRS_TREEGOMCUTS
treememlimit XPRS_TREEMEMORYLIMIT
treememtarget XPRS_TREEMEMORYSAVINGTARGET
treeoutlev XPRS_TREEDIAGNOSTICS
varselection XPRS_VARSELECTION
*************************
If you have questions about or find bugs with this stuff,
please contact:
David M. Gay
dmg@ampl.com