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.
© Copyright 2026 Paperzz