As the net-evergreen The Physics of Santa establishes, it is physically impossible for Santa to get a gift to every kid on the planet. Route planning won't help much there, but can a good planning algorithm at least make sure that every kid gets a gift once in a while while Santa also serves as many kids as possible each year?

Consider a complete graph with real, positive weights and a constant $k$. We want to solve a variant of the Travelling Sales Person problem:

Is there a circular route of length at most $k$ that serves more than $m$ nodes?

The optimisation version would be:

Maximise the number of nodes that can be served with a circular route of length at most $k$.

This is motivated by real-world limitations on routes: Santa has one night to deliver as many gifts as possible, a sales person has eight hours for one day's route, and so on.

The first, but not final question is: how hard is this problem? Let's assume we can start at any node, but that should not make too much of a difference.

Now, in order to model fairness, let's assume there are $N$ nodes and we can visit at most $M$ with every tour. Ideally, we would want that every node is visited $t\cdot\frac{M}{N}$ times across $t$ efficient tours. Since there may be bottleneck nodes that have to be visited more often in order to ensure routes visit many nodes, some will inevitably have to be visited less often. That also excludes the trivial approximation of removing once visited nodes until all have been visited.

So, here is the final question. Let $T$ be the number of tours needed until all nodes have been visited by efficient $k$-tours. How can we algorithmically determine the minimal value of $T$ (and all the necessary routes)? How complex is this problem?

I guess this is really a multi-criterial problem: each tour should visit as many nodes as possible while we want to keep tours as disjoint as possible.

  • 2
    $\begingroup$ The real Santa uses good magic to solve NP-complete problems in $O(1)$ time. If you have a difficult instance of 3DM that you need to solve by the end of the year, try writing to him at the north pole, and if you have been a good little researcher, he may bring you the answer by Christmas. $\endgroup$ Nov 10, 2012 at 8:24

1 Answer 1


I am slightly confused. If $k$ is a constant, then you can try all $O(n^k)$ possible tours. Hence the problem is in ${\sf P}$.

However, if $k$ is part of the input, the decision problem is ${\sf NP}$-complete. This can be shown by reducing $\text{HAM-CIRCUIT}$ to the problem, by the following reduction.

Assume that we want to determine if a $n$-vertex graph $G$ has a Hamiltonian circuit. Then we take the complete graph $K_n$ with the following distance function $$ w_{ij}:=\begin{cases} 1 & \text{if $(v_i,v_j)$ is an edge in $G$} \\ 2 & \text{otherwise} \end{cases}. $$ Furthermore we pick $k=n$ and $m=n-1$.

Let me tell you why this is a reduction. If $G$ has a Hamiltonian circuit, then there is a tour in $K_n$ with length $n$. In other words a circular route of length $\le n$ that serves $> (n-1)$ nodes. On the other hand, if there is a Santa-tour that visits $>(n-1)$ nodes is has to visit all nodes. Since the Santa-tour can only have length $\le n$ and every edge length is at least 1, all $n$ edges in this tour have length 1. Hence this tour corresponds to a Hamiltonian circuit in $G$.

  • $\begingroup$ This is true for finding one tour with many nodes, but doesn't the additional, competing goal to visit all nodes with few tours complicate things? $\endgroup$
    – Raphael
    Nov 8, 2012 at 16:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.