 # Low-stretch spanning trees of graphs with bounded width

We study the problem of low-stretch spanning trees in graphs of bounded width: bandwidth, cutwidth, and treewidth. We show that any simple connected graph G with a linear arrangement of bandwidth b can be embedded into a distribution 𝒯 of spanning trees such that the expected stretch of each edge of G is O(b^2). Our proof implies a linear time algorithm for sampling from 𝒯. Therefore, we have a linear time algorithm that finds a spanning tree of G with average stretch O(b^2) with high probability. We also describe a deterministic linear-time algorithm for computing a spanning tree of G with average stretch O(b^3). For graphs of cutwidth c, we construct a spanning tree with stretch O(c^2) in linear time. Finally, when G has treewidth k we provide a dynamic programming algorithm computing a minimum stretch spanning tree of G that runs in polynomial time with respect to the number of vertices of G.

## Authors

##### This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

## 1 Introduction

Let be an unweighted, connected graph with edges and vertices, and be any spanning tree of . For any , the stretch of with respect to is , where denotes the length of the unique -to- path in . The stretch of is then defined to be .

As minimal distance preserving structures, low-stretch spanning trees are a fundamental concept that have been studied extensively; they have also found applications in computer science in problems such as the -server problem , minimum cost communication trees , and solving diagonally dominant linear systems . Perhaps the first notable structural result is the paper by Alon et al. , where they show that any general graph has a spanning tree of stretch and that there exist graphs with minimum stretch . A series of papers [11, 1, 22, 2] followed the result of Alon et al., culminating in the recent construction of Abraham and Neiman of an stretch spanning tree for general graphs, which is almost tight considering the lower bound. The existence of spanning trees with bounded average distortion is often implied by a stronger statement that the graph can be embedded into a distribution of spanning trees such that the expected stretch of any edge is bounded.

Given these results for general graphs, a natural question is to consider restricted classes of graphs, both in terms of finding better bounds than general graphs for some classes of graphs, as well as finding lower bounds that match the general case in others. For example, we know that constant factor stretch spanning trees exist for -outerplanar graphs: they have stretch for a constant  [17, 12]. On the lower bound side, we also know that grid graphs, which are planar, have a lower bound of on their stretch, so we cannot hope to get constant factor for this class. Additionally, Gupta et al.  found a family of bounded treewidth graphs (in fact, series parallel graphs) whose minimum stretch spanning trees have stretch .

In light of these bounds, the search for families of graphs that might have smaller stretch must be limited to classes of graphs that exclude these examples. In this regard, a natural and still-open question is whether bounded pathwidth graphs admit a spanning tree of sublogarithmic stretch. In fact, we conjecture that bounded pathwidth graphs admit constant stretch spanning trees. In this paper, we make progress towards this conjecture by showing this is true for bounded bandwidth (Theorem 4.1) and bounded cutwidth graphs (Theorem 5.1); both classes are contained within the family of bounded pathwidth graphs. More precisely, we prove:

• For every -vertex graph of bandwidth there exists a random distribution over spanning trees of the graph, such that the expected stretch of any individual edge of the graph is . The random distribution can be sampled in linear time given a bandwidth- linear arrangement of the graph, or constructed explicitly in quadratic time.

• Under the same assumptions, a spanning tree of average stretch can be constructed deterministically in linear time.

• Every -vertex graph of cutwidth has a spanning tree of average stretch . can be constructed from a cutwidth- linear arrangement of the graph in linear expected time.

• We provide a dynamic programming algorithm computing the minimum stretch spanning tree of an unweighted graph with treewidth . Our algorithm runs in time.

It is important to note that our algorithms require either a linear arrangement or a tree decomposition realizing the width as input, and computing such structures is NP-hard [25, 4, 15].

Lee and Sidiropoulos  show that a bounded pathwidth graph admits an embedding into a distribution of trees with constant distortion. In this paper, we conjecture that a similar result holds for embedding into a distribution of spanning trees. For embedding of bounded bandwidth graphs into normed spaces see Carrol et al.  and Bartal et al. .

The key insight by which we obtain these results lies in the connection between spanning trees of low-stretch and fundamental cycle bases of low weight. Any spanning tree of naturally gives a fundamental cycle basis for : for each , the basis contains the unique cycle in . The weight of this basis is defined to be the sum of the lengths of its cycles. A graph has a spanning tree of average stretch if and only if it has a fundamental cycle basis of weight . Similarly, a cycle basis of length is equivalent to a spanning tree of stretch . (The relationship between ’s stretch and fundamental cycle basis will be discussed in more detail in the next section.)

Shortest fundamental cycle bases have been studied as a basic structure of graphs and for their different applications in graph drawing , electrical engineering , chemistry , traffic light planning , periodic railway time tabling, [24, 27], and kinematic analysis of mechanical structures .

## 2 Preliminaries

### 2.1 Cycle bases

Given a simple, connected, unweighted graph with vertices and edges the cycle space of is an

dimensional vector space over

that spans the cycles in . In this context a cycle in is any subgraph of with even degree. We call a basis of this vector space a cycle basis, and the weight of a cycle basis is the sum of the lengths of the cycles in the basis. Given a spanning tree of we call a cycle formed by adding a non-tree edge to a fundamental cycle with respect to . Every spanning tree of yields a basis of the cycle space using the fundamental cycles induced by the edges in . We call a basis of this form a fundamental cycle basis. Each cycle in the fundamental cycle basis created by corresponds to exactly one edge in . We call this edge the fundamental edge of the cycle.

### 2.2 Fundamental cycle bases and low-stretch spanning trees

The weight of a fundamental cycle basis with respect to a tree is closely related to the stretch of . The stretch of an edge in with respect to , denoted , is defined as the length of the unique -to- path in . The stretch of is defined as the mean stretch of the edges,

 stretch(T)=1m∑e∈E(G)stretchT(e).

Let denote the weight of the fundamental cycle basis corresponding to . By observing that the length of a fundamental cycle induced by an edge is we see that the fundamental cycle basis with respect to is related to the stretch of by

 FCB(T)=m⋅stretch(T)+m−2n+2 (1)

It follows that if and only if .

### 2.3 Linear arrangements

A bijective map is called a linear arrangement of . For any subset of vertices if maximizes restricted to we call it the right endpoint of ; similarly if minimizes restricted to we call it the left endpoint of . If and are the left and right endpoints of we define the spread of to be . For any vertex we call the sets and the left and right sides of , respectively.

### 2.4 The arrangement tree

Given a linear arrangement of the arrangement tree is defined as a balanced binary tree with the following two properties. The leaves of are in bijection with and each internal node is mapped to the subgraph of induced by the vertices corresponding to the descendent leaves of . More specifically we construct as follows: let be the number of vertices in , and let be the largest power of two that is less than . Let the left subtree of be constructed recursively from the first vertices in the linear arrangement, and let the right subtree be constructed recursively from the remaining vertices (Figure 1). Figure 1: Linear arrangement of a graph of bandwidth three and its arrangement tree. The root node and the edges split by the root node are marked in red.

We denote the induced subgraph of the leaves descending from by . Consider the children and of in . The induced subgraph has the form where is the set of edges connecting and . We call the set of edges split by . Note that each edge is split by exactly one vertex.

### 2.5 Bandwidth and cutwidth

The bandwidth of a linear arrangement of a graph is defined as

 max(u,v)∈E(G)|ϕ(u)−ϕ(v)|.

Note that is the spread of with respect to the arrangement tree arising from . The bandwidth of is the minimum bandwidth over all possible linear arrangements. In a graph with bandwidth we have for all . Hence, when we have . Consider the induced subgraph corresponding to node of with as the left and as the right child of . Any edge with and from and , respectively, has spread at most . So, if is positions away from the left endpoint of then is at most positions away from the right endpoint of . It follows that

 |Sv|≤12(b−1)(b−2)=O(b2). (2)

The cutwidth of a linear arrangement of a graph is defined as

 maxi∈Z|{(u,v)∈E(G)∣ϕ(u)≤i,ϕ(v)≥i+1}|.

The cutwidth of is the minimum cutwidth over all linear arrangements. The cutwidth measures the number of edges that cross a fixed position in the linear arrangement.

### 2.6 Tree decompositions

A tree decomposition of a graph is a tree where the vertex set is in bijection with a collection of subsets of , called bags, meeting the following conditions.

1. Every vertex is contained in some bag. That is, .

2. For every edge there exists an with .

3. For all the subgraph induced by the set of bags containing is a tree.

The width of a tree decomposition is defined to be . The treewidth of is the minimum width over all of its tree decompositions, denoted . We will use the notation to refer to the set of vertices in the bag and the descendants of . Similarly, by we denote the set of vertices in and the ancestors of . We call a tree decomposition a nice tree decomposition if it meets the following extra conditions.

1. is a rooted binary tree.

2. If with and the children of , then .

3. If is the child of and then either and or and .

We call the parent bags satisfying property 5 join nodes. We call the parent bags satisfying the two conditions of property 6 introduce nodes and forget nodes, respectively. Without loss of generality we may assume all tree decompositions are nice since any tree decomposition can be transformed into a nice tree decomposition in polynomial time . Further, we may assume that every leaf bag contains only one vertex and the root bag is a forget node containing only one vertex.

## 3 Spanning trees from linear arrangements

Both our construction of a random family of spanning trees with low expected stretch on each edge and our construction of a deterministic spanning tree with low mean stretch will depend on a construction of spanning trees from arrangement trees, which we now describe.

Although we will use a different construction algorithm, our tree can be described as the one constructed by the following greedy algorithm:

This algorithm is simply Kruskal’s algorithm for the minimum spanning tree of , with each edge weighted by the height in the arrangement tree of the least common ancestor of the edge endpoints with ties broken by spread. Because the result is a minimum spanning tree for these edge weights, we can construct the same tree by any other minimum spanning tree algorithm. Finding the lowest common ancestor for all edges in can be done in time . The algorithm of Fredman and Willard , which finds a minimum spanning tree of a graph with integer weights in time, implies that our algorithm can be implemented in linear time.

###### Lemma .

Let be an arbitrary edge of , let and (with ) be the positions of the endpoints of in the linear arrangement, and let be the largest power of two that divides an integer in the half-open interval . Then the stretch of in the tree constructed as above is .

###### Proof.

Let be the node of the arrangement tree with . From our construction of the arrangement tree it follows that the number of leaf descendants of is at least and at most . By the greedy algorithm for the construction of a spanning tree, the spanning tree contains a path connecting the endpoints of within these at most descendants, for otherwise itself would have been added to the spanning tree. Therefore, the stretch of is at most . ∎

## 4 Embedding into a distribution of trees

Let be any graph having a linear arrangement of bandwidth . In this section, we construct a random distribution over spanning trees of with the property that each edge of has expected stretch . That is, for an arbitrary edge (chosen independently from the construction of ) we have . A single tree from the distribution can be sampled in time , and the entire distribution can be constructed explicitly in time .

Let be the number of vertices in , and let be the smallest power of two greater than or equal to (so, ). Let be formed from by adding isolated vertices. Consider the different linear arrangements of obtained from the linear arrangement of by placing isolated vertices before the vertices of and vertices after the vertices of (for ). Denote the collection of arrangement trees of these linear arrangements by . For each arrangement tree , Algorithm 1 produces a tree . Our random distribution is generated by choosing uniformly at random and, based on that choice, selecting tree .

Given a fixed choice of edge , define to be the node of the arrangement tree such that (that is, the endpoints of are in distinct children of ). Given two arrangement trees and we say if the rightmost leaf descendants of the left children of and are equal. That is, are equivalent if and only if is split in the same position of the linear arrangements and . Note that is an equivalence relation that is defined with respect to a fixed .

Therefore, we can calculate the expected spread of by concentrating only on a single equivalence class of . Since the bound holds for every equivalence class, the same expected spread will hold for our entire random distribution, by averaging over the equivalence classes.

Given an arrangement tree (chosen from a fixed equivalence class ) let be the node of such that (that is, splits ), and let be the height of in the arrangement tree. Then for all in the same equivalence class with , we have and the edges in this induced subgraph have the same minimum spanning tree weights, so they also have . Within these two subtrees these nodes have the same two paths connecting the endpoints of . Because this path depends only on the height and not on itself, we denote it . Different heights may have the same associated paths. We say that is a critical height if ; that is, if is the lowest height that gives rise to its path.

###### Lemma .

For a fixed choice of edge and equivalence class there are critical heights.

###### Proof.

Let be arrangement trees that split the edge at vertices and , respectively. Further, we assume and are at heights and where is a critical height. We denote the spanning trees produced by Algorithm 1 with input and by and . The associated induced subgraphs are related by the inclusion .

We now describe the ways in which can differ from . By the construction of the equivalence relation every edge split by is also split by , that is . The edges in must be included in since their weights are the same in both and . This is because in the linear arrangement adds an equal number of vertices to the left and right of and this number is equal to a power of two. It follows that differs from by the addition of non-split edges, the potential addition of split edges, and the potential removal of split edges.

Consider the case when there exists some edge but . The edge was added to by Algorithm 1 because it connected to previously disconnected components of . These connected components must have already been contained in a larger connected component of , since otherwise Algorithm 1 would have picked for . It follows that these connected components must have been connected by the addition of a non-split edge not contained in .

When but not in then must contain an endpoint outside of . Since there are vertices within positions away from the split point, and once a critical height excludes a split edge it cannot be reintroduced to the spanning tree, we see that at most split edges can be added across all critical heights.

The height can only be a critical height if differs from , otherwise . Hence, can only be a critical height if excludes a split edge appearing in . The number of split edges at the smallest critical height is because these edges form an acyclic subgraph on the vertices within positions away from the split point. Since an edge can be excluded from the spanning tree at a critical height at most once we conclude that there are critical heights. ∎

###### Theorem 4.1.

For an arbitrary edge (chosen independently from the construction of ) the expected stretch of is .

###### Proof.

Let be any equivalence class of the equivalence relation , and let denote the expected stretch of over all arrangement trees from the class . Also, let be the critical heights of in . Finally, let be the (random) vertex in the arrangement tree that splits , and let

be the random variable of

’s height. We have

 E[stretch[A](e)]=k∑i=1len(Phi)⋅Pr[Phi],

where is the probability that is the path connecting the endpoints of in the (randomly) selected tree. It follows, by the definition of critical heights, that

 Pr[Phi]=Pr[hi≤Hv

In addition, we have by section 3. Putting everything together, we have

as by section 4, and by the definition of bandwidth.

Since is a weighted average of for different classes , and for all classes , we conclude that . ∎

## 5 Bounded cutwidth

A theorem from Chung  says that for any graph with cutwidth there exists a subdivision of with bandwidth . However, this entails expanding the number of edges by a factor of , so combining this with our construction of low-stretch spanning trees for low-bandwidth graphs would give us a tree with average stretch . In this section we provide a direct construction that obtains stretch . The proof of Theorem 5.1 is almost identical to that of Theorem 4.1, however since we do not have the inequality we instead compute the expected stretch of the tree rather than the expected stretch of a single edge.

###### Theorem 5.1.

A graph with cutwidth has a spanning tree with expected stretch .

###### Proof.

We apply the same construction for a random distribution of spanning trees as in Theorem 4.1 to a linear arrangement of with cutwidth . We show that the expected stretch a spanning tree produced by Algorithm 1 on a randomly chosen arrangement tree from the distribution is . Therefore, there exists a spanning tree with stretch at least as good as this expected value.

As before, we fix an equivalence class of arrangement trees from our random distribution. Let denote the critical heights of . Since at there are at most split edges, we can conclude that there are at most critical heights. As in the proof of Theorem 4.1, for a fixed edge the expected stretch is given by

 E[stretch[A](e)]=k∑i=1len(Phi)⋅Pr[Phi].

We have that and , hence . Let be the spanning tree constructed by Algorithm 1 from the randomly selected arrangement tree. We compute the expected stretch of by

Note that since by the definition of cutwidth at most edges cross any given interval in the linear arrangement. Hence, .

###### Corollary .

Any graph with cutwidth has a fundamental cycle basis with weight .

Because this method produces high expected stretch for edges of high spread, it is not clear how to strengthen this result to obtain a distribution with low-stretch for each edge, as we did for bandwidth. We leave the question of whether this is possible as open for future research.

## 6 Deterministic low-stretch spanning tree

In this section we show that given a graph and a linear arrangement with bandwidth Algorithm 1 produces a spanning tree of with stretch . As stated in Section 3 such a spanning tree can be constructed in linear time. Throughout this section we denote the spanning tree produced by Algorithm 1 by , and we denote the arrangement tree arising from by .

We use a charging scheme to pay for the cycles in the fundamental basis created by our spanning tree algorithm. Each fundamental cycle with sufficiently large spread will be assigned a charge. Moreover, the sum of the charges is an upper bound on the sum of the lengths of the cycles.

We are now ready to define the key component to our charging scheme. Let be a node in . A long component of is a connected component of that includes at least one vertex within distance of each endpoint in the linear arrangement of . The number of long components in will be denoted with .

###### Lemma .

For any we have (1) and (2) if is the parent of then .

###### Proof.

Since a long component is a special type of connected component a vertex can be in at most one long component. A long component contains at least one vertex from the first vertices in the linear arrangement. This implies there can be at most long components, hence .

Let be a node in with left child and right child . Recall that . The left endpoint of is the left endpoint of , and the right endpoint of is the right endpoint of . Any edge in connects a vertex within the rightmost vertices of to a vertex within the leftmost vertices of . Therefore a long component in must contain a long component in , a long component in , and an edge in , thus . ∎

Here we introduce a charging scheme that will be used to pay for the cycles added to our basis. For any node in the arrangement tree let be the number of leaf descendants of . If is the parent of and such that and we assign a charge to , if and we assign a charge to , similarly if and we assign , otherwise . Next, we show that the sum over all charges is .

###### Lemma .

The sum of the charges is linear in the number of vertices in . That is, .

###### Proof.

Consider the set of nodes with exactly long components and non-zero charge. If such that is a descendent of , then all nodes on the to path are in since by section 6 the number of long components is monotonic in depth. Let be a node on this path, let be its child on the path, and let be its child off the path. If both and have long components our charging scheme makes , therefore and is the number of leaf descendants of . Therefore, the sets of leaf descendants from which every node in derives its charge are disjoint. Thus, . By section 6 the number of long components in any induced subgraph is at most , therefore . ∎

Recall that the spread of a fundamental cycle is defined to be where and are the left and right endpoints of . In section 6 we show that the spread of is within a constant factor of its length. In section 6 we show that ’s fundamental edge induces a charge that is within a constant factor of the spread of . This justifies the use of our charging scheme.

###### Lemma .

If is a cycle with length and spread , then we have the inequality .

###### Proof.

The upper bound is trivial. Conversely, decompose into the two unique -to- paths. Each edge in these paths has a spread of at most in the linear arrangement, so each path needs at least edges. Therefore, . ∎

Let be a fundamental cycle of with length , spread , and whose fundamental edge is in . Since ’s fundamental edge is in , must be the first induced subgraph in the leaf-to-root ordering that contains since every tree edge of must be added to before the fundamental edge is considered by Algorithm 1. Let where and are the left and right endpoints of . Let and be the left and right child of in , respectively. We call the left half of and the right half of . Without loss of generality assume that . Let be the deepest descendant of such that contains the right half of . Note that it may be the case that . We call the charging node of . This is illustrated in Figure 2. In the following lemma we show that the existence of implies that . This is the charge that will pay for in the cycle basis.

###### Lemma .

Let be a fundamental cycle of as described above. It follows that ’s charging node has and ’s left child contributes to its charge. Moreover, .

###### Proof.

Consider the two unique -to- paths, and , in . Since there are at least vertices in there must be edges and connecting to . One of these edges belongs to , and the other is the fundamental edge of . The right endpoints of and must belong to long components of since they belong to and which extend to . Moreover, these long components are distinct. For otherwise, ’s right endpoint would be in , contradicting our choice of . By the existence of and , these long components are merged in . Since is the parent of with , we have . We also have that . Further, by our choice of as the deepest descendant, . Combining these inequalities with those of section 6 yields . Figure 2: An illustration of the conditions of section 6. The colored region encloses the linear arrangement of Gx, and the partitions represent the subgraphs induced by the descendants of x. The dotted lines represent the paths P1 and P2. The solid lines represent the edges that induce the charge cy.

We are now ready to prove the main theorem of the section.

###### Theorem 6.1.

The spanning tree of produced by Algorithm 1 has .

###### Proof.

There are at most edges in by (2). By section 6, sum of the lengths of all of the fundamental cycles with spread at least is at most

 ∑y∈V(A)12(b−1)(b−2)(4cy+1) ≤n+2(b−1)(b−2)∑y∈V(A)cy ≤n+2(b−1)(b−2)bn ≤3b3n

Where the first and second inequalities come from Lemmas 6 and 6, respectively. All fundamental cycles with spread at most have their non-tree edges a node of of height at most . Therefore, there are at most nodes in with that contain a cycle. These contribute at most to the sum of the lengths of the fundamental cycles. In total we have

 FCB(T)≤3b3n+b2n≤4b3n

as desired. ∎

###### Corollary .

The tree produced by our spanning tree algorithm has .

###### Proof.

According to (1), the weight of the fundamental cycle basis and the minimum stretch spanning tree are related by

 stretch(T)=1m(FCB(T)−m+2n+2).

The result follows immediately from the fact that . ∎

## 7 Bounded treewidth

In this section we consider simple, connected, unweighted graphs with fixed treewidth . We provide a dynamic programming approach computing a spanning tree that minimizes the total stretch over all spanning trees of . The dynamic programming table indexes partial solutions based on a localized view of the complete solution from a bag of the tree decomposition. This is done by indexing the table with trees that correspond with weighted contracted spanning trees of that retain the stretch of the edges inside the current bag. The approach yields a dynamic programming table whose size is polynomial in but superexponential in . The goal of this section is to prove the following theorem.

###### Theorem 7.1.

A minimum stretch spanning tree of a graph with vertices and treewidth can be computed in time.

### 7.1 Spanning trees conforming to a configuration

Let be a spanning tree of and be a tuple consisting of a tree and a weight function on the edges of . Fix a bag in the tree decomposition of . We say that conforms to if can be transformed into by in the following way. Initialize for every edge in and update by applying the following contractions while any of them is possible.

1. If is not contained in any -path where then contract .

2. If where and then contract . Let be the other edge incident to . Set .

3. If where , , and then contract . Let be the other edge incident to . Set .

is the unique minimal minor of retaining the structure of the paths between vertices in . We call a tuple a configuration of the bag . In Lemma 7.1, we will show that any spanning tree conforms to a bounded number of configurations. Our dynamic program will maintain an array of forests indexed by a bag of the tree decomposition and all configurations with respect to the bag. Each configuration at will describe a spanning tree on that has been contracted in the way described above. We say a forest meets a configuration if by following the contraction rules stated above can be transformed into for some . We will define the subset in the following paragraph. The solution stored at will be the minimum cost forest of meeting the configuration . We will describe how to calculate the cost of in the next subsection. We will use to refer to the total stretch of the partial solution and use to denote the partial solution that has been computed.

Let be a tree built by our dynamic program conforming to and let be a path in such that and . By property 3 of the tree decomposition either or . We call the vertices in Steiner vertices and partition them into two sets and , the Steiner vertices above the bag and the Steiner vertices below the bag. A forest meets the configuration if it can be transformed into following our contraction scheme. The cost of is defined to be the sum where is the stretch of in when ’s endpoints are in the same connected component of , when ’s endpoints are in different connected components we set to be the distance between ’s endpoints in weighted by the cost function . Our dynamic program will process the bags of the tree decomposition in a leaf-to-root order. Paths in will represent paths that will eventually be added to the complete solution by the dynamic program and paths in will represent paths that have already been added to the partial solution by the dynamic program.

###### Lemma .

Let be a spanning tree of . There is a configuration at bag that conforms to such that .

###### Proof.

Let be the configuration obtained by applying the contraction rules to . Every vertex is an internal vertex of , otherwise its incident edge is not contained in a path connecting a pair of vertices from and should have been contracted. Further, any vertex of with degree in is adjacent to two vertices of . Therefore, is a tree with at most leaves and vertices of degree . It follows that . ∎

We now describe how to populate each entry in the dynamic programming table by considering each type of bag separately. We will prove that the forests indexed at each entry span and minimize the cost over all forests meeting the configuration . We will prove each case by induction using the fact that any solution stored at a leaf node is a single vertex as our base case.

### 7.2 Leaf nodes

If is a leaf node in the tree decomposition it contains one vertex . The only configuration on is where is the empty function. We initialize and .

### 7.3 Introduce nodes

When is an introduce node with child we have where is the vertex being introduced to . Let and be configurations of and . Let be the partial solution stored at . We say and are compatible with one another if can be constructed from in a way that extends to a partial solution in the following way. If is a spanning tree conforming to such that we construct and such that and conforms to . We enumerate the six ways can be extended to meeting this criteria; by and we denote the neighbors of a vertex and the edges incident to .

1. Let with . Define and . This extends to .

2. Let be adjacent to some set of vertices in and let such that and for each . Define , , and with for all and for all . This extends to .

3. Let be adjacent to some vertex in . Let be adjacent to some Steiner vertex with . Define with . This extends to .

4. Let and define with . This extends to .

5. Define and let . Define with and . This extends to .

6. Let be a Steiner vertex with and let be adjacent to in . We remove and introduce a new Steiner vertex with edges , , and . Hence and such that and . This extends to .

Each of these six constructions correspond to a possible way that can be connected to the complete solution constructed by the dynamic program. See Figure 3 for an example of each case. In I1 is directly connected to the partial solution at via some edge in . In I2 and I3 can be thought of as the next vertex along the paths being built by the dynamic program. In I4, I5, and I6 is connected to the complete solution via some path that has yet to be built by the dynamic program. I1 The introduced vertex is attached to the spanning tree via an edge incident to a vertex contained in Bi.

We now prove that these are the only six ways we can extend to while preserving the conformity.

###### Lemma .

introduceconform Let be a spanning tree of conforming to a configuration of the bag . Let be the parent of introducing the vertex . It follows that conforms to a configuration of if and only if was constructed from via I1 through I6.

###### Proof.

If was constructed from from one of the six methods described in the preceding subsection then either and are isomorphic (I2) and conforms to or differs from by the inclusion of , or the inclusion of and some Steiner vertex. In I1, I4, I5, and I6 we have and is either adjacent to another vertex in , a Steiner vertex with degree 2 whose second neighbor is in , or a Steiner vertex of degree of degree at least 3. In each of these cases conforms to . In I3 has degree two and is adjacent to a vertex in the bag and some Steiner vertex. This case is equivalent to subdividing the edge incident to the Steiner vertex to make , hence the Steiner vertex still meets the conforming criteria.

Conversely, assume conforms to