620 likes | 1.23k Views
DYNAMIC VEHICLE ROUTING PROBLEM. AGENDA. Overview of the Problem Problem & Solution Representation Constructive Heuristics Savings Algorithm Meta-heuristics Approaches Solution Construction Greedy Randomised Adaptive Search Procedure (GRASP) Solution Modification Tabu Search
E N D
AGENDA • Overview of the Problem • Problem & Solution Representation • Constructive Heuristics • Savings Algorithm • Meta-heuristics Approaches • Solution Construction • Greedy Randomised Adaptive Search Procedure (GRASP) • Solution Modification • Tabu Search • Solution Recombination • Genetic Algorithm • Dynamic Aspect of the Problem
Vehicle Routing ProblemOverview Delivery D=5 1pm-2pm D=8 Pickup D=3 D=4 D=2 D=7 D=1 4pm-5pm 3pm-4pm Depot D=2 Limited Capacity Last In First Out
Problem Representation • Set V = {0,1, ... ,n} of vertices • 0 is depot - assigned demand of 0 (d0 =0) • 1,...,n are customers – assigned demand di ≤ C • Set E of edges with cijbeing the cost of going from customer ito customer j. • Symmetric cost ci j = cji • xi j k is binary decision variable whether vehicle k traverse edge (i,j)
Solution Representation Permutation-like Coding: (0, 7, 10, 8, 0, 1, 6, 0, 2, 9, 0, 5, 4, 3, 0)
Constructive Heuristics • Start with an empty solution • Construct the solution from ground up • Using Heuristics – rule of thump, experience, intuition, … • Saving Algorithm
Saving Algorithm (Implementation) • Initialisation: At first every customer is serviced by a separate vehicle • Calculate Saving List for every pair of customers and sort it in descending order si j = c0 i + c0 j – ci j • Going down the Saving List, if can merger then merge . Condition: • Total demand is within capacity • Both customers adjacent to depot
Saving Algorithm(Result) Total Length: 258.4
Meta-heuristic ApproachesSolution Construction • Greedy Randomized Adaptive Search Procedure (GRASP) • Calculate seed customers S ={ i, j, k } • Create partial solution s based on seed customers s = R = {(0, i, 0), (0, j, 0), (0, k, 0) } • Iteratively insert un-routed customers until the solution is complete
Calculate seed customers Creation of the Partial Routes • Select customers of different geographical regions • Use as few seed customers as possible • Choose customer with highest cost from depot as first seed • Iteratively selecting customers with the highest minimum cost to all other seed customers until enough
Calculate seed customers Creation of the Partial Routes • S ={ 1, 2, 3, 7 } • s = R = {(0, 1, 0), (0, 2, 0), (0, 3, 0), (0, 7, 0) } • N ={ 4, 5, 6, 8, 9, 10 }
Iterative Insert of Un-Routed Customers • Evaluate Un-Routed Customers • Insertion priority determined by insertion cost
Iterative Insert of Un-Routed Customers • S ={ 1, 2, 3, 7 } • s = R = {(0, 1, 0), (0, 2, 0), (0, 3, 0), (0, 7, 0) } • N ={ 4, 5, 6, 8, 9, 10 }
Iterative Insert of Un-Routed Customers • Values are sorted in decreasing order (ip8, ip10, ip9, ip4, ip5, ip6) • Build restricted candidate list (ip8, ip10, ip9, ip4) • Choose a random customer from this list and insert at position with least cost
Meta-heuristic ApproachesSolution Modification • Tabu Search • Neighbourhood Concept • Sum of the cost of the edges removed must be higher then the sum of the cost of edges inserted
Meta-heuristic ApproachesSolution Modification • Neighbourhood Concept (Extension)
Tabu Search • Iteratively remove and add edges using neighborhood operator to improve current solution • Use a tabu list Recency-based information (short term memory) List has limited number of element • Edgesremoved by the neighborhood operator are added to tabu list and may not be added again to prevent cycling. • Terminate: • Maximum amount of iterations • Maximum allowed execution time • Best known solution has not been improving
Meta-heuristic ApproachesSolution Recombination • Genetic Algorithm • Operates on a on a large set of solutions (may not be optimal) called population • Build a new generation of solutions through parent selection and crossover operator • Purpose: combine properties of different solutions and create new ones • Mutation operator: preserve diversity, prevent premature convergence • Replacement operator: builds new population out of old and new individuals
Genetic Algorithm • Crossover operators: • A random route in parent s2 is chosen (0, 7, 2, 10, 0) • Customers of this route are removed in parent s1s1 temp: (0, 4, 1, 0, 8, 0, 9, 5, 3, 0, 6, 0) • Removed customers are inserted one by one by GRASP method
Genetic Algorithm • Crossover operators – result: • Mutation operator: randomly changing the solution
Dynamic Aspect of Vehicle Routing Problem • Static VS Dynamic: information used in planning may (and is very likely to) change: • Number of customers • Demand of customers • Number of trucks available • Cost / Travelling time between customers • Approach: • A daily list is prepared with available information • Create a system to respond to real time request • Objective: Optimal operation & Minimal disruption to already planned daily list