Blog Post

FICO® Xpress Optimization Blog
5 MIN READ

Xpress Solver 9.0 - Nov 2022

FICO's avatar
FICO
Community Manager
3 years ago
Xpress Solver is the technology component that supports all of FICO's optimization solver technologies including:
  • Xpress Optimizer: core engine comprises of LP (simplex and barrier), MIP, (MI)QP, (MI)QCQP, and (MI)SOCP solvers. It also provides core services, like the tuner, to other components.
  • Xpress Nonlinear:provides successive linear programming and an interior point solver for nonlinear problems, integrating closely with the Optimizer’s MIP framework.
  • Xpress Global (in beta): provides a framework for solving nonlinear problems to global optimality integrating with the components of Xpress Nonlinear.
  • Xpress Kalis:provides constraint-based programming capabilities. Combined with the optimizer, it can make use of MIP relaxations of the CP problem.
ThelatestXpress Solver 9.0is a major version update of Xpress Solver. It delivers improvedperformancein the Mixed-Integer programming engine. Several usability features including callbacks and support for multiple objectives have been added. This version includes the beta launch of a new framework to solve general nonlinear problems to global optimality. To learn more, review the Xpress Solver 9.0release notes.
Highlights of this release include:

Performance Enhancements
In internal benchmarks, theMixed-Integer Programming (MIP) solver is 3% faster overall, and 8% faster compared with version 8.14 on models that take at least a 100s.  Year-over-year (compared to version 8.13) the MIP solver is 11% and 19% faster overall and on models that take 100s, respectively. The performance enhancements are due to improvements in all the major engine components including
  • Branching: Dynamic branching strategies, and improvements in branching for highly degenerate and feasibility (no-objective) problems
  • Cutting: Separation of strong Chvátal-Gomory cuts, and separation of cutting planes from infeasibility proofs. The new classes of cuts can be disabled by the cut and tree-cut selection controls.
  • Heuristics: A new heuristic called Feasibility Jump has been introduced that runs in parallel to the root search. This heuristic is an “LP-free” heuristic, i.e., it does not rely on the availability of a solution to the LP relaxation of the problem. It is a local search heuristic that uses a starting solution (that need not be feasible) and attempts to find a feasible solution by adapting jump widths for variable changes.
  • Presolve: The presolve has been enhanced to detect and internally reformulate the so-called configuration knapsack constraints.  These are knapsack constraints where the number of unique coefficients is small. The presolve module will automatically create strong formulations of such constraints leading to potentially tighter relaxations and bounds.
Solving Nonlinear problems to Global Optimality (in beta):
This release welcomes a new member to the family of Xpress solvers: Xpress Global (in beta).  While Xpress Nonlinear can provide locally optimal solutions, Xpress Global can provide lower bounds and find globally optimal solutions to mixed-integer non-convex nonlinear (which includes non-convex quadratics) models. This new technology has been built by leveraging existing branch-and-bound machinery of the Xpress Optimizer. Methods for global optimization used in the solver include a reformulation module, methods for constructing convex linear relaxations, bound reductions, and spatial branching. The global optimization solver employs Xpress Nonlinear for heuristics at the beginning of the search, or during spatial branch-and-bound.

We are currently running a beta program for Xpress Global: Clients interested in evaluating or learning more about this new technology are encouraged to write to [email protected].

Usability and API Enhancements and Changes
  • Optimization with multiple objectives: With the help of new API functions, users can now conveniently specify models that have objectives in hierarchical (or lexicographic) order, or blend multiple objectives using weights, or a mix of both. Optimization with multiple objectives is used when there are multiple objectives to be traded off, either in a priority (hierarchical) order - where the solution to the problem with a lower priority objective cannot deteriorate the solution with respect to a higher priority objective, or when weights are used to create a single blended objective function. Multiple objectives are supported for all problem types supported by Xpress including quadratic and nonlinear optimization models. In this release, for objectives that are not linear, users must specify them by means of using an auxiliary variable that is equal to that nonlinear expression defining the objective. Users are encouraged to refer to the examples that are part of the distribution. 
  • Data checks: Xpress will now by default check the input data for a problem for validity (e.g., NAN’s in floating point arrays) when the values are specified through the API. This can be disabled by means of a control setting.
  • A new callbacknodelpsolved for MIPs has been introduced which is called immediately after the LP relaxation of a branch-and-bound node, including the root node has been solved to optimality. From within this callback, users can for example tighten local bounds on variables or add or remove cuts immediately after the LP solve. In contrast, users might recall that the optnodecallback is called after the LP relaxation has been solved, and after cuts and heuristics have been applied.
  • Solver APIs
  • Several new convenience functions such as the ability to add a single column, the ability to add variable arrays, the ability to clear objectives, and more have been added to the Java and .NET APIs 
  • Changes to controls and attributes
  • Time controls including MAXCUTTIME, MAXSTALLTIME, and TUNERMAXTIME now have double type. They can also be accessed through integer controls.
  • New double controls have been introduced intending to replace MAXTIME. While MAXTIME (now deprecated) still remains, users can now instead specify TIMELIMIT and SOLTIMELIMIT as double controls. TIMELIMIT specifies an absolute time limit on a solve (similar to a negative MAXTIME value). SOLTIME specifies a soft time limit that is only applicable when a MIP solution has been found.
  • Some controls that were marked deprecated in previous releases have been removed. These include HEURSTRATEGY (which is now obsolete because of the HEUREMPHASIS control) LPTHREADS, replaced by CONCURRENTTHREADS, and PERTURB replaced by PRIMALPERTURB and DUALPERTURB. 
  • Please see the release notes for the full list of changes to controls.
  • Some functions have been renamed: Historically, “globals” within the Xpress Solver had the connotation as discrete (or MIP) entities such as binaries, integers, SOSs, etc. Some functions that handled these discrete entities had the name “global” or “globals” in them. Due to the introduction of the new Global optimization solver, we have renamed such functions containing the term “globals” with “mip” or “mipentities”. For example, XPRSfixglobals() has been renamed to XPRSfixmipentities(). Please see the release notes for a full list of renamed functions.
See theXpress release notes for more details.
Updated 3 years ago
Version 3.0
No CommentsBe the first to comment