On the evaluation of the expected number of

On the evaluation of the expected number of
disruptions in VRP with hard time windows
Giovanni Andreatta, Marco Casula, Carla De Francesco,
Luigi De Giovanni
Dipartimento di Matematica, Università di Padova.
Via Trieste 63, I-35121 Padova (Italy).
([email protected], [email protected], [email protected],
[email protected])
1
Introduction
Let G = (N, A) be a directed graph where N is the set of customers. For each arc
(i, j) ∈ A, let ti j be the travel time from customer i to customer j. For each node v ∈ N ,
let tv be the service time and [av , bv ], with av ≤ bv the time window. We consider hard
time windows: early vehicles have to wait and no additional cost is incurred, while late
vehicles are prohibited to serve. Let p = v0 − v1 − . . . − vn be an elementary path on
G. With relation to p, the starting time si of a node vi is recursively defined as follows:
s0 = 0; si = max{ai , si−1 + ti−1 + ti−1 i } for every i = 1...n. Path p is feasible if vn = v0
and ai ≤ si ≤ bi , for every i = 0...n.
In the Vehicle Routing Problem with Hard Time Windows (VRPHTW), vehicles are
assigned to feasible paths in order to cover all the services at nodes.
We consider the Stochastic Vehicle Routing Problem with Hard Time Windows (SVRPHTW), where travel and service times are subject to independent random delays δi j ,
for each (i, j) ∈ A: we call fi j the probability density function of δi j and di j a realization
of δi j . In this case, the starting times become random variables defined as:
(
mi = max{ai , σi−1 + ti−1 + ti−1 i + δi−1 i } if mi ≤ bi
σi =
(1)
ui
otherwise.
If mi > bi , we say that a disruption occurs and a recourse action is needed in order to
ensure the service of customer i within its time window, that is σi = ui . Given a path p,
1
we are interested in computing the expected number of disruptions on p, that is equal to
P
n
i=1 P [d(i)], where d(i) is the event “a disruption occurs at node vi of p”.
2
The probability of a disruption
By denoting with e(k, i) (for 0 ≤ k < i) the event “the first disruption after node vk occurs
in vi (independently from the occurrence of other disruptions on the route from v0 to vk )”,
we have
P[d(i)] = P[e(0, i)] +
i−1
X
P[(e(k, i)|d(k))] · P[d(k)]
(2)
k=1
Under the hypothesis uk = sk ,
P[(e(k, i)|d(k))] = P[(δi−1 i > bi − (ti−1 i + ti−1 + σi−1 ))∧
∧ (δi−2 i−1 ≤ bi−1 − (ti−2 i−1 + ti−2 + σi−2 ))∧
(3)
∧ . . . ∧ (δk k+1 ≤ bk+1 − (tk k+1 + tk + sk ))]
In order to obtain an explicit formula for (3), we decompose the probability w.r.t. subsequent realizations of the variables δi−1 i . For the sake of simplicity, assume nonnegative
δi j . We obtain:
bk+1 −(tk k+1 +tk +sk )
Z
P[(δi−1 i > bi − (ti−1 i + ti−1 + σi−1 ))∧
P[e(k, i)|d(k)] =
0
∧ (δi−2 i−1 ≤ bi−1 − (ti−2 i−1 + ti−2 + σi−2 )) ∧ . . . ∧
(4)
∧ (δk k+1 ≤ bk+1 − (tk k+1 + tk + sk ))|δk k+1 = dkk+1 ]·
· fk k+1 (dk k+1 ) ddk k+1 =
Z
bk+1 −(tk k+1 +tk +sk )
P[(δi−1 i > bi − (ti−1 i + ti−1 + σi−1 ))∧
=
0
∧ (δi−2 i−1 ≤ bi−1 − (ti−2 i−1 + ti−2 + σi−2 )) ∧ . . . ∧
(5)
∧ (δk+1 k+2 ≤ bk+2 − (tk+1 k+2 + tk+1 + σk+1 ))|δk k+1 = dk k+1 ]·
· fk k+1 (dk k+1 ) ddk k+1 =
notice that (σk+1 |δk k+1 = dk k+1 ) is no longer a random variable:
Z
bk+1 −(tk k+1 +tk +sk )
P[(δi−1 i > bi − (ti−1 i + ti−1 + σi−1 ))∧
=
0
∧ (δi−2 i−1 ≤ bi−1 − (ti−2 i−1 + ti−2 + σi−2 )) ∧ . . . ∧
∧ (δk+1 k+2 ≤ bk+2 − (tk+1 k+2 + tk+1 + max{ak+1 , sk + tk + tk k+1 + dk k+1 }))|
|δk k+1 = dk k+1 ] · fk k+1 (dk k+1 ) ddk k+1 =
2
(6)
in the same way, we can integrate over the possible realizations of δk+1 k+2
Z
bk+1 −(tk k+1 +tk +sk ) Z bk+2 −(tk+1 k+2 +tk+1 +max{ak+1 ,sk +tk +tk k+1 +dk k+1 })
=
0
0
P[(δi−1 i > bi − (ti−1 i + ti−1 + σi−1 ))∧
∧ (δi−2 i−1 ≤ bi−1 − (ti−2 i−1 + ti−2 + σi−2 )) ∧ . . . ∧
(7)
∧ (δk+1 k+2 ≤ bk+2 − (tk+1 k+2 + tk+1 + max{ak+1 , sk + tk + tk k+1 + dk k+1 }))|
|δk k+1 = dk k+1 , δk+1 k+2 = dk+1 k+2 ]·
· fk+1 k+2 (dk+1 k+2 )ddk+1 k+2 fk k+1 (dk k+1 ) ddk k+1 =
Z
bk+1 −(tk k+1 +tk +sk ) Z bk+2 −(tk+1 k+2 +tk+1 +max{ak+1 ,sk +tk +tk k+1 +dk k+1 })
=
0
0
P[(δi−1 i > bi − (ti−1 i + ti−1 + σi−1 ))∧
∧ (δi−2 i−1 ≤ bi−1 − (ti−2 i−1 + ti−2 + σi−2 )) ∧ . . . ∧
(8)
∧ (δk+2 k+3 ≤ bk+3 − (tk+2 k+3 + tk+2 +
+ max{ak+2 , tk+1 + tk+1 k+2 + dk+1 k+2 + max{ak+1 , sk + tk + tk k+1 + dk k+1 }}))|
|δk k+1 = dk k+1 , δk+1 k+2 = dk+1 k+2 ]·
· fk+1 k+2 (dk+1 k+2 )ddk+1 k+2 fk k+1 (dk k+1 ) ddk k+1 =
and so on, until
Z
bk+1 −(tk k+1 +tk +sk ) Z bk+2 −(tk+1 k+2 +tk+1 +max{ak+1 ,sk +tk +tk k+1 +dk k+1 })
=
...
0
Z
0
bi−1 −(ti−2 i−1 +ti−2 +max{ai−2 ,max{... }}
...
(9)
0
P[(δi−1 i > bi − (ti−1 i + ti−1 + max{ai−1 , ti−2i−1 + ti−2 + di−2 i−1 +
+ max{. . . }}))] · fi−2 i−1 (di−2 i−1 )ddi−2 i−1 . . . fk k+1 (dk k+1 ) ddk k+1
This integral holds in general for any non negative delay distribution. However, in
order to evaluate it, one must either resort to numerical integration, or carry out the
integration and use the resulting formula.
A simple case: “regular” paths
Consider a “regular” path with s0 = 0 and, for each node vi , ti + ti i+1 = 2, ai = 2i
and bi = 2i + 1, and identical exponential delay random variables δi i+1 ∼ Exp(λ). We
will evaluate a closed formula for P [e(0, n − 1)]: by suitable index changes, the formula
can be easily adapted to get the expression for P [e(k, i)|d(k)]. By substituting the given
parameter in the integration extremes of equation (9), we obtain
3
1
Z
Z
P [e(0, n − 1)] =
1−(d0 1 +···+dn−4 n−3 )
P[δn−2 n−1 > 1 − (dn−3 n−2 + · · · + d0 1 )]·
...
0
0
· fn−3 n−2 (dn−3 n−2 )ddn−3 n−2 . . . f0 1 (d0 1 )dd0 1 =
Z 1
Z 1−(d0 1 +···+dn−4 n−3 )
=
...
e−λ(1−(dn−3 n−2 +···+d0 1 ) ·
0
0
· λe−λdn−3 n−2 ddn−3 n−2 . . . λe−λd0 1 dd0 1 =
=λ
n−2 −λ
1
Z
Z
1−(d0 1 +···+dn−4 n−3 )
ddn−3 n−2 . . . dd0 1 =
...
e
0
0
(10)
by realizing dn−3 n−2 ,
n−2 −λ
=λ
Z
1
Z
1−(d0 1 +···+dn−5 n−4 )
(1 − (d0 1 + · · · + dn−4 n−3 ))ddn−4 n−3 . . . dd0 1 =
...
e
0
0
= λn−2 e−λ
Z
= λn−2 e−λ
Z
1
Z
1−(d0 1 +···+dn−6 n−5 )
(1 − (d0 1 + · · · + dn−5 n−4 ))2
ddn−5 n−4 . . . dd0 1 =
2
1−(d0 1 +···+dn−7 n−6 )
(1 − (d0 1 + · · · + dn−6 n−5 ))3
ddn−6 n−5 . . . dd0 1 =
3·2
...
0
0
1
Z
...
0
0
= ...
= λn−2 e−λ
Z
0
1
(1 − d0 1 )n−3
dd0 1 =
(n − 3)!
λn−2 e−λ
.
=
(n − 2)!
(11)
The case of the regular path shown above allows for a relatively easy integration, due to
the simplicity of the delay distribution and the fact that all the time windows are identical
and at the same time distance, which simplifies the evaluation of the maxima to obtain
coherent integration intervals.
In a more general case, obtaining an explicit formula is not an easy task, even when
relatively simple delay distributions are used. In fact, independently of the distributions
used, one has to carefully evaluate all the maximum functions in the integrals upper limits.
Since these maxima depend on the integration variables, up to 2n−1 different cases must
be separately computed and then summed up. Notice that, without further constraints on
feasible paths, the only bound on n is the number of nodes in the graph. A second issue
comes from the distributions: if the p.d.f. are differently defined on different intervals,
further partitioning of the integration domain is required.
4
3
`-lookback approximation
In order to obtain an explicit formula from integral (9), we need to consider a number of
cases that is exponential in the length of the path, which is impractical. Thus we resort
to an `-lookback approximation to evaluate P[d(i)].
The `-lookback approximation consists in considering only the last ` delays before
vi , that is, we reformulate equation (2) assuming that the first node of the path is vk̄ ,
k̄ = max{0, i − `} and σk̄ = sk̄ . In this way we consider only a fixed (possibly small)
number of integration cases, regardless of the actual length of the path. The idea behind
this approximation is that, since the delay resets whenever the vehicle arrives outside a
time window, considering the whole delay history may be redundant.
The case of exponential distributions with ` = 3
Consider a generic feasible path p = v0 − v1 − . . . − vn , with exponential delay random
variables δi i+1 ∼ Exp(λi i+1 ). We show how to obtain an explicit formula for P[(e(0, 3)],
which can be easily adapted to get the formula for the 3-lookback approximation of the
generic P[(e(k, i)|d(k))]. Equation (9) becomes
Z b1 −(t0 +t0,1 +s0 ) Z b2 −(t1 +t1 2 +max{a1 ,s0 +t0 +t0 1 +d0 1 })
0
0
P[(δ2 3 > b3 − (t2 3 + t2 + max{a2 , t1 2 + t1 + d1 2 +
+ max{a1 , t0 1 + t0 + d0 1 + s0 }}))] · f1 2 (d1 2 ) dd1 2 f0 1 (d0 1 )dd0 1 =
b1 −(t0 +t0 1 +s0 ) Z b2 −(t1 +t1 2 +max{a1 ,s0 +t0 +t0 1 +d0 1 })
Z
(12)
=
0
0
−λ2 3 (b3 −(t2 3 +t2 +max{a2 , t1 2 +t1 +d1 2 +max{a1 , t0 1 +t0 +d0 1 +s0 }}))
e
−λ1 2 d1 2
· λ1 2 e
dd1 2 λ0 1 e
−λ0 1 d0 1
·
dd0 1
To avoid integration issues, we deal with the different maxima before integrating. First,
max{a1 , t0 1 + t0 + d0 1 + s0 } = a1 ⇔ d0 1 ≤ a1 − t0 − t0 1 − s0 , so we can appropriately split
the first integral. The inequality a1 − t0 − t0 1 − s0 ≤ b1 − t0 1 − t0 − s0 is guaranteed by
path feasibility; however, whether a1 − t0 − t0 1 − s0 ≥ 0 or not depends on the specific time
windows. Since delays are nonnegative, we must ensure that the integration is carried out
only over nonnegative numbers. Thus we split the integral as follows:
Z max{0,a1 −t0 −t0 1 −s0 } Z b2 −t1 2 −t1 −a1
e−λ2 3 (b3 −(t2 3 +t2 +max{a2 , t1 2 +t1 +d1 2 +a1 })) ·
0
0
· λ1 2 e−λ1 2 d1 2 dd1 2 λ0 1 e−λ0 1 d0 1 dd0 1 +
Z b1 −(t0 +t0 1 +s0 )
Z max{0,b2 −(t1 2 +t1 +t0 1 +t0 +d0 1 +s0 )}
+
max{0,a1 −t0 −t0 1 −s0 } 0
−λ2 3 (b3 −(t2 3 +t2 +max{a2 , t1 2 +t1 +d1 2 +t0 1 +t0 +d0,1 +s0 }))
e
· λ1 2 e−λ1 2 d1 2 dd1 2 λ0 1 e−λ0 1 d0 1 dd0 1
5
·
(13)
meaning that the first integral might be over a single point, i.e. zero. Notice that while
we want to discuss all maxima before integrating, it is fine to have maxima as extremes
in the outermost integral, because they will not be involved in any further integration.
Since discussing all cases would take too long without adding any important contribution to our discussion, let us consider only the second term in (13). First, notice that the
innermost integral may be over an empty domain: for a non trivial integral it should be
d0 1 ≤ b2 − t1 2 − t1 − t0 1 − t0 − s0 . Moving this condition to the extremes of the outer
integral, we have
Z
e
min{b1 ,b2 −(t1 2 +t1 )}−(t0 1 +t0 +s0 ) Z b2 −(t1 2 +t1 +t0 1 +t0 +d0 1 +s0 )
max{0,a1 −(t0 1 +t0 +s0 )}
0
−λ2 3 (b3 −(t2 3 +t2 +max{a2 , t1 2 +t1 +d1 2 +t0 1 +t0 +d0 1 +s0 }))
·
(14)
· λ1 2 e−λ1 2 d1 2 dd1 2 λ0 1 e−λ0 1 d0 1 dd0 1
Now we must discuss max{a2 , t1 2 + t1 + d1 2 + t0 1 + t0 + d0 1 + s0 }, which is equal to
a2 ⇔ d0 1 ≤ a2 − (t1 2 + t1 + t0 1 + t0 + s0 ) ∧ d1 2 ≤ a2 − (t1 2 + t1 + t0 1 + d0 1 + t0 + s0 ).
So once again we would like to move this condition on d1 to the extremes of the outer
integral, but things start to get tricky: a2 − (t1 2 + t1 ) might be less than a1 , between a1
and b2 − (t1 2 + t1 ) or, if min{b1 , b2 − (t1 2 + t1 )} = b1 , it could be greater than b1 . It
appears that the appropriate definition of min or max functions is not enough: we must
discuss different cases separately.
Suppose that a1 ≤ a2 − (t1 2 + t1 ) ≤ b2 − (t1 2 + t1 ) ≤ b1 . Then the integral becomes
Z
e
max{0,a2 −(t1 2 +t1 +t0 1 +t0 +s0 )} Z a2 −(t1 2 +t1 +t0 1 +d0 1 +t0 +s0 )
max{0,a1 −(t0 1 +t0 +s0 )}
−λ2 3 (b3 −(t2 3 +t2 +a2 ))
dd1 2 λ0 1 e−λ0 1 d0 1 dd0 1 +
max{0,a2 −(t1 2 +t1 +t0 1 +t0 +s0 )} Z b2 −(t1 2 +t1 +t0 1 +t0 +d0 1 +s0 )
λ1 2 e
Z
0
−λ1 2 d1 2
+
max{0,a1 −(t0 1 −t0 −s0 )}
a2 −(t1 2 +t1 +t0 1 +d0 1 +t0 +s0 )
−λ2 3 (b3 −(t2 3 +t2 +t1 2 +t1 +d1 2 +t0 1 +t0 +d0,1 +s0 ))
e
λ1 2 e−λ1 2 d1 2 dd1 2 λ0 1 e−λ0 1 d0 1 dd0 1 +
Z
b2 −(t1 2 +t1 +t0 1 +t0 +s0 )
Z
b2 −(t1 2 +t1 +t0 1 +t0 +d0 1 +s0 )
+
e
max{0,a2 −(t1 2 +t1 +t0 1 +t0 +s0 )} 0
−λ2 3 (b3 −(t2 3 +t2 +t1 2 +t1 +d1 2 +t0 1 +t0 +d0,1 +s0 ))
6
λ1 2 e−λ1 2 d1 2 dd1 2 λ0 1 e−λ0 1 d0 1 dd0 1
(15)
Finally, we can carry out the integration. Consider the third term only: we get
λ0 1 λ1 2 e−λ2 3 (b3 −(t2 3 +t2 +t1 2 +t1 +t0 1 +t0 +s0 ))
Z
b2 −(t1 2 +t1 +t0 1 +t0 +s0 )
e(λ2 3 −λ0 1 )d0 1
max{0,a2 −(t1 2 +t1 +t0 1 +t0 +s0 )}
Z
b2 −(t1 2 +t1 +t0 1 +t0 +s0 +d0 1 )
e(λ2 3 −λ1 2 )d1 2 dd1 2 dd0 1 =
0
= λ0 1 λ1 2 e−λ2 3 (b3 −(t2 +t2 3 +t1 +t1 2 +t0 +t0 1 +s0 ))
e(λ2 3 −λ0 1 )d0 1
Z
b2 −(t1 2 +t1 +t0 1 +t0 +s0 )
(16)
max{0,a2 −(t1 2 +t1 +t0 1 +t0 +s0 )}
(λ
−λ
)(b
−(t
+t
+t
+t
+s
+d
2
3
1
2
2
1
2
1
0
1
0
0
0
1 )) − 1
e
dd0 1
(λ2 3 − λ1 2 )
supposing λ2 3 6= λ1 2 . In this case we get
. . . (e(λ2 3 −λ1 2 )(b2 −(t1 2 +t1 +t0 1 +t0 +s0 )
e(λ1 2 −λ0 1 )d0 1 dd0 1 −
= . . . (e
·
−
Z
Z
b2 −(t1 2 +t1 +t0 1 +t0 +s0 )
max{0,a2 −(t1 2 +t1 +t0 1 +t0 +s0 )}
b2 −(t1 2 +t1 +t0 1 +t0 +s0 )
(λ2 3 −λ0 1 )d0 1
e
dd0 1 ) =
max{0,a2 −(t1 2 +t1 +t0 1 +t0 +s0 )}
(λ2 3 −λ1 2 )(b2 −(t1 2 +t1 +t0 1 +t0 +s0 )
·
(17)
e(λ1 2 −λ0 1 )(b2 −(t1 2 +t1 +t0 1 +t0 +s0 )) − e(λ1 2 −λ0 1 ) max{0,a2 −(t1 2 +t1 +t0 1 +t0 +s0 )}
+
(λ1 2 − λ0 1 )
e(λ2 3 −λ0 1 )(b2 −(t1 2 +t1 +t0 1 +t0 +s0 )) − e(λ2 3 −λ0 1 ) max{0,a2 −(t1 2 +t1 +t0 1 +t0 +s0 )}
)
(λ2 3 − λ0 1 )
again, supposing λ2 3 6= λ0 1 and λ1 2 6= λ0 1 .
A similar computation can be carried out for the integral parts not considered in (13)
and (15).
Note that we have found an explicit formula under some specific conditions, for example
we considered all the means to be different, or a specific relation between the time windows
(see step from (14) to (15)). We have thus to exhaust all the other specific cases (for
example the case of identical means, or different time windows relations): they can be
carried out in a similar way and their number is exponential in ` which, however, is fixed.
7