The system uses a discounted integral priority routing (DIPR) strategy to manage congestion. Each zone's priority is updated based on its historical queue lengths, giving more weight to recent data.
Priorities influence the cost of routing decisions, where higher congestion increases the travel cost to a zone.
TODO:
[ ] Determine all areas that this will effect
[ ] Almost certainly it goes into the ride pricing policy (which might be better named to driver matching policy) as a policy option, so this task is for implementing the policy option of it
[ ] Determine if it is better to have the ride pricing policy and driver matching done independently for easier mix and matching (i.e. with one policy if there are 3 pricing and 3 matching options, it would take 9 options to cover, versus if driver matching goes first then pricing, it would be 3 and 3 for a total of 6 and you could mix and match). If it is likely that DPC is the only matching we want to use then likely it is fine to keep it together
[ ] Determine wiring or actions for updating zone priorities. This could be done after every ride/request, or this could be a control action that the rideshare backend is supposed to undertake every X minutes to update zone priorities. A mechanism to update the priority on the zone entity might be good to have
From the notebook:
TODO: