Release Notes#
Release Notes 24.11#
Breaking Changes#
Turn off prize collection when the prize objective weight is set to zero
Move python support from 3.9 to 3.10 as RAPIDS only supports >= 3.10 from 24.10 onwards
The cuOpt self-hosted endpoints are now fully asynchronous and will always return a request id or an error. The request id must be polled to obtain a result. This applies to /cuopt/request as well as the deprecated /cuopt/routes and /cuopt/lp endpoints. This will affect users of self-hosted instances who have written their own cuOpt clients. Users of the cuopt_sh_client package will not be affected.
Bug Fixes#
Fix an occasional error in the managed client when the Cloud returns an in-progress status
Gracefully handle routing problems where there is no valid solution
Add token cache check to delete_asset in managed client
Fix an indexing issue in remapping vehicle and break locations which caused the solver to run on an incorrect set of tasks
Enable service times when there are no task time windows
Fix a bug in the definition of heterogeneity when vehicle order match is present, which allows the solver to run different algorithms for producing better results
Documentation Updates#
Updated documentation with additional examples and helpful information to the user
New Features#
Add Linear Programming (LP) feature
Add Mixed Integer Linear Programming (MILP) feature
New endpoint
/cuopt/request
for self-hosted has been added,/cuopt/routes
and/cuopt/lp
have been deprecatedSupport for the option to abort job and flush out all the jobs for self-hosted service
Treat not returning an initial primal and dual or all 0 as not an error
Implement non-uniform breaks, where vehicles/technicians can take different sets of breaks
Turn off prize collection when the prize objective weight is zero
Improvements#
cuOpt service endpoints /cuopt/request (and deprecated /cuopt/routes and /cuopt/lp) support multiple MIME types for input and output and have been optimized for speed. See the API documentation for details on supported MIME types.
Improve the initial solution generation step by adding available vehicles to pending tasks
ARM container support
Release Notes 24.07#
GPU Support#
Ampere and Hopper GPUs are supported.
Multiple GPUs per instance are not yet supported.
Breaking Changes#
None
Bug Fixes#
Fix a bug in shared memory allocation which caused cuda error while using prize collection.
cuOpt service add configurable exec timeout to client .
Documentation Updates#
New Features#
Add SSL support for self-hosted client.
Report each accumulated objective separately (cost/travel-time/prize) along with total objective value.
Add support for SSL to server.
Improvements#
Add -v option to cuOpt client for print version.
Distroless cuOpt image; this would restrict interactive shell in the container.
Record an exception in the cuOpt service for jobs terminated in a shutdown, so each of those jobs will get an update of failure rather than an abrupt end of connection.
Switch the managed service client to use pexec ; this just changes the URL on how the service is accessed.
Improved techniques to find better routes. With this, cuOpt explores the search space more efficiently.
Lazy allocation of routes to reduce memory usage for large fleet size problems, and reduce any chance of exhausting GPU memory and crashing.
Release Notes 24.03#
GPU Support#
Ampere and Hopper GPUs are supported.
Multiple GPUs are not yet supported.
Breaking Changes#
Removed task priorities, vehicle priorities, drop infeasible tasks and mandatory task.
Adding
data
deprecatingcost_matrix
in data format for cost and time matrix.
Bug Fixes#
Report cost and arrival stamps in double precision to eliminate floating point overflow.
Restrict types of data that can be unpickled.
Fix a bug in single route PDP use case.
Fix a bug in handling vehicle order match constraint.
Fix bugs in repair solutions for min vehicles constraint.
Handle shared memory allocation failure gracefully.
Documentation Updates#
Update doc with SAK changes.
New Features#
Add warm up + internal timing to solver.
Support multiple break dimensions.
Implement vehicle usage cost in the objective.
Add cuOpt validator support to managed and self-hosted service.
Improvements#
Always return request id from self-hosted endpoint to align with managed service.
Improved logging for cuOpt microservice.
Handle solutions with different number of routes in EAX.
Adds response model for API endpoints.
Reduce overhead time in microservice ETL.
Handle shared memory issue gracefully in VRP moves.
Improve solver runtime checks.
Improve solution quality for vehicle order match constraints using a separate dimension.
Implement ordered crossover.
Release Notes 23.10#
Breaking Changes#
Change the cuOpt endpoint to expect an optimization data structure rather than a dictionary.
Remove penalty, precedence, Objectives : (vehicle, cumul_package_time, cumul_earliest_diff), max_slack, max_lateness_per_vehicle, solution_strategy, initial_solution_strategy, solution_scope, number_of_climbers, number_of_iterations.
Deprecate task/order priorities, use new feature prizes instead.
Bug Fixes#
Fix an out of bounds error in drop infeasible task workflow.
Fix a bug in the engine when the route size is equal to the
route_size_limit
.
Documentation Updates#
Add docs for building a user’s own thin client.
Add a user guide for breaking changes.
New Features#
Implement total duration objective which includes both drive times and wait times.
Implement prize collection.
Improvements#
Improve logic for time budgeting for initial solution generation.
Graceful exit when the shared memory limit is exceeded.
Add a check for client version compatibility to the server.
Improve the quality of routes and the scalability for TSP.
Improve file handling in the client for the cuOpt managed service.
Documentation updates.