Blog Post

FICO® Xpress Optimization Blog
5 MIN READ

Xpress Updates 9.0.10 and 9.1.4

FICO's avatar
FICO
Community Manager
2 years ago
Xpress Updates 9.1.4 and 9.0.10 are now available or Windows, Linux and Mac on x86-64 and Linux on AArch64, from

https://clientarea.xpress.fico.com/download_patch.php#914
https://clientarea.xpress.fico.com/download_patch.php#9010


These are the latest updates for the Xpress 9.1 and 9.0 release branches, respectively, and require matching licenses. Please note that these archives must be extracted over a prior installation of FICO Xpress 9.1 and 9.0, respectively.

Release Notes for both 9.1.4 and 9.0.10

Xpress Optimizer 41.01.10
  • Fixed an issue that caused a solution loaded before a solve with XPRSaddmipsol to be dropped if a new solution was added in a callback.
  • Fixed an issue with presolving of semi-continuous variables that could lead to incorrect results.
  • Fixed an issue that could lead to memory corruption if XPRSaddmipsol is called in the intsol or preintsol callbacks while the initial solutions loaded by XPRSaddmipsol are being processed.
  • Fixed a bug in symmetry detection in models with SOSs.
  • Calling XPRSchgobj on a problem in a presolved or solving state will now result in an error.
  • Fixed an issue where delayed rows or model cuts were not restored properly if a MIP is declared infeasible during presolve.
  • Fixed a potential memory corruption when using HEURDIVESTRATEGY=11 or 12.
  • Fixed an issue with presolving of partially defined user solutions.
  • Fixed an issue in a presolve reduction that can sometimes lead to incorrect results.
  • Fixed a potential crash in heuristics when solving MISOCPs with barrier.
  • Fixed a minor issue in the mod2 presolver technique potentially leading to wrong optimal solutions.
  • Fixed a potential crash when parsing floating point numbers.
  • Fixed a bug when XPRSchgobjn is used to modify existing objective coefficients.
  • Functions to query solution information (value, slack, reduced cost, dual) for single items were fixed in the Java and C# APIs.
  • Fixed an error with handling semi-continuous columns.
  • Fixed a performance issue in XPRSaddcols and XPRSchgobj.
  • Fixed numerical issue in presolve reduction that can sometimes lead to incorrect results.
  • Fixed a crash in XPRSreadprob when reading an LP file with an NLP data section.
  • Fixed a crash when solving problems where the objective has non-unit weight.
  • Input errors in XPRSaddpwlcons and XPRSaddgencons will now leave the problem in a consistent state.
  • Fixed an issue in the clique domination presolve reduction that can lead to incorrect results.
  • Fixed a problem where time limits were not handled correctly while checking convexity if solving with XPRSoptimize.
  • Fixed an inefficiency in the QCQP solver.
  • Fixed an issue where constant objectives in .lp files ended up with the wrong sign.
  • Fixed an issue in presolving that could lead to nonintegral solution values for integer columns.
  • Fixed a corner case detection inside a heuristic that could result in a crash.
  • Fixed a rare numerics issue in StrongCG cuts.
  • Decomposition search on quadratic problems has been disabled. By default, disconnected components in quadratic MIPs are not solved separately anymore.
  • Fixed a potential issue with geometric scaling (bit 5 of SCALING not set).
  • Fixed a memory issue in concurrent LP logging.
  • Fixed an issue due to outdated solution information involving multiple HEURTHREADS.
  • Fixed a potential race condition inside concurrent MIP solves.
  • Fixed an issue with termination checks during symmetry detection.
  • Fixed a potential crash during symmetry detection in presence of indicators.
  • With numerical emphasis activated (i.e. with the NUMERICALEMPHASIS control set to any value greater than 0), a more careful numerical handling of cutting planes is applied to improve the numerical stability of some pathological models.
  • Fixed numerical issue in presolve reduction that can lead to incorrect results on extreme inputs.
  • Message callbacks should now receive the correct XPRSprob when enabling extra logging with IISLOG>0 during an IIS search.
  • XPRSgetobjn now raises an error if the problem is presolved: in previous releases it would return incorrect data in that case.

Xpress Nonlinear 41.01.10
  • Fixed an issue where linearizations were solved as a MIP even though piecewise linear and general constraints were not transformed to MIP structs since the problem remained nonlinear.
  • Fixed an issue with querying solutions when linearizations were solved as a MIP (e.g., when XSLP_REFORMULATE forced the reformulation to MIP structs even though the problem remained nonlinear).
  • Fixed an issue with nonlinear indicators with exactly one linear nonzero.
  • Fixed a potential crash when encountering numerical difficulties while solving an LP or convex QCQP through nlpoptimize.
  • Fixed an issue where reading in a new problem with non-convex quadratics given as [] blocks in an .lp-file or as quadratics rather than formulas in an .mps-file did not properly reset a previous nonlinear solve.
  • Fixed an issue with quadratic problems where all non-convexities involved fixed columns.
  • Fixed a potential issue when reading in problems with an explicit equalscolumn from .lp-files.
  • Fixed an issue where validationindices in the convergence callbacks could reflect a heuristic instead of the iteration solution.

Xpress Global 41.01.10
  • Fixed an issue in presolve for problems with both convex quadratics/SOCPs and non-convex quadratics or general nonlinearities.
  • Fixed a potential crash at the end of presolve during global solves.

Xpress Interfaces 41.01.10 (Python, R, Matlab, .NET, Java)
  • Fixed an issue where an error message was displayed when problem.getSolution was called from a Python callback.
  • Fixed an issue where the Python interface advised the user to pass a path to xpress.init when the path was already being passed.
  • Fixed a potential race condition in BCL cleanup in .NET.
  • Python 3.7 is no longer supported since it has reached end of life.
  • Fixed a potential double-deletion/crash in cleanup in BCL Java.
  • Fixed a Python error when adding a large number of variables to a problem.
  • Python functions now raise a MemoryError when they fail to allocate memory.
  • Fixed a problem in which XPRSprob.addSets() would incorrectly raise an "array too short error" in Java.
  • When creating integer or binary variables in Python, the bounds are rounded in the resulting variable object using the same rules as when variable bounds are modified using the Optimizer C API.
  • When adding binary variables to a problem in Python, non-default values for the lower or upper bound are now correctly applied.
  • Fixed Python functions problem.addVariable and problem.addConstraint so that if they fail due to a duplicate name, the variable or constraint is not added to the problem.
  • Fixed a crash when deleting special ordered sets from Python.
  • In Python, the correct error message is now shown when an invalid index is passed to problem.delVariable or problem.delConstraint.
  • Fixed a crash when a 1d numeric NumPy array is passed to problem.addConstraint and several other API functions.
  • Fixed a problem where the first/last arguments of problem.getVariable, problem.getConstraint and problem.getSOS were sometimes ignored.
  • Fixed "wrong arguments" error when calling problem.addcoefs or problem.loadcoefs.
  • Fixed a crash in Python when a non-contiguous integer Pandas Series was passed to xpress.vars().
  • Added a workaround for a known memory leak in NumPy: https://github.com/numpy/numpy/issues/25949
  • The Xpress solver libraries have been moved out of the main Python package (xpress) into a dependency package (xpresslibs). There are no changes to the installation procedure: the xpresslibs package will be downloaded and installed automatically by Pip and Conda.
  • In Conda environments, the Xpress solver libraries are now installed into the shared library folder: <env>\Library\bin on Windows, <env>/lib on macOS and Linux.

Xpress Global 41.01.10
  • BCL no longer forbids using equations in indicator constraints, delayed rows, or model cuts.
Updated 2 years ago
Version 3.0
No CommentsBe the first to comment