Solving the Vehicle Routing Problem with Multiple Multi-Capacity Vehicles Michael Sanders
Goals Create a program that given: List of delivery points Number and capacity of vehicles List of roads Return a list of routes that most efficiently utilize vehicles Efficiency undefined, but probably will be product delivered over distance traveled
Scope Heuristics A* search Needed for program to identify optimal placement of delivery point into a route and assigning a vehicle to a route Will probably need new heuristic, although some already exist for this problem A* search Used to find shortest route between two locations Will use heuristic based on geographical coordinates
Previous Research Vehicle Routing Problem (VRP) Extensively researched Solutions Agent architecture Used agents to represent vehicles and “auctioneer” that assigned customers to routes Ant colony optimization Could solve variants of VRP
Variants of VRP Variants VRP with Time Windows (VRPTW) Requires deliveries to be in specific time ranges for each delivery Multi-Depot VRP (MDVRP) Multiple origins for vehicles
Components Route finder Delivery route creator Given two intersections, find shortest-time route between the two Delivery route creator Using list of delivery points and quantity to be delivered, utilizes other component to most efficiently deliver the product
Route Finder Program responsible finding quickest route Uses A* search with a geographic heuristic Will use latitude and longitude coordinates to help find best route Will use speed limit information as well to find quickest route as well Uses Fairfax Cty and Census data
Delivery Route Creator Using previous component, will create routes and assign vehicles to them Will involve heuristic to determine best delivery point to be added to route and when new route should be created
Timeline Route finder should be complete NLT ½ through second quarter Route creator will follow after that Aiming to be done early spring in time for volunteer group’s delivery day to test program
Testing Currently running route finder program and giving it two intersections and evaluating result against known route information As heuristic is implemented, results can be compared against commercially available mapping programs
Other Information Language Problems Ruby Road data Not complete in certain fields—addresses, coordinates, speed limits, etc. Delivery data is not standardized Road names not standard throughout list
Things Learned Use of hash tables and array storage Inprocessing of data
Testing Analysis Route finder is currently successful so far Is capable of finding route between two intersections near each other However, is very inefficient Breadth-first search Given complexity of local road network, finding a route between intersections that are far away can take days
Main Points Importance of the route finder Crucial to the route creator’s ability to function Ways of implementing a heuristic in the route creator Some ideas from literature research