14
Delivery Scheduling Evaluation of Different solution methods Joonkyu Kang

Evaluation of Different solution methods Joonkyu Kang

Embed Size (px)

Citation preview

Page 1: Evaluation of Different solution methods Joonkyu Kang

Delivery SchedulingEvaluation of Different solution methods

Joonkyu Kang

Page 2: Evaluation of Different solution methods Joonkyu Kang

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

Building a Scheduling Problem

Page 3: Evaluation of Different solution methods Joonkyu Kang

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

Simplifying Assumptions

Page 4: Evaluation of Different solution methods Joonkyu Kang

Map◦ Start at Fedex Ship Center at 25 W, 45th st, 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.

Creating Data

Page 5: Evaluation of Different solution methods Joonkyu Kang

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)

Poor Lower Bounds

Page 6: Evaluation of Different solution methods Joonkyu Kang

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

Algorithm #1: EDD Rule

Page 7: Evaluation of Different solution methods Joonkyu Kang

…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…

Simulation Code

Page 8: Evaluation of Different solution methods Joonkyu Kang

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.

Result and Problems

Page 9: Evaluation of Different solution methods Joonkyu Kang

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

Algorithm #2: Greedy Algorithm

Page 10: Evaluation of Different solution methods Joonkyu Kang

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);

Simulation Code

Page 11: Evaluation of Different solution methods Joonkyu Kang

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

Result and Problems

Page 12: Evaluation of Different solution methods Joonkyu Kang

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

Conclusion

Page 13: Evaluation of Different solution methods Joonkyu Kang

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

Further Development

Page 14: Evaluation of Different solution methods Joonkyu Kang

Fedex Website(www.fedex.com/us ) Google Map(maps.google.com) Class Notes on NP-Completeness

References