Approches basées sur les métaheuristiques pour la gestion de flotte en temps réel Frédéric SEMET LAMIH, UMR CNRS, Université de Valenciennes
Motivation Réseau terrestre (GSM) Telecommunication GPS laptop / PC RF RS232 Switch IP LAN Embarked System Capteurs
Dynamic Vehicle Dispatching Local area Wide Area Routing Courrier services Dial-a-ride Less-than-truckload trucking No routing Emergency services Truckload trucking
In real-time context : - Allocation problem - Reallocation problem Allocation problem : Which vehicle must be sent to answer a task? Reallocation problem : Vehicle routing model or Location model + additional constraints
Local search method Main Idea : Stat from an initial solution (feasible?) Apply local changes to the current solution while these moves lead to an improvement of the objective function. Problem : These methods stop in a local optimum. The solution quality and the computing time rely on how rich is the neighborhood of the current solution.
Basic principle of Tabu search Allow moves leading to no improvement of the current solution to not be blocked in a local optimum Problem : How avoids cycling? Solution: Keep a record of the search and avoid to visit again solutions previously considered : tabu moves
Solution space, neighborhood and tabu list Tabu search extends classical local search method. The search is performed within a solution space including all possible solutions. Tabu list : Short term memory Several possibilities : List of last encountered solutions List of last moves performed (forbid inverse transformations) List the main features of the solutions or of the transformations
Maximize f(s) on a given domain. Simple tabu search s : current solution f* : value of the best known solution s* : best known solution T : tabu list N(s) : neighborhood of s (solutions visited from s by applying a simple tranformation) : "feasible" subset of N(s) (no tabu or satisfying the aspiration criterion). N (s) /* Initialization */ Select (build) an initial solution s 0. s:= s 0 ; f* := f(s 0 ) ; s* = s 0 ; T : = ; /* Search */ While the stopping criterion is not satisfied s : = arg max ( f ( s')) s' N ( s) If f(s) > f* then s* = s; f* := f(s) ; Declare tabu the current move (in T);
Real-time management of ambulances
Double covering constraints All the demand covered by an ambulance within r 2 (15) minutes A proportion a (90%) of the demand covered within r 1 (7) minutes
Double covering constraints Objective: Allocate ambulances to potential location sites to maximize the demand covered by 2 ambulances within r 1 minutes in a such way that : (1) the double covering constraints are satisfied ; (2) p ambulances are deployed.
Main Features of the Tabu Search Algorithm Solution space : Solution s specified by the number of ambulances located at each vertex of W may be infeasible / covering constraints. Objective function : with : M 1 >> M 2 >> 1. F(s) = f(s) - M 1 f 1 (s) - M 2 f 2 (s)
Initial solution : Solve the linear relaxation of the ILP Upper bound on the optimal value. Construct an initial solution using a rounding procedure. Tabu status : When an ambulance is moved from v n+j to v n+j : (j,j) is tabu for Θ 1 iterations.
Neighbourhood structure : Generate a set N(s) of neighbour solutions : Generate N(s) aspiration chains Aspiration chain: Move a number of ambulances to improve F(s)
Diversification : When the best known solution f* was not improved for Θ 2 iterations: 5 closest neighbours of v n+j all vertices of W not among the 5 closest neighbours Stopping rule : (f* 0.99 (initial upper bound)) or (f* was not improved for Θ 3 iterations)
Step 1 : (Initialization) Solve the linear relaxation - Build an initial solution Step 2 : (Neighbour solution) Generate the best neighbour of the current solution (invoke if necessary the diversification phase) Step 3 : (Incumbent update and stopping rule) Update the current solution and the tabu status Udpate the best known solution if an improvement occurred Goto step 2 while the stopping criterion is not satisfied
Redeployment Problem Ambulance location model + additional constraints Additional constraints? Move only a limited number of ambulances Do not move always the same vehicles Avoid repeated round trips between 2 location sites Avoid long trips Avoid assignments near the end of a shift Take into account the breaks of the paramedics...
Parallelization strategy Optimization : Given a current deployment : 1 - For each site, select which ambulance will be assigned to a call. 2 - Compute the relocation decisions associated with the future assignment of this ambulance. 3 - Store this relocation strategy. Data updates : Relocations strategies when an ambulance is again available.
Simulation 4 types of calls : - urgent call - one ambulance : 80% - urgent call - two/three ambulances : 3% - less urgent call : 10% - pending call : 7% Radii: - urgent call : r 1 = 7 min. - less urgent call : r 2 = 15 min. Frequency of calls : - population. - day period. Ambulances : - number of ambulances / day period. - speed : zone (3) day period.
Demand points and waiting sites in Montreal and Laval Demands points Waiting sites
Each simulation : 7 hours on 16 Ultra Sparc Station 142 calls and 54 ambulances on average. Average results on 6 simulations : Response times to calls : - All calls covered in less than 15 min. - Average response time for less urgent calls : 9 min. - 98.5 % of urgents calls covered in less than 7 min. - Average response time for urgent calls : 3 min. 30 sec. Relocation strategies : - Ambulances moved in 38% of cases. - 99.5% of relocations involve less than 5 ambulances. - 2.08 ambulances are moved on average. - 95 % of relocations strategies were computed. - When not computed, max. available time : 32 sec.
Real-time management of trucks TESS Project PEPSAT
Routes planning Determine m routes such that : 1. The route of each vehicle starts and ends at given locations 2. A request is assigned to a unique vehicle 3. The volume capacity and the carrying capacity are respected 4. The pick-up and delivery locations are visited within their time-windows 5. The total cost is minimized and the number of requests served is maximized
Tabu search Moves Route of vehicle i Route of vehicle j Fictitious route Route of vehicle i Route of vehicle i Fictitious route Solution space : Solution s specified by the sequence of locations served by each vehicle may be infeasible / capacity constraints / time-window contraints / assignment constraints.
2 requests : Move evaluation - Compatibility matrix
Compatibility matrix - Move evaluation Compatibility matrix M: m ij = 0 1 2 if request i and j cannot be served on the same route visiting i+ before if request i and j can be served on the same route visiting i+ before if request i and j can be served on the same route if j+ is visited after j+ j+ i Move evaluation: Assume that vehicle k serves requests 1 and 2 and that 1 + is served before 2 + Request i can be served by vehicle k and i + is visited between 1 + and 2 + if : m 1i m i2 0
Cost insertion matrix - Objective function Cost insertion matrix : Given request i not served by vehicle k, we keep in memory : - the cost of the route of vehicle k when request i is served - the capacity constraint and time-window constraint violations - the positions of i + and i - Objective function : f(s) = c(s) + α q(s) + β w(s) + ϕ c (s) + p(s) Cost associated with an unserved request = cost of service on a specific route a, b and ϕ are dynamically updated during the search
Tabu list - Aspiration function Tabu list : When request i is removed from the route of vehicle k, it is forbidden to reinsert i in the route of k for a given number of iterations. Aspiration function : The tabu status can be overridden when the insertion of a request in a route improved the best known solution (all requests have to be assigned).
Diversification Keep in memory the number of visited solutions in which a request is served by a given vehicle. At a given iteration, a solution s not improving the current solution s (f(s ) >f(s)) is penalized according to the frequencies associated with the assignments of requests to vehicles.
Computational results 28 random instances (Testbed of Li & Lim) : - 50 requests - 10 vehicles Class Instances Improved Best known Average solutions lc 9 1 6 4.6 % lr 12 0 11 0.3 % lrc 7 0 6 0.1 %
Computational times Average Minimum Maximum LAMIH 45 3 132 LL 263 33 1253 Times are reported in seconds
From static to dynamic route planning Dynamic route planning Planning on a rolling horizon At time t different events can happen :. A set of requests was completed. Only the pick-up parts of some request were performed. A new set of requests have to be considered. Requests have not to be considered anymore. Vehicles were delayed. A new vehicle is available. A vehicle is not available anymore
From static to dynamic route planning What cannot be changed :. Requests for which only the pick-up parts were performed cannot be moved. All actions realized during the decision sphere The decision sphere is a time interval starting at t ending at t+ t devoted to to the computation and the evaluation of a new transportation planning. The positions of vehicles known at t have to be estimated at t+ t
From static to dynamic route planning The tabu search algorithm is run given the status of the vehicle at at t+ t The current solution is reevaluated regarding :. the vehicle availability. the delays of vehicles New requests / requests assigned to vehicle not available Fictitious route It may exist no feasible solution regarding: - the assignment constraints - the time-windows constraints
Conclusion - Challenging problems : specialization in an industry sector take into account cost structure better integration - New methods - Real-time aspects