<algorithm, complexity> (TSP or "shortest path", US: "traveling") Given a set of towns and the distances between them, determine the shortest path starting from a given town, passing through all the other towns and returning to the first town.

This is a famous problem with a variety of solutions of varying complexity and efficiency.

The simplest solution (the brute force approach) generates all possible routes and takes the shortest.

This becomes impractical as the number of towns, N, increases since the number of possible routes is !(N-1).

A more intelligent algorithm (similar to iterative deepening) considers the shortest path to each town which can be reached in one hop, then two hops, and so on until all towns have been visited.

At each stage the algorithm maintains a "frontier" of reachable towns along with the shortest route to each.

It then expands this frontier by one hop each time.

Pablo Moscato's TSP bibliography (http://www.densis.fee.unicamp.br/~moscato/TSPBIB_home.html). Fractals and the TSP (http://www.ing.unlp.edu.ar/cetad/mos/FRACTAL_TSP_home.html).