beam
beam copied to clipboard
Spatial RideHailManager
We can approach this issue in the following way:
- 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
RideHailManager
s that tied to the centroid of each cluster. EachRideHailManager
has the sameVehicleManager Id
. - Vehicles are assigned to the corresponding
RideHailManager
by choosing the closest one (using the found centroids) - When a
RideHailAgent
gets into a certain state (probably Idle) then itsRideHailManager
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). - When the
Spatial RideHail Manager
receives aRideHailRequest
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:
- Decreasing the number of available RH vehicles for the pickup locations on the border of clusters.
- The number of pooling options is decreased too.
- 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.
-
ChargingNetwork
is still a bottleneck.