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 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 Map Packages Trucks ◦ Start at Fedex Ship Center at 25 W, 45th st, New York, NY, 10036 ◦ Use Google Map to calculate cost of edges ◦ 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. ◦ Normally, the number of trucks are very small compared to the number of packages ◦ Therefore here we use 10 trucks here. 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) 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 …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… 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. 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 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); 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 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 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 Fedex Website(www.fedex.com/us ) Google Map(maps.google.com) Class Notes on NP-Completeness