<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Restricted Dynamic Programming Heuristic for Precedence Constrained Bottleneck Generalized TSP</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Yaroslav Salii</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>IMM UB RAS</institution>
          ,
          <addr-line>Yekaterinburg</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Ural Federal University</institution>
          ,
          <addr-line>Yekaterinburg</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <fpage>85</fpage>
      <lpage>108</lpage>
      <abstract>
        <p>We develop a restricted dynamical programming heuristic for a complicated traveling salesman problem: a)cities are grouped into clusters, resp. Generalized TSP; b)precedence constraints are imposed on the order of visiting the clusters, resp. Precedence Constrained TSP; c)the costs of moving to the next cluster and doing the required job inside one are aggregated in a minimax manner, resp. Bottleneck TSP; d)all the costs may depend on the sequence of previously visited clusters, resp. Sequence-Dependent TSP or Time Dependent TSP. Such multiplicity of constraints complicates the use of mixed integer-linear programming, while dynamic programming (DP) bene ts from them; the latter may be supplemented with a branch-and-bound strategy, which necessitates a \DP-compliant" heuristic. The proposed heuristic always yields a feasible solution, which is not always the case with heuristics, and its precision may be tuned until it becomes the exact DP.</p>
      </abstract>
      <kwd-group>
        <kwd>sequential ordering problem</kwd>
        <kwd>traveling salesman</kwd>
        <kwd>dynamic programming</kwd>
        <kwd>precedence constraints</kwd>
        <kwd>generalized traveling salesman bottleneck traveling salesman</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Our object is a particularly complicated version of the well-known Traveling
Salesman Problem (TSP), which combines several its generalizations that are
usually treated separately: Bottleneck TSP [23, Ch. 15], Generalized TSP [23,
Ch. 12], Precedence Constrained TSP [40, 18, 29, 8], Sequence-Dependent3 TSP
[3] (as a generalization of the more well-known Time-Dependent TSP [20]).
Nevertheless, their combination is neither a purely scholastic e ort nor art for art's
3 Note that the Sequence Dependent designation is mostly applied to scheduling
problems, see [4], and has a di erent meaning: the cost of present action only depends on
the cost of the previous one, not on the entire previous sequence. To the best of the
author's knowledge, the only term for dependence on the whole (previous) sequence
was State Dependent, introduced in [35] for a scheduling problem concerning printed
circuit board assembly; nevertheless, we prefer to follow to the `Sequence Dependent'
designation of [3].
sake. Its possible applications include printed circuit boards design (a less general
version, without precedence constraints, was considered in [25]) and optimization
of the cycle time for industrial robots (for a survey of robotic task sequencing,
refer to [2]). See the relevant reviews of TSP and its variations in [34, 37, 31,
23, 30]. For a most recent treatment of Precedence Constrained TSP (TSP-PC),
also known as Sequential Ordering Problem (SOP), see [19].</p>
      <p>A Terminological note We call the variation of TSP we consider in this paper a
Sequence-Dependent Precedence Constrained Bottleneck Generalized TSP
(SDBGTSP-PC); however, since the sequence dependence does not currently play an
important part in our model, we will mostly omit that designation and refer to
our problem as BGTSP-PC, bearing the possible sequence dependence in mind.
The designation TSP-PC for Precedence Constrained TSP is borrowed from [8];
we nd it appealing, since it poses no risk of confusion with the very di erent
Prize Collecting TSP, which is also abbreviated PCTSP [23, Ch. 14], makes an
explicit reference to the \ordinary" TSP (in contrast with SOP), and does not
speci cally mention asymmetricity (our method is symmetricity-agnostic), in
contrast with PCATS [6]. Another important issue is that we consider an open
problem of the TSP family, i.e., return to origin is not mandated; to the best of
our knowledge, the open TSP was rst posed in [15], with a reference to a 1965
report by N.Deo and S.L.Hakimi, as \Shortest Hamiltonian Chain Problem".</p>
      <p>The rest of the paper is as follows: in Sect. 1 we describe general notation
and de nitions; Sect. 2 describes the problem statement, and Sect. 3 completes
the description with de nitions of dynamic programming subproblems and the
Bellman Equation. Section 4 describes the exact dynamic programming for our
problem and Sect. 5 describes our experience of shared memory parallelization
of this algorithm. Section 6 discusses the proposed heuristic, reports and
compares the results of experiments with the parallel implementation of the exact
algorithm and the proposed heuristic. Sections 1{4 follow the most recent paper
on exact solution of the problem [13],
1</p>
    </sec>
    <sec id="sec-2">
      <title>General notation and de nitions</title>
      <p>We employ the standard set-theoretic notation (quanti ers, propositional
connectives, etc.); , denotes equality by de nition. Each set, all elements of which
are sets themselves, is called a family. For every two objects a and b, denote by
fa; bg the (unique) set that contains a, b, and nothing else. In the case a = b, this
yields a singleton fag = fbg. We employ the standard Kuratovskii ordered pair
de nition: for two arbitrary objects u and v, their ordered pair (OP) is de ned by
(u; v) , ffug; fu; vgg; its rst element is u and the second one is v. For an OP z,
pr1(z) denotes its rst element and pr2(z) denotes its second element; these are
uniquely de ned by the condition z = (pr1(z); pr2(z)); in case z 2 A B, where A
and B are sets, we have pr1(z) 2 A and pr2(z) 2 B. We employ the usual
canonical representation of ordered triplet [16, x 1.3]: for three objects a, b, and c, we
assume (a; b; c) , ((a; b); c). A similar convention is used for Cartesian product
of three sets: for arbitrary sets A, B, and C, we have A B C , (A B) C
[16, x 1.3]; it obviously means that (x; y) 2 A B C 8x 2 A B 8y 2 C.
In connection with this, let us also recall the convention concerning the
notation for values of function of three variables: for sets A, B, C, and D, function
h : A B C ! D and elements 2 A B and 2 C, in accordance with the
above-mentioned representation of A B C, it is valid to consider the element
h( ; ) 2 D to be de ned.</p>
      <p>As usual, [0; 1[ , f 2 Rj0 g (R is the real line). For each nonempty set
S, denote by R+[S] the set of all (nonnegative) functions from S to [0; 1[. As
usual, N , f1; 2; : : :g. Assume N0 , f0g [ N and p; q , fi 2 N0j(p i) ^ (i
q)g 8p 2 N0 8q 2 N0. Note that the latter de nition yields the empty set if p &gt; q.</p>
      <p>For a nonempty nite set K, let jKj 2 N be the power of the set K; then,
let (bi)[K] denote the set of all bijections of the \interval" 1; jKj onto K. In
particular, for a xed N 2 N, let P , (bi)[1; N ] be the set of all permutations
of the \interval" 1; N ; for each 2 P, there exists a permutation 1 2 P such
that ( 1(k)) = 1( (k)) = k 8k 2 1; N . Denote by P(H) (P0(H)) the family
of all (all nonempty) subsets of set H; let Fin(H) be the family of all nite sets
from P0(H).
2</p>
    </sec>
    <sec id="sec-3">
      <title>Problem statement</title>
      <p>Here and below, x a nonempty set X, where everything happens, a point x0 2
X, which is called the base, a natural number N , N 2, which is the main
dimension parameter, sets</p>
      <p>M1 2 Fin X; : : : ; MN 2 Fin X;
referred to as megalopolises, and relations</p>
      <p>M1 2 P0(M1</p>
      <p>M1); : : : ; MN 2 P0(MN</p>
      <p>
        MN ):
For j 2 1; N , OPs z 2 Mj describe the possible ways of conducting interior
jobs inside the megalopolis Mj : pr1(z) determines the entry point and pr2(z)
determines the exit point. The scheme of movements is as follows:
x0
!
!
!
pr1 z(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
pr1 z(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
2 M (
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
2 M (
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
pr2 z(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
pr2 z(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
2 M (
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
2 M (
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
!
!
! : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : !
pr1 z(N)
2 M (N)
pr2 z(N)
2 M (N) :
where is a permutation of indices from 1; N and OPs z(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ); : : : ; z(N) satisfy the
conditions
z(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) 2 M (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ); : : : ; z(N) 2 M (N):
(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
In (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ), we choose the permutation , in our terms, the route, and a tuple
(z(
        <xref ref-type="bibr" rid="ref1">1</xref>
        ); : : : ; z(N)) that agrees with the route in the sense of (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ); this tuple is
called a track. Let us stress that the choice of may be restricted by
precedence constraints, which will be introduced below. Megalopolises are assumed to
be disjoint, and the base does not belong to any one of them:
(x0 2= Mj 8j 2 1; N ) ^ (Mp \ Mq = ? 8p 2 1; N 8q 2 1; N n fpg):
(
        <xref ref-type="bibr" rid="ref4">4</xref>
        )
Although this convention is rather common, there are engineering problems
where it does not hold and the megalopolises could intersect [17]. For greater
clarity in de nitions below, let us gather the possible entry points4 and exit
points into separate sets for each megalopolis:
In terms of the megalopolises and sets (
        <xref ref-type="bibr" rid="ref5">5</xref>
        ), let us describe three speci c nonempty
subsets of X:
      </p>
      <p>M(jin) , fpr1(z) : z 2 Mj g 8j 2 1; N ;
M(jout) , fpr2(z) : z 2 Mj g 8j 2 1; N :</p>
      <p>X ,
Xin ,</p>
      <p>x0</p>
      <sec id="sec-3-1">
        <title>Xout ,</title>
        <p>x0
[
x0
[
[
N
[ Mi(in)
i=1</p>
        <p>
          N
[ Mi ;
i=1
N
[ Mi(out) ;
i=1
[ f?g ;
clearly, Xin X Xout X. Like (
          <xref ref-type="bibr" rid="ref5">5</xref>
          ), these three sets serve to clarify the future
de nitions, a kind of syntactic sugar. The \empty" set f?g in Xin has a special
meaning: it signi es that the entry point is irrelevant. It is worth mention that
generally X 6= X: we often deal with Euclidean plane X = R2, whereas the
problem itself revolves around the discrete set of points X; the case of continuous
Mi is also worth mention, it is known as Generalized TSP with Neighborhoods
(GTSPN), see [2, 28]. It has also been studied since the end of 1980s by L.N.
Korotayeva and A.G. Chentsov and their colleagues [26, 25] under the plain label
of GTSP or \Routing Problem".
        </p>
        <p>The author is aware of the three means to de ne precedence constraints:
{ Partial order [46];
{ Directed acyclic graph [18];
{ Nondescript binary relation (a set of OPs) [11].</p>
        <p>
          Clearly, these approaches produce the same results (all may be reduced to a
kind of binary relation, note also the result of [1] on path information) and their
4 the terms \city" and \point" are used interchangeably
(
          <xref ref-type="bibr" rid="ref5">5</xref>
          )
(
          <xref ref-type="bibr" rid="ref6">6</xref>
          )
(
          <xref ref-type="bibr" rid="ref7">7</xref>
          )
(
          <xref ref-type="bibr" rid="ref8">8</xref>
          )
choice is mostly a matter of taste and speci c objectives of a paper. We nd the
third approach to be the most convenient means of expressing the precedence
constraints for a dynamic programming procedure. Let us introduce the set
K 2 P(1; N 1; N ) of OPs and call its elements address pairs. In an address
pair h 2 K, the rst element pr1(h) 2 1; N is called a sender, and the second
one pr2(h) 2 1; N a receiver. The essence of precedence constraints is that for
each pair the sender must be visited before the receiver. The case K = ? is not
excluded and corresponds to the lack of precedence constraints, although in this
case it is probably better to forgo Dynamic Programming and implement a more
usual branch-and-cut algorithm (see the description in [5]).
        </p>
        <p>Recall that P = (bi)[1; N ] is the set of all (complete) routes; it is a nonempty
set of cardinality jP j = N !. In terms of address pairs, the set of feasible routes
is expressed as follows (see [11, Pt. 2]):</p>
        <p>
          A ,
n
for an address pair z 2 K and \times" t1 2 1; N and t2 2 1; N . In addition to
the route, we also choose the track, or trajectory, which is determined (
          <xref ref-type="bibr" rid="ref2">2</xref>
          ) by
the OPs z(
          <xref ref-type="bibr" rid="ref1">1</xref>
          ); : : : ; z(N), supplemented with the initial OP f?g; x0 . To formally
de ne the set of tracks that agree with some route in the sense of (
          <xref ref-type="bibr" rid="ref2">2</xref>
          ), denote by
Z the set of all tuples (zi)iN=0 : 0; N ! Xin Xout: For 2 P, assume
Z( ) ,
(zi)iN=0 2 Z
z0 = (x0; x0) ^ zt 2 M (t) 8t 2 1; N
;
(
          <xref ref-type="bibr" rid="ref11">11</xref>
          )
Since we use generic, nondescript binary relation, we must impose the following
condition to ensure the existence of feasible routes (see [11, Pt. 2]):
8 K0 2 P0(K) 9z0 2 K0 : pr1(z0) 6= pr2(z) 8z 2 K0;
it implies that, in particular, pr1(z) 6= pr2(z) 8z 2 K and is clearly equivalent to
the condition of acyclicity for the corresponding precedence digraph. One may
characterize A as the set of all routes 2 P such that
pr1(z) =
(t1) ^
pr2(z) =
(t2)
) (t1 &lt; t2)
evidently, Z 2 Fin(Z).
        </p>
        <p>At last, we can proceed to the de nition of the quality criterion for our
problem. To account for the in uence of the set of pending tasks on the cost
function (recall that our problem is sequence dependent ), we will need the symbol
N , P0(1; N ) (we call an element of N a task set ). Now, let us introduce the
following N + 1 cost functions
c 2 R+(Xout</p>
        <p>Xin</p>
        <p>N); c1 2 R+(Xin</p>
      </sec>
      <sec id="sec-3-2">
        <title>Xout</title>
        <p>N); : : : ; cN 2 R+(Xin</p>
      </sec>
      <sec id="sec-3-3">
        <title>Xout</title>
        <p>
          (
          <xref ref-type="bibr" rid="ref9">9</xref>
          )
(
          <xref ref-type="bibr" rid="ref10">10</xref>
          )
For
2 P and (zi)iN=0 2 Z( ), assume
C( ) (zi)i=0 ,
        </p>
        <p>N</p>
        <p>
          max
t20;N 1
c(pr2(zt); pr1(zt+1); f (s) : s 2 t + 1; N g)+
+ c (t+1)(zt+1; f (s) : s 2 t + 1; N g) :
(
          <xref ref-type="bibr" rid="ref13">13</xref>
          )
This is a case of minimax (bottleneck) aggregation of the summary cost of
moving from the current megalopolis to the next, where the exterior movement
cost is described by c 2 R+(Xout Xin N), and the cost of conducting the
interior job in the next megalopolis, ct+1 2 R+(Xin Xout N).
        </p>
        <p>The interior jobs setting introduced in [10] provides a means for universal
expression of what we are to do inside a megalopolis, thereby unifying the
Generalized TSP [23, Ch. 13] and Clustered TSP [14] approaches:
Generalized or International TSP. Each cluster is to be visited exactly once,
i.e., only one city is to be visited per cluster. To adapt our statement to these
requirements, we set 8i 2 1; N Mi , (b; b) : b 2 Mi , i.e., we mandate exit at
the point of entry for every megalopolis, and set the rudimentary zero interior
job costs: 8i 2 1; N 8b 2 Mi8K 2 N ci(b; b; K) = 0.</p>
        <p>Clustered TSP. For each cluster, all of its cities must be visited contiguously
before proceeding to the next cluster, i.e., we have an open TSP (Shortest
Hamiltonian Chain Problem [15]) inside each cluster thus we can never exit a cluster at
the city we used to enter it, hence 8i 2 1; N Mi , (a; b) : (a; b 2 Mi) ^ (b 6= a) ,
and the costs of interior jobs are set to the costs of the respective open TSP tours
starting at the respective entry points.</p>
        <p>The problem statement for BGTSP-PC is as follows:
C( ) (zi)i=0 =</p>
        <p>N</p>
        <p>max
t20;N 1
c(pr2(zt); pr1(zt+1); f (s) : s 2 t + 1; N g)+</p>
        <p>+ c (t+1)(zt+1; f (s) : s 2 t + 1; N g) ;
C( ) (zi)i=0 ! min;</p>
        <p>N
2 A; (zi)iN=0 2 Z( ):
(BGTSP-PC)
Denote the value (extremum) of the problem by V ,</p>
        <p>V , min min
2A (zi)iN=02Z( )</p>
        <p>C( ) (zi)i=0 2 [0; 1[;</p>
        <p>
          N
(
          <xref ref-type="bibr" rid="ref14">14</xref>
          )
This extremum is attained by a feasible solution, expressed as an OP formed by
the route and the track ; (zi)iN=0 ; 2 A; (zi)iN=0 2 Z( ). A feasible solution
0; (zi0)iN=0 is considered optimal if C 0 (zi0)iN=0 = V ; there may be multiple
optimal solutions.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Subproblems and Bellman equation</title>
      <p>A dynamic programming (DP henceforth) solution consists of embedding a
problem into a family of similar problems and obtaining a relation between the
extrema and solutions of less di cult problems of the family and the full problem;
this relation is expressed through a Bellman (recurrence) equation (see the
general description of the method in [38, Ch. 9]). Note that the method below is an
example of backwards DP akin to [7], whereas the forward DP [24, x1.2] seems
to be more common as applied to the problems of the TSP family.</p>
      <p>Precedence constraints pose a challenge when we attempt to reduce the full
problem to a series of subproblems since they are formulated with respect to a
complete set of megalopolises (in non-generalized TSP, cities) 1; N , and it is not
immediately clear how to `extend' precedence constraints to its subsets. The idea
is to regard the set of megalopolises, which is to be visited in some subproblem,
as a `pre x' (the forward approach of [24, 33, 46, 8]) of some feasible route, or
a `su x' (the backwards approach of [7, 11]) thereof. Naturally, such pre x or
su x has to be ordered consistently with the precedence constraints on a full
route. Since we chose the backwards approach, in the following de nitions we
default to su xes, with a possible passing reference to pre xes.</p>
      <p>To properly describe the `feasible su xes', we need several new de nitions.
First of all, a subset K of the complete task set 1; N is considered feasible if
8z 2 K (pr1(z) 2 K) ) (pr2(z) 2 K). For pre xes, the implication is reversed,
see [24, x1.3]. Any task set encountered below is to be assumed feasible unless
explicitly stated otherwise, i.e., let us rede ne N to be not the set of all task
sets but the set of all feasible task sets.</p>
      <p>Infeasible task sets do not in uence the solution of the problem, and it is this
lack of in uence that makes it possible to apply DP to precedence constrained
problems of the TSP family thanks to a reduction of state space. For a quanti
cation of this lack of in uence and the respective reduction of state space, refer
to [46, 47, 43].</p>
      <p>For an arbitrary task set K 2 N, consider the set [K] of the address pairs
that are \saturated" in K:
We call the mapping I a crossing-out rule. For a task set Ke , it speci es the
possible \entry points", from which it is possible to start a walk through Ke . From
the partially ordered set perspective, the mapping I produces a speci c maximum
antichain, retaining, for each chain present in Ke , only its minimum element. In a
forward procedure, the respective mapping would retain the maximum element,
see [46].</p>
      <p>
        We can now de ne the set of partial routes through a task set K 2 N, which
we described above as `feasible su xes':
(I
bi)[K] ,
This set is non-empty for feasible K 2 N (see the proof in [11, Pr. 2.2.2,2.2.3]).
Note that feasible complete routes (
        <xref ref-type="bibr" rid="ref9">9</xref>
        ) satisfy this de nition, i.e., A = (I
bi)[1; N ] [11, Th. 2.2.1].
      </p>
      <p>The complete problem is to visit the set of megalopolises 1; N , starting from
a separate point, the base x0. Subproblems resemble the full problem inasmuch
as they involve visiting a feasible subset K 2 N, starting from some x 2 Xout.
However, there has to be an additional restriction on the base point for
subproblems: the movement from the base to an element of K we decide to visit rst
must be feasible with respect to precedence constraints. Once more, the
mapping I is used to formally express this feasibility: let x 2 Xout belong to Mi(out)
for some i 2 1; N n K. Clearly, the movement from x to the element of K we
will visit rst is to be considered feasible if and only if the megalopolis Mi may
occupy the rst place in a partial route over fig [ K; thus, x 2 Mi(out) is said to
be a feasible base for the task set K if and only if K [ fig is a feasible set and
i 2 I K [ fig .</p>
      <p>
        We also need to de ne the set of partial tracks that agree with a given partial
route. For K 2 N, a feasible base x 2 Xout, and 2 (I bi)[K], let
Z(x; K; ) ,
(zi)jiK=0j 2 ZK
z0 = (f?g; x) &amp; zt 2 M (t) 8t 2 1; jKj
: (
        <xref ref-type="bibr" rid="ref17">17</xref>
        )
We can nally de ne the quality criterion for subproblems
      </p>
      <p>( ) (zi)jiK=0j ,
CK</p>
      <p>
        max
t20;jKj 1
c pr2(zt); pr1(zt+1);
(s) : s 2 t + 1; jKj
+
+ c (t+1) zt+1;
(s) : s 2 t + 1; jKj
:
(
        <xref ref-type="bibr" rid="ref18">18</xref>
        )
A subproblem itself is to minimize this criterion by choosing the right partial
route and track. Minimizing, we obtain the value (extremum) of the subproblem,
v(x; K) ,
      </p>
      <p>min min
2(I bi)[K] (zi)jiK=0j2Z(x;K; )</p>
      <p>
        ( ) (zi)jiK=0j 2 [0; 1[:
CK
(
        <xref ref-type="bibr" rid="ref19">19</xref>
        )
A partial route and track pair ; (zi )jiK=0j ; 2 (I bi)[K]; (zi )jiK=0j 2
Z(x; K; ); is said to be optimal for the problem described by the OP (x; K) if
( ) (zi )jiK=0j = v(x; K).
it attains its extremum: CK
      </p>
      <p>Let us supplement the de nition of v(x; K) with the trivial case K = ?; to
nd out which x 2 Xout we can use, we may actually apply the de nition of
feasible base to the empty set. This yields the points x belonging to all megalopolises
that are not senders, i 2 1; N j 8z 2 K i 6= pr1(z) , and thus quali ed to
terminate a feasible (full) route. We need this trivial case to prime the recurrence
procedure for of V ; set</p>
      <p>v(x; ?) , 0 8x 2 Xout:
This initial condition serves the needs of the open TSP-like problems (see [15]).
To accommodate for the more oft-cited closed TSP setting, where it is mandated
to return to the starting point after walking through 1; N , it is only necessary
to replace zero costs with the costs of going from x to the starting point. It is
equally easy to introduce a more general terminal cost function reminiscent of
that in the optimal control theory; it is explored in [11].</p>
      <p>At long last, we are prepared to state the Bellman equation: for K 2 N and
a feasible base x 2 Xout,
v(x; K) =
+ cj z; K ; v pr2(z); K n fjg
o:
(BF)
For the proof, refer to [13]; it is not too complex yet rather laborious, in no small
part due to the generalized clustered character of the problem.
4</p>
    </sec>
    <sec id="sec-5">
      <title>Exact dynamic programming</title>
      <p>
        In this section we describe the exact DP solution of (BGTSP-PC), on which the
heuristic is based. Recall that earlier we have rede ned the set N to be the set
of all feasible task sets. Yet, we nd it more appealing to use a di erent symbol
in this section: let G , K 2 P0 1; N 8z 2 K (pr1(z) 2 K) ) (pr2(z) 2 K)
be the set of all feasible task sets; note the exclusion of the empty task set. It is
regarded as \feasible", but it is more straightforward to treat it separately. We
now proceed to describe the procedure of generating and traversing the set of all
feasible states, where to traverse a state means to obtain its value (
        <xref ref-type="bibr" rid="ref19">19</xref>
        ) through
(BF).
      </p>
      <p>First of all, partition the feasible task sets according to their cardinality,
n
Gs ,</p>
      <p>K 2 G</p>
      <p>o
s = jKj 8s 2 1; N :
Note the boundary elements of this partition: the last one, GN = 1; N is
the singleton re ecting the complete task set. The rst element G1 is the set
of all \nonsenders", which are eligible to terminate a feasible route; clearly, no
\sender" megalopolis is eligible to do so. The remaining elements of the partition
are de ned in a recurrent way,</p>
      <p>
        Gs 1 = nK n ftg : K 2 Gs; t 2 I(K)
o
8s 2 2; N :
(
        <xref ref-type="bibr" rid="ref20">20</xref>
        )
For the proof of validity of this procedure, refer to [11, Prp. 4.9.1].
      </p>
      <p>Let us now describe the procedure that constructs the states based on feasible
task sets. Consider the feasible expansion of a feasible set,</p>
      <p>
        J (K) , j 2 1; N n K
fjg [ K 2 Gs+1 2 P0(1; N n K);
(
        <xref ref-type="bibr" rid="ref21">21</xref>
        )
the set of megalopolises the addition of which to K yields a feasible set. In
view of (
        <xref ref-type="bibr" rid="ref20">20</xref>
        ), this de nition links well with that of feasible base introduced in
Section 3, namely, feasible bases for K are exactly the cities that belong to the
megalopolises that form the feasible expansion of K. Let us collect all feasible
bases for a task set K into the set5
      </p>
      <p>M[K] , [ M(jout);</p>
      <p>j2J (K)
[</p>
      <p>K2Gs
and construct the appropriate states,</p>
      <p>D[K] , (x; K) : x 2 M[K] :
Collecting D[K] for all feasible K of a certain cardinality, we obtain the layers
of state space,</p>
      <p>Ds ,</p>
      <p>Ds[K] 2 P0(Xout</p>
      <p>Gs) 8s 2 1; N
1;
let us supplement this de nition with the two boundary cases D0 , (x; f?g) :
x 2 M(jout); j 2 G1 and DN , (x0; 1; N ) .</p>
      <p>
        From the feasible task sets, the state space layers inherit a connection between
the elements of neighbouring cardinality:
y; K n fkg 2 Ds 1 8s 2 1; N 8K 2 Gs 8k 2 I(K) 8y 2 M(kout):
(
        <xref ref-type="bibr" rid="ref22">22</xref>
        )
This connection substantiates a natural assumption that to calculate (BF) for
states from Ds, it is necessary to know the values v( ; ) (
        <xref ref-type="bibr" rid="ref19">19</xref>
        ) for all of the states
from Ds 1. Note that it is actually not the only option, for example, in [45],
a kind of \depth- rst" state generation and traversal was implemented for a
precedence constrained scheduling problem.
      </p>
      <p>
        Technically, we consider the restrictions of v( ; ) (
        <xref ref-type="bibr" rid="ref19">19</xref>
        ) onto the state space
layers, i.e., restrictions onto subproblems with xed task set cardinality,
8s 2 0; N vs 2 R+[Ds];
      </p>
      <p>vs(x; K) , v(x; K) 8(x; K) 2 Ds:
Then, we say that for all s 2 1; N , the function vs 2 R+[Ds] is obtained from
the function vs 1 2 R+[Ds 1] through \strati ed" (BF),
vs(x; K) =
5 In an ordinary, non-generalized TSP, there is no need for a separate set M[K], or
rather, this set would match the feasible expansion of K.</p>
      <p>
        Note that feasible sets and, therefore, feasible states, are generated
top-tobottom (
        <xref ref-type="bibr" rid="ref20">20</xref>
        ), whereas the costs are calculated bottom-up; such implementation
of (BFs) would rst generate all the states and only after that start to calculate
their values. Our implementation did the generation and computation at the
same time, which was made possible by the bottom-up generation procedure
stemming from the following alternative de nition of feasible expansion
h
J (K) =
j 2 1; N nK
8z 2 K
j 6= pr1(z) _ (pr1(z) = j) ) (pr2(z) 2 K)
(
        <xref ref-type="bibr" rid="ref23">23</xref>
        )
It can be proved that both implementations generate the same set of feasible
states. More sophisticated procedures for generation of feasible sets are known
in the literature that were never, to the best of author's knowledge, applied
to precedence constrained discrete optimization problems. In the perspective of
partial order theory, a feasible set is nothing else than an order ideal, see the list
of algorithms for generating them in [9, Apx. 2.2].
      </p>
      <p>After the value V = vN x0; 1; N of the complete problem is found through
backwards traversal of (BFs), we need to obtain the actual solution of the
problem, the optimal route and track. Starting with vN , at each step from vs to vs 1,
append js 2 I(K) and zs 2 Mjs that yield the corresponding extremum in (BFs)
to the end of optimal route and track. There may be multiple optimal routes
and tracks, more so for a bottleneck problem, and it is possible to obtain all
of them through this procedure; however, we were only concerned with nding
some optimal solution.
i :
5</p>
      <p>Parallel implementation of exact DP
The algorithm speci ed in the previous section was implemented in C++ with the
work sharing done through the OpenMP shared memory multiprocessing API. A
similar parallel implementation was reported in [21] for the additive GTSP-PC
without sequence dependence; a similar non-OpenMP based on C# threads was
reported in [27] for the same problem. A di erent parallelization strategy for
GTSP-PC was reported in [12]. The divide-and-conquer approach of [33] may
be applied to GTSP-PC in a way that will not invalidate precedence constraints
[44]; the author is not aware of applications of the divide-and-conquer strategy
to DP for precedence-constrained problems.</p>
      <p>
        Let us rst recall the general structure of the algorithm:
1. Prime the feasible state generation with the layer D0 of states with empty
task sets. Generate the feasible states D1; : : : ; DN through procedure (
        <xref ref-type="bibr" rid="ref23">23</xref>
        ).
2. Prime the calculation of V , the value of the complete problem, with the
trivial values v0( ; ) = 0. Calculate V through recurrence equation (BFs).
3. Recover an optimal solution (a route and a track that agrees with it) based
on the optimal values of the Bellman function v( ; ), starting with the value
of the complete problem, V .
      </p>
      <p>
        Recall that, for each k 2 1; N , to generate the next state space layer Dk
with the aid of bottom-up procedure (
        <xref ref-type="bibr" rid="ref23">23</xref>
        ), we only need to know the previous
layer Dk 1; the same is true for the values of the states as speci ed in (BFs).
Thus, steps 1 and 2 can in fact be conducted almost simultaneously: for all
i 2 0; N 1, from Gi we generate both the next set of feasible task sets Gi+1 and
the \current" state space layer Di with the aid of J ( ) (
        <xref ref-type="bibr" rid="ref23">23</xref>
        ), supplemented by
M[ ] and D[ ] in the latter case. As soon as a state in layer Di is generated, it
can be priced because the values for the previous layer Di 1 are already known.
Figures 1 and 2 exhibit this process for two neighbouring iterations; the circled
items have to be accessible for the process to go on; the single arrows denote
generation and the double arrows denote pricing.
      </p>
      <p>The parallel work sharing through OpenMP happens in the treatment of the
current set of feasible task sets Gi. Each of the feasible task sets can be processed
independently, and since the states corresponding to di erent task sets never
coincide, no race conditions occur in generation and pricing of the feasible states
set Di. On the contrary, it is possible that some K0 2 Gi+1 could be generated
from both K1 2 Gi and K2 2 Gi, K1 6= K2, a trivial example of which is the
nal GN ; see the paragraph below for an exception to this rule. To avoid race
conditions, an omp critical directive had to be placed around the operation of
writing to Gi+1 to prevent another thread from writing there at the same time.
Better algorithms for generating the feasible task sets would eliminate this race
condition altogether since they never generate a new feasible task set more than
once, for more details on those algorithms, see the list [9, Apx. 2.2] and the
corresponding papers. The one we used was related to the algorithm from [33]
and hence at most quadratic in the total number of feasible task sets.</p>
      <p>Speaking pedantically, the precedence constraints K may in fact mandate
a total order on 1; N . In that case the route is actually xed from the start
and only an optimal track is to be determined; a Generalized TSP under such
conditions is known as Serdyukov TSP, and there is also Ordered Cluster TSP
[23, p. 26], with the usual di erence between Generalized and Clustered TSP as
regards the cities to be visited in each megalopolis. In this case, it is futile to do
a parallel processing of elements of Gi since each of them is a singleton. Still, the
corresponding state space layers Di do not degenerate into singletons and it is
possible to share the work by pricing the newly generated elements of each Di
in parallel.</p>
      <p>Data structures. Our principal data structure was nested hash table implemented
with the aid of std::unordered map (hence C++11). Its type can be
speci ed as std::vector &lt;std::unordered map &lt;uint32 t, std::unordered map
&lt;uint16 t, float&gt; &gt; &gt;, where uintXX t stands for XX-bit unsigned integer type.
Semantically, to access the cost of walking through K 2 G [ f?g starting from
x 2 M[K], i.e., v(x; K), we had to call the subscript operator three times:
[|K|][K][x]. The task sets were coded in the standard bit-masking way; our
implementation provided for up to 31 megalopolises; zero was reserved for the
base. The cities were numbered such that the numbers for all cities in each
megalopolis were consecutive. A nested structure let us avoid the unnecessary
repetition of 32-bit task set labels at every state that corresponds to the same
task set, of which there is a non-negligible number in generalized problems; for
non-generalized problems, the at structure as speci ed in, for example, [36],
may be justi ed. An additional bene t of nested structure was the ability to
generate the next (in the sense of task set cardinality) feasible states layer by
only going through the corresponding set of feasible task sets, without
resorting to examining the whole list of present feasible states, which is considerably
larger, more so in a generalized problem such as ours.</p>
      <p>We adopted hash table as a base data structure because of its amortized
constant-time search and the lack of a need to remove elements once installed;
since both keys we used were unsigned integer numbers, we did not have to
invent our own hash function. Our rst experiments were with std::map, which
o ered logarithmic search time, but the switch to std::unordered map made
the computation time decrease by a factor of 4 (we admit to only comparing
their performance on a single test problem), at which point we settled with the
hash table. On the ip side, the use of a hash table did little to help decrease the
memory footprint, this perennial problem of dynamical programming for TSPs;
it also became rather di cult to predict that footprint. We did not do rigorous
memory pro ling, but we can still say that 4GB of RAM were enough for the
solution of the 27{25{25 problem, and 30{25{25 (see the problem descriptions
in Sect. 6) took more than 15GB and less than 40GB. The use of hash table also
mandated the implementation of OpenMP tasks work-sharing construct, which
only became available in the third version of the shared memory API, with a
single task being the processing of a single feasible task set, i.e, the generation
and pricing of its corresponding states and the generation of \successor" feasible
task sets. The pseudocode of OpenMP tasks implementation is listed below, where
the blocks are de ned by indentation instead of braces as would be t C++.</p>
      <p>F#oprraegamcah osm2p 1p;aNrallel default (shared)</p>
      <p>1
#pragma omp single nowait</p>
      <sec id="sec-5-1">
        <title>For each K 2 Gs</title>
        <p>#pragma omp task untied firstprivate(K)
Generate J (K)</p>
      </sec>
      <sec id="sec-5-2">
        <title>For each j 2 J (K)</title>
        <p>#pragma omp critical (expand)
foo[|K|+1].add(K [ j )</p>
      </sec>
      <sec id="sec-5-3">
        <title>For each x 2 M[K]</title>
        <p>Compute vs(x; K)
#pragma omp critical (costwrite)</p>
        <p>foo[jKj][K][x]:=vs(x; K)
5.1</p>
        <p>Experiment
For problem descriptions, refer to Subsect. 6.1. Here and below, the absolute
computation time and the scaling factor (serial run time divided by the run
time considered) are expressed as \MM:SS || Ratio". The times speci ed
include input-output operations. The following results were reported in [42]:
srl
par-4
par-8
27{10{25{NO 04:58 ||1 01:25 ||3.506 00:44 ||6.773
27{20{25{NO 38:45 ||1 10:34 ||3.667 05:18 ||7.311
27{25{25{NO 73:32 ||1 20:27 ||3.596 10:13 ||7.197</p>
        <p>They were all obtained on the Uran supercomputer (for details, see http:
//parallel.uran.ru/node/6 [in Russian]) at IMM UrB RAS. The Uran
supercomputer ran 64-bit Scientific Linux 6.4; the compiler used was GCC 4.4.7,
optimization level -O2. Evidently, the speed-up was near-linear, as much as it
could scale for a shared-memory implementation. Eight was the maximum
number of cores per node that was available at the time.</p>
        <p>Computation times from a more recent implementation of the algorithm,
which featured a streamlined code, a probable source of improvement through
aiding optimizing compiler rather than trying to actually optimize the code, are
listed below:
srl
par-2
par-3
par-4
27{10{25{NO 02:57 ||1 01:27 ||2.034 01:00 ||2.95 00:46 || 3.848
27{20{25{NO 22:34 ||1 11:28 ||1.968 08:08 ||2.775 05:53 || 3.836
27{25{25{NO 42:56 ||1 22:23 ||1.918 14:48 ||2.901 11:23 || 3.772
These computations were carried out on the author's PC (Intel Core
i3-3450) in 64-bit Windows 7 environment. The compiler used was Intel C++
15 Update 1 since Microsoft Visual C++ would not support the required
OpenMP 3.0 API; the compilation parameters were copied over from the default
\Release" con guration, with the obvious addition of a ag that allows OpenMP
code generation. The superlinear speedup as seen on the two-core calculation for
27{10{25{NO is most probably caused by OpenMP tasks overhead.</p>
        <p>As evident from the two tables above, the proposed shared-memory parallel
implementation scheme that works through OpenMP tasks provides a reasonable
speedup for the problems considered, with the main barrier being the number of
cores on a single node that could work through OpenMP. It seems to be possible to
make a similar message-passing implementation, however, the latter seems to be
sensible only for the problems of greater magnitude than those speci ed above,
either through a greater number of megalopolises or cities therein, or less strict
precedence constraints, as it would certainly impose a greater overhead. However,
a rudimentary message-passing implementation might be used to divide the work
between two nodes with the aim of using only half as much memory on each node
as required for a single-node (shared memory) implementation, see [33, 44].
6</p>
        <p>Restricted DP heuristic. Experiment
The heuristic we implement was proposed for Time-Dependent TSP in [36],
and then reviewed and implemented as `a framework for solving realistic Vehicle
Routing Problems' [22]. It consists of retaining only H, H 2 N, best, as measured
by their values, states at each state space layer; we call H the depth parameter
or simply depth. Naturally, if H surpasses the cardinality of the most populous
state space layer, this heuristic turns into exact dynamic programming. On the
other hand, xing H = 1 yields the well-known nearest neighbour heuristic.</p>
        <p>In contrast with the exact algorithm, the base data structure chosen for
the heuristic was std::map. Our intention was to implement a heuristic that
is reasonably fast and has a minimum memory footprint. We did not calculate
the Pareto optimum, but we gured that the linear search time associated with
the use of a common array for states will not meet our de nition of \fast"
and thereby took the compromise data structure. We used (std::deque) for
keeping a \sorted list" of states when searching for the H best at each layer,
but linear search time was not an issue here since removal only happened from
the end (i.e., the worst state would go when a better one was obtained), and the
addition of a state mandated re-sorting the container (done through std::sort)
anyway. Another sacri ce made to diminish the memory footprint was the lack
of bu ering when generating and pricing the new states, i.e., they were examined
one at a time.</p>
        <p>The heuristic is based on a restricted recurrence relation reminiscent of the
exact Bellman function in (BFs). All \restricted" items in the expressions below
and elsewhere are denoted by placing a tilde above the respective notation
used for the \exact" items.
+ cj z; K ; vs 1 pr2(z); K n fjg
e</p>
        <p>o;
(BgF s)
vs(x; K) =
e
min min maxnc x; pr1(z); K
j2eI(K) z2 Mej
v0 x^; f?g = 0; x^; f?g 2 D0;
e</p>
        <p>The main di erence between (BFs) and (BgF s) lies in a restriction of I( ) and
Mj : whereas in the exact procedure, for each layer D1; : : : ; DN , the existence of
vs 1 pr2(z); Knfjg is guaranteed for all j 2 I(K) and z 2 Mj , the minimization
over which yields vs(x; K), it is not always the case for a restricted procedure. It
is entirely possible that some state l; K nflg 2 Ds 1 did not make it into the H
best that formed Des 1 Ds 1; its (heuristic) value ve l; K nflg was not retained
and could not be used in the computation of ves(x; K). Hence the need for eI(K)
I(K) and Mej Mj that retain only the elements j 2 I(K) and (zin; zout) 2 Mj
for which the states zout; K n fjg were among the H best that formed Des 1.
Since in the restricted case the domain over which the minimization is conducted
becomes smaller, we obviously have vs(x; K) ves(x; K) 8s 2 1; N for all (x; K)
for which ves was calculated, thus, (BgF s) provides an upper bound Ve for the
value V . The outline of the algorithm is as follows:
1. Prime the algorithm with Ge0 = G0, De0 = D0, and cfG1 = G1. The depth
requirement is not imposed on De0 because all the states have the value of
zero.
2. For each l 2 1; N 1
{ For each K 2 Gel</p>
        <p>Generate its feasible expansion J (K)
For each j 2 J (K)</p>
        <p>For every xout 2 M(jout)
(a) Calculate v(xout; K)
e
(b) If jDelj = H and 9(y; K0) 2 Del : v(y; K0) &gt; ve(xout; K),</p>
        <p>e
remove (y; K0) from Del and add (x; K) to Del.
{ For each (x; K) 2 Del</p>
        <p>Let i 2 J (K) be such that x 2 Mi(out). Add K [ fig to Gel+1.
3. Calculate v(x0; 1; N ) = Ve .</p>
        <p>
          e
4. Recover a route and track that conform to Ve (when substituted into (
          <xref ref-type="bibr" rid="ref13">13</xref>
          ),
yield at most Ve ).
        </p>
        <p>
          The recovery procedure that obtains a route and track yielding at most Ve
when substituted into quality criterion (
          <xref ref-type="bibr" rid="ref13">13</xref>
          ) from the values of ve( ; ) di ers from
the same procedure for the exact DP as much as (BFs) di ers from (BgF s); we
will omit the details. The only interesting di erence is the fact that a heuristic
solution could possibly perform better than the corresponding heuristic value Ve
because not all theoretically available information is actually used to determine
Ve (some is lost as the states are dropped). However, our model problems did
not exhibit this behaviour.
        </p>
        <p>For an upper estimate of complexity of the algorithm, let us x some more
constants. Recall that we have N megalopolises plus the base. Let each
megalopolis have at most m cities. Let b denote the constant time required to
calculate the summary cost of exterior movement c x; pr1(z) and interior job
ci pr1(z); pr2(z) ; the latter assumption is correct if all possible interior jobs
are either simple or pre-calculated. Assume the time to compute the maximum
of two values is also included in b.</p>
        <p>Let us now consider, how long does it take to compute the heuristic value for
a state (x; K). The generation of a feasible state K takes at most N 2 operations
(see [9, Apx. 2.2]); then, we have to actually compute v(x; K), to which end we
e
need to consider all i 2 eI(K), of which there are never more than N , and at
most m2 pairs (zin; zout) which form the set Mi; for each such pair, it takes b to
calculate
maxnc(x; zin) + ci(zin; zout); vjKj 1 zout; K n fig
o:
Thus, to calculate (BgF s) for a state (x; K), it takes at most N 2 N m2 b =
N 3m2b.</p>
        <p>
          There are N + 1 layers, each having at most H states, with the exception
of D0, which is not constrained by H, but still has at most N states. The last
layer DN always has a single state x0; 1; N . Thus, the computation of Ve takes
at most
(N + (N
2)H + 1)N 3m2b = O(N 4Hm2b):
(
          <xref ref-type="bibr" rid="ref24">24</xref>
          )
        </p>
        <p>
          The search for a conforming solution necessitates the examination of, in the
worst case, all (N + (N 2)H + 1) states. The examination consists of checking if
it was indeed the given state (x; K) that led to v y; K [ fjg ; thus, it is the same
as actually calculating v y; K [ fjg without the need to generate it, hence the
cost (N +(N 2)H +1)N m2b, which does not change the O-value in (
          <xref ref-type="bibr" rid="ref24">24</xref>
          ). This is
a rather generous estimate, since a feasible task set K is actually only generated
once for all states that contain it, and not all of m2 pairs (zin; zout) 2 Mi have to
be examined each time since the state that has zout might have been left out of
H best. The same can be said with respect to eI(K), the cardinality of which is
actually at most K, with this bound being true only for K that are antichains.
6.1
The model problems were borrowed from our previous research in exact
solutions of (BGTSP-PC), namely, the sequence-dependent case [13] and the
previously considered \sequence-independent" cases [41, 42]. The model problems
were considered on a subset of Euclidean space X = [0; 1024] [0; 768] R R
for N1 = 30 and N2 = 27 megalopolises with jKj = 25 precedence constraints
and 25 cities in each megalopolis; each city could serve as both exit point and
entry
point.
        </p>
        <p>The cost of exterior movement was speci ed as Euclidean distance in X; for
the sequence dependent-case, it was multiplied by a trivially sequence-dependent
coe cient a(jKj) = 1 + N jKj . The cost of interior jobs was the Manhattan</p>
        <p>N
norm jj jj of movement from the \entry point" into the megalopolis to the \exit
point" through its center (for two plane vectors x = (x1; x2); y = (y1; y2), the
Manhattan norm is jjx yjj = jx1 y1j + jx2 y2j); this type of interior jobs is
closer to the classical Generalized TSP than to Clustered TSP.</p>
        <p>Megalopolises were modeled as equal radius disks, and the cities were placed
on the circumference with equal angular distances between them (which,
obviously, depended on the number of cities in the megalopolis); megalopolises were
distributed randomly. Below, dimensions of the problems are encoded in the
form \X{Y{Z{W", where X is the number of megalopolises, Y is the number of
cities per megalopolis, Z is the number of precedence constraints, and W is
either \SD" for the sequence dependence as speci ed above or \NO" for problems
without sequence dependence. In the two 30{25{25{* problems, the geometry is
the same (cities have the same coordinates). All data sets are available from the
author on request.</p>
        <p>
          Since it is the exact form of precedence constraints and not just their number
that in uences the complexity of solving the appropriate problem via dynamic
programming [46, 47, 43], we list them below, in our preferred address pairs form:
(
          <xref ref-type="bibr" rid="ref1 ref10">1,10</xref>
          ); (
          <xref ref-type="bibr" rid="ref12 ref2">12,2</xref>
          ); (
          <xref ref-type="bibr" rid="ref13 ref2">2,13</xref>
          ); (
          <xref ref-type="bibr" rid="ref13 ref15">13,15</xref>
          ); (
          <xref ref-type="bibr" rid="ref16 ref6">6,16</xref>
          ); (
          <xref ref-type="bibr" rid="ref15 ref16">15,16</xref>
          ); (
          <xref ref-type="bibr" rid="ref18 ref27">18,27</xref>
          ); (
          <xref ref-type="bibr" rid="ref27 ref9">9,27</xref>
          ); (
          <xref ref-type="bibr" rid="ref10 ref9">10,9</xref>
          ); (
          <xref ref-type="bibr" rid="ref11 ref19">11,19</xref>
          );
(
          <xref ref-type="bibr" rid="ref19 ref20">20,19</xref>
          ); (
          <xref ref-type="bibr" rid="ref25 ref26">25,26</xref>
          ); (
          <xref ref-type="bibr" rid="ref22 ref23">23,22</xref>
          ); (
          <xref ref-type="bibr" rid="ref20 ref21">21,20</xref>
          ); (
          <xref ref-type="bibr" rid="ref22 ref24">24,22</xref>
          ); (
          <xref ref-type="bibr" rid="ref14 ref16">14,16</xref>
          ); (
          <xref ref-type="bibr" rid="ref10 ref7">7,10</xref>
          ); (
          <xref ref-type="bibr" rid="ref2 ref8">8,2</xref>
          ); (
          <xref ref-type="bibr" rid="ref1 ref9">1,9</xref>
          ); (
          <xref ref-type="bibr" rid="ref14 ref26">14,26</xref>
          );
(
          <xref ref-type="bibr" rid="ref2 ref27">2,27</xref>
          ); (
          <xref ref-type="bibr" rid="ref3 ref6">3,6</xref>
          ); (
          <xref ref-type="bibr" rid="ref19 ref3">3,19</xref>
          ); (
          <xref ref-type="bibr" rid="ref17 ref18">18,17</xref>
          ); (
          <xref ref-type="bibr" rid="ref14 ref25">14,25</xref>
          ).
        </p>
        <p>It is not reasonable to directly relate these dimension parameters to the
top results for TSP-PC [19] since the combination of generalized nature of the
problem and precedence constraints on megalopolises, in absence of a requirement
to visit of all cities of a megalopolis, precludes a direct transformation into a
generic (bottleneck) TSP-PC. Still, the number of cities taken into account is
rather considerable for a highly constrained problem, n1 = 30 25 = 750 cities
and n2 = 27 25 = 675 cities, respectively. Computation times are speci ed in
the HH:MM:SS or MM:SS format.</p>
        <p>All algorithms for all problems were encoded in C++11; exact algorithms were
parallelized with the aid of the shared memory multiprocessing API OpenMP 3.0.
Since a heuristic is meant to be simple to compute, we did not make a parallel
implementation, yet, it is possible make such an implementation with the same
means. The exact programs were run on the Uran supercomputer (for details,
see http://parallel.uran.ru/node/6 [in Russian]) at IMM UrB RAS, and
the heuristic was run on the author's PC (Intel Core-i4-3450, 16 GB RAM).
The Uran supercomputer ran 64-bit Scientific Linux 6.4; the compiler used
was GCC 4.4.7, optimization level -O2. The author's PC ran 64-bit Windows 7,
the compiler used was Microsoft Visual C++ 2013 with default optimization
options (\Release" con guration).
6.2</p>
        <p>27{25{25{NO
An exact solution was reported at the conference [42]. The value of the problem
was V = 341:962. It took the Uran supercomputer 01:13:32 on a single core,
00:20:27 on 4 cores, and 00:10:13 on 8 cores to arrive at this conclusion; each
core ran a single thread. The computation times relate as 7.197:2.002:1. The
single-core to four-core relation is 3.596:1.
6.3</p>
        <p>30{25{25{NO
An exact solution was reported at the conference [42]. The value of the problem
was V = 316:68. It took the Uran supercomputer 01:42:48 to arrive at this
conclusion on 8 cores.
6.4</p>
        <p>30{25{25{SD
An exact solution of this problem was reported in [13]; the value of the problem
was V = 376:63, and the computation took the Uran supercomputer 01:46:34
on 12 cores.
9
3
0 37 .1
0
0 5 86 .13
0 :
2 1 3 1</p>
        <p>3
0 1
0 52 .9
0 4 19 .23
0 :
1 0 4 1
7
6
4
0
0 :002 .182 .46
1 0 1 3
2
1
:002 .192 .49
3 1 0 8 2 .4 1 0 7 2 . 1 0 7 2
.
6
3
e
l
3
6
e
l
a 0 :02 .7 b
b
T 0 0 02 .76 a
8
5
7
8
3
8
7
3
8
3
03 .0
0 0 66 .05</p>
        <p>:
1 0 9 3
1
8
:003 .072 .39
1 0 1 3
e</p>
        <p>V
H im Ve =</p>
        <p>T Ve</p>
        <p>02 .0
0 0 66 .56</p>
        <p>:
1 0 9 2
7
5
6.5</p>
        <p>Conclusion
For all of the problems considered, the proposed heuristic found near-optimal
solutions in a reasonable amount of time. The memory footprint of the heuristic
was quite small as compared to that of the exact procedure: at most 100MB were
necessary for 20000-deep solution of 30{25{25{NO, which is quite low as far as
DP is concerned. Two problems were solved to optimality (30{25{25{NO and
30{25{25{SD), and one (27{25{25{NO) was solved to within 13% of optimal.
The run time did not exceed 30:00.</p>
        <p>Our intention for implementing a DP-compliant heuristic was the possible
use of the latter in a Morin{Marsten branch-and-bound strategy for dynamic
programming [39] to overcome the memory limitations and possibly improve the
computation times. The results of experiments with the heuristic can be
considered proof-of-concept: for small depth parameters (up to 250), the computation
times stayed reasonably small while the result exhibited a marked improvement
over the greedy algorithm (the H = 1 column) and the larger depth parameters
yielded near-optimal results. Thus, a large depth parameter may yield a decent
upper bound in a reasonable time. To nally implement a branch-and-bound
solution, we still need a lower bound for the problem. We are not aware of lower
bound algorithms that speci cally target precedence-constrained BTSP or
generalized BTSP, therefore, the search has to start at general-purpose lower bound
algorithms for plain BTSP; for a most recent treatment of such, refer to [32].</p>
        <p>It is also interesting to note how the heuristic tends to stick to a locally best
solution as the depth increases beyond a certain number (H = 150; H = 250 in
27{25{25{NO, H = 150 in 30{25{25{NO and 30{25{25{SD).</p>
        <p>Acknowledgement. This work was supported by the Russian Foundation for
Basic Research (project no. 13-08-00643). The author would also like to express
his gratitude to the anonymous reviewers who pointed out the important
shortcomings of this paper and made it possible to rectify them in the nal version.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Aho</surname>
            ,
            <given-names>A.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garey</surname>
            ,
            <given-names>M.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ullman</surname>
            ,
            <given-names>J.D.:</given-names>
          </string-name>
          <article-title>The transitive reduction of a directed graph</article-title>
          .
          <source>SIAM Journal on Computing</source>
          <volume>1</volume>
          (
          <issue>2</issue>
          ),
          <volume>131</volume>
          {
          <fpage>137</fpage>
          (
          <year>1972</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Alatartsev</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stellmacher</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ortmeier</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Robotic task sequencing problem: A survey</article-title>
          .
          <source>Journal of Intelligent &amp; Robotic Systems</source>
          pp.
          <volume>1</volume>
          {
          <issue>20</issue>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Alkaya</surname>
            ,
            <given-names>A.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Duman</surname>
          </string-name>
          , E.:
          <article-title>A new generalization of the traveling salesman problem</article-title>
          .
          <source>Appl. Comput. Math</source>
          <volume>9</volume>
          (
          <issue>2</issue>
          ),
          <volume>162</volume>
          {
          <fpage>175</fpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Allahverdi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gupta</surname>
            ,
            <given-names>J.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aldowaisan</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>A review of scheduling research involving setup considerations</article-title>
          .
          <source>Omega</source>
          <volume>27</volume>
          (
          <issue>2</issue>
          ),
          <volume>219</volume>
          {
          <fpage>239</fpage>
          (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Applegate</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cook</surname>
            ,
            <given-names>W.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bixby</surname>
            ,
            <given-names>R.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chvatal</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>The traveling salesman problem</article-title>
          . Princeton Univ. Press (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Balas</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fischetti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pulleyblank</surname>
            ,
            <given-names>W.R.:</given-names>
          </string-name>
          <article-title>The precedence-constrained asymmetric traveling salesman polytope</article-title>
          .
          <source>Mathematical programming</source>
          <volume>68</volume>
          (
          <issue>1-3</issue>
          ),
          <volume>241</volume>
          {
          <fpage>265</fpage>
          (
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Bellman</surname>
          </string-name>
          , R.:
          <article-title>Dynamic programming treatment of the travelling salesman problem</article-title>
          .
          <source>Journal of the ACM (JACM) 9</source>
          (
          <issue>1</issue>
          ),
          <volume>61</volume>
          {
          <fpage>63</fpage>
          (
          <year>1962</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Bianco</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mingozzi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ricciardelli</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Spadoni</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>The traveling salesman problem with precedence constraints</article-title>
          .
          <source>In: Papers of the 19th Annual Meeting/Vortrage der 19. Jahrestagung</source>
          . pp.
          <volume>299</volume>
          {
          <fpage>306</fpage>
          . Springer (
          <year>1992</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Caspard</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leclerc</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Monjardet</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Finite ordered sets: concepts, results and uses</article-title>
          .
          <source>No. 144 in Encyclopedia of Mathematics and Its Applications</source>
          , Cambridge University Press (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Cheblokov</surname>
            ,
            <given-names>I.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chentsov</surname>
            ,
            <given-names>A.G.</given-names>
          </string-name>
          :
          <article-title>About one route problem with interior works [in Russian]</article-title>
          .
          <source>Vestnik Udmurtskogo Universiteta. Matematika. Mekhanika. Komp'yuternye Nauki (1)</source>
          ,
          <volume>96</volume>
          {
          <fpage>119</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Chentsov</surname>
            ,
            <given-names>A.G.</given-names>
          </string-name>
          :
          <article-title>Extremal problems of routing and scheduling: a theoretical aproach [in Russian]</article-title>
          . Izhevsk:&lt;&lt;Regular and Chaotic Dynamics&gt;&gt; (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Chentsov</surname>
            ,
            <given-names>A.G.</given-names>
          </string-name>
          :
          <article-title>On a parallel procedure for constructing the bellman function in the generalized problem of courier with internal jobs</article-title>
          .
          <source>Autom. Remote Control</source>
          <volume>73</volume>
          (
          <issue>3</issue>
          ),
          <volume>532</volume>
          {
          <fpage>546</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Chentsov</surname>
            ,
            <given-names>A.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salii</surname>
            ,
            <given-names>Y.V.</given-names>
          </string-name>
          :
          <article-title>A model of \nonadditive" routing problem where the costs depend on the set of pending tasks</article-title>
          .
          <source>Vestnik YuUrGU. Ser. Mat. Model. Progr</source>
          .
          <volume>8</volume>
          (
          <issue>1</issue>
          ),
          <volume>24</volume>
          {
          <fpage>45</fpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Chisman</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          :
          <article-title>The clustered traveling salesman problem</article-title>
          .
          <source>Computers &amp; Operations Research</source>
          <volume>2</volume>
          (
          <issue>2</issue>
          ),
          <volume>115</volume>
          {
          <fpage>119</fpage>
          (
          <year>1975</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. Christo des, N.:
          <article-title>The shortest hamiltonian chain of a graph</article-title>
          .
          <source>SIAM Journal on Applied Mathematics</source>
          <volume>19</volume>
          (
          <issue>4</issue>
          ),
          <volume>689</volume>
          {
          <fpage>696</fpage>
          (
          <year>1970</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Dieudonne</surname>
          </string-name>
          , J.:
          <article-title>Foundations of modern analysis</article-title>
          ,
          <source>Pure and Applied Mathematics</source>
          , vol.
          <volume>10</volume>
          . Academic Press New York, enlarged and corrected printing edn. (
          <year>1969</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Dolgui</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pashkevich</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Cluster-level operations planning for the out-of-position robotic arc-welding</article-title>
          .
          <source>International Journal of Production Research</source>
          <volume>44</volume>
          (
          <issue>4</issue>
          ),
          <volume>675</volume>
          {
          <fpage>702</fpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Escudero</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>An inexact algorithm for the sequential ordering problem</article-title>
          .
          <source>European Journal of Operational Research</source>
          <volume>37</volume>
          (
          <issue>2</issue>
          ),
          <volume>236</volume>
          {
          <fpage>249</fpage>
          (
          <year>1988</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Gouveia</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruthmair</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Load-dependent and precedence-based models for pickup and delivery problems</article-title>
          .
          <source>Computers &amp; Operations Research</source>
          <volume>63</volume>
          ,
          <volume>56</volume>
          {
          <fpage>71</fpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Gouveia</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vo</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>A classi cation of formulations for the (time-dependent) traveling salesman problem</article-title>
          .
          <source>European Journal of Operational Research</source>
          <volume>83</volume>
          (
          <issue>1</issue>
          ),
          <volume>69</volume>
          {
          <fpage>82</fpage>
          (
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Grigoriev</surname>
            ,
            <given-names>A.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ivanko</surname>
            ,
            <given-names>E.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chentsov</surname>
            ,
            <given-names>A.G.</given-names>
          </string-name>
          :
          <article-title>Dynamic programming in a generalized courier problem with inner tasks: elements of a parallel structure</article-title>
          .
          <source>Model. Anal. Inform. Sist</source>
          .
          <volume>18</volume>
          (
          <issue>3</issue>
          ),
          <volume>101</volume>
          {
          <fpage>124</fpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Gromicho</surname>
            , J., van Hoorn,
            <given-names>J.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kok</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schutten</surname>
          </string-name>
          , J.:
          <article-title>Restricted dynamic programming: a exible framework for solving realistic vrps</article-title>
          .
          <source>Computers &amp; operations research 39(5)</source>
          ,
          <volume>902</volume>
          {
          <fpage>909</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Gutin</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Punnen</surname>
            ,
            <given-names>A.P</given-names>
          </string-name>
          . (eds.):
          <article-title>The traveling salesman problem and its variations, Combinatorial optimization</article-title>
          , vol.
          <volume>12</volume>
          . Springer Science &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Held</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karp</surname>
            ,
            <given-names>R.M.:</given-names>
          </string-name>
          <article-title>A dynamic programming approach to sequencing problems</article-title>
          .
          <source>Journal of the Society for Industrial &amp; Applied Mathematics</source>
          <volume>10</volume>
          (
          <issue>1</issue>
          ),
          <volume>196</volume>
          {
          <fpage>210</fpage>
          (
          <year>1962</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Korotayeva</surname>
            ,
            <given-names>L.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chentsov</surname>
            ,
            <given-names>A.G.</given-names>
          </string-name>
          :
          <article-title>On a generalization of the bottleneck traveling salesman problem</article-title>
          .
          <source>Comput. Math. Math. Phys</source>
          .
          <volume>35</volume>
          (
          <issue>7</issue>
          ),
          <volume>853</volume>
          {
          <fpage>859</fpage>
          (
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Korotayeva</surname>
            ,
            <given-names>L.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sesekin</surname>
            ,
            <given-names>A.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chentsov</surname>
            ,
            <given-names>A.G.</given-names>
          </string-name>
          :
          <article-title>A modi cation of the dynamic programming method for the travelling-salesman problem</article-title>
          .
          <source>USSR Computational Mathematics and Mathematical Physics</source>
          <volume>29</volume>
          (
          <issue>4</issue>
          ),
          <volume>96</volume>
          {
          <fpage>100</fpage>
          (
          <year>1989</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Koshelev</surname>
            ,
            <given-names>G.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kosheleva</surname>
            ,
            <given-names>M.S.:</given-names>
          </string-name>
          <article-title>A parallel implementation of dynamic programming in a constrained routing problem [in Russian]</article-title>
          .
          <source>In: Problems in Contemporary Mathematics and Its Applications: Proceedings of 46th International Youth School and Conference</source>
          . p.
          <fpage>110</fpage>
          .
          <string-name>
            <surname>N.N.</surname>
          </string-name>
          <article-title>Krasovskii Institute of Mathematics and Mechanics</article-title>
          ,
          <string-name>
            <surname>UrB RAS; B.N. Yeltsin</surname>
          </string-name>
          Ural Federal University (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Kovacs</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Integrated task sequencing and path planning for robotic remote laser welding</article-title>
          .
          <source>International Journal of Production Research (ahead-of-print)</source>
          ,
          <volume>1</volume>
          {
          <fpage>15</fpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Kubo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kasugai</surname>
          </string-name>
          , H.:
          <article-title>The precedence constrained traveling salesman problem</article-title>
          .
          <source>Journal of the Operations Research Society of Japan</source>
          <volume>34</volume>
          (
          <issue>2</issue>
          ),
          <volume>152</volume>
          {
          <fpage>172</fpage>
          (
          <year>1991</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Laporte</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mart n</surname>
            ,
            <given-names>I.R.</given-names>
          </string-name>
          :
          <article-title>Locating a cycle in a transportation or a telecommunications network</article-title>
          .
          <source>Networks</source>
          <volume>50</volume>
          (
          <issue>1</issue>
          ),
          <volume>92</volume>
          {
          <fpage>108</fpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Laporte</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Osman</surname>
            ,
            <given-names>I.H.</given-names>
          </string-name>
          :
          <article-title>Routing problems: A bibliography</article-title>
          .
          <source>Annals of Operations Research</source>
          <volume>61</volume>
          (
          <issue>1</issue>
          ),
          <volume>227</volume>
          {
          <fpage>262</fpage>
          (
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>LaRusic</surname>
          </string-name>
          , J.,
          <string-name>
            <surname>Punnen</surname>
            ,
            <given-names>A.P.:</given-names>
          </string-name>
          <article-title>The asymmetric bottleneck traveling salesman problem: Algorithms, complexity and empirical analysis</article-title>
          .
          <source>Computers &amp; Operations Research</source>
          <volume>43</volume>
          ,
          <volume>20</volume>
          {
          <fpage>35</fpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>Lawler</surname>
            ,
            <given-names>E.L.</given-names>
          </string-name>
          :
          <article-title>E cient implementation of dynamic programming algorithms for sequencing problems</article-title>
          .
          <source>Stichting mathematisch centrum preprint</source>
          (
          <year>1979</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>Lawler</surname>
            ,
            <given-names>E.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lenstra</surname>
            ,
            <given-names>J.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kan</surname>
            ,
            <given-names>A.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shmoys</surname>
          </string-name>
          , D.B. (eds.):
          <article-title>The traveling salesman problem: a guided tour of combinatorial optimization</article-title>
          , vol.
          <volume>3</volume>
          . Wiley New York (
          <year>1985</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <surname>Leon</surname>
            ,
            <given-names>V.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peters</surname>
            ,
            <given-names>B.A.</given-names>
          </string-name>
          :
          <article-title>Replanning and analysis of partial setup strategies in printed circuit board assembly systems</article-title>
          .
          <source>International Journal of Flexible Manufacturing Systems</source>
          <volume>8</volume>
          (
          <issue>4</issue>
          ),
          <volume>389</volume>
          {
          <fpage>411</fpage>
          (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <surname>Malandraki</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dial</surname>
          </string-name>
          , R.B.:
          <article-title>A restricted dynamic programming heuristic algorithm for the time dependent traveling salesman problem</article-title>
          .
          <source>European Journal of Operational Research</source>
          <volume>90</volume>
          (
          <issue>1</issue>
          ),
          <volume>45</volume>
          {
          <fpage>55</fpage>
          (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <string-name>
            <surname>Melamed</surname>
            ,
            <given-names>I.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sergeev</surname>
            ,
            <given-names>S.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sigal</surname>
            ,
            <given-names>I.K.</given-names>
          </string-name>
          :
          <article-title>The traveling salesman problem. issues in theory</article-title>
          .
          <source>Automation and Remote Control</source>
          <volume>50</volume>
          (
          <issue>9</issue>
          ),
          <volume>1147</volume>
          {
          <fpage>1173</fpage>
          (
          <year>1989</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38.
          <string-name>
            <surname>Minoux</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Programmation mathematique</article-title>
          .
          <source>Theorie et algorithmes. Lavoisier</source>
          , 2e edn. (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          39.
          <string-name>
            <surname>Morin</surname>
            ,
            <given-names>T.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marsten</surname>
            ,
            <given-names>R.E.</given-names>
          </string-name>
          :
          <article-title>Branch-and-bound strategies for dynamic programming</article-title>
          .
          <source>Operations Research</source>
          <volume>24</volume>
          (
          <issue>4</issue>
          ),
          <volume>611</volume>
          {
          <fpage>627</fpage>
          (
          <year>1976</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          40.
          <string-name>
            <surname>Plotinsky</surname>
            ,
            <given-names>Y.M.:</given-names>
          </string-name>
          <article-title>Generalized delivery problem</article-title>
          .
          <source>Automation and Remote Control</source>
          <volume>34</volume>
          (
          <issue>6</issue>
          ),
          <volume>946</volume>
          {
          <fpage>949</fpage>
          (
          <year>1973</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          41.
          <string-name>
            <surname>Salii</surname>
            ,
            <given-names>Y.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chentsov</surname>
            ,
            <given-names>A.G.</given-names>
          </string-name>
          :
          <article-title>On a bottleneck routing problem with internal tasks [in Russian]</article-title>
          . Tambov University Reports.
          <source>Series: Natural and Technical Sciences</source>
          <volume>17</volume>
          (
          <issue>3</issue>
          ) (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          42.
          <string-name>
            <surname>Salii</surname>
            ,
            <given-names>Y.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chentsov</surname>
            ,
            <given-names>A.G.</given-names>
          </string-name>
          :
          <article-title>On a precedence constrained bottleneck routing problem with internal tasks [in Russian]</article-title>
          . In: International Conference &lt;&lt;Discrete Optimization and Operations Research&gt;&gt; (Novosibirsk, June 24- -
          <fpage>28</fpage>
          ,
          <year>2013</year>
          ). p.
          <fpage>134</fpage>
          . Sobolev Institute of Mathematics, Novosibirsk State University (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          43.
          <string-name>
            <surname>Salii</surname>
            ,
            <given-names>Y.V.</given-names>
          </string-name>
          :
          <article-title>On the e ect of precedence constraints on computational complexity of dynamic programming method for routing problems</article-title>
          [in Russian].
          <source>Vestnik Udmurtskogo Universiteta. Matematika. Mekhanika. Komp'yuternye Nauki (1)</source>
          ,
          <volume>76</volume>
          {
          <fpage>86</fpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          44.
          <string-name>
            <surname>Salii</surname>
            ,
            <given-names>Y.V.</given-names>
          </string-name>
          :
          <article-title>On forward and backward programming for precedence constrained routing problems and the algorithms for generation of feasible subproblems [in Russian]</article-title>
          .
          <source>In: Bulletin of Association for Mathematical Programming</source>
          . pp.
          <volume>168</volume>
          {
          <fpage>169</fpage>
          . No. 13,
          <string-name>
            <surname>N.N.</surname>
          </string-name>
          <article-title>Krasovskii Institute of Mathematics and Mechanics</article-title>
          ,
          <string-name>
            <surname>UrB RAS; B.N. Yeltsin</surname>
          </string-name>
          Ural Federal University (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          45.
          <string-name>
            <surname>Schrage</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baker</surname>
            ,
            <given-names>K.R.</given-names>
          </string-name>
          :
          <article-title>Dynamic programming solution of sequencing problems with precedence constraints</article-title>
          .
          <source>Operations research 26(3)</source>
          ,
          <volume>444</volume>
          {
          <fpage>449</fpage>
          (
          <year>1978</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          46.
          <string-name>
            <surname>Steiner</surname>
          </string-name>
          , G.:
          <article-title>On the complexity of dynamic programming for sequencing problems with precedence constraints</article-title>
          .
          <source>Annals of Operations Research</source>
          <volume>26</volume>
          (
          <issue>1</issue>
          ),
          <volume>103</volume>
          {
          <fpage>123</fpage>
          (
          <year>1990</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          47.
          <string-name>
            <surname>Steiner</surname>
          </string-name>
          , G.:
          <article-title>On estimating the number of order ideals in partial orders, with some applications</article-title>
          .
          <source>Journal of statistical planning and inference 34(2)</source>
          ,
          <volume>281</volume>
          {
          <fpage>290</fpage>
          (
          <year>1993</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>