FICO Xpress

{{Infobox software

| name = FICO Xpress

| developer = FICO

| latest_release_version = 9.5{{cite web|url=https://www.fico.com/fico-xpress-optimization/docs/latest/overview.html|title=FICO Xpress Optimization}}

| genre = Operations Research, Mathematical optimization

| platform = Cross-platform

| license = Proprietary

| website = {{URL|https://www.fico.com/en/products/fico-xpress-optimization}}

| released = {{Start date and age|1983}}

}}

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.{{cite journal |last1=Berthold |first1=T. |last2=Farmer |first2=J. |last3=Heinz |first3=S. |last4=Perregaard |first4=M. |date=15 Jun 2017 |title=Parallelization of the FICO Xpress-Optimizer |journal=Optimization Methods and Software |volume= 33|issue= 3|pages=518–529 |doi=10.1080/10556788.2017.1333612}} 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.

[https://web.archive.org/web/20141129031025/http://www.wikinvest.com/stock/Fair,_Isaac_and_Company_(FICO)/Acquisition_Dash_Optimization_Limited "Dash Optimization acquired by FICO"] Jan 22, 2008.

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.{{cite journal |last1=Ashford |first1=R. |date=Feb 2007 |title=Mixed integer programming: A historical perspective with Xpress-MP |journal=Annals of Operations Research |volume=149 |issue=1 |pages=5–17 |doi=10.1007/s10479-006-0092-x}}

In 1992, an Xpress version for parallel computing was published, which was extended to distributed computing five years later.{{cite book |last1=Laundy |first1=R. |date=1999 |chapter=Implementation of Parallel Branch-and-bound Algorithms in XPRESS-MP |journal=Operational Research in Industry |pages=25–41 |doi=10.1057/9780230372924_2|isbn=9780230372924}}

Xpress was the first MIP solver to cross the billion matrix non-zero threshold by introducing 64-bit indexing in 2010.{{cite report |author=O. Bastert |date=2011 |title=FICO Xpress Optimization Suite |url=https://www.msi-jp.com/xpress/overview/20110921_MSI_Webinar_en.pdf |access-date=Jan 23, 2019}}

Since 2014, Xpress features the first commercial implementation of a parallel dual simplex method.

In 2022, Xpress was the first commercial MIP solver to introduce the possibility of solving nonconvex nonlinear problems to proven global optimality.

[https://community.fico.com/s/blog-post/a5Q4w000000D26XEAS/fico3785 "FICO Xpress Global (beta): A global solver for a nonlinear world"] Dec 21, 2022.

Technology

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.

{{Anchor|A-Mosel}}

Xpress includes its modelling language Xpress Mosel{{cite book|first1=Christelle|last1=Guéret|author1-link=Christelle Guéret|first2=Christian|last2=Prins|first3=Marc|last3=Sevaux|title=Applications of Optimization with Xpress-MP |year=2002|publisher=Dash Optimization Limited |isbn= 9780954350307}} and the integrated development environment Xpress Workbench.{{cite web|url=http://www.fico.com/en/products/fico-xpress-workbench|title=FICO Xpress Workbench|date=Nov 12, 2017}}

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.{{cite report |author=P. Belotti |date=2014 |title=Robust Optimization with Xpress |url=https://www.msi-jp.com/xpress/doc/Xpress-Rubost-WhitePaper.pdf |access-date=Oct 28, 2018}}

Xpress has a modeling module called BCL (Builder Component Library) that interfaces to the C, C++, Java programming languages, and to the .NET Framework.[https://www.fico.com/fico-xpress-optimization/docs/latest/bcl/dhtml/ "BCL Reference Manual"] Nov 13, 2018. 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[https://www.fico.com/en/products/fico-xpress-executor "FICO Xpress Executor"] Nov 13, 2018. executes and deploys Mosel models, using SOAP or REST interfaces. It can be used from external applications or from the [https://www.fico.com/en/products/fico-decision-management-platform FICO Decision Management Platform].

References

{{Reflist}}

{{Mathematical optimization software}}

Category:Numerical software

Category:Mathematical optimization software