FICO XPRESS

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 modeling guide can be found here.

[Read More] [Modeling guide] [Options] [Changes] [Download Xpress]

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 support@ampl.com.

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

Resources

Features

Solver options

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 xpress_options. A list of all supported options is available here or can be obtained by executing the solver driver with the -= command line parameter:

xpress -=

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:

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), run:

xpress -=lim:

More details on solver options: Features guide.

Specifying solver options and solving a model

After formulating the model in AMPL, execute the following to select xpress as solver and pass the two options: return_mipgap=3 and outlev=1.

option solver xpress;
option xpress_options "retmipgap=3 outlev=1";
solve;

Retrieving solutions

The outcome of the last optimization is stored in the AMPL parameter solve_result_num and the relative message in solve_result.

display solve_result_num, solve_result;

Xpress solve result codes can be obtained by running xpress -! or ampl: shell "xpress -!";:

          0- 99 solved: optimal for an optimization problem, feasible for a satisfaction problem
        100-199 solved? solution candidate returned but error likely
            150 solved? MP solution check failed (option sol:chk:fail)
        200-299 infeasible
        300-349 unbounded, feasible solution returned
        350-399 unbounded, no feasible solution returned
        400-449 limit, feasible: stopped, e.g., on iterations or Ctrl-C
        450-469 limit, problem is either infeasible or unbounded
        470-499 limit, no solution returned
        500-999 failure, no solution returned
            550 failure: numeric issue, no feasible solution

For general information, see MP result codes guide.

Handling infeasibility

IIS

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.

Changelog