Release Notes#

Release Notes 25.05#

New Features#

  • Added concurrent mode that runs PDLP and Dual Simplex together

  • Added crossover from PDLP to Dual Simplex

  • Added a C API for LP and MILP

  • PDLP: Faster iterations and new more robust default PDLPSolverMode Stable2

  • Added support for writing out mps file containing user problem. Useful for debugging

Breaking Changes#

  • NoTermination is now a NumericalError

  • Split cuOpt as libcuopt and cuopt wheel

Improvements#

  • Hook up MILP Gap parameters and add info about number of nodes explored and simplex iterations

  • FJ bug fixes, tests and improvements

  • Allow no time limit in MILP

  • Refactor routing

  • Probing cache optimization

  • Diversity improvements for routing

  • Enable more compile warnings and faster compile by bypassing rapids fetch

  • Constraint prop based on load balanced bounds update

  • Logger file handling and bug fixes on MILP

  • Add shellcheck to pre-commit and fix warnings

Bug Fixes#

  • In the solution, termination_status should be cast to correct enum.

  • Fixed a bug using vehicle IDs in construct feasible solution algorithm.

  • FP recombiner probing bug fix.

  • Fix concurrent LP crashes.

  • Fix print relative dual residual.

  • Handle empty problems gracefully.

  • Improve breaks to allow dimensions at arbitrary places in the route.

  • Free var elimination with a substitute variable for each free variable.

  • Fixed race condition when resetting vehicle IDs in heterogenous mode.

  • cuOpt self-hosted client, some MILPs do not have all fields in lp_stats.

  • Fixed RAPIDS logger usage.

  • Handle LP state more cleanly, per solution.

  • Fixed routing solver intermittent failures.

  • Gracefully exit when the problem is infeasible after presolve.

  • Fixed bug on dual resizing.

  • Fix occasional incorrect solution bound on maximization problems

  • Fix inversion of constraint bounds in conditional bounds presolve

  • Pdlp fix batch cuda graph

  • Fix obj constant on max. Fix undefined memory access at root

  • Allow long client version in service version check, this fixes the issue in case version is of the format 25.05.00.dev0

Documentation#

  • Restructure documementation to accomdate new APIs