Vehicle Routing and Scheduling
Vehicle Routing and Scheduling
Vehicle Routing and Scheduling
Scheduling
Nigerian Institute of
Transport Technology,
NITT Zaria
Introduction
Freight routing
routing of shipments
Service routing
dispatching of repair technicians
Passenger routing
transportation of elderly
Freight Routing (LTL)
DCs
EOLs
Custo
mers
Origin-Destination Route
Pickup and
delivery
EOL
Origin
DC
Shuttle
Linehaul scheduling
scheduling
Destination
Routing and Scheduling
Objectives
minimize vehicles
minimize miles
minimize labor
satisfy service requirements
maximize orders
maximize volume delivered per mile
Routing and Scheduling
Practical considerations
Single vs. multiple depots
Vehicle capacity
homogenous vs. hetrogenous
volume vs. weight
Driver availability
Fixed vs. variable start times
DoT regulations (10/1, 15/1, 70/8)
Routing and Scheduling
Construction algorithms
Improvement algorithms
Savings heuristic
Insertion heuristics
Savings
i j
i k
Yes
Selection:
If partial tour T does not include all cities,
find cities k and j, j on the tour and k not, for
which c(j,k) is minimized.
Insertion:
Let {i,j} be either one of the two edges
involving j in T, and replace it by {i,k} and
{k,j} to obtain a new tour including k.
Nearest
Insertion
Selection:
If partial tour T does not include all cities,
find cities k and j, j on the tour and k not, for
which c(j,k) is minimized.
Insertion:
Let {i,j} be the edge of T which minimizes
c(i,k) + c(k,j) - c(i,j), and replace it by {i,k}
and {k,j} to obtain a new tour including k.
Farthest
Insertion
Selection:
If partial tour T does not include all cities,
find cities k and j, j on the tour and k not, for
which c(j,k) is maximized.
Insertion:
Let {i,j} be the edge of T which minimizes
c(i,k) + c(k,j) - c(i,j), and replace it by {i,k}
and {k,j} to obtain a new tour including k.
Cheapest
Insertion
Selection:
If partial tour T does not include all cities,
find for each k not on T the edge {i,j} of T
which minimizes c(T,k) = c(i,k) + c(k,j) -
c(i,j). Select city k for which c(T,k) is
minimized.
Insertion:
Let {i,j} be the edge of T for which c(T,k) is
minimized, and replace it by {i,k} and {k,j} to
obtain a new tour including k.
Worst case results
Nearest addition: 2
Nearest insertion: 2
Cheapest insertion: 2
Farthest insertion:
> 2.43 (Euclidean)
> 6.5 (Triangle
inequality)
Implementation
Priority Queue
insert(value, key)
getTop(value, key)
setTop(value, key)
k-d Tree
deletePt(point)
nearest(point)
Implementation
Tree->deletePt(StartPt)
NNOut[StartPt] := Tree->nearest(StartPt)
PQ->insert(Dist(StartPt, NNOut(StartPt)), StartPt)
loop n-1 time
loop Find nearest point
PQ->getTop(ThisDist, x)
y := NNOut[x]
If y not in tour, then break Delayed
NNOut[x] = Tree->nearest(x) update
PQ->setTop(Dist(x, NNOut[x]), x)
Add point y to tour; x is nearest neighbor in tour
Tree->deletePt(y) Update
NNOut[y] = Tree->nearest(y)
PQ->insert(Dist(y, NNOut[y]), y)
Improvement Algorithms
Start with a
feasible solution x
Replace x by y
Is there an
improving neighbor y
y in N(x)? Yes
No x
N(x)
x is locally optimal
2-change
O(n2) possibilities
3-change
O(n3) possibilities
1-Relocate
O(n2) possibilities
2-Relocate
O(n2) possibilities
Swap
O(n2) possibilities
GENI
Vehicle Routing and
Scheduling
Vehicle Routing and
Scheduling
1-relocate
B-cyclic k-transfer
Set covering based
algorithms
Possible route
Vehicle routing and scheduling
Possible route
Vehicle routing and scheduling
Possible route
Vehicle routing and scheduling
Possible route
Vehicle routing and scheduling
Possible route
Vehicle routing and scheduling
Possible route
Vehicle routing and scheduling
Possible route
Set partitioning formulation
c1 c2 c3 c4 …
Cust 1 1 1 0 1… = 1
Cust 2 1 0 1 0… = 1
Cust 3 0 1 1 0… = 1
…
Cust n 0 1 0 0… = 1
y/n y/n y/n y/n …
Set covering based
algorithms
Advantage
very flexible
heuristics for route generation
complicating constraints in route generation
Disadvantage
small to medium size instances