* Implement a heuristic to provide a better upper bound.

* Implement a heuristic to provide a better upper bound.

- The intermediate root constraint could be useful to do so.

- The intermediate root constraint could be useful to do so.

* Maybe *change the cost function for the nodes*.

- At the moment every node has a cost of 1.

- It could work to give each node the cost of shortest path between a node and the root.

- With this technique we would encourage the solver to prefer nodes that are close to the root. With this we would avoid that far distant nodes would be added and connected subcomponents which are far away from the root are generated.