FICO Xpress

From Wikipedia, the free encyclopedia
FICO Xpress
Developer(s)FICO
Initial release1983; 41 years ago (1983)
Stable release
9.2[1]
PlatformCross-platform
TypeOperations Research, Mathematical optimization
LicenseProprietary
Websitewww.fico.com/en/products/fico-xpress-optimization

The FICO Xpress optimizer is a commercial optimization solver for linear programming (LP), mixed integer linear programming (MILP), convex quadratic programming (QP), convex quadratically constrained quadratic programming (QCQP), second-order cone programming (SOCP) and their mixed integer counterparts.[2] Xpress includes a general purpose non-linear solver, Xpress NonLinear, including a successive linear programming algorithm (SLP, first-order method), and Artelys Knitro (second-order methods).

Xpress was originally developed by Dash Optimization, and was acquired by FICO in 2008.[3] Its initial authors were Bob Daniel and Robert Ashford. The first version of Xpress could only solve LPs; support for MIPs was added in 1986. Being released in 1983, Xpress was the first commercial LP and MIP solver running on PCs.[4] In 1992, an Xpress version for parallel computing was published, which was extended to distributed computing five years later.[5] Xpress was the first MIP solver to cross the billion matrix non-zero threshold by introducing 64-bit indexing in 2010.[6] Since 2014, Xpress features the first commercial implementation of a parallel dual simplex method.[2]

Technology[edit]

Linear and quadratic programs can be solved via the primal simplex method, the dual simplex method or the barrier interior point method. All mixed integer programming variants are solved by a combination of the branch and bound method and the cutting-plane method. Infeasible problems can be analyzed via the IIS (irreducible infeasible subset) method. Xpress provides a built-in tuner for automatic tuning of control settings. [1] Xpress includes its modelling language Xpress Mosel[7] and the integrated development environment Xpress Workbench.[8] Mosel includes distributed computing features to solve multiple scenarios of an optimization problem in parallel. Uncertainty in the input data can be handled via robust optimization methods.[9]

Xpress has a modeling module called BCL (Builder Component Library) that interfaces to the C, C++, Java programming languages, and to the .NET Framework.[10] Independent of BCL, there are Python and MATLAB interfaces. Next to Mosel, Xpress connects to other standard modeling languages, such as AIMMS, AMPL, and GAMS.

The FICO Xpress Executor[11] executes and deploys Mosel models, using SOAP or REST interfaces. It can be used from external applications or from the FICO Decision Management Platform.

References[edit]

  1. ^ a b "FICO Xpress Optimization".
  2. ^ a b Berthold, T.; Farmer, J.; Heinz, S.; Perregaard, M. (15 Jun 2017). "Parallelization of the FICO Xpress-Optimizer". Optimization Methods and Software. 33 (3): 518–529. doi:10.1080/10556788.2017.1333612.
  3. ^ "Dash Optimization acquired by FICO" Jan 22, 2008.
  4. ^ Ashford, R. (Feb 2007). "Mixed integer programming: A historical perspective with Xpress-MP". Annals of Operations Research. 149 (1): 5–17. doi:10.1007/s10479-006-0092-x.
  5. ^ Laundy, R. (1999). "Implementation of Parallel Branch-and-bound Algorithms in XPRESS-MP". pp. 25–41. doi:10.1057/9780230372924_2. ISBN 9780230372924. {{cite book}}: |journal= ignored (help); Missing or empty |title= (help)
  6. ^ O. Bastert (2011). FICO Xpress Optimization Suite (PDF) (Report). Retrieved Jan 23, 2019.
  7. ^ Guéret, Christelle; Prins, Christian; Sevaux, Marc (2002). Applications of Optimization with Xpress-MP. Dash Optimization Limited. ISBN 9780954350307.
  8. ^ "FICO Xpress Workbench". Nov 12, 2017.
  9. ^ P. Belotti (2014). Robust Optimization with Xpress (PDF) (Report). Retrieved Oct 28, 2018.
  10. ^ "BCL Reference Manual" Nov 13, 2018.
  11. ^ "FICO Xpress Executor" Nov 13, 2018.