beam icon indicating copy to clipboard operation
beam copied to clipboard

Spatial RideHailManager

Open dimaopen opened this issue 2 years ago • 0 comments

We can approach this issue in the following way:

  1. Using geographical distribution of Activities we could divide them into N clusters (it's probably better to have clusters of equal size). Then we create N RideHailManagers that tied to the centroid of each cluster. Each RideHailManager has the same VehicleManager Id.
  2. Vehicles are assigned to the corresponding RideHailManager by choosing the closest one (using the found centroids)
  3. When a RideHailAgent gets into a certain state (probably Idle) then its RideHailManager check if it is still the closest one to the agent. If it's not then RHM transfers the agent to the closest RHM using some protocol (sequence of messages).
  4. When the Spatial RideHail Manager receives a RideHailRequest it chooses the closest RHM (to the pickup location) and resends the request to found RHM. If that RHM doesn't have a free vehicle then the next closest RHM is chosen and so on. We need to limit the number of RHM requested.

Downsides:

  1. Decreasing the number of available RH vehicles for the pickup locations on the border of clusters.
  2. The number of pooling options is decreased too.
  3. In the case when there's a small number of vehicles in some cluster then the number of interactions between Actors grows which may cause slowness.
  4. ChargingNetwork is still a bottleneck.

dimaopen avatar Sep 07 '22 06:09 dimaopen