• No se han encontrado resultados

We describe three relaxations of salesman tours, called t-tour, ng-tour and ngL-tour relaxations, that are used to compute valid lower bounds on the TSPTW and bounding functions b(S, t, i) used by Fathoming2.

3.4.1 The t-Tour Relaxation

The t-tour relaxation was introduced by Christofides et al. [1981c]. This relaxation provides function f (t, i) that corresponds to the cost of a least-cost nonnecessarily elementary path, called (t, i)-path, that starts from vertex p at time ep, visits a set

of vertices (without two-vertex loops) within their time windows, and ends at vertex i ∈ V0 at time t ∈ [ei, li]. The DP recursion for computing functions f (t, i) is described

3.4.2 The ng-Tour Relaxation

In general, the t-tour relaxation does not provide any detailed knowledge of the path of cost f (t, i), so additional conditions to ensure that such path provides a feasible solution to the original problem cannot be imposed. To alleviate this drawback, we introduce the ng-path relaxation that consists of partitioning the set of all possible (t, i)-paths ending at vertex i ∈ V0 at time t ∈ [ei, li] according to a mapping function

that associates with each (t, i)-path a subset of the visited vertices depending on the order in which they are visited. The subset of vertices associated with each ng-path is used in the DP recursion to impose partial elementarity. The ng-tour relaxation can be described as follows.

Let Ni ⊆ V0 be a set of selected vertices for vertex i ∈ V0 (according to some criterion)

such that i ∈ Ni and |Ni| ≤ ∆(Ni), where ∆(Ni) is a parameter. The sets Ni allow

us to associate, with each forward path F = (p, i1, . . . , ik = σF), the set ΠF ⊆ V (F )

containing vertex ik and every vertex ir ∈ V (F ), r = 1, .., k − 1, that belongs to all

sets Nir+1, . . . , Nik associated with the vertices ir+1, . . . , ik visited after ir in path F .

Formally, the set ΠF is defined as

ΠF = {ir ∈ V (F ) \ {ik} : ir∈ k \ s=r+1 Nis} [ {ik}.

A forward ng-path (N G, t, i) is a nonnecessarily elementary path F = (p, i1, . . . , ik−1,

ik= i) that starts from vertex p at time ep, visits a set of vertices (each once or more)

within their time windows, ends at vertex i ∈ V0 at time t ∈ [ei, li], and such that

N G = ΠF and i /∈ ΠF0, where F0= (p, i1, . . . , ik−1) is an ng-path.

Notice that an ng-path can contain a loop (ir = j, ir+1, . . . , ir+s= j) for s ≥ 2 if and

only if there exists at least one index k such that 2 ≤ k ≤ s − 1 and j /∈ Nir+k. An example of ng-path is the following. Consider path F = (p, 1, 2, 3, 4, 1). The corresponding path F0 is F0 = (p, 1, 2, 3, 4). Suppose that sets Ni, i = 1, 2, 3, 4, are

defined as N1 = {1, 3, 4}, N2 = {1, 2, 5}, N3 = {1, 3, 4}, N4 = {2, 3, 4}. The set ΠF0

contains vertices 3 and 4 only because 1 /∈ N2 ∩ N3∩ N4 and 2 /∈ N3 ∩ N4 whereas

3 ∈ N4 and 4 is the last vertex visited by path F0. Being elementary, path F0 is clearly

an ng-path. Thus, because 1 /∈ ΠF0, path F is an ng-path. Moreover, the set ΠF

contains vertices 1, 3 and 4 only because 2 /∈ N3 ∩ N4 ∩ N1 whereas 3 ∈ N4 ∩ N1,

4 ∈ N1 and 1 is the last vertex visited by path F ; this means that path F can be

propagated towards all vertices but 1, 3 and 4.

We denote by f (N G, t, i) the cost of a least-cost forward ng-path (N G, t, i). Any (N G, t, q)-path ending at vertex q at time t ∈ [eq, lq] is called ng-tour.

A valid lower bound LB on the TSPTW is given by LB = min

t∈[eq,lq], N G⊆Nq

{f (N G, t, q)} ≤ z∗. (3.2)

Functions f (N G, t, i) can be computed with DP on a graph bGF = ( cF , cAF). The vertex

set cF represents the states of the DP recursion and is defined as

c

F = {(NG, t, i) : i ∈ V0

, t ∈ [ei, li], ∀N G ⊆ Ni s.t. N G 3 i}.

The arc set cAF represents the transitions of the DP recursion and is defined as

c

AF = {((N G0, t0, j), (N G, t, i)) : (N G0, t0, j), (N G, t, i) ∈ cF ,

j ∈ Γ−1i , t0 ∈ Ω(t, j, i), ∀N G0 ⊆ Nj s.t. N G0 3 j and N G0∩ Ni = N G \ {i}}.

A possible DP recursion for computing functions f (N G, t, i) is f (N G, t, i) = min

(N G0,t0,j)∈ bF : ((NG0,t0,j),(N G,t,i))∈ bA F

{f (N G0, t0, j) + dji}, (N G, t, i) ∈ cF .

(3.3) Notice that the condition N G0∩ Ni = N G \ {i} in the definition of cAF imposes that

functions f (N G, t, i) are computed by propagating functions f (N G0, t0, j) such that i /∈ N G0. Moreover, notice that the following inequality holds for each forward path F

c(F ) ≥ min

N G⊆V (F )∩NσF{f (N G, tF, σF)}.

It is required to initialize f ({p}, ep, p) = 0 and f ({p}, t, p) = ∞, for each t ∈ (ep, lp].

An optimal ng-tour is the ng-path (N G∗, t∗, q) such that f (N G∗, t∗, q) = min

(N G,t,q)∈ bF

{f (N G, t, q)}. (3.4)

The size of the state set cF can be reduced by removing, via the following dominance rule, any state that cannot lead to an optimal ng-tour.

Dominance 2. Let (N G, t, i), (N G0, t0, i) ∈ cF such that f(NG, t, i) ≥ f(NG0, t0, i), N G ⊇ N G0, t > t0. State (N G, t, i) is dominated by (N G0, t0, i).

Notice that a stronger version of Dominance 2 can be obtained by replacing the con- dition t < t0 with t ≤ t0. However, we found it to be computationally convenient to apply Dominance 2instead of this stronger version.

The decremental state-space relaxation introduced by Righini and Salani [2008] and the partial elementarity relaxation introduced by Desaulniers et al. [2008] are special

cases of the ng-path relaxation. These relaxations can be obtained by setting Ni= bV ,

for each vertex i ∈ V0, where bV ⊆ V0 is a selected set of vertices.

Choosing the sets Ni of selected vertices. Lower bound LB computed by expres-

sion (3.2) depends on the sets Ni, i ∈ V0. If Ni = V0, for each vertex i ∈ V0, functions

f (N G, t, i) provide the costs of least-cost elementary paths and the optimal ng-tour provided by expression (3.4) corresponds to an optimal TSPTW solution.

The computational results of §3.7 were obtained by defining the sets Ni, i ∈ V0, as

follows. We set Np = {p} and Nq = {q}, and define Ti = {j ∈ Γi ∩ Γ−1i : tij =

0 or tji = 0}, for each vertex i ∈ V (notice that the set Ti contains vertex i). First,

we set Ni = Ti, for each vertex i ∈ V . Then, for each vertex i ∈ V such that

|Ni| < ∆(Ni), we add, to Ni, the (∆(Ni) − |Ti|)-nearest vertices to i belonging to the

set V \ Ti according to travel times tij.

Notice that recursion (3.3) allows ng-paths to contain two-vertex loops, which can be eliminated with the method described by Christofides et al.[1981c]. Nonetheless, we do not implement this method because of the additional memory required and because, in practice, whenever sets Ni, i ∈ V0, are defined as above and parameter ∆(Ni) is

equal to 11 or 13, the resulting (N G, t, i)-paths rarely contain two-vertex loops. Implementation issues. How the DP recursion (3.3) is computed and how Domi- nance 2 is tested affect the effectiveness of the whole solution process. We decided to compute (3.3) with a forward DP recursion using the variable state t (i.e., the time) as stage. At stage t, the order in which states are propagated is defined by a queue where states having time t are maintained.

To apply Dominance 2, we use an additional function Ft(N G, i), i ∈ V , N G ⊆

Ni s.t. N G 3 i, that represents the cost of a least-cost state (N G, t0, i) ∈ cF with

t0 < t (i.e., Ft(N G, i) = mint0∈[e

i,t){f (N G, t

0, i) : (N G, t0, i) ∈ cF }). Let B(NG, i) =

{N G0 ⊆ N G : N G0 3 i}, for each vertex i ∈ V and each set N G ⊆ Ni s.t. N G 3 i.

Because we use values of parameter ∆(Ni) less than or equal to 13, the sets B(NG, i)

can be computed by complete enumeration before starting the DP recursion. From the definitions of Ft(N G, i) andB(NG, i), we derive that a state (NG, t, i) is dominated

according to Dominance 2 if f (N G, t, i) ≥ minN G0B(NG,i){Ft(N G0, i)}. Notice that

function Ft(N G, i) can be recursively computed as

Ft(N G, i) = min{Ft−1(N G, i), f (N G, t − 1, i)}, i ∈ V, N G ⊆ Ni s.t. N G 3 i.

3.4.3 The ngL-Tour Relaxation

In the case of the TSPTW, the ng-tour relaxation can be enhanced by forcing any ng- tour to visit each vertex of a selected subset of vertices exactly once while satisfying the precedence constraints imposed for such vertices by the precedence digraph ~G.

Consider a path L = (p = i0, i1, . . . , ih = q) in ~G from vertex p to vertex q. Because

any arc (i, j) ∈ ~A of graph ~G implies that vertex i must be visited before vertex j in any salesman tour, the h arcs of path L decompose any salesman tour in h subpaths Pik−1ik, k = 1, . . . , h, where Pik−1ik corresponds to the subpath of the salesman tour

that starts from vertex ik−1, visits each vertex of subset Sk ⊆ V0\ V (L) exactly once,

and ends at vertex ik. Thus, any salesman tour is made up of any collection of h

subpaths Pik−1ik, k = 1, . . . , h, such that ∪

h

k=1Sk= V0\ V (L). For a given path L of ~G

defined as above, we can force any ng-tour to visit, exactly once, each vertex i ∈ V (L) as described in the following.

Let Vk be the set of vertices that must or can be visited in between vertices ik−1 and

ik (ik−1, ik∈ L). For each k = 1, . . . , h, we have

Vk = {j ∈ V \ {ik−1} : eik−1 + ~tik−1j ≤ lj and max{eik−1+ ~tik−1j, ej} + ~tjik ≤ lik}.

Notice that Vk∩ V (L) = ik.

A forward ngL(k)-path is an ng-path (N G, t, i) that ends at vertex i ∈ Vk at time

t ∈ [ei, li], and such that each vertex j ∈ {i0, i1, . . . , ik−1} is visited exactly once. An

ngL-tour is an ngL(h)-path (N G, t, q).

Let cFk = {(N G, t, i) ∈ cF : i ∈ Vk} be the subset of states corresponding to the

forward ngL(k)-paths, and let fk(N G, t, i) be the cost of a least-cost ngL(k)-path

(N G, t, i) ∈ cFk.

Functions fk(N G, t, i), k = 1, . . . , h, i ∈ V0, N G ⊆ Ni s.t. N G 3 i, t ∈ [ei, li], can be

computed with the following iterative procedure that, for each k = 1, . . . , h, performs the following operations

a) Initialize fk(N G, t, ik−1) = fk−1(N G, t, ik−1), for each state (N G, t, ik−1) ∈ cFk−1,

and fk(N G, t, i) = ∞, for each state (N G, t, i) ∈ cFk. We assume f0({p}, ep, p) = 0

and f0({p}, t, p) = ∞, for each t ∈ (ep, lp];

b) Compute fk(N G, t, i), (N G, t, i) ∈ cFk, as follows

fk(N G, t, i) = min (N G0,t0,j)∈ bFk: j∈Γ−1i , t 0∈Ω(t,j,i), N G0⊆N j s.t. N G03j, N G0∩Ni=N G\{i} {fk(N G0, t0, j) + dji}. (3.5)

Because of the initialization and of the definition of the sets Vk, k = 1, . . . , h, any

ngL(h)-path corresponding to fh(N G, t, q) visits every vertex of the set V (L) exactly

once.

An optimal ngL-tour is the ngL(h)-path (N G∗, t∗, q) ∈ cFh such that

fh(N G∗, t∗, q) = min (N G,t,i)∈ bFh

The value fh(N G∗, t∗, q∗) depends on the path L of ~G used. In our computational

experiments, the path L was chosen as the path in ~G from vertex p to vertex q of maximal cardinality in order to maximize the number of vertices visited exactly once by any ngL-tour.

The following dominance rule, similar to Dominance 2 described in §3.4.2for the ng- tour relaxation, can be used to reduce the size of each state sets cFk, k = 1, . . . , h.

Dominance 3. Let (N G, t, i), (N G0, t0, i) ∈ cFkbe such that fk(N G, t, i) ≥ fk(N G0, t0, i),

N G0 ⊇ N G, t > t0. State (N G, t, i) is dominated by (N G0, t0, i) and can be removed

from cFk.

Documento similar