Mosel (programming Language)
   HOME

TheInfoList



OR:

The FICO Xpress optimizer is a commercial
optimization Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criteria, from some set of available alternatives. It is generally divided into two subfiel ...
solver A solver is a piece of mathematical software, possibly in the form of a stand-alone computer program or as a Library (computing), software library, that 'solves' a mathematical problem. A solver takes problem descriptions in some sort of generic ...
for
linear programming Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements and objective are represented by linear function#As a polynomia ...
(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. 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. 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. In 1992, an Xpress version for
parallel computing Parallel computing is a type of computing, computation in which many calculations or Process (computing), processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. ...
was published, which was extended to distributed computing five years later. Xpress was the first MIP solver to cross the billion matrix non-zero threshold by introducing 64-bit indexing in 2010. 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.


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 Branch and bound (BB, B&B, or BnB) is a method for solving optimization problems by breaking them down into smaller sub-problems and using a bounding function to eliminate sub-problems that cannot contain the optimal solution. It is an algorithm ...
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. Xpress includes its modelling language Xpress Mosel and the integrated development environment Xpress Workbench. Mosel includes
distributed computing Distributed computing is a field of computer science that studies distributed systems, defined as computer systems whose inter-communicating components are located on different networked computers. The components of a distributed system commu ...
features to solve multiple scenarios of an optimization problem in parallel. Uncertainty in the input data can be handled via
robust optimization Robust optimization is a field of mathematical optimization theory that deals with optimization problems in which a certain measure of robustness is sought against uncertainty that can be represented as deterministic variability in the value of the ...
methods. Xpress has a modeling module called BCL (Builder Component Library) that interfaces to the C, C++,
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
programming languages, and to the .NET Framework. Independent of BCL, there are Python and
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementat ...
interfaces. Next to Mosel, Xpress connects to other standard modeling languages, such as
AIMMS AIMMS (acronym for Advanced Interactive Multidimensional Modeling System) is a prescriptive analytics software company with offices in the Netherlands, United States, and Singapore. It has two main product offerings that provide modeling and optim ...
,
AMPL AMPL (A Mathematical Programming Language) is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing (e.g. large-scale optimization and scheduling-type problems). It was developed ...
, and GAMS. The FICO Xpress Executor"FICO Xpress Executor"
Nov 13, 2018.
executes and deploys Mosel models, using
SOAP Soap is a salt (chemistry), salt of a fatty acid (sometimes other carboxylic acids) used for cleaning and lubricating products as well as other applications. In a domestic setting, soaps, specifically "toilet soaps", are surfactants usually u ...
or REST interfaces. It can be used from external applications or from th
FICO Decision Management Platform


References

{{Mathematical optimization software Numerical software Mathematical optimization software