140 likes | 330 Views
Delivery Scheduling. Evaluation of Different solution methods Joonkyu Kang. Building a Scheduling Problem. Based on typical Fedex delivery situation Machines: delivery trucks Jobs: packages to be delivered Processing time: traveling time to the destination
E N D
Delivery Scheduling Evaluation of Different solution methods Joonkyu Kang
Building a Scheduling Problem • Based on typical Fedex delivery situation • Machines: delivery trucks • Jobs: packages to be delivered • Processing time: traveling time to the destination • Deadline: different for each type of package • Constrained to Manhattan, New York area only • Objective: two possible objectives • Minimizing tardiness of delivery • Maximizing the number of delivery • Quite similar, but can be different • Will concentrate on minimizing tardiness
Simplifying Assumptions • Simplifying Manhattan area into a graph • Within the same zip code area, the traveling time is less than five minutes • Define vertices as different zip codes, and edges as distance between center of each area • Create edges only between adjacent areas • Since complete graph would take much more computational time • Packages of the same type and delivery trucks have identical characteristics • No further resource constraints • Ignore distance required to come back to the center
Creating Data • Map • Start at Fedex Ship Center at 25 W, 45thst, New York, NY, 10036 • Use Google Map to calculate cost of edges • Packages • Based on the revenues obtained, calculate the approximate percentage of each package • Cost of each package delivery is 1 • Set deadlines based on package types • In this simulation, we will use 200 packages. • Trucks • Normally, the number of trucks are very small compared to the number of packages • Therefore here we use 10 trucks here.
Poor Lower Bounds • If we have sufficient number of delivery trucks, we can assign one for each package • Total delivery time: 415.88 (Since every zipcode is in delivery locations) • Total lateness: 16.20 • Also, the largest lateness of all packages is 4.310, but it is not as good as above(with delivery time 14.31)
Algorithm #1: EDD Rule • First notice this is a NP Problem • To minimize lateness, the simplest approach would be using EDD rule • The algorithm is: • First align jobs according to the due date • Assign each job to each empty truck • A greedy algorithm in terms of lateness
Simulation Code • …for i=1:Count • [TotalTime Assignment] = min(TruckTime); • CurrentLoc = TruckLocation(Assignment); • MatLoc = find(Distance==CurrentLoc); • Destination = Packages(i,4); • DestLoc = find (Distance==Destination); • CurrentTime = Distance(MatLoc(1), DestLoc(1)); • TruckTime(Assignment)=TruckTime(Assignment)+CurrentTime; • TruckLocation(Assignment)=Destination; • JobAssign(Assignment,i)=i; • Tmp = TruckTime(Assignment)-Packages(i,3); • disp(Tmp); • Lateness = Lateness + max(TruckTime(Assignment)-Packages(i,3),0); • End…
Result and Problems • Processing time of 1,638.2, Lateness of 12,322 • Problems • Extremely high lateness compared to the lower bound we obtained • Need to find a better lower bound • Need to compare to other methods • No consideration of processing time • Many factors affect the performance of the algorithm in this problem; not simply deadline.
Algorithm #2: Greedy Algorithm • Here we process each package in order • However, at each turn the truck closest to the next package is assigned for delivery • Repeat until all packages are assigned
Simulation Code • Destination = Packages(i,4); • DestLoc = find (Distance==Destination); • MinTruck = 0; • MinTruckNo = 0; • MinDistance = 99999; • for j=1:MNo • TempTruck = TruckLocation(j); • TempTruckLoc = find (Distance==TempTruck); • TempDist = Distance(DestLoc(1), TempTruckLoc(1)); • if TempDist < MinDistance • MinTruckNo = j; • MinTruck = TempTruckLoc(1); • MinDistance = TempDist; • end • end • CurrentTime = Distance(MinTruck, DestLoc(1)); • TruckTime(MinTruckNo)=TruckTime(MinTruckNo)+CurrentTime; • TruckLocation(MinTruckNo)=Destination; • JobAssign(MinTruckNo,i)=i; • Lateness = Lateness + max(TruckTime(MinTruckNo)-Packages(i,3),0);
Result and Problems • Processing time of 480.68 total, with lateness of 2770.6 • Problems • Much better result, but with some lateness • The closest truck to the next delivery location is not always the best choice for tardiness • Need to incorporate choice of packages • Also, the completion time of trucks vary; therefore extra lateness occurs
Conclusion • By using a greedy algorithm, we could obtain somewhat satisfying schedule in terms of processing time • However, we are not completely sure if the large lateness is because of the number of trucks or the problem of algorithms • We can expect to obtain the tardiness closer to the lower bound by making the completion time of each truck even
Further Development • Critical Path Method: Applying Graph Theory • Define an appropriate sink node and apply the following algorithm: • For each truck, find a critical path to the sink • Delete the path previously used • Problems: is independent of the characteristics of packages. Data size gets enormous. • Check sensitivity of algorithms by changing factors • In order to have completion time even, mix different algorithms
References • FedexWebsite(www.fedex.com/us ) • Google Map(maps.google.com) • Class Notes on NP-Completeness