Pickup and delivery problems (PDPs) are a class of vehicle routing
problems in which objects or people have to be transported between
an origin and a destination. They can be classified into three
different groups. The first group consists of many-to-many problems,
in which any vertex can serve as a source or as a destination
for any commodity. An example of a many-to-many problem is the
Swapping Problem (Anily and Hassin, 1992). In this problem, every
vertex may initially contain an object of a known type of commodity
as well as a desired type of commodity. The problem consists of
constructing a route performing the pickups and deliveries of the
objects in such a way that at the end of the route, every vertex possesses
an object of the desired type of commodity. Problems in the
second group are called one-to-many-to-one problems. In these
problems commodities are initially available at the depot and are
destined to the customer vertices; in addition, commodities available
at the customers are destined to the depot. Finally, in one-toone
problems, each commodity (which can be seen as a request)
has a given origin and a given destination. Problems of this type
arise, for example, in courier operations and door-to-door transportation
services.