VRP Technical Description
The Vehicle Routing Problem (VRP) is a combinatorial optimization problem whose ground set is the edges of a graph G(V, E). The notation used for this problem is as follows:
is a vertex set, where:
- a depot is located at
;
is the set of
customers (cities).
- a depot is located at
, i
j, is an arc set.
is a matrix of non-negative costs or distances
between customers
and
.
is a vector of the customer demands.
is the route assigned to vehicle
.
is the number of vehicles (all identical). One route is assigned to each vehicle.
When
for all
, the problem is said to be symmetric, and it is then common to replace
with the edge set
.
With each vertex
in
is associated a quantity
of goods to be delivered by a vehicle. The VRP thus consists of determining a set of
vehicle routes of minimal total cost, starting and ending at the depot, such that every vertex in
is visited exactly once by exactly one vehicle.
For easy computation, one can define
, an obvious lower bound on the number of trucks needed to serve the customers in set V′.
We consider a service time
(the time needed to unload all goods) required by a vehicle to unload the quantity
at
. The total duration of any vehicle route (travel plus service times) may not surpass a given bound
, so in this context the cost
is taken to be the travel time between the cities. The VRP defined above is NP-hard [Lenstra & Rinnooy Kan 1981].
Feasible solutions and cost
A feasible solution is composed of:
- a partition
of V; - a permutation
of
specifying the order of the customers on route
.
The cost of a given route (
), where
and
(0 denotes the depot), is given by:
![]()
A route
is feasible if the vehicle stops exactly once at each customer and the total duration of the route does not exceed the prespecified bound
:
![]()
Finally, the cost of the problem solution S is:
![]()
Integer programming formulation
Let xij be a binary variable equal to 1 if the arc from i to j is used by a vehicle, and 0 otherwise. The capacitated VRP can be written as the following two-index vehicle flow model:
min ∑i∈V ∑j∈V cij xij
subject to:
∑i∈V xij = 1 ∀j ∈ V′ (each customer is entered exactly once)
∑j∈V xij = 1 ∀i ∈ V′ (each customer is left exactly once)
∑j∈V′ x0j = ∑i∈V′ xi0 = m (m vehicles leave and return to the depot)
∑i∈S ∑j∈S xij ≤ |S| − r(S) ∀S ⊆ V′ (capacity-cut / subtour elimination)
xij ∈ {0, 1}
Here r(S) is a lower bound on the number of vehicles needed to serve the customer set S; in the capacitated case the simple bound ⌈∑i∈S qi / Q⌉ is typically used, where Q is the vehicle capacity.
See also: Capacitated VRP · VRP with Time Windows · Traveling Salesman Problem · Problem instances