Presentation is loading. Please wait.

Presentation is loading. Please wait.

Effective and Efficient: Large-Scale Dynamic City Express

Similar presentations


Presentation on theme: "Effective and Efficient: Large-Scale Dynamic City Express"— Presentation transcript:

1 Effective and Efficient: Large-Scale Dynamic City Express
Siyuan Zhang, Lu Qin, Yu Zheng, Senior Member, IEEE, and Hong Cheng Presentation by: Ziqi Lin | Tyler Pietri | Dennis Silva

2 Overview Starting Questions Background, Motivation, Problem
Presentation Cliffnotes Proposed Methodology Evaluation & Results Applications & Future Work Cost is a measure of time

3 Starting Questions Have you purchased physical products from the internet? Where do you purchase them from? How often do you purchase? How do you receive or pick up the product?

4 Starting Questions Have you purchased physical products from the internet? Where do you purchase them from? How often do you purchase? How do you receive or pick up the product?

5 Background Problem & Motivation
Cost is a measure of time

6 Background - Evolution of Retail Logistics
Direct Replenishment (1970s) Domestic sourcing Supplied customers directly Rationalization (1980s) Retail chains create distribution centers Became sorting facilities between suppliers and several regional stores Global Sourcing (1990s) Outsourcing and offshoring expanded Import centers unpack containers and arrange shipments for distribution E-Commerce (2000s) Web based sales become the norm Logistics from local depots to final destinations are commonly called “last mile logistics.” [1]

7 Background - Evolution of Retail Logistics
Direct Replenishment (1970s) Domestic sourcing Supplied customers directly Rationalization (1980s) Retail chains create distribution centers Became sorting facilities between suppliers and several regional stores Global Sourcing (1990s) Outsourcing and offshoring expanded Import centers unpack containers and arrange shipments for distribution E-Commerce (2000s) Web based sales become the norm Logistics from local depots to final destinations are commonly called “last mile logistics.” Make sure to note that within the last mile logistics, the visual does not include the pickup of packages to then send out. So there should be arrows in both directions in this case. [1]

8 Background - City Express Services - Logistics
A city is divided into several regions (R_1 & R_2) A city is divided into several regions (e.g., R1 and R2), each of which covers some streets and neighborhoods.

9 Background - City Express Services - Logistics
A transit station is built in a region to temporarily store parcels received in the region (t_S1 & t_S2) A transit station is built in a region to temporarily store the parcels received in the region (e.g., ts1 in R1). The received parcels in a transit station are further organized into groups according to their destinations.

10 Background - City Express Services - Logistics
Each group of parcels is sent to a corresponding transit station by trucks regularly Each group of parcels will be sent to a corresponding transit station by trucks regularly (e.g., from ts1 to ts2).

11 Background - City Express Services - Logistics
Couriers deliver and receive parcels from specific locations in the region using precomputed delivery routes. In each region, there are a team of couriers delivering parcels to and receiving parcels from specific locations in the region. When a truck carrying parcels arrives at a transit station, each courier will send a portion of these parcels to their final destinations by a small delivery van, or a bike, or a motorcycle, which has a limited capacity. Before departing from the transit station, they will pre-compute the delivery routes (e.g., the blue lines in Fig. 1) usually based on their own knowledge.

12 Background - City Express Services - Logistics
During a delivery, a courier can receive pickup requests. Accepting or declining the request is up to the courier’s judgement. (r_5) During the delivery, each courier could receive pickup requests (e.g., r5, r6 and r7) from a central dispatch system or directly from end users. Each pickup request is associated with a location and a deadline of pickup time. A courier may change the originally planned route to fetch the new parcels, or decline the pickup request due to the constraints in their schedule or their vehicle capacity. All the couriers are required to return to their own transit station by some specific time (so as to fit the schedule of trucks that travel between transit stations regularly), or when fully loaded.

13 Background - City Express Services - Logistics
During a delivery, a courier can receive pickup requests. Accepting or declining the request is up to the courier’s judgement. (r_7) During the delivery, each courier could receive pickup requests (e.g., r5, r6 and r7) from a central dispatch system or directly from end users. Each pickup request is associated with a location and a deadline of pickup time. A courier may change the originally planned route to fetch the new parcels, or decline the pickup request due to the constraints in their schedule or their vehicle capacity. All the couriers are required to return to their own transit station by some specific time (so as to fit the schedule of trucks that travel between transit stations regularly), or when fully loaded.

14 Background - City Express Services - Problems
Current Process = Unsatisfactory Pickup requests processed individually Courier status unknown Requests near regions boundaries ignored The service quality and operational efficiency of current express services have never been found satisfactory due to the following three reasons. First, current central dispatch systems process each pickup request individually without a global optimization. For example, a new pickup request (e.g., r5) is usually assigned to the nearest courier (e.g., c1) to the pickup location. In the meantime, each courier makes a decision on whether to pick up a new parcel solely based on his own situation without knowing the status of other couriers in the same region (e.g., c3 can pick up a parcel at r5 instead of c1). Second, the dispatch systems do not know the current status of a courier either, e.g., the remaining capacity, the number of parcels that have not been delivered, and the following pickup-delivery route, before assigning a new pickup request. Note that these statuses would change dynamically due to the new pickup requests. Third, requests near the boundary of a region (e.g., r7) are ignored by couriers (e.g., c1) in other regions because couriers only pick up parcels in their own regions.

15 Motivation for a Solution
Increase operational efficiency Increase customer satisfaction Increase profit

16 Problem Construct an effective scheduling algorithm for couriers to deliver and pick up parcels in real time. Central Dispatch System Message Courier Data Schedule study the dynamic city express problem and aim to design a central dispatch system with an effective scheduling algorithm for couriers to deliver and pick up parcels in real time. Each courier in the system carries a handheld device recording his location, uploading his status when he finishes a delivery or pickup task, and receiving new pickup requests. The central dispatch system receives information of couriers from their handheld devices and manages their schedules consisting of pickup and delivery time and routes. After collecting pickup requests from customers in a short period, the system processes the requests in a batch according to the minimum incurred distance. Finally, the system sends the updated schedules to all the couriers and the confirmation or decline messages to the customers. Processed by scheduling algorithm

17 Presentation cliffnotes
Cost is a measure of time

18 ALL Terminology KEY Terminology
C = courier R = task S = schedule of tasks (R) L = location of task D = deadline to complete tasks

19 Function example : Courier Schedule (s)
Cost(S) = Sum of all [time to travel to between tasks + (time to service * tasks)] Cost is a measure of time

20 Function example : Courier Schedule (s)
Cost(S) = Sum of all [time to travel to between tasks + (time to service * tasks)] Ordered Segment Cost is a measure of time. Rij = subsequent trip j+1 = proceeding trip When we insert we insert it between the these thing

21 Function example : Courier Schedule (s)
New Task (r) Cost(S) = Sum of all [time to travel to between tasks + (time to service * tasks)] Ordered Segment Cost is a measure of time. Rij = subsequent trip j+1 = proceeding trip When we insert we insert it between the these thing

22 Proposed Method Cost is a measure of time

23 Proposed Solution Overview
Batch pick up requests Identify candidates Shortest path calculation Two level request priority queue Bb

24 Methodology Components
Network Indexing

25 Indexing: Network Voronoi Diagram (NVD)
NVD partitions G into a set of Voronoi regions - each is represented by a generator Handling Boundary Regions If edge exists in 2 different Voronoi regions → Split it into 2 Compute cost between node and the generator; cost between 2 generators ts1 ts2 In order to compute the candidate couriers to serve a pickup request and avoid unnecessary shortest path computations

26 Indexing: Network Voronoi Diagram (NVD)
Compute cost between node and the generator; cost between 2 generators Given any l in G, suppose l lies on the edge, the distance from l to ts(l): ts1 ts2 In order to compute the candidate couriers to serve a pickup request and avoid unnecessary shortest path computations

27 Indexing: NVD example The lower bound cost between two points:
Max(0, (travel time b/t task stations) - (travel time b/t station and task1) - (travel time b/t station and task2) NVD index for a road network G with three transit stations ts0; ts1 and ts2 as generators. Accordingly, G is partitioned into three regions by the bold lines. Roads in different Voronoi regions are depicted in different line styles. The distance matrix for generators is shown in Fig. 2b

28 Methodology Components
Network Indexing Candidate Courier Generation & Pruning

29 Candidate Courier Generation
A new request: r => A set of couriers that can possibly arrive at l(r) before deadline d(r) Using the NVD index, we can identify the candidate couriers Prune candidates using Incurred distance calculation

30 Candidate Pruning: Incurred Distance Calculation
Ex: S = (Rij, R, Ri,j+1) Two criteria for inserting R: New tasks ( R) can be serviced before it’s deadline ( D) (Arrival time of R service time + (travel from task Rij to Rij+1) < Deadline of R Shove red thing in the middle is OK???

31 Candidate Pruning: Incurred Distance Calculation
Ex: S = (Rij, R, Ri,j+1) Two criteria for inserting R: 2. All pre-existing tasks ( Rij and Rij+1) are unaffected d= latest possible arrival time

32 Candidate Pruning: Incurred Distance Calculation
Ex: S = (Rij, R, Ri,j+1) dist = latest possible time a courier can arrive at Rij and still meet deadlines Δdist = ( (travel b/t Rij & R) (travel b/t R & Rij+1) (travel between Rij to Rij+1) ) Add the new task to the courier with Min( Δdist)

33 Methodology Components
Network Indexing Candidate Courier Generation & Pruning Lazy Path Computation

34 Lazy Path Computation - Lower Bound of Incurred Distance
Ex: S = (Rij, R, Ri,j+1) Δdist calculation is computationally expensive Reduce processing time by computing lower bound Δdist_j If Δdist_j is too large we don’t consider it, this prunes the search space If delta d = large. Servicing the request R is too much = small. Good!!

35 Methodology Components
Network Indexing Candidate Courier Generation & Pruning Lazy Path Computation BestR Algorithm - Priority Queue

36 BestR Algorithm & Priority Queue
Initialize an empty queue

37 BestR Algorithm & Priority Queue
Initialize an empty queue Compute all lower bound costs

38 BestR Algorithm & Priority Queue
Initialize an empty queue Compute all lower bound costs Check if each lower bound is valid, if so add to queue

39 BestR Algorithm & Priority Queue
Initialize an empty queue Compute all lower bound costs Check if each lower bound is valid, if so add to queue Pop queue and check if actual distance was calculated, if so return that courier and segment

40 BestR Algorithm & Priority Queue
Initialize an empty queue Compute all lower bound costs Check if each lower bound is valid, if so add to queue Pop queue and check if actual distance was calculated, if so return that courier and segment If lower bound was used, compute costs

41 BestR Algorithm & Priority Queue
Initialize an empty queue Compute all lower bound costs Check if each lower bound is valid, if so add to queue Pop queue and check if actual distance was calculated, if so return that courier and segment If lower bound was used, compute costs Check if, with actual distance, entry is valid. If so, push back onto queue

42 BestR Algorithm & Priority Queue
Initialize an empty queue Compute all lower bound costs Check if each lower bound is valid, if so add to queue Pop queue and check if actual distance was calculated, if so return that courier and segment If lower bound was used, compute costs Check if, with actual distance, entry is valid. If so, push back onto queue If no courier is found, return that request cannot be satisfied

43 Methodology Components
Network Indexing Candidate Courier Generation & Pruning Lazy Path Computation BestR Algorithm - Priority Queue Batch Assignment Basic Algorithm

44 Batch Assignment - Basic Algorithm
Compute the time and the latest time to arrive in schedule for each courier. And update courier locations as new request comes in.

45 Batch Assignment - Basic Algorithm
Compute the time and the latest time to arrive in schedule for each courier. And update courier locations as new request comes in. Compute candidate couriers for a request, and use BestR to find best courier. If none exists, the request is declined.

46 Batch Assignment - Basic Algorithm
Compute the time and the latest time to arrive in schedule for each courier. And update courier locations as new request comes in. Compute candidate couriers for a request, and use BestR to find best courier. If none exists, the request is declined. Updating the schedule set via inserting new request

47 Effectiveness: Batch Assignment
Time: 46min Example of Basic Algorithm (first-come, first-served): Consider r3, but it does not satisfy (if travel to r3 -> miss the latest time to r2) Consider r4, it works. However, r5 and r6 are not available (large distance of r4 to r5 and r6) Improvement?

48 Effectiveness: Batch Assignment
Time: 46min Time: 44min Example of Basic Algorithm (first-come, first-served): Consider r3, but it does not satisfy (if travel to r3 -> miss the latest time to r2) Consider r4, it works. However, r5 and r6 are not available (large distance of r4 to r5 and r6) Improvement? Using incurred distance as the first priority.

49 Methodology Components
Network Indexing Candidate Courier Generation & Pruning Lazy Path Computation BestR Algorithm - Priority Queue Batch Assignment Basic Algorithm SIDF (shortest incurred distance first)

50 SIDF Accepts task requests
Identify candidate couriers for each request Creates a set of potential request for each candidate Prioritized by min(Δdist) i.e. Δdist_j Formally assigns to a schedule Update priority of potential request set Terminates Why would you want to update remaining potenial requestst

51 SIDF - Shortest Incurred Distance First
For each courier, compute the time & latest time to arrive at new location The Basic solution (Algorithm 2) adopts a first-come, firstserved strategy in which early requests have high priority to be assigned. However, using request arrival time as the first priority may result in inferior scheduling result. SDIF

52 SIDF - Shortest Incurred Distance First
For each courier, compute the time & latest time to arrive at new location Each time interval, update courier locations and save new requests The Basic solution (Algorithm 2) adopts a first-come, firstserved strategy in which early requests have high priority to be assigned. However, using request arrival time as the first priority may result in inferior scheduling result. SDIF

53 SIDF - Shortest Incurred Distance First
For each courier, compute the time & latest time to arrive at new location Each time interval, update courier locations and save new requests Compute candidate couriers for each new request and then the candidate requests (where each courier can reach before their deadlines) Candidate Computation. The procedure ComputeCand to compute the candidates is shown in lines 8-13 of Algorithm 3. We first compute the candidates candðrÞ for each request r 2 R (lines 10-11) using the same method in Algorithm 2. Then we compute the candidate set candðciÞ, which is a set of requests that courier ci can reach before their deadlines, for each ci 2 C. candðciÞ can be considered as an inverse set of candðrÞ, thus, for each ci 2 candðrÞ, we simply add r into candðciÞ (lines 12-13).

54 SIDF - Shortest Incurred Distance First
For each courier, compute the time & latest time to arrive at new location Each time interval, update courier locations and save new requests Compute candidate couriers for each new request and then the candidate requests (where each courier can reach before their deadlines) Initialize global priority queue (maintains priorities of all requests) Candidate Computation. The procedure ComputeCand to compute the candidates is shown in lines 8-13 of Algorithm 3. We first compute the candidates candðrÞ for each request r 2 R (lines 10-11) using the same method in Algorithm 2. Then we compute the candidate set candðciÞ, which is a set of requests that courier ci can reach before their deadlines, for each ci 2 C. candðciÞ can be considered as an inverse set of candðrÞ, thus, for each ci 2 candðrÞ, we simply add r into candðciÞ (lines 12-13).

55 SIDF - Shortest Incurred Distance First
For each courier, compute the time & latest time to arrive at new location Each time interval, update courier locations and save new requests Compute candidate couriers for each new request and then the candidate requests (where each courier can reach before their deadlines) Initialize global priority queue (maintains priorities of all requests) The best courier for each request (by BestR) is pushed into the priority queue with minimum distance priority Candidate Computation. The procedure ComputeCand to compute the candidates is shown in lines 8-13 of Algorithm 3. We first compute the candidates candðrÞ for each request r 2 R (lines 10-11) using the same method in Algorithm 2. Then we compute the candidate set candðciÞ, which is a set of requests that courier ci can reach before their deadlines, for each ci 2 C. candðciÞ can be considered as an inverse set of candðrÞ, thus, for each ci 2 candðrÞ, we simply add r into candðciÞ (lines 12-13).

56 SIDF - Shortest Incurred Distance First
For each courier, compute the time & latest time to arrive at new location Each time interval, update courier locations and save new requests Compute candidate couriers for each new request and then the candidate requests (where each courier can reach before their deadlines) Initialize global priority queue (maintains priorities of all requests) The best courier for each request (by BestR) is pushed into the priority queue with minimum distance priority In order of minimum distance, assign a request to best courier and remove request from new requests Candidate Computation. The procedure ComputeCand to compute the candidates is shown in lines 8-13 of Algorithm 3. We first compute the candidates candðrÞ for each request r 2 R (lines 10-11) using the same method in Algorithm 2. Then we compute the candidate set candðciÞ, which is a set of requests that courier ci can reach before their deadlines, for each ci 2 C. candðciÞ can be considered as an inverse set of candðrÞ, thus, for each ci 2 candðrÞ, we simply add r into candðciÞ (lines 12-13).

57 SIDF - Shortest Incurred Distance First
For each courier, compute the time & latest time to arrive at new location Each time interval, update courier locations and save new requests Compute candidate couriers for each new request and then the candidate requests (where each courier can reach before their deadlines) Initialize global priority queue (maintains priorities of all requests) The best courier for each request (by BestR) is pushed into the priority queue with minimum distance priority In order of minimum distance, assign a request to best courier and remove request from new requests Each remaining candidate request that that courier can serve needs to be updated. If this updated priority is still valid, insert the request back into the global queue

58 Methodology Components
Network Indexing Candidate Courier Generation & Pruning Lazy Path Computation BestR Algorithm - Priority Queue Batch Assignment Basic Algorithm SIDF (shortest incurred distance first) Two-level Priority Queue Structure SIDF (shortest incurred distance first) vs SIDF*

59 SIDF vs SIDF* SIDF computationally expensive SIDF*
Update priority of all potential request sets Calculates all incurred distances SIDF* Same as SIDF Key differences Limits which couriers are affected by updates Two level priority queue Why would you want to update remaining potenial requestst

60 Two-level priority structure

61 Global list (H) sources from local lists (Hi . . . Hn)

62 Formally assign task to courier 1

63 Delete task for courier 1’s set of potential requests

64 Update Courier 1’s Actual Schedule

65 Lazily delete the task from any other couriers that had it

66 Evaluation & Results Cost is a measure of time

67 Evaluation Dataset Dataset Assumptions Bejing road network (15x5 Km)
8.8K nodes & 11.3K edges Tested methodology on a generated data set Assumptions Requests from everywhere 5400 requests/hour

68 Evaluation Results: Effectiveness
Satisfaction Rate Avg. Incurred Distance (cost to service) Tested with against different models with different parameters for couriers, confirmation time, speed Nearest = assign to whatever is closest

69 Evaluation Results: Effectiveness vs. Varying Couriers
SIDF* = less staff for same amount of work

70 Evaluation Results: Effectiveness vs. Varying Confirmation Time
Nearest/Basic are independent of SR

71 Evaluation Results: Effectiveness vs
Evaluation Results: Effectiveness vs. Varying Courier Speed (cost to travel b/t tasks)

72 Evaluation Results: Effectiveness vs. Scalibility

73 Evaluation Results: Efficiency vs. Varying Couriers

74 Evaluation Results: Efficiency vs. Varying Confirmation Time

75 Evaluation Results: Efficiency vs. Varying Confirmation Time
Evaluates two-level priority structure (SIDF*) vs. not having it (SIDF)

76 Evaluation Results: Efficiency vs. Varying Request Amounts
Exhaustive Search doesn’t scale! EXACT = exhaistove seat

77 Evaluation Results: Efficiency vs. Varying Request Amounts
Exact algorithm don’t scale!

78 Evaluation Results: Efficiency vs. Varying Request Amounts

79 Evaluation Results: Effectiveness & Efficiency
How can we expand on the testing methodologies? How would taking courier capacity in account change the results?

80 Applications & Future Work
Cost is a measure of time

81 Potential Applications & Future Work
Mail services TaskRabbit PostMates Future Work Take courier capacity into account

82 References & Images References Images
[1] "Evolution of Retail Logistics." THE GEOGRAPHY OF TRANSPORT SYSTEMS. N.p., n.d. Web. 13 Feb < Images Home depot Walmart Sephora Apple Macys Ebay Jcrew Amazon NYC Region


Download ppt "Effective and Efficient: Large-Scale Dynamic City Express"

Similar presentations


Ads by Google