# Sales and Chips

*Posted September 2005.*

If a particular country which manufactured computer chips could find better solutions to large TSP problems, it could manufacture those chips more cheaply...

Joe Malkevitch

York College (CUNY)

malkevitch at york.cuny.edu

### Introduction

What do the problems of designing an efficient drop-off route for individuals who have decided on a group cab ride home from an airport and the manufacture of a computer chip have in common? The answer is that both problems can be formulated in terms of the mathematical problem known as the *Traveling Salesman Problem* (TSP). (Nowadays, of course, the traveling salesman might well be a traveling saleswoman, but I will use the problem's traditional name.) The phrase "traveling salesman" rightly conjures up the image of a salesman, starting out from his home (or place of business), making his appointed rounds to show off the goods he is selling, and then returning to his starting point. The goal of the salesman and his employer might be different. The salesman, who must travel by car, might want to route himself via his favorite cousin's hometown and perhaps take in an antiques show on the way, while the employer might want to have the salesman follow the cheapest route possible.

It turns out that the traveling salesman problem is not only an important applied problem with many fascinating variants; it also has important ties to theoretical mathematics and computer science.

### History and Basic Ideas

As with many historical questions, it is complex to pin down exactly where the TSP as a mathematical problem came from. There is a reference to it as a practical problem in a German book from 1832. Some people credit Karl Menger with popularizing the problem to the European mathematical community in the 1920's. Merrill Flood, who studied at Princeton, also popularized the problem and brought it to the attention of the mathematics and operations research community (in the US). He indicated that he heard of the problem from A. W. Tucker in 1937.

Flood claimed that Tucker had been told about the problem by Hassler Whitney, but when Tucker was asked about this he was unable to confirm or deny it - he no longer remembered!

Whitney also had no recollection of having discussed the problem with Tucker (below).

(Courtesy of Alan Tucker, A. W. Tucker's son)

In any case Flood (whose name is also associated with the theory of games) encouraged the study of the problem by the Rand Corporation. From its earliest days Rand was actively involved in work in operations research and, as we shall see below, there are many operations research problems that take the form of the TSP.

Even before mathematicians looked at this problem there were analytically minded salesmen and their employers who thought about it. Let us look at a very simple example. Suppose the diagram below shows the road distance between the three towns to which Hilda, who sells software to high schools, must travel (starting from home). The numbers near the line segments (edges) in the diagram are the driving distances between the locations.

Figure 1 (A 4-city TSP problem)

What we have above is a diagram consisting of dots and lines known as a *graph*. This is a special kind of graph known as a *complete graph* because each vertex is joined to every other one. Furthermore, we have assigned to each edge of the complete graph a weight, which could be a time, road distance, cost of a train or airplane ticket, etc. for the trip between the two locations at the endpoints of the edge. Usually these weights are taken as nonnegative numbers (but it is interesting to consider what interpretation might be put on using negative weights) which obey the *triangle inequality*. This means that given three locations X, Y, and Z the sum of the weights for any pair of the three edges the locations determine is at least as large as the weight on the third edge. (For a distance function, satisfying the triangle inequality is part of the usual definition, as is the requirement that the distance from A to B be the same as the distance from B to A.) In our example, we are assuming that we have a symmetric TSP - the cost in going from X to Y is the same as the cost in going from Y to X - but many interesting applications give rise to an asymmetric TSP in which the cost of going from X to Y may not be the same as the cost in going from Y to X.

The goal in solving a TSP is to find the minimum cost tour, the optimal tour. A tour of the vertices of a graph which visits each vertex (repeating no edge) once and only once is known as a *Hamiltonian circuit*. Thus, one can think of solving a TSP as finding a minimum cost Hamiltonian circuit in a complete graph with weights on the edges.

It may not even occur to some people that the order in which we visit the various territory towns makes a difference, but one way to see this is to determine all the different tours that one can pick. First, notice one simplification. If one visits the territory towns in the order: Home, A, B, C, Home, then this will be considered the same as the tour where we visit the territory towns in the reverse order: Home, C, B, A, Home. We will consider such pairs of tours the "same," even though there may be pros and cons of various kinds in choosing between the two tours. In terms of total cost, the tours yield the same answer.

In the situation shown in Figure 1, how many TSP tours are there? Since from home one can visit any of three choices, and from there one can visit any of two cities, etc., and using the fundamental principle of counting (which tells us to multiply the number of ways that one can do each component task in the counting problem), we find that there are 3! = 3 x 2 x 1 = 6 routes, which divided by 2 (for the reason described above) gives 3 different routes. For the general complete graph with *n* vertices, the number of different TSP routes would be:

Returning to the problem in Figure 1 and enumerating the 3 TSP tours we can select the cheapest one:

HABCH which costs 80 + 140 + 90 + 50 = 360

HACBH which costs 80 + 100 + 90 + 69 = 339

HCABH which costs 50 + 100 + 140 + 69 = 359.

Thus, going from Home to A, then to C, then to B and then back Home is best.

So what gives here? Why not enumerate for the general TSP problem involving *n* cities all the possible routes and select the cheapest? The problem is with the rapid growth of the factorial function (*m*!) which is involved in the counting of the TSP tours. For even a modest number of cities the best current supercomputers can not enumerate all of the tours! Thus, using brute force to solve even modest-sized TSP problems will not work.

Are there simple algorithms which will yield an optimal solution to the TSP problem? If you were faced with the TSP problem in Figure 1, perhaps you might be tempted to proceed as follows: Go from Home to the closest location and visit next that site not already visited which is cheapest to go to next. This approach is an example of a *greedy* algorithm. A greedy algorithm makes a "locally" best decision. The question is to see whether or not the locally optimal choices lead to a solution which is globally optimal.

The idea just described is often referred to as the Nearest Neighbor (NN) approach to finding a TSP tour. If we apply NN to the problem in Figure 1 we get the tour HCBAH, not an optimal solution. But, given how fast it is to apply NN for even very large problems we can now ask a new question. Even if NN does not yield an optimal answer to the TSP, does it yield a sufficiently good solution that we can settle for this, given how fast we get a solution? Thus, we are thinking of NN as an approximation algorithm to the TSP problem. There are two well known "measures" that one can use for telling how good an approximation algorithm is. One of these measures refers to how far off the approximation algorithm can be in the worst case. The other measure tries to see how well the approximation algorithm does on an "average case" problem. Sometimes the approximation algorithm approach in mathematics is very gratifying in that one finds very good approximations to what appear to be very hard problems relatively quickly. We will return to this issue below.

Since NN does not always yield an optimal solution to the TSP, let us try another greedy algorithm which might do better. It seems natural that any minimal cost TSP would use cheap edges. So why not try to add the edges in constructing a TSP in order of cheapness? Of course, without being careful about what edges we add we might not get a single circuit which passes through all the vertices. Thus, we need to add the edges in order of increasing cost, subject to the restriction that we never choose more than two edges that meet at a vertex and never form a circuit which does not include all of the vertices. Let us call this greedy algorithm the *Sorted Edges Algorithm*. If this algorithm is applied to the TSP in Figure 1, we first sort the edges by cost: 50, 69, 80, 90, 100, 140. We can use the edge of weight 50, then the edge of weight 69, but if the edge of weight 80 is added we get three edges at a site, so this is not allowed. Adding the edge of weight 90 would create a circuit of length 3 (not 4) so we can not use that edge. This means that we must complete our tour using the edges of weight 100, and 140. Thus, the tour we obtain is: HCABH. This tour also fails to be optimal.

Algorithms such as Sorted Edges and Nearest Neighbor are fast to implement and easy to understand conceptually but unfortunately are not guaranteed to give optimal solutions. Such fast-to-implement, not-necessarily-optimal algorithms are sometimes referred to as *heuristics* or *heuristic algorithms*.

Another approach to taking a current circuit which visits each site once and only once and trying to find a cheaper circuit uses the following ideas. Consider, for example, the circuit below (Figure 2) in a five-vertex complete graph, where the weights of the edges are not shown. What is shown is a circuit which is currently as good a TSP tour as we have been able to find when the weights are taken into consideration. Highlighted in the diagram are two edges which have no vertex in common. These two edges determine 4 vertices (the endpoints of the edges). We can delete the edges shown and join these 4 vertices up with two new edges that transform the circuit shown into another circuit. The two edges used to do this are shown in Figure 3 in blue.

Figure 2

Figure 3

Note that in the diagram above the edges in the circuit in Figure 2 other than the dark black ones are still present. The blue edges are different from the black ones but, when added to the previous edges, yield a circuit. If the two edges which are added have total cost less than the two edges they replace, then the new TSP tour is cheaper than the previous tour. Other heuristics adopt this edge-switching strategy to find improved tours. The example above illustrates what is called the 2-opt approach because switches involving two edges are used. For larger TSP problems one can use a 3-opt strategy where three edges are deleted and 3 new edges added with the goal of lowering the total cost. For modest sized problems the "k-opt" heuristic works quite well.

### The Euclidean TSP

An interesting special case of the TSP is to consider the optimal route passing through a collection of *n *points (sites) in the Euclidean plane (or more generally, *n*-dimensional Euclidean space). The weights between the points (sites) involved are taken to be the Euclidean distance between the points. If in an optimal tour some pair of edges AC and BD cross as shown below (Figure 4, top), then this can not be an optimal tour. Why? Consider the tour where the edges A'B' and D'C' replace the edges AC and BD in our tour. Let us compare the cost of the tour ACBDA with the tour A'B'C'D'A' (Figure 4, bottom). Note that the edges AC and BD meet at a point Q which is not one of the original sites involved in the TSP. We know that AQ + QB is larger than A'B' (because in the triangle AQB, the sum of any two sides has Euclidean length greater than the third side). Similarly DQ + QC is longer than D'C'. Thus, AQ + QB + DQ + QC is longer than A'B' + D'C'. However AQ + QC = AC and DQ + QB = DB and hence, if we replace AC and DB by A'B' and D'C', we get a shorter tour.

Figure 4

Other special properties of optimal solutions for TSP tours of points in the Euclidean plane depend on the ordering of the points in the *convex hull* (the points common to all convex sets containing the set) of the set of sites. Thus, the ordering of all sites in an optimal tour must include the vertices of the convex hull in "cyclic order" of the convex hull polygon.

### Insights from Computer Science

In attempting to get insights into how hard it is to solve TSP problems, it turns out to be convenient to distinguish between two ways of thinking about the TSP situation. In one perspective, what one has is a *decision* problem. Given a weighted complete graph with *n* vertices, locate a tour which visits each vertex once and only once whose total weight is less than a fixed constant *k*. However, there is also the *optimization* version of the problem, the one we have emphasized here, where the goal is finding the tour of the vertices once and only once with total weight the smallest possible.

What are researchers to make of the fact that the many attempts to find a simple algorithm to answer these versions of the TSP have failed? One explanation might be that the right clever idea has not yet been found. Another explanation might be that there is no simple or fast algorithm for solving the TSP! During the period that investigations into the TSP as a particular problem in operations research were being pursued, there were tremendous strides being made in computer science. With the advent of low cost commercial computers in the 1950's the problem of designing algorithms to solve complex problems on computers came to the center of the stage. Computers could carry out complex procedures that were not practical to do by hand. Were there principles to be learned in designing good algorithms? What was the fastest algorithm to solve a particular type of problem? These were questions that were part of the emerging new subject of computer science. Within computer science a new discipline sprouted up: complexity theory. Complexity theory deals with trying to classify how hard a problem is to solve on a computer. Among the major issues of concern are how much time and how much space (computer memory) are required to solve a particular problem.

If one tries to solve a TSP (e.g. finding the best tour) which involves 10 cities, it would not be surprising to find that it would require more work than a TSP with 6 cities. On the other hand in comparing two 10-city problems, is it harder to solve a problem whose distances between sites are all in the range from 3,000,000 to 8,000,000 than it is to solve one where the sites are never more than 20 units apart? Since computers at some stage typically change numbers to binary and since numbers which do not exceed 20 can be represented with 5 binary bits while those with 8,000,000 would require many more bits, it is not surprising that there is more "overhead" in working with large numbers than with small numbers. However, does this "overhead" significantly change the amount of work needed to solve a TSP with *n* cities? Is it the number of cities or the size of the distances between them that contributes in an essential way to the "complexity" of the TSP? In intuitive terms the "size" of many problems can be described with a single number. Other "parameters" associated with the problem are typically not irrelevant but do have a smaller influence on how hard the problem is to solve. How is the amount of work to be measured? For the TSP this parameter *n* is taken as the number of cities or sites to be visited. All different TSP problems of size *n* are considered to be equivalently difficult.

To carry out its work, an algorithm has to be given input data in some form. This form is known as a *data structure*. The data for a graph, for example, might be input into the computer in the form of a matrix or it might be input in the form of lists of vertices to which the vertices of the graph are connected (with a weight attached). For example, for the graph in Figure 5, we could represent the information in either of the two forms below, where not only are we indicating which vertices are connected to which vertices but also the weights on the edges. Thus, the "infinity" symbol in the (A, D) cell means that there is no edge from A to D while the 6 in the the (A, B) cell indicates the edge from A to B has weight 6. For the list representation, if a vertex is not joined to another one, then this vertex is omitted from the list. The idea is to count the number of operations that the algorithm must carry out to obtain its answer. For example, in measuring the complexity of a sorting algorithm where there are *n*numbers to sort, one might count how many comparisons and how many interchanges of the numbers in the original list are required to complete the sorting process.

Figure 5

Figure 6 (Matrix representation of Figure 5)

Figure 7 (List representation of Figure 5)

The list representation of a graph with many vertices and few edges will have fewer symbols than the matrix representation for the same graph. Some problems might lend themselves to easier algorithms when the data is given in one data structure rather than another.

While some problems can be solved using very fast algorithms, others turn out to have algorithms whose only known algorithms all take a long time to solve. Some problems have been shown to be so hard that no algorithm to solve them will terminate in a finite amount of time. The situation for the TSP is very interesting. The decision version of the TSP is known to be NP-complete, which means that there is no known polynomial time algorithm for the TSP and that if any of many thousands of problems were found to have a polynomial time algorithm, then there would be a polynomial time algorithm for the TSP. On the other hand, for NP-complete problems there is no proof that an exponential algorithm is required, and a proof for any of these problems that showed exponential work was needed to solve the problem would imply a proof for all of them. Thus, the NP-complete problems are a group of "equally" hard or easy (as measured by polynomial time) problems; we just do not know which.

It is widely believed that no polynomial time algorithm for the TSP will be found. The optimization version of the TSP is known to be NP-hard. This means that the problem is known to be in NP, and if some polynomial time solution to this problem existed, then some (hence, every) NP-complete problem would be solvable in polynomial time. To be in NP means that all problems in NP reduce to this problem in polynomial time. To be in NP means that one can verify (not necessarily find) that a solution given to one is correct in polynomial time. If someone gives a good "guess" for a solution we can very quickly verify that it works.

It is known that the decision TSP problem is NP-complete but there remains the issue of whether one can quickly find a good approximation to the TSP. There are two different senses in which one might mean a good approximation. On the one hand, if one applies an algorithm one might be interested in knowing that on the average one gets a good solution. On the other hand one might be interested in knowing in the worst case that one can not be too far off. Thus, if one could show that one could apply an algorithm for the TSP for *n* cities, and that no matter what the distances involved are, one can find in polynomial time a solution which is no more than 1.01 x OPT, where OPT denotes the best weight solution that exists, one would be much happier than if that method did no better than find a solution which is no more than 1.5 x OPT.

A relatively recent breakthrough shows that a polynomial time approximation scheme exists for a special type of TSP, namely when the weights (costs) in the problem are Euclidean distances, whereas for general values no such approximation scheme exists.

The important thing to keep in mind here is that the optimization version of the TSP is so important that solutions must be found to TSP problems which are either provably optimal even though it takes a long time to find them, or which are provably relatively good approximations. For example, if a particular country which manufactured computer chips could find better solutions to large TSP problems, it could manufacture those chips more cheaply, which would make its product more competitive in comparison with a country which could not solve the TSP as efficiently.

### Variations on a Theme

Mathematicians are trained to take an important problem and find related problems that are also of interest. The variations that mathematicians find for a problem are carried out on many fronts. This reflects the fact that the methods that have proved useful in solving a particular problem are often useful in carrying out related or "nearby" problems. One way to extend what one knows is in the applied arena: Take the problem of interest and change to an application related to the original one. For example, one might have originally wanted to solve a problem for a salesman but realize that the problem of picking up children and taking them to a day camp is a related problem but one with the constraint that one can not exceed the size of the minibus. As another example, we have considered applications where a tour is found which starts and ends at the same site and visits each vertex once and only once. What about the problem of starting at a site, visiting each vertex once and only once, but ending at a different site?

One also can vary the problem in a mathematical framework independent of whether there is a natural application of this variant. For example, as we posed the original problem it can be stated:

Find a minimum cost tour for a (simple circuit) of sites making up a weighted complete graph.

The features of this problem are that:

(a). One is seeking a circuit,

(b). The objective function is to minimize the sum of the weights of the edges in the circuit, and

(c). The weights are assumed to be "abstract distances." (Thus, they are symmetrical and obey the triangle inequality.)

Above, we changed Condition (a) for applications reasons. We could also change Condition (a) even if we could think of no application. Surprisingly, these new problems often do find applications in the future, and they may suggest new theoretical issues as well.

We get many interesting variants by changing Condition (b). For example, the Bottleneck Traveling Salesman Problem (bottleneck TSP) arises as a variant of the usual TSP by changing the objective function. It is stated as follows: Find the Hamiltonian circuit in a weighted graph with the minimal length of the longest edge. Now one can try to answer questions such as the computational complexity of this variant (e.g. Is the bottleneck TSP NP-complete?) and to find heuristics for the problem. Since this problem was generated on theoretical grounds, one might also try to see if there are applications for this problem as well. It might seem natural that one would want to use as the objective function having a tour which minimizes the shortest edge, but what about a tour which maximizes the shortest edge? Not only have researchers investigated this question, but it turns out to have an application to how to position rivets in airplane wings!

Finally, we might consider changing the nature of the weights or distances involved. We briefly did this above when considering the special version of the TSP where the distances were Euclidean distances. It is known that this problem is also NP-complete. Of course, we can also vary several of the conditions above at once. For example, suppose we want to find a TSP tour where the total length of the tour is as *large* as possible for points described by ordered pairs of real numbers. It turns out that in two dimensions if the length of the tour involves distances which obey the "taxicab" metric, then the problem can be solved in polynomial time, unlike the situation where the distance between the pairs is given by Euclidean distance and one wants to minimize the length of the tour.

The TSP is also a sub-problem of many large operations research problems. For example, a school district may use a fleet of minibuses to pick students up from specified street corners and deliver them to and from school. If the bus has a capacity of C, one may want to take the locations where the various students can be picked up and divide them into groups where each group contains at most C students congregating at those locations. Now one wants to arrange a TSP for each one of those minibuses. The goal in all of this is to design a system which minimizes the total cost in getting the students to school, or perhaps some other optimization function, such as minimizing the average time the students spend in a bus. Problems of this type embed the TSP in a broader collection of problems called *vehicle routing* problems. Typically vehicle routing problems incorporate more "specialized" features than merely the cost of getting between pick up and delivery points. They deal with the capacity of the vehicle carrying the goods or passengers (e.g. an airport van can seat at most 6 people or a small truck can carry at most a ton of products). They might also have to take into account "alternate side of the street parking" regulations, such as those used in many large cities, which would affect the pattern for employing trucks to make deliveries to stores.

These are only some of the many examples of how mathematics is being used to find increasingly efficient solutions to harder and more subtle operations research problems, thereby improving all of our lives.

### References

Applegate, D. and R. Bixby, V. Chvatal, W. Cook, TSP cuts which do not conform to the template paradigm, In Computational Combinatorial Optimization, Optimal or Provably Near-Optimal Solutions, LNCS, Volume 2241, Springer-Verlag, 2001, p. 261-304.

Arkin, E. and M. Bender, J. Mitchell, S. Skiena, The lazy bureaucrat scheduling problem, Proceedings of the 6th International Workshop on Algorithms and Data Structures, 1999, p. 122.-133.

Arkin, E., and Y-J. Chiang, J. Mitchell, S. Skiena, T-C. Yang, On the maximum scatter traveling salesperson problem, SIAM J. Computing, 29 (1999) 515-544.

Arora, S., Polynomial time approximation schemes for Euclidean traveling salesman and other geometric problems, Journal of ACM, 45 (1998) 753-782.

S. Arora, and M. Grigni, D. Karger, P. Klein, A. Woloszyn, A polynomial-time approximation scheme for weighted planar graph TSP, Proc. 9th Annual ACM-SIAM Symposium on Discrete Algorithms, 1998, p. 33-41.

Arora, S. and C. Lund, R. Motwani, M. Sudan, M. Szegedy, Proof verification and hardness of approximation problems, Journal of the ACM, 45 (1998) 501-555.

Ausiello, G. and E. Feuerstein, S. Leonardi, L. Stougie, M. Talamo, Algorithms for the on-line traveling salesman, Algorithmica, 29 (2001) 560-581.

Baltz, A. and A. Srivastav, Approximation algorithms for the Euclidean bipartite TSP, Operations Research Letters, 33 (2005) 403-410.

Barvinok, D. Johnson, G. Woeginger, R. Woodroofe, The maximum traveling salesman problem under polyhedral norms, Proceedings of the 6th IPCO Conference on Integer Programming and Combinatorial Optimization, 1998, p. 195-201.

Barvinok, A. E. Gimadi, A. Serdyukov, The maximum traveling salesman problem, in The Traveling Salesman Problem and its Variations, G. Gutin and A. Punnan, (eds.), Kluwer, Dordrecht, 2002, p. 585-607.

Bianco, L. and A. Mingozzi, S. Ricciardelli, Dynamic programming strategies and reduction techniques for the traveling salesman problem with time windows and precedence constraints, Operations Research, 45 (1997) 365-377.

Charikar, M. and B. Raghavachari, The finite capacity dial-A-ride problem, In Proceedings of the 39th Annual IEEE Symposium on the Foundations of Computer Science, 1998.

Chiang, Y-J, New approximation results for the maximum scatter TSP, Algorithmica, 41 (2005) 309-341.

Christofides, N., Worst-case analysis of a new heuristic for the traveling salesman problem, Report 388, Graduate School of Industrial Administration, Carnegie Mellon U, 1976.

Clarke, G. and J. Wright, Scheduling vehicles from a central depot to a number of delivery points, Operations Research 12 (1964) 568-581.

Dantzig, G. and J. Ramser, The truck dispatching problem, Management Science 6 (1959) 80-91.

Deineko, V. and G. Woeginger, The convex-hull-and-k-line traveling salesman problem: a solvable case, Information Processing Letters, 59 (1996) 295-301.

Deineko, V. and M. Hoffmann, Y. Okamoto, G. Woeginger, The traveling salesman problem with few inner points, Proceedings of the 10th International Computing and Combinatorics Conferences, LNCS Volume 3106, Springer-Verlag, 2004, 268-277.

Deineko, V. and R. van Dal, G. Rote, The convex-hull-and-line traveling salesman problem: a solvable case, Info. Proc. Lett., 59 (1996) 295-301.

Fekete, S. Simplicity and harness of the maximum traveling salesman problem under geometric distances, Proceedings of the 10th ACM-SIAM Symposium on Discrete Algorithms, 199, p. 337-345.

Flood, M., The traveling-salesman problem, Oper. Res. 4 (1956) 61-75.

Gamarnik, D. and M. Lewenstein, M. Sviridenko, An improved upper bound for the TSP in cubic 3-edge connected graphs, Operations Research Letters, 33 (2005) 467-474.

Garfinkel, R, Minimizing wallpaper waste, Part I: a class of traveling salesman problems, Oper. Res. 25 (1977) 741-751.

Garfinkel, R. and K. Gilbert, The bottleneck traveling salesman problem: algorithms and probabilistic analysis, J. Assoc. Comput. Mach., 25 (1978) 435-438.

Garey, M. and D. Johnson, Computers and Intractability, W. H. Freeman, New York, 1979.

Grigni, M. and E. Koutsoupias, C. Papadimitriou, An approximation scheme for planar graph TSP, In, Proc. IEEE Symposium on the Foundations of Computer Science, 1995, 640-645.

Gutin, G. and A. Punnen, (eds.), The Traveling Salesman Problem and Its Variations, Kluwer, Nowell, MA., 2002.

D. Johnson and L. McGeoch, The Traveling Salesman Problem: A Case Study in Local Optimization, in Local Search in Combinatorial Optimization, E. H. L. Aarts and J.K. Lenstra (ed), Wiley, 1997, p. 215-310.

Karuno, Y. and H. Nagamochi, T. Ibaraki, A 1.5-approximation for single-vehicle scheduling problem on a line with release and handling times, In Japan-U.S.A. Symposium on Flexible Automation, July, 1998, p. 1363-1366.

Kruskal, J., On the Shortest Spanning Subtree of a Graph and the Traveling Salesman Problem, Proc. Amer. Math. Soc. 7 (1956) 48-50.

Lawler, E., A solvable case of the traveling salesman problem, Math. Programming 1 (1971) 267-267.

Lawler, E. and J. Lenstra, A. Rinnooy Kan, D. Shmoys, (eds.) The Traveling Salesman Problem: A Guided Tour of Combinatorial Optimization, Wiley, New York, 1985.

Lewenstein, M. and M. Sviridenko, A 5/8-approximation algorithm for the maximum asymmetric TSP, SIAM J. Discrete Math., 17 (2003) 237-248.

Lin, S. "Computer Solutions of the Traveling Salesman Problem." Bell System Tech. J. 44 (1965) 2245-2269.

Martello, S. and P. Toth, Knapsack Problems: Algorithms and Computer Implementations, Wiley, Chichester, 1990.

Miller, C. and A. Tucker, R. Zemlin, Integer programming formulations and traveling salesman problems, J. of the ACM, 7 (1960) 326-329.

Papadimitrious, C., The Euclidean TSP is NP-complete, Theoretical Comput. Sci., 4 (1977) 237-244.

Papadimitriou, C., The complexity of the Lin-Kernighan heuristic for the traveling salesman problem, SIAM J. on Computing, 21 (1992) 450-465.

Papadimitriou, C. and S. Vempala, On the approximability of the traveling salesman problem (extended abstract). Proceedings of STOC 2000, p. 126-133.

Platzman, L. K. and Bartholdi, J. J. "Spacefilling Curves and the Planar Traveling Salesman Problem." J. Assoc. Comput. Mach. 46, 719-737, 1989.

Reinelt, G. "TSPLIB--A Traveling Salesman Problem Library." ORSA J. Comput. 3, 376-384, 1991.

Rosenkrantz, D. J.; Stearns, R. E.; and Lewis, P. M. "An Analysis of Several Heuristics for the Traveling Salesman Problem." SIAM J. Comput. 6, 563-581, 1977.

Shmoys, D. and D. Williamson, Analyzing the Held-Karp TSP bound: A monotonicity property with application, IPL 35 (1990) 281-285.

Toth, P. and D. Vigo, (eds.), The Vehicle Routing Problem, SIAM, Philadelphia, 2002.

Trevisan, L., When Hamming meets Euclid: the approximability of geometric TSP and Steiner tree, SIAM J. Computing, 30 (2000) 475-485.

Tsitsiklis, J., Special cases of the traveling salesman and repairman problems with time windows, Networks, 22 (1992) 263-282.

Woeginger, G., Exact algorithms for NP-hard problems: a survey, in Combinatorial Optimization - Eureka! You shrink!, Lecture Notes in Computer Science, Vol. 2570, 2003, p. 185-207.

Joe Malkevitch

York College (CUNY)

malkevitch at york.cuny.edu

**NOTE:** Those who can access JSTOR can find some of the papers mentioned above there. For those with access, the American Mathematical Society's MathSciNet can be used to get additional bibliographic information and reviews of some these materials. Some of the items above can be accessed via the ACM Portal, which also provides bibliographic services.