Blog Post

FICO® Xpress Optimization Blog
3 MIN READ

Xpress Solver 8.14

FICO's avatar
FICO
Community Manager
4 years ago
Xpress Solveris the technology component that supports all of FICO's optimization solver technologies including:
  • 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 latest Xpress Solver 8.14 release focuses on improved 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.14 release notes. Highlights of this release include:

Performance Enhancements
  • On our internal library of MIP instances that includes a wide range of problems from numerous applications, this release is 4% faster overall and 10% faster than Xpress 8.13 on problems that take at least 100 seconds to solve. This improvement is measured using the shifted geometric mean of solve times with a shift of 10 seconds. This improved performance is the result of several changes in core MIP technology including
    • Improved separation of Mixed-Integer Rounding (MIR) cuts in tree search. Aggregation of MIR cuts is now enabled by default during tree search.
    • Improved selection of cutting planes based on orthogonality measures
    • When the Solver is allowed to use multiple threads, multiple threads are allocated to solving the sub-MIPs of some heuristics.
    • More advanced presolve operations
    • Improved handling of MIN/MAX general constraints with two elements
  • LP performance enhancements include improvements to the dual crash procedure, which is used to create a starting basis. More options are now available in the CRASH control. Improvements to the performance of the parallel crossover has been made.

Usability and API Enhancements
  • Python API Enhancements
    • Xpress can be initialized, and problems can be created by using the “with” statement. Upon exiting the with context, the corresponding resources are automatically disposed. With this feature, users no longer need to explicitly delete the problem, or free the license when no longer necessary.
    • Several Xpress module functions such as xpress.And, xpress.Or, xpress.min, and xpress.max() now accept lists, numpy arrays and Pandas series.
    • Python 3.10 is now supported
  • Certain classes of Xpress & BCL Java and .NET interfaces implement the AutoCloseable and IDisposable classes, respectively such that the resources are automatically disposed upon exiting the corresponding blocks (try-with in Java, using in .NET). See the release notes for details.
  • Users can now specify a new tuner target using a measure called the Confined Primal Integral (see: https://link.springer.com/article/10.1007/s10107-020-01547-5), which can be interpreted as a measure that favors faster speed of convergence in finding integer solutions. Originally developed for MINLPs, this measure can also be used for tuning MIPs.
  • Controls
    • Since Xpress 8.6, the Solver supports Linux controls groups such that when running inside container environments, it will adhere to the container-imposed memory and core limits. In this release, the attribute CORESDETECTED will now report the container-imposed core limitation detected by the Solver.
Updated 4 years ago
Version 3.0
No CommentsBe the first to comment