Download presentation
Presentation is loading. Please wait.
Published byPatricia Wells Modified over 9 years ago
1
Solving the Vehicle Routing Problem with Multiple Multi-Capacity Vehicles Michael Sanders
2
Overall 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
3
Current Goals Continue to develop route creator Current assigns all customers to routes Need to randomize assignment of customers to route Need to create catch in case route finder is unsuccessful/takes too long to find route between previous and current customer
4
Scope Heuristics In both aspects of program A* search Based on program’s estimate of distance to target Route creator Will most likely look to minimize distance traveled
5
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
6
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
7
Components Route finder Given two intersections, find shortest- distance route between the two Not necessarily fastest route Would need speed limit data Delivery route creator Using list of delivery points and quantity to be delivered, utilizes other component to most efficiently deliver the product
8
Route Finder Program responsible finding quickest route Uses US Census road data Uses A* search with a geographic heuristic Program moves from intersection to intersection as identified by lat/long Afterwards, determines route taken by list of lat/long coordinates passed through
9
Demonstration of Route Finder 2 Search_A_clean.rb
10
Route Creator In beginning stages Goes through list of customers Assigns everyone to routes based on vehicle capacities Two classes Route Solution
11
tempCust=$deliveries.clone $routes=Array.new $routes << Route.new($vehicles[0]) routeCounter=0 vehicleCounter=1 while not tempCust==[] starter=true while starter currentCust=tempCust.delete_at(rand*tempCust.length-1) starter=$routes[routeCounter].add_cust(currentCust) end routeCounter+=1 $routes << Route.new($vehicles[vehicleCounter]) vehicleCounter+=1 end
12
Timeline Route finder is done (except for when it doesn’t work) Now writing route creator Plan to use genetic algorithm to solve problem Route class will be the “genes” of the Solution object
13
Testing Easiest testing was to run route finder against personal knowledge Program fails at longer distances Goes for straightest path
14
Other Information Language Ruby Problems Data not completely standardized
15
Main Points Optimum answer not necessarily goal Finding optimum is too time-intensive Drivers have personal knowledge of routes and can adapt as necessary
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.