Repository navigation
🧩 Constraint Solving POTD:Problem of the Day: Dial-a-Ride Problem (DARP) #71869
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Constraint Solving — Problem of the Day. A newer discussion is available at Discussion #72076. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Problem Statement
The Dial-a-Ride Problem is a variant of vehicle routing where you must serve a set of passenger requests, each with a pickup location and a delivery location. A fleet of vehicles must efficiently route to collect passengers and deliver them to their destinations, subject to:
Concrete Instance
Imagine 6 passenger requests in a city, 2 vehicles with capacity 3, and a service window from 8:00 AM to 5:00 PM:
Goal: Find vehicle routes and schedules that serve all requests while minimizing total travel time, violations of time windows, or the number of vehicles.
Why It Matters
Modeling Approaches
Approach 1: Mixed-Integer Programming (MIP)
Paradigm: Mathematical programming with binary and continuous variables.
Decision variables:
x[i,j,v,t]= 1 if vehiclevtravels directly from locationitojat time stept; 0 otherwisea[i,v]= arrival time of vehiclevat locationin[i,v]= net passenger load in vehiclevafter visiting locationi(positive for pickups, negative for deliveries)Key constraints:
0 ≤ n[i,v] ≤ capacity[v]at all locationstime_window_start[i] ≤ a[i,v] ≤ time_window_end[i]a[delivery[r],v] - a[pickup[r],v] ≤ max_ride_time[r]Trade-offs:
Approach 2: Constraint Programming (CP)
Paradigm: Logic-based search with rich global constraints.
Decision variables:
succ[i]= next location visited afteriin the route sequencevehicle[r]= which vehicle serves requestrtime[i]= arrival time at locationiload[i]= passenger load after visitingiKey constraints:
Trade-offs:
Example Model (MiniZinc Pseudo-code)
Key Techniques
1. Insertion Heuristics & Local Search
2. Time-Window Propagation & Forward-Backward Checking
3. Symmetry Breaking & Dominance
Challenge Corner
Question for you: Suppose you can offer incentives to passengers willing to adjust their time windows by up to 30 minutes (e.g., a 5% discount if they depart 15 minutes earlier). How would you model and solve this as a combined optimization and negotiation problem? Would you:
Which approach scales best for 100 requests across 10 vehicles?
References
Cordeau, J. F., Gendreau, M. (2007). "The Dial-a-Ride Problem: Models and Algorithms." Journal of the Operational Research Society, 58(4), 534–546.
Parragh, S. N., Doerner, K. F., Hartl, R. F. (2008). "A Survey on Optimization Problems for Vehicle Routing and Logistics." Computers & Operations Research, 35(2), 490–510.
Rossi, F., van Beek, P., Walsh, T. (Eds.). (2006). Handbook of Constraint Programming. Elsevier. [Chapter on Dynamic Routing and VRP variants]
OR-Tools VRPTW Example: (developers.google.com/redacted)
All reactions