1 Introduction

The minimum spanning tree (MST) problem in graphs is perhaps one of the most basic problems in graph algorithms. An MST is a spanning tree with minimal sum of edge weights. Efficient algorithms for finding an MST are well known.

One variant on the MST problem is the bounded-degree MST problem, which consists of finding a spanning tree satisfying given upper bounds on the degree of each vertex and with minimal sum of edges weights subject to these degree bounds.

In general, this problem is NP-hard [1], so no efficient algorithm exists. However, there are certain achievable results. For undirected graphs, Singh and Lau [2] found a polynomial-time algorithm to generate a spanning tree with total weight no more than that of the bounded-degree MST and with each vertex having degree at most one greater than that vertex’s bound. If the graph is undirected and satisfies the triangle inequality, Fekete et al. [3] bounded the ratio of the total weight of the bounded-degree MST to that of any given tree, with a polynomial-time algorithm for generating a spanning tree satisfying the degree constraints and this ratio bound.

The Euclidean case, with vertices being points in Euclidean space and edge weights being Euclidean distances, also has a rich history. We denote (following Chan in [5]) by \(\tau_{k}^{d}\) the supremum, over all sets of points in d-dimensional Euclidean space, of the ratio of the weight of the bounded-degree MST with all degrees at most k to the weight of the MST with no restrictions on degrees (\(\tau _{k}^{\infty}\) is the supremum of \(\tau_{k}^{d}\) over all d). For k=2, the bounded-degree MST problem becomes the Traveling Salesman Problem and \(\tau_{2}^{d}=2\) [3], thus making k=3 the first unsolved case.

Papadimitriou and Vazirani [1] showed that finding the degree-3 MST is NP-hard. Khuller, Raghavachari, and Young [4] showed that \(1.104\approx(\sqrt{2}+3)/4 \leq\tau_{3}^{2} \leq1.5\) and \(1.035< \tau_{4}^{2} \leq1.25\). Chan [5] improved the upper bounds to 1.402 and 1.143, respectively. Jothi and Raghavachari [6] showed that \(\tau_{4}^{2} \leq (2+\sqrt{2})/3\approx1.1381\). It holds \(\tau_{5}^{2}=1\) since there is always an MST with maximal degree 5 or less [7].

These same papers also studied the problem in higher dimensions. Khuller, Raghavachari, and Young [4] gave an upper bound on \(\tau_{3}^{\infty}\) of 5/3≈1.667, which Chan [5] improved to \(2\sqrt{6}/3\approx1.633\). These two followed the same approach, proving these bounds on a certain ratio, which we will call r. The r is the maximum ratio between the shortest path through a collection of points starting at a special point and the size of a star centered at that point. It is conjectured to actually be 1.5.

Khuller, Raghavachari, and Young [4] showed that \(\tau_{3}^{\infty}\leq r\). This is achieved in linear time as follows:

  1. 1.

    Root the original tree.

  2. 2.

    Treating the root as v, find a Hamiltonian path with ratio at most r through its children.

  3. 3.

    Repeat recursively on each child.

Each vertex then has at most 3 neighbors: two as a child and one as a parent.

We improve previous upper bounds on r, and thus \(\tau_{3}^{\infty}\), to 1.559. The proof leads to a linear-time algorithm for generating the path and thus the bounded-degree tree. Our approach is based on Chan’s but we weigh paths differently and select the number of points to remove when performing the induction based on the distances of points to v.

We also find, by construction, a nontrivial lower bound of about 1.447 on \(\tau_{3}^{\infty}\).

In Sect. 2, we go over r a bit more carefully as well as referring to a useful paper and discuss how we will use it. In Sect. 3, we improve the upper bound on r to 1.559, and in Sect. 6 we improve the lower bound on \(\tau _{3}^{\infty}\) to 1.447.

2 Preliminaries

The r is properly defined as follows:

Given point v and m points a 1,a 2,…,a m in a Euclidean space of arbitrary finite dimension, let \(S=\sum_{i=1}^{n} d(v,a_{i})\) and let L be the length of the shortest possible path that starts at v and goes around the other points in some order (it does not go back to v). Then r is the supremum of the possible values of L/S over all arrangements of points in any number of dimensions. The r=1.5 is achieved for m=2 in one dimension by the points v=0,a 1=1,a 2=−1.

We use multiple times the results of Young [8] in order to bound certain sums of distances. This paper deals with the maximum of weighted sums (with weights w i,j ) of lengths between n points in (n−1)-dimensional Euclidean space, given that each point a i is specified as being no further than some distance l i from the origin.

$$ \max \biggl(\sum_{1\leq i<j\leq n} w_{i,j} d(a_i,a_j) \biggr)=\min \Biggl(\sqrt{\sum _{1\leq i<j\leq n} \frac{w^2_{ i,j}}{x_ix_j}}\sqrt{\sum _{i=1}^n l^2_ix_i} \sqrt{\sum_{i=1}^n x_i} \Biggr) $$
(1)

where the maximum is taken over all arrangements of points and the minimum is taken over all nonnegative x i .

Furthermore, Young specifies a relationship between the optimal arrangement and the values of x i where equality is achieved. Thus one can iteratively approximate the optimal arrangement using the same method as in [9], and then calculate x i values from it.

Whenever (1) is used to give an upper bound on some weighted sum of distances, the values for x i used are given in Appendix A.

3 Main Proof of Upper Bound on r

Let r =1.559. We will prove that Lr S (as L and S are defined in the Introduction), thus showing that r<1.559.

We will prove this by strong induction on the number of points. Given m vectors a 1,a 2,…,a m with norms d 1d 2d 3≥⋯≥d m >0, respectively, we will try to induct by removing a 1,…,a n for various values of n. We will try to traverse the other points, ending at a n+1 or a n+2. We will then add the removed points, projected onto a sphere, and look at the average length of a path traversing them and ending at a 1 or a 2. We will then move them in stages, seeing how this average path length changes at each stage, in order to bound the final average path length in terms of the values d k . Since the average is an upper bound on the minimum, this gives a linear inequality on the d k which is a sufficient condition for the inductive step to work. We then use linear programming to show that one of these inequalities is satisfied and thus that induction is possible. For the algorithm, we will then follow the induction to split the points up into blocks, choose the starting and ending vertex for one block at a time, using brute force to find the shortest path that goes through all the block’s points.

We start by defining a k =0 and d k =0 for all k>m. Introducing these new points does not affect the distance sum or the traversing path length, as the traversing path can go to them first.

We will prove the following claim:

Claim 1

There exist two paths P 1 and P 2 ending at a 1 and a 2, respectively, such that the average of the lengths of these paths is at most r S

This clearly implies that Lr S.

We will proceed by strong induction on m. To induct, remove a 1 through a n (where n≥3 may vary), use the inductive hypothesis to find two paths P 1 and P 2 through the other mn points, ending at a n+1 and a n+2, respectively. We will then try to find four paths Q 11,Q 12,Q 21,Q 22 with path Q ij going from a n+i to a j and going through all points a 1,…,a n , so that the average length of these four paths is at most \(r^{*}(\sum_{i=1}^{n} d_{i})\).

We will assume that this is impossible, generate a set of conditions on the values d n , then prove that one of the conditions must be violated.

3.1 Given n≥3

In this section, we will assume n>3 to be a given value. We will select it in Sect. 4.

Let \(S_{n}=\sum_{i=1}^{n} d_{i}\). Let L(u n+1,…,u 1) be the shortest length of a path \(u_{s_{n+1}}, \ldots, u_{s_{1}}\) where s is a permutation of 1,…,n+1 so that s n+1=n+1 and {s 1,s 2}={1,2} (see Fig. 1). Let \(\overline{L(u_{n+1}, \ldots, u_{1})}\) be the average length over all such paths \(u_{s_{n+1}}, \ldots, u_{s_{1}}\). Then

$$\begin{aligned} L(u_{n+1}, \ldots, u_1) =& \frac{1}{n-1}d(u_1,u_2)+\frac {1}{2(n-1)}d(u_1,u_{n+1})+ \frac{1}{2(n-1)}d(u_2,u_{n+1}) \\ &{}+\sum_{i=3}^n \frac{3}{2(n-1)}d(u_1,u_i)+ \sum_{i=3}^n \frac {3}{2(n-1)}d(u_2,u_i) \\ &{}+\sum_{i=3}^n \frac{1}{n-1}d(u_i,d_{n+1})+ \sum_{3\leq i<j\leq n} \frac {2}{n-1}d(u_i,u_j). \end{aligned}$$
(2)
Fig. 1
figure 1

The thick segments contribute to L(a n ,…,a 1); the dotted segments contribute to S n

We wish to find upper bounds on \(\overline{L(a_{n+1}, \ldots, a_{1})}\) and \(\overline{L(a_{n+2},a_{n},a_{n-1}, \ldots, a_{1})}\). For 1≤in, let

$$\begin{aligned} D_{n,i,1} =&\overline{L \biggl( a_{n+1}, \ldots, a_{i+1},a_i, \frac {d_i}{d_{i-1}}a_{i-1}, \ldots, \frac{d_i}{d_1}a_1 \biggr)} \\ &{}- \overline{L \biggl( a_{n+1}, \ldots, a_{i+1}, \frac {d_{i+1}}{d_{i}}a_i, \frac{d_{i+1}}{d_{i-1}}a_{i-1}, \ldots, \frac {d_{i+1}}{d_1}a_1 \biggr)} \end{aligned}$$
(3)

and let

$$ D_{n,1}=\overline{L \biggl( a_{n+1}, \frac{d_{n+1}}{d_n}a_n, \ldots, \frac {d_{n+1}}{d_1}a_1 \biggr)}. $$
(4)

D n,i,2 and D n,2 are defined identically, except that a n+1 and d n+1 are replaced with a n+2 and d n+2. For k=1 or k=2,

$$ \overline{L(a_{n+k},a_n,a_{n-1}, \ldots,a_1)}=D_{n,k}+\sum_{i=1}^n D_{n,i,k}. $$

Intuitively, we are setting all points at distance d n+k , then moving out n points to distance d n , then moving out n−1 points, and so on.

We will now find values B n,i and B n independent of the arrangement of a 1,a 2,…, satisfying

$$ \begin{aligned} B_{n,i}(d_i-d_{i+1}) &\geq D_{n,i,1}, \\ B_n d_n &\geq D_{n,1}. \end{aligned} $$

The corresponding equations (substituting a n+2 for a n+1 and d n+2 for d n+1) will then hold for D n,i,2 and D n,2.

3.1.1 B n

Define g(n) as the maximum value of

$$\begin{aligned} &d(u_1,u_2)+\frac{1}{2}d(u_1,u_{n+1})+ \frac{1}{2}d(u_2,u_{n+1})+\sum _{j=3}^n\frac{3}{2}d(u_1,u_j) \\ &\quad{}+\sum_{j=3}^n\frac{3}{2}d(u_2,u_j)+ \sum_{j=3}^n d(u_j,u_{n+1})+ \sum_{3\leq j<k\leq n} 2d(u_j,u_k) \end{aligned}$$

over unit vectors u 1,…,u n+1.

We use Eq. (1) to obtain upper bounds on g(n), which we then use to find numerical values for B n .

Substituting in (4) and (2), we get that

$$D_{n,1}\leq d_n\frac{g(n)}{n-1}, $$

and similarly for D n,2. Thus we can set

$$ B_n=\frac{g(n)}{n-1}. $$

3.1.2 B n,i

For i<j<k,

$$ d(a_j,a_k)-d(a_j,a_k)=0. $$
(5)

For ji<k,

$$ d \biggl( \frac{d_i}{d_j}a_j,a_k \biggr)-d \biggl(\frac {d_{i+1}}{d_j}a_j,a_k \biggr)\leq d_i-d_{i+1}. $$
(6)

For k<ji,

$$ d \biggl( \frac{d_i}{d_j}a_j, \frac{d_i}{d_j}a_k \biggr)-d \biggl( \frac {d_{i+1}}{d_j}a_j, \frac{d_{i+1}}{d_j}a_k \biggr)\leq(d_i-d_{i+1}) d \biggl( \frac{a_j}{d_j},\frac{a_k}{d_k} \biggr). $$
(7)

Define also f(i) as the maximum value of

$$\begin{aligned} d(u_1,u_2)+\sum_{j=3}^i \frac{3}{2}d(u_1,u_j)+\sum _{j=3}^i\frac {3}{2}d(u_2,u_j) +\sum_{3\leq j<k\leq i}2d(u_j,u_k) \end{aligned}$$

over unit vectors u 1,…,u i .

We use Eq. (1) to obtain upper bounds on f(i), which we then use to find numerical values for B n,i .

For i>2, substituting (5), (6), (7), and (2) into (3), we get that

$$\begin{aligned} D_{n,i,1} \leq&(d_i-d_{i+1})\frac{f(i)}{n-1}\\ &{}+ (d_i-d_{i+1}) \biggl(\frac {1+3(n-i)+(i-2)+2(n-i)(i-2)}{n-1} \biggr) \\ D_{n,i,1} \leq&(d_i-d_{i+1}) \biggl( \frac{f(i)}{n-1}+2\frac {(n-i)(i-1)}{n-1}+1 \biggr), \end{aligned}$$

and similarly for D n,i,2. So we set

$$ B_{n,i}=\frac{f(i)}{n-1}+2\frac{(n-i)(i-1)}{n-1}+1. $$

For i=2, the same substitution gives B n,2=3. For i=1, the same substitution gives B n,1=1.5.

If there do not exist four paths Q 11,Q 12,Q 21,Q 22, then the average length of a path is too great, namely

$$\begin{aligned} \frac{1}{2} \bigl( \overline{L(a_{n+1}, \ldots, a_1)}+\overline {L(a_{n+2},a_n,a_{n-1}, \ldots, a_1)} \bigr) >& r^*S_n \\ \frac{d_{n+1}+d_{n+2}}{2}B_n + \biggl(d_n-\frac{d_{n+1}+d_{n+2}}{2} \biggr)B_{n,n}+\sum_{i=1}^{n-1} (d_i-d_{i+1} )B_{n,i} >& \sum _{i=1}^{n} r^*d_n. \end{aligned}$$

3.2 n=3

If d 4≤0.541d 3, then, by (1),

$$\overline{L \biggl( a_4, a_3, \frac{d_3}{d_2}a_2, \frac{d_3}{d_1}a_1 \biggr)}\leq4.677d_3=3r^*d_3. $$

Then, since B 3,2=3<2r and B 3,1=1.5<r as in the last section,

$$\overline{L(a_4, a_3, a_2, a_1)}\leq r^*(d_1+d_2+d_3). $$

Similarly,

$$\overline{L(a_5, a_3, a_2, a_1)}\leq r^*(d_1+d_2+d_3), $$

so the induction works. Thus for n=3 we have the constraint d 4>0.541d 3, which is stronger than the one obtained for n=3 in the previous section.

4 Choosing n

We obtained linear constraints for various values of n≤10. These, together with the constraints d i d i+1, make a linear program (given in Appendix B), which is unsatisfiable. Thus one of the constraints must not hold, so the induction works for some n.

5 Algorithm

We repeatedly use the inductive step to obtain a sequence of indices 0=n 0<n 1<n 2<⋯. At a stage j, we remove n j n j−1 points. The intermediate ending points are then of the form n j +k j where each k j is 1 or 2. Since we are only using n≤10, we can find all the paths Q 11,Q 12,Q 21,Q 22 by brute force in linear time. Now, for both possible values of k 1, we find which value of k 0 gives the shorter path. Then, for both possible values of k 2, we find which value of k 1 will make the total path after \(a_{n_{2}+k_{2}}\) shorter. We repeat until we get to some n j >m at which point we have two paths and choose the shorter one. This whole algorithm is linear.

6 Lower Bound on Degree-3 Tree Ratios

Denote by σ the sum of edge weights of the minimal spanning tree and by σ 3 the sum of edge weights of a minimal degree-3 tree. Denote by (x 1,x 2,…,x n ) the coordinates of a point in n dimensions.

In six dimensions, let O be the origin and let v 1,v 2,…,v 7 be the vertices of a simplex with center at O and radius \(\sqrt{6}\). Let the coordinates of v i be (v i,1,v i,2,v i,3,v i,4,v i,5,v i,6). Note that \(d(v_{i},v_{j})=\sqrt{2*7/6}\sqrt{6}=\sqrt{14}\).

Now, given natural N and 0<α<1, take the following tree in 7N dimensions:

  1. 1.

    The origin, O, is the root.

  2. 2.

    Its N children are p 1,p 2,…,p N . The p i have coordinates 0 except x 7i =1−α.

  3. 3.

    Each p i has seven children, q i,1,q i,2,…,q i,7. The coordinates of q i,j are all 0 except x 7i =1 and, for k from 1 to 6, x 7ik =v j,k .

Then q i,1,q i,2,…,q i,7 form a simplex with the center distance α from p i and with each vertex distance \(\sqrt{6}\) from the center.

It is easy to check that

$$\begin{aligned} d(p_i,p_h) =&\sqrt{2}(1-\alpha)\quad \text{for}\ i\neq h, \\ d(q_{i,j},q_{i,k}) =&\sqrt{14}=d(q_{i,j},q_{h,k}) \quad\text{for}\ j\neq k,h\neq i, \\ d(p_i,q_{i,j}) =&\sqrt{6+\alpha^2}, \\ \sigma =&N\bigl(1-\alpha+7\sqrt{6+\alpha^2}\bigr). \end{aligned}$$

Then we can pick

$$\alpha=-1-\sqrt{7}+\sqrt{4+4\sqrt{7}}, $$

which gives d(q i,j ,q h,k )+d(p i ,p h )=2d(p i ,q i,j ).

Then we can define function c on the vertices so that c(O)=0,c(p i )=d(p i ,p h )/2 and c(q i,j )=d(q i,j ,q h,k )/2. In that case, the length of edge AB is at least c(A)+c(B), so c can be thought of as a half-edge length. Then, since there are 8N+1 vertices, there are 8N edges, so there is a total of 16N edge endpoints. At most 3 of them contribute 0 to σ 3, at most 3N contribute \((1-\alpha)/\sqrt{2}\), and the remainder contribute \(\sqrt{14}/2\). Thus,

$$\begin{aligned} \sigma_3 \geq&3N \biggl(\frac{1}{2}\sqrt{2}(1-\alpha) \biggr)+(13N-3) \biggl(\frac{1}{2}\sqrt{14} \biggr),\\ \frac{\sigma_3}{\sigma} =&\frac{3N (\frac{1}{2}\sqrt{2}(1-\alpha ) )+(13N-3) (\frac{1}{2}\sqrt{14} )}{N (1-\alpha +7\sqrt{6+\alpha^2} )},\\ \lim_{N \to\infty}\frac{\sigma_3}{\sigma} =&\frac{3 (\frac{1}{2}\sqrt {2}(1-\alpha) )+13 (\frac{1}{2}\sqrt{14} )}{1-\alpha +7\sqrt{6+\alpha^2}}\approx1.4473. \end{aligned}$$

Thus \(\tau_{3}^{\infty}\geq1.447\).