Xpress Solver is the technology component that supports all of FICO's optimization solver technologies including:
The latestXpress Solver 8.13release focuses onimproved Solver performance while including several usability features for our clients and users to leverage to develop, deploy and scale their optimization applications. To learn more, review the Xpress Solver 8.13release notes. Highlights of this release include:
Performance Enhancements
Mixed-Integer Programming Enhancements:
NonLinear Enhancements:
Barrier Algorithm Improvements:
New Features
Support for external compression tools:
Additional control to terminate solves:
Xpress Solver Interfaces
- Xpress Optimizer: core engine comprises of LP (simplex and barrier), MIP, (MI)QP, (MI)QCQP, and (MI)SOCP solvers. It also provides core services, like the tuner, to other components.
- Xpress Nonlinear:provides successive linear programming and an interior point solver for nonlinear problems, integrating closely with the Optimizer’s MIP framework.
- Xpress Kalis:provides constraint-based programming capabilities. Combined with the optimizer, it can make use of MIP relaxations of the CP problem.
The latestXpress Solver 8.13release focuses onimproved Solver performance while including several usability features for our clients and users to leverage to develop, deploy and scale their optimization applications. To learn more, review the Xpress Solver 8.13release notes. Highlights of this release include:
Performance Enhancements
Mixed-Integer Programming Enhancements:
- Several improvements to the core MIP technology have been made including improvements to Mixed Integer Rounding cut separation, cut activation and deactivation strategies, application of strong branching, and MIP tree restarts. This release also includes improvements to the internal handling of indicator constraints that allows for better integration with heuristics, propagation, and other core components of the Optimizer code.
- A new machine learning module has been introduced that automatically decides whether to perform or disable cutting during tree search. This module is activated by default and can be turned off by means of a control. Cutting during tree search is often helpful, but for some problems it may be advantageous to disable it due to a variety of reasons, for example, those that lead to computationally expensive node solves. The machine learning module predicts whether disabling in-tree cutting would speed up or slow down solve times and automatically decides to enable or disable tree cuts based on that prediction.
- On our internal library of MIP test instances that includes a wide range of problems from numerous applications, this release is 11% faster overall and 19% fasteron problems that take at least 100 seconds to solve. This improvement is measuredusing the shifted geometric mean of solve times with a shift of 10 seconds.
NonLinear Enhancements:
- The MIP presolve code has been more tightly integrated with the MINLP solver.With this generalization to mixed-integer nonlinear problems, the MINLP formulations can often be significantly tightened, which significantly improves the MINLP solver’s performance.
- For problems that contain a combination of convex quadratic expressions and more general nonlinear expressions (mixed-quadratic nonlinear problems), improvements to handling numerically difficult linearizations have been made. Mixed-quadratic nonlinear problems are well-suited to be solved by Xpress Nonlinear as the convex quadratic parts are automatically separated and solved by the quadratic solvers while the rest is linearized by Xpress SLP. The improvements to handling the linearizations have led to improved convergence and consequently improved solver performance.
Barrier Algorithm Improvements:
- Improvements to the barrier crossover performance have been made by means of automatically perturbing the objective function. A new control has been introduced that allows users to specify the amount by which to perturb the objective, or to completely turn off objective perturbation.
- Barrier performance improvements have been made for large problems when run on CPUs that support AVX2.
New Features
Support for external compression tools:
- The Optimizer now supports reading from and writing to additional compressed file formats including zip, tar, tgz, bz2, 7z, xz, lz4 and Z. To use this feature, the compression tool that supports these formats must be available in the PATH environment variable. Support for GZ format is built in and does not need an external tool.
Additional control to terminate solves:
- A new control MAXSTALLTIME time has been introduced to limit how long the search should continue after the last solution has been found.
- As usual, users can set a maximum time limit, but by additionally setting this control, users can terminate the solve before the maximum time limit is hit if MAXSTALLTIME has elapsed after the last solution was found.
- This is particularly useful in situations when high-quality solutions are found early during the search and the optimizer subsequently expends effort in improving the dual bound without finding solutions in this duration.
- Additionally, a new attribute called MIPSOLTIME has been introduced for users to query which returns the time at which the current incumbent was found.
Xpress Solver Interfaces
- C++, Java, and Python APIs for Xpress Kalis constraint programming engine have been added. Prior to his release Xpress Kalis could only be access through Xpress Mosel.
- The Xpress MATLAB interface now includes support for piecewise linear constraints and general constraints (min, max, abs, logical) constraints. Support for piecewise linear and general constraints in other Optimizer APIs was introduced in releases 8.9 and above.
- Several new examples have been added to the Xpress R interface, which was introduced in the Xpress 8.12 release.
- Deprecated functions are now tagged in xprs.h such that some compilers will issue a warning when a deprecated function is used.
Updated 5 years ago
Version 3.0FICO
Community Manager
Joined July 21, 2025
FICO® Xpress Optimization Blog
Follow this blog board to get notified when there's new activity