Effective and Efficient: Large-scale Dynamic City Express

Effective and
Efficient: Large-scale
Dynamic City Express
Siyuan Zhang †, Lu Qin‡, Yu Zheng*, Hong Cheng†
The Chinese University of Hong Kong, China
for QCIS, FEIT, University of Technology, Sydney, Australia
*Microsoft Research, Beijing, China
†
‡Centre
Current city express services works as
follows:
r1
c2
c3
r2
r0
r4
(10:05 a.m.)
r6
(10:00 a.m.)
c1
r5
R1
c1
c1
c1
r3
r7
Transit station
Region
Courier
r0 Delivery
r0
(10:15 a.m.)
Truck
r5 (10:00 a.m.)
Pickup request (deadline)
Original route of c1
r5
r0
New route of c1
Background

Drawbacks of current systems:

Boundary requests are ignored.
r1
c2
c3
r2
r0
r4
(10:05 a.m.)
r6
(10:00 a.m.)
r5


r3
c1
r7
(10:15 a.m.)
Process each pickup request individually and immediately
We study the dynamic city express problem (DCEP) and
aim to design a better central dispatch system
DCEP Problem and Our Solution

The Dynamic City Express Problem (DCEP):
l(r1): location; d(r1): deadline
(10:00 a.m.)
NP-complete
(10:05 a.m.)
(10:15 a.m.)
1. Must deliver
2. Pickup request as
many as possible
3. Come back
on time

Effectiveness: using Smallest Incurred Distance First
(SIDF) for assignment.

Efficiency: using two-level priority queue structure to
speed up.
Step 1: Candidate Courier Generation
c1
c 1 c2
c3
ts0
c4
c 3 c4
c2
c5


c5
dist from all road intersections to their tsi are precomputed.
lower bound: dist(l(c2),l(r1))=d02-dist(l(ts0), l(c2))-dist(l(r1),l(ts2))
Candidate Voronoi regions: ts0, ts1, ts2


r1
Build network voronoi index:


(10:00 a.m.)
cost[dist(l(tsj),l(r1))-radius(tsj)]<d(r1)-tcur
Candidate couriers: c2, c4, c5

cost[dist(l(c2),l(r1))]<d(r1)-tcur
radius(tsj) is service range of tsi
Step 2: Assign a batch of requests
using Smallest Incurred Distance First
(SIDF) algorithm

The basic algorithm assigns requests according to arrival time
r4
c2
r3
r7
10
c1
10
r6
10

10
20
Basic route: r0
r1
r5
r2
SIDF route: r0
r6
r1
r7
Our solution first collects requests every tr minutes
r5
<r5,c1,r1,r2,20,true>
r2
<r7,c1,r1,r2,0,true>
<r6,c1,r0,r1,10,true>
Efficiency improvement: Twolevel priority queue

Initialization: initialize
and
2nd iteration

No exact
distance
calculations
<r7,c1,r1,r2,0,false>
<r6,c2,r3,r4,22.1,false>
<r7,c1,r0,r1,5.5,false>
<r7,c2,r3,r4,39.5,false>
<r6,c1,r0,r1,5.6,false>
<r6,c2,r3,r4,22.1,false>
<r7,c1,r0,r1,5.5,false>
<r7,c2,r3,r4,39.5,false>
<r6,c1,r0,r1,5.6,false>

1st iteration
3rd iteration
<r66,c
,c11,r
,r00,r
,r11,5.6,false>
,10,true>
<r
<r7,c1,r1,r2,0,true>
<r7,c1,r1,r2,0,false>
Get dist(r1,r7)
and dist(r7,r2)
<r6,c2,r3,r4,22.1,false>
<r<r
7,c
1,r
1,r
2,0,true>
7,c
1,r
0,r
1,5.5,false>
<r6,c1,r0,r1,5.6,false>
<r5,c1,r1,r2,14.1,false>
Satisfy r7
<r5,c1,r1,r2,14.1,false>
<r5,c1,r1,r2,14.1,false>

<r7,c1,r1,r2,0,true>
<r6,c2,r3,r4,22.1,false>
<r<r
5,c
1,r
1,r
2,14.1,false>
6,c
1,r
0,r
1,10,true>

<r7,c2,r3,r4,39.5,false>
Get dist(r0,r6)
and dist(r6,r1)
<r7,c2,r3,r4,39.5,false>
4th iteration
<r6,c1,r0,r1,10,true>
Satisfy r6
<r6,c2,r3,r4,22.1,false>
<r5,c1,r1,r2,14.1,false>
<r7,c2,r3,r4,39.5,false>
PERFORMANCE STUDIES

We perform simulations on the road network of Beijing

Measurements:


Satisfaction Ratio(SR):

Average incurred distance(AID):

Average process time per request
Algorithm:

Nearest

Basic

SIDF* (our solution with efficiency improvement)
Effectiveness
n: courier number
tr: batch time
Efficiency
SIDF* is much more efficiency than SIDF!
Scalability
N: number of nodes
on the road network.
The largest road
network consists of
81,000 nodes and
104,000 edges.