-
Notifications
You must be signed in to change notification settings - Fork 104
Description
Describe the bug
cuOpt fails with following validation error:
{
"CUOPT_ERROR_TYPE": "ValidationError",
"msg": "Number of pd requests should be inferior to 16384."
}
I am trying to solve large time-window VRP problems that require more than 16,384 pickup-delivery (PD) requests.
It prevents running the solver over longer planning horizons
Steps/Code to reproduce bug
Sample code to reproduce the error.
import numpy as np
import cudf
from cuopt import routing
def pd_limit_exceeded(n_pd_pairs=20000):
n_locations = 10
n_vehicles = 1
cost = cudf.DataFrame(np.zeros((n_locations, n_locations)))
n_orders = n_pd_pairs * 2 # pickup + delivery
data_model = routing.DataModel(n_locations, n_vehicles, n_orders)
data_model.add_cost_matrix(cost)
order_locations = cudf.Series([1] * n_pd_pairs + [2] * n_pd_pairs)
data_model.set_order_locations(order_locations)
pickup_orders = cudf.Series(range(n_pd_pairs))
delivery_orders = cudf.Series(range(n_pd_pairs, 2 * n_pd_pairs))
data_model.set_pickup_delivery_pairs(pickup_orders, delivery_orders)
solver_settings = routing.SolverSettings()
solver_settings.set_time_limit(30)
routing.Solve(data_model, solver_settings)
pd_limit_exceeded()
Expected behavior
Ability to solver larger problems with PD pair more than 16K.
Environment details (please complete the following information):
Cuopt enviornment - 25.08