Seeing how Lime now seems to concentrate more on central areas (and gets complaints from juicers finding no more hubs to serve to), I thought up an algorithm which should provide good area coverage, but also favor the hot spots:
For each scooter that should be served:
- FInd the location within the service area that’s the farthest away from any scooter
- Draw (or imagine) a circle around that location with the radius being half the distance to the next scooter
- Inside of that circle, find the spot with the strongest demand and put one scooter there
After that, repeat that process (including the just released scooter into the pool used for the maximum distance calculation) until there are no more scooters.
This should give a pretty good area coverage with regularly spaced scooters, but still put them at locations where they are more likely to get taken than the average position in the immediate surroundings.