FICO Xpress Solver v8.4 release - Nov17

Blog Post created by Advocate on Dec 15, 2017

Xpress Solver is the technology component that supports all 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 a 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 can make use of MIP relaxations of the CP problem.


The Xpress Solver v8.4 release provides the following enhancements:

  • Significant performance enhancements - with the algorithmic enhancements introduced, FICO runs 35% faster in linear programming benchmarks and up to 25% faster in mixed integer programming benchmarks than before. With this release, FICO has regained its leadership position in continuous benchmarks. This represents a significant improvement in in mixed integer programming benchmarks.
  • More specifically, enhancements include:


Xpress Optimizer 8.4

  • It is now possible to exploit symmetries in LP problems, using a procedure called LP Folding. This can significantly reduce the size of the problem to be solved and thereby speed up the solution process.
    • LP Folding is automatically applied and can be used with any LP solving algorithm.
    • A new control, LPFOLDING, has been introduced to specify whether LP Folding should be applied.
    • When LP Folding is applied, a solve will now go through three phases: 1) solve the reduced LP using the selected algorithm, 2) a crossover phase and 3) a final cleanup. The exception is when barrier is applied without crossover.
  • For tiny MIP instances with integer or binary variables with a wide range of coefficient, it is now possible to apply a basis reduction algorithm as part of presolve, which will reformulate the integer columns using a reduced basis that is closer to ortho-normal.
    • A new control, PREBASISRED, has been introduced to specify whether MIP basis reduction should be applied.
  • More uses for the Barrier algorithm has been introduced as part of a MIP solution process. It can now be used for tightening or reducing the problems.
    •   A new control, PREANALYTICCENTER, has been introduce to specify when to use a Barrier solution.
  • Several refinements to the branch-and-bound code to improve MIP performance.
  • Writing to the file created by XPRSsetlogfile is now flushed after each line.
  • A new control, HEURFORCESPECIALOBJ, has been introduce to force alternative objective local search heuristics to run on a MIP, even when the automatic strategy has determined they should not be run.
  • More choices for TUNERTARGET when tuning a MIP.
  • New function, XPRSfeaturequery, to query which features are allowed by the current license.
  • Quadratic constraints in binary variables can now be linearized when this appears beneficial.
  • All Xpress-Nonlinear functionality is now included in the XPRS library file. It is no longer necessary to link against the XSLP library.


Xpress Nonlinear 8.4

  • Significantly improved performance on numerically challenging problems.
  • Added support for the min/max functions both in Mosel and through API.
  • Added support for the erf (standard error function) and its complement erfc to the API and Mosel.
  • Work with best solutions: XSLP_FILTER bit 1 is now default. Checks now include the initial solution.
  • New attribute XSLP_SOLSTATUS to indicate if a solution is available. This attribute complements XSLP_NLPSTATUS.
  • New attribute XSLP_VALIDATIONSTATUS to check if the current solution is deemed feasible, set up by XSLPvalidate.
  • New attribute XSLP_TOTALEVALUATIONERRORS to indicate the number of evaluation errors that occurred during a solve.
  • New API function XSLPnlpoptimize to solve the problem using the existing optimization sense.
  • New option for XSLP_HEURSTRATEGY to include all heuristics with no effort limits imposed.
  • Mosel can now read and write solutions of nonlinear problems using 'writesol' and 'readsol'.
  • Deprecated functions in this release:

    XSLPloadivfs, XSLPaddivfs, XSLPchgivf, XSLPdelivf, XSLPgetivformula,

    XSLPloadxvs , XSLPaddxvs, XSLPchgxv, XSLPchgxvitem, XSLPdelxvs, XSLPgetxv,XSLPgetxvitemformula,

    XSLPloaddcs, XSLPadddcs, XSLPchgdc, XSLPdeldcs, XSLPgetdcformula, XSLPopt,

    XSLPsetcbmessageF, XSLPsetcbitervarF, XSLPsetcbcascadevarF

  • All Xpress Nonlinear functionality is now included in the XPRS library file. It is no longer necessary to link against the XSLP library.