cuOpt LP Features#
Note
For detailed information about the features and specifications, please visit the cuOpt API specifications for linear programming.
Constraints#
The constraints are set in CSR format through csr_constraint_matrix
and bounds are set through constraint_bounds
in API. Users can set upper and lower bound explicitly.
Initial Solutions#
For warm start initial primal
and dual
solutions can be provided to solver.
Variable Types#
For MILP, variable types are essential to know which ones are integers. If nothing is set, the problem is treated as Linear Programming.
Solver mode#
You can control how the solver will operate by using solver_mode
under solver_config
. The mode choice can drastically impact how fast a specific problem will be solved. Users are encouraged to test different modes to see which one fits the best their problem.
Infeasibility Detection#
An option under solver_config
in API, if set, solver will abort as soon as it concludes that problem is infeasible.
Time Limit#
The time_limit
is optional, if set, solver runs till the time is specified. If not set, in case of managed service it would be capped to 10 minutes and in case of self hosted it will run till user gets a solution.
Note
The time_limit
set is what solver will essentially use to solve the problem and doesn’t include network transfer
, etl
, validation of input
, instance being busy with other requests
and few other overheads, these overheads would be comparatively smaller. So the overall request to response round trip time would be solve_time
+ overhead
.
Batch Mode#
Users can submit a set of problems which will be solved in a batch. Problems will be solved at the same time in parallel to fully utilize the GPU. Checkout self-hosted client and managed client examples in thin clients.
Note
Instead of forming data in json
/dict
format, users can use utility classes to build their data_model and solver_settings, and convert that into JSON directly.
Examples on utlity classes can be found in thin client examples section.