I'm reading on https://www.nextmv.io/docs/use-cases/vehicle-routing/features/alternate-stops trying to understand how they work. The documentation is not very clear on the purpose for the functionality.
I initially thought that it was similar to ortools AddDisjunction + penalties (https://developers.google.com/optimization/routing/penalties) where a list of mutually exclusive stops is given a penalty for not being satisfied. Or PyVRP "Client Group" (https://pyvrp.readthedocs.io/en/latest/api/pyvrp.html#pyvrp.Model.Model.add_client_group), which works in a similar way (at-most-one or exactly-one depending on whether required=True).
But then I see that Alternate Stops are defined not as a subset of all stops but as a separate list of stops. And that it can (should?) be expressed by vehicle.
More broadly what I'm modelling is the following: I have three nodes per client, and I want to assign at most one of those nodes to some vehicle (at most one vehicle). If no vehicle is assigned to one of those three nodes, I apply a penalty as the client was not served. How would that be modeled in nextRoute?
thanks again.
I'm reading on https://www.nextmv.io/docs/use-cases/vehicle-routing/features/alternate-stops trying to understand how they work. The documentation is not very clear on the purpose for the functionality.
I initially thought that it was similar to ortools
AddDisjunction+ penalties (https://developers.google.com/optimization/routing/penalties) where a list of mutually exclusive stops is given a penalty for not being satisfied. Or PyVRP "Client Group" (https://pyvrp.readthedocs.io/en/latest/api/pyvrp.html#pyvrp.Model.Model.add_client_group), which works in a similar way (at-most-one or exactly-one depending on whetherrequired=True).But then I see that Alternate Stops are defined not as a subset of all stops but as a separate list of stops. And that it can (should?) be expressed by vehicle.
More broadly what I'm modelling is the following: I have three nodes per client, and I want to assign at most one of those nodes to some vehicle (at most one vehicle). If no vehicle is assigned to one of those three nodes, I apply a penalty as the client was not served. How would that be modeled in nextRoute?
thanks again.