On math.se, Sybren Zwetsloot has asked for help with an unusual optimal subtree problem. Here's my understanding of what he's asking:

We have a weighted bipartite graph on two sets $N$ and $B$, call them "nodes" and "buses", with $|N| \geq |B| + 1$. Furthermore (I believe), every bus $b \in B$ has degree $\geq 2$. We want to choose a maximum-weight subtree (or possibly subforest; Zwetsloot seems to be asking both questions) in which every element of $B$ has degree exactly $2$. Omitting some nodes is fine, but the resulting graph must be acyclic.

(Zwetsloot's original question uses the word "elements" instead of "nodes," but this name can be confused with elements of a set, so I changed it here.)

I proved the following partial result:

The maximum-weight subtree includes, for each bus $b \in B$, the connection with maximum weight among all connections of $b$. If multiple connections are tied for maximum weight, then each of them can appear in a different optimal tree. This is also true of the maximum-weight subforest.

This result lets us divide the graph into $|N|$ "complexes", each containing one node $n$ plus all the buses $b$ such that the edge from $n$ to $b$ is the highest-weight edge connection to $b$. We now have to make an acyclic graph on these complexes by connecting buses in one complex to nodes in another. The degree constraint on buses, though, precludes the usual MST algorithms that make greedy choices of additional edges: there are simple counterexamples (my answer on math.se provides one) for which adding the highest-weight available connection between two complexes forces suboptimal choices later on. Another possibility might be adapting bipartite matching algorithms for choosing remaining node–bus connections, but the no-cycles constraint also makes this difficult.

In general, the degree-constrained MST problem is NP-hard, but the unusual nature of the degree constraints here—every node either has degree 2 or unlimited degree—makes me hope that the there might still be an efficient algorithm. Are there any similar problems or algorithms that have been better studied?


1 Answer 1


The problem is $\mathsf{NP}$-hard. We will show a reduction from the Hamiltonian path problem on general graphs.

Let $G = (V,E)$ be any hard instance of the Hamiltonian path problem.

Reduction: For every edge $e = (u,v)$ in $E$, create a new vertex $x_{e}$. Replace edge $e$ with two new edges $(u,x_e)$ and $(x_e,v)$. Furthermore, create a new vertex $x_{v}$ corresponding to every vertex $v \in V$ and add the edge $(v,x_v)$. Let $N$ denote the set of all new vertices added. Note that the new graph is a bipartite graph, with partitions $N$ and $V$. Assign each edge of the graph a unit weight. Here $B = V$. It is easy to see that this graph satisfies $|N| \geq |B|+1$. Also, every vertex in $B$ has degree at least $2$.

Claim: There exists a hamiltonian path in $G$ if and only if the bipartite graph has a subtree of weight $2|B|$ in which every vertex in $B$ has degree exactly $2$.

Proof: (->) Suppose $h: (v_1,\dotsc,v_n)$ be the hamiltonian path in graph $G$. Let $e_{i}$ denote the edge $(v_{i},v_{i+1})$ in $h$. Then, $(x_{v_{1}},v_{1},x_{e_{1}},v_{2},\dotsc,v_{n-1},x_{e_{n-1}},v_{n},x_{n})$ forms a subtree of weight $2|B|$ in the bipartite graph such that each vertex in $B$ has degree exactly $2$.

(<-) Suppose that there exists a subtree $T$ in the bipartite graph of weight $2|B|$ in which every vertex in $B$ has degree exactly $2$. Then, this subtree contains all vertices of $B$; otherwise, the weight of the subtree would have been less than $2|B|$. Also, note that the degree of every vertex in $N$ is either $2$ or $1$. Therefore, the degree of each vertex in $T$ is either $1$ or $2$. Therefore, $T$ must be a simple path with its vertices alternating between $V$ and $B$. Suppose this path is $(x_{1},v_{1},x_{2},v_{2},\dotsc,v_{n-1},x_{n},v_{n},x_{n+1})$. Then, this path corresponds to a hamiltonian path $(v_1,\dotsc,v_n)$ in the original graph $G$.

  • $\begingroup$ OK, this solves the maximum subtree problem. What if we allow disconnected (but still acyclic) forests? The reduction from Hamiltonian path doesn't seem to work in that case. $\endgroup$ Commented Sep 22, 2021 at 0:43
  • $\begingroup$ @Connor Right. Will also think about that. $\endgroup$ Commented Sep 22, 2021 at 13:10
  • $\begingroup$ @Connor You found the solution or what? $\endgroup$ Commented Sep 26, 2021 at 2:39
  • $\begingroup$ Not yet, but it seems unlikely that there will be a better answer. $\endgroup$ Commented Sep 26, 2021 at 13:10

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.