Predicting the matching probability and the expected ride/shared distance for each dynamic ridepooling order in large scale (grid) network
For each seeker-state:
-
$p_{s(w)}$ : probability of a seeker getting matched in this state.
For each taker-state:
-
$p_{t(a, w)}$ : probability of a taker getting matched in this state. -
$\lambda_{t(a, w)}$ : arrival rate of unmatched passengers into this state. -
$\rho_{t(a, w)}$ : probability of having at least one taker in this state. -
$\eta_{t(a, w)}$ : aggregate arrival rate of matching opportunities for takers in this state.
For each match pair:
-
$\eta_{t(a, w)}^{s(w)}$ : mean arrival rate of matching opportunities in the seeker-state for takers in the taker-state.
There are complex interactions among these variables, so we formulated the interactions into a fixed point problem: $$ F(\mathbf{X}) = \mathbf{X}, \mathbf{X} = (\mathbf{\lambda}, \mathbf{p_s}, \mathbf{p_t}, \mathbf{\rho}, \mathbf{\eta})^T $$
Parameters:
- Pick-up time: 1s
- Maximum detour distance: 5m
- Search Radius: 5m
- Speed: 1m/s
- Demand rate of an OD: 0.5/s
- Simple fixed-point iteration method with stopping criteria
$\Vert \mathbf{X}^{(k+1)} - \mathbf{X}^{(k)}\Vert_\infty \leq 1%$
$$ \begin{matrix} \rm Network & 3030 & 180180 & 180*180 \ \hline \rm OD & 300 & 2000 & 1e4 \ \hline \rm Taker & 5056 & 191956 & 9.5e5 \ \hline \rm Match & 32772 & 148530 & 3.6e6 \ \hline \rm Iteration & 29 & 20 & 25 \ \hline \rm Step 0 / s & 0.488 & 108.342 & 2692.946 \ \hline \rm Step 1 / s & 0.453 & 4.285 & 53.341 \ \hline \end{matrix} $$
The input of spectral clustering is a Similarity Matrix
where
Define
This integer programming problem is a NP hard problem. But we can relax it by allowing
It is a standard Trace Minimization Problem and according to Rayleigh-Ritz Theorem the solution is given by choosing the first
Finally, we should re-convert the real values of
We use spectral clustering to assign 10000 ODs on 360*360 grid network into 5 clusters and each cluster has 2993, 624, 748, 2801, 2822 ODs respectively. The runtime for global variable-generation is 5549s(92.5min) while the one for each cluster is 540, 31, 45, 459, 370s(24.1min totally) respectively. The runtime for global iteration is 68s while the one for each cluster is 17, 3, 4, 13, 14s(51s totally) respectively when the absolute error