cuOpt 23.08 adds significant improvements to the solution quality by means of advanced algorithms. In addition to the quality improvements, some new features were added, and some features were deprecated to improve user experience. For any questions, please reach out to the cuOpt team through NGC.
Parameter/option statuses are listed below, they express how each of these options are affected:
New - A new feature has been added.
Deprecated - These are “no operation” options, they will be accepted by the server, but they will not be used anywhere. And the solver will also return a warning about them being deprecated.
Limited - These options are limited with respect to the number of dimensions that can be provided. For example, cuOpt-23.08 solver supports only one break for each vehicle (like lunch break).
- Status:
New
- Former behavior:
If there is no feasible solution or cuOpt could not find a feasible solution, the return status would be 1, implying infeasible. No solution would be returned.
To find a feasible partial solution, drop_infeasible_tasks option had to be enabled.
- Current behavior:
With cuOpt-23.08, if the problem is infeasible, then the solver will return a solution which has been generated by violating constraints. The returned status will be 1 to indicate infeasibility.
It also returns what constraints are being violated as warnings. The user can analyze the data on what caused infeasibility
drop_infeasible_tasks is still available and can be used to get a partial feasible solution.
- Feasible solution response:
- Infeasible solution response:
{‘response’: {solver_response: {‘status’: 0…….
{‘response’: {‘solver_infeasible_response’: {‘status’: 1…..
- number_of_iterations
-
- Status:
Deprecated
- Former:
Set a fixed number of iterations for the improvement phase.
- Suggestion:
cuOpt-23.08 handles this internally and transparently.
If this was used as an option to restrict run time, then users can use time_limit option to ceil the run time. Solver time in this release is split between the initial solution and improvement phase.
- number_of_climbers
-
- Status:
Deprecated
- Former:
Number of solver starting instances.
- Suggestion:
This parameter is no longer needed as cuOpt-23.08 adaptively generates several solutions
- solution_scope
-
- Status:
Deprecated
- Former:
Restricts/expands the solver to feasible/infeasible regions.
This was useful in those cases where the time window constraints were too restrictive to generate any feasible solution.
- Suggestion:
The 23.08 solver tries to get a feasible solution first, but if it is infeasible, then it will return an infeasible solution that is closest to feasibility by violating some or all constraints. It will also return constraints which it had to violate to get a solution in the response.
- initial_solution_strategy
-
- Status:
Deprecated
- Former:
Set a solution strategy for the initial phase.
- Suggestion:
cuOpt-23.08 internally handles this.
- solution_strategy
-
- Status:
Deprecated
- Former:
Set a solution strategy for the improvement phase.
- Suggestion:
cuOpt-23.08 internally handles this.
- objectives
-
- Status:
Deprecated
- Former:
The weight assigned to minimize total vehicle count for a given solution.
- Suggestion:
By default the number of vehicles will be minimized, but there is no direct option to enforce this. But users can use min_vehicles to enforce it partially.
- cumul_package_time
-
- Status:
Deprecated
- Former:
The weight assigned to minimizing total order transit time for a given solution.
- Suggestion:
The same effect can be achieved through setting the travel_time objective and reducing total travel time.
- cumul_earliest_diff
-
- Status:
Deprecated
- Former:
The weight assigned to minimizing the difference between the actual delivery time and the earliest possible delivery time for a given solution.
- Suggestion:
No other alternative is available for now. travel_time objective can be used to partially achieve this.
- capacities
-
- Status:
Limited
- Former:
Lists of capacities of each vehicle
- Suggestion:
The number of dimensions for capacity is limited to 3, meaning each vehicle can have at max 3 different sets of capacities (For example: weight, volume, fuel).
- vehicle_break_time_windows
-
- Status:
Limited
- Former:
Lists of tuples of earliest and latest break time for each vehicle.
There can be multiple such lists for different breaks (lunch break, tea break and etc.)
- Suggestion:
With cuOpt-23.08 the number of dimensions for break is limited to 1.
- vehicle_break_durations
-
- Status:
Limited
- Former:
Lists of break duration time for each vehicle.
There can be multiple such lists for different breaks (lunch break, tea break and etc.)
- Suggestion:
With cuOpt-23.08 the number of dimensions for break duration is limited to 1.
- max_slack
-
- Status:
Deprecated
- Former:
Maximum slack time, Budget to let vehicles wait at locations up to the specified time
- Suggestion:
With cuOpt-23.08 there is no option to add this constraint, vehicles will wait till they can deliver/start a task if it is feasible.
- max_lateness_per_vehicle
-
- Status:
Deprecated
- Former:
This option allowed time window constraints to be violated when there are no feasible solutions.
- Suggestion:
cuOpt-23.08 tries to get a feasible solution first, but if it is infeasible, then it will return an infeasible solution by violating constraints. It will also return constraints which it had to violate to get a solution in the response.
- demand
-
- Status:
Limited
- Former:
Lists of demands of each task.
- Suggestion:
With cuOpt-23.08 the number of dimensions for demand is limited to 3, meaning each task can have at max 3 different sets of demand (For example: weight, volume, fuel).
- penalties
-
- Status:
Deprecated
- Former:
Penalty for unit delay at each of the task locations.
- Suggestion:
Since Solution Scope is removed which supported the soft time window, this option is not relevant.
cuOpt-23.08 tries to get a feasible solution first, but if it is infeasible, then it will return an infeasible solution by violating constraints. It will also return constraints which it had to violate to get a solution in the response.
- precedences
-
- Status:
Deprecated
- Former:
List of order id and constraining order ids.
- Suggestion:
This feature is no longer supported.