Xpress offers proven optimization technology for large-scale applications, with out-of-the-box high performance on a wide range of model types. Its ultra-efficient sparse matrix handling and on-the-fly data compression address the largest problems, with reliable performance even on numerically difficult or unstable problems. The framework used by the drivers supports automatic reformulation for many expression types; the relative guide can be found here.
This package contains an all-new Xpress driver, that provides significantly extended modeling support for logical and nonlinear operators through linearizations performed by the MP library. For compatibility, there are two binaries in this package:
xpress [options] is the new version,
xpressasl [options] is the legacy version. If you are upgrading an existing installation and encounter any issues with the new version please report them to firstname.lastname@example.org.
How to use it¶
ampl: option solver xpress; # change the solver ampl: option xpress_options 'option1=value1 option2=value2'; # specify options ampl: solve; # solve the problem
At a glance¶
LP, QP, QCP
MIP, MIQP, MIQCP
min / max
and / or
Features for all models:
Features for MIP models:
Full list of solver options:
Many solver parameters can be changed directly from AMPL, by specifying them as a space separated string in the option
A list of all supported options is available here or can be obtained by executing the solver driver with the
-= command line parameter:
or from AMPL:
shell "xpress -=";
Solver options can have multiple aliases, to accomodate for different user types.
The main numenclature is given first in the -= output, then followed by aliases in brackets,
see for example the listing for
lim:time (timelim, timelimit) Limit on solve time (in seconds; default: no limit).
The main numenclature contains a prefix (
lim: in this case) to help categorize and find the
options relevant to a context. To list only the options with a specific prefix (
lim: for this example),
Specifying solver options and solving a model¶
After formulating the model in AMPL, execute the following to select gurobi as solver and pass the two options:
option solver xpress; option xpress_options "retmipgap=3 outlev=1"; solve;
The outcome of the last optimization is stored in the AMPL parameter
solve_result_num and the relative message in
display solve_result_num, solve_result;
When a model is unfeasible, one usedful information is finding the irreducible inconsistent sets, which are subsets of constraints that are incompatible. This is supported by the framework, see the description here.