FICO Xpress

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
FICO Xpress
DeveloperFICO
Initial release1983; 43 years ago (1983)
Stable release
9.5[1]
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    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 nonlinear global solver, Xpress Global, and a nonlinear local 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] In 2022, Xpress was the first commercial MIP solver to introduce the possibility of solving nonconvex nonlinear problems to proven global optimality. [7]

    Technology

    [edit | edit source]

    Linear and quadratic programs can be solved via the primal simplex method, the dual simplex method, or the barrier interior point method. For linear programs, Xpress further implements a primal-dual hybrid gradient algorithm. All mixed integer programming variants as well as nonconvex continuous problems 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[8] and the integrated development environment Xpress Workbench.[9] 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.[10]

    Xpress has a modeling module called BCL (Builder Component Library) that interfaces to the C, C++, Java programming languages, and to the .NET Framework.[11] 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[12] 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 | edit source]
    1. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ "Dash Optimization acquired by FICO" Jan 22, 2008.
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ "FICO Xpress Global (beta): A global solver for a nonlinear world" Dec 21, 2022.
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ "BCL Reference Manual" Nov 13, 2018.
    12. ^ "FICO Xpress Executor" Nov 13, 2018.