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.