FICO Xpress overview
FICO Xpress is the premier
mathematical modeling and
optimization software in
the world, with the best
tools available to aid the
development and deployment
of optimization
applications.
Xpress solves large-scale
optimization problems, enabling better
business decisions and resulting
financial benefits in areas such as
supply chain management, operations,
logistics and asset management. It
has been applied in sectors as diverse
as manufacturing, processing,
distribution, retailing, transport,
finance and investment.
Xpress is used in three different ways:
• |
OEMs/ISVs who embed optimization functionality within their own products |
• |
Consultants who offer optimization solutions to their clients |
• |
Business analysts and other end-users within large organizations who solve their own optimization problems directly |
Xpress is available on all common
computer platforms
and provides a range of user/software interfaces including a visual development environment, callable library APIs
in C, C++, VB, Java, .NET and standalone command line interfaces. See
here for more details.
Here we describe the different components
of the Xpress product that enable it to be used in such a diverse
range of applications. To find out more about
the specific features of a particular component, click on the associated
link.
Xpress-Optimizer
The
Xpress-Optimizer is a sophisticated multi-threaded optimization engine available as a callable library and a command line tool. The Optimizer includes state-of-the-art algorithms to solve the following types of optimization problem:
- Linear problems ( LP )
- Mixed integer problems ( MIP )
- Quadratic problems ( QP ) and mixed integer quadratic problems ( MIQP )
- Quadratically constrained problems ( QCQP ) and mixed integer quadratically constrained problems ( MIQCQP )
- Convex general non-linear problems ( NLP )
The solver includes robust simplex and barrier methods, a sophisticated branch-and-bound algorithm, extensive presolving operations and cutting edge heuristics for finding solutions very quickly. The shared memory, deterministic parallelism can exploit as many CPU cores as are available for fast execution times. Xpress Optimizer uses ultra efficient sparse matrix handling and on-the-fly data compression to solve the largest problems that industry has to offer.
The callable library provides both a low-level matrix orientated API and an object orientated model construction interface called BCL.
Xpress-Optimizer is designed for out-of-the-box high performance on a wide range of model types. It also features a number of customisable parameters. The Tuner tool allows the user to find values for the algorithm parameters which improve on the solver default values for their models, often leading to significant performance gains. The Tuner uses multi-threaded genetic algorithms to find the best parameter settings for a model or set of models, and presents the results of the search using a clear graphical interface.
Xpress-Mosel
Xpress-Mosel
allows you to formulate your problem, solve it using one or several of the Xpress solver engines
and analyze the solution, using a fully-functional compiled programming
language specifically designed for the purpose. Mosel is fully integrated with the Xpress-Optimizer and can leverage all of the solver abilities.
Mosel ships with a complete visual editor called IVE. IVE incorporates a Mosel program editor, compiler and execution environment, debugger and profiler. It features development and deployment wizards, visualizations of the solve progress and results, and a full drag and drop editor for authoring XAD GUI resources.
The combination of high level model definition language and traditional programming language gives Mosel unprecedented power and flexibility while being extremely intuitive to use. Mosel makes the simple tasks easy, but advanced users will find it perfect for implementing their own heuristic and decomposition methods.
Mosel has database ( ODBC, Excel, Oracle ) connectivity, text file I/O and in-memory data exchange abilities. Furthemore, Mosel is extensible. There are several third party modules available which extend the language and a published interface for creating your own. Consultants will find the ability to create plugin modules to interface to legacy systems or exotic data formats particularily appealing.
The Xpress-Application Developer (XAD) extends Xpress-Mosel
with an API for graphical user interface development,
transforming Mosel into the complete package for optimization application development, from the
mathematical representation of the problem to visualization and user interfacing. IVE features a full drag and drop resource editor for authoring the GUI.
Xpress-Kalis
Xpress-Kalis is
Constraint Programming software based upon the Kalis solver by Artelys. It specializes in discrete combinatorial problems as they frequently
occur, for instance, in scheduling and planning problems. Kalis is available as a Mosel module and extends Mosels capabilities to include Constraint Programming (CP) models and hybrid MIP/CP techniques.
Xpress-SLP
Xpress-SLP is
a solver for non-linear
programming problems (NLP) and mixed integer non-linear non-convex
problems (MINLP). It uses successive linear approximation
which has been developed from techniques used in the process industries
and it is capable of solving large problems with many thousands
of variables. Xpress-SLP is available as a callable library, a command line tool and as a Mosel plugin.
|
|