Low-degree spanning trees of $2$-edge-connected graphs in linear time

Dariusz Dereniowski,Janusz Dybizbański,Przemysław Karpiński,Michał Zakrzewski,Paweł Żyliński
2024-10-26
Abstract:We present a simple linear-time algorithm that finds a spanning tree $T$ of a given $2$-edge-connected graph $G$ such that each vertex $v$ of $T$ has degree at most $\lceil \frac{°_G(v)}{2}\rceil + 1$.
Data Structures and Algorithms
What problem does this paper attempt to address?
The problem that this paper attempts to solve is: in a 2 - edge - connected graph, find a spanning tree \(T\) such that the degree of each vertex \(v\) in the spanning tree does not exceed \(\left\lceil\frac{\deg_G(v)}{2}\right\rceil + 1\), and this algorithm can be completed in linear time. ### Problem Background and Research Results In 2015, Hasanvand proved that for any \(k\)-edge - connected graph \(G=(V_G, E_G)\), there exists a spanning tree \(T\) such that for each vertex \(v\in V_T\), we have: \[ \deg_T(v)\leq\left\lceil\frac{\deg_G(v)}{k}\right\rceil + 1\] This conclusion for the case of \(k = 2\) has been independently solved by multiple authors at an earlier time, and polynomial - time algorithms have been proposed. For example, there are algorithms with an implicit \(O(nm)\) time complexity [1] and an explicit \(O(m^2)\) time complexity [5], where \(n = |V_G|\) and \(m=|E_G|\). However, as far as the author knows, whether there exists a linear - time algorithm to solve the problem of \(k = 2\) in 2 - edge - connected graphs is still an open problem. The author of this paper answers this question affirmatively, that is, they prove the following theorem: **Theorem 1**: For any 2 - edge - connected graph \(G=(V_G, E_G)\), there is an algorithm with a time complexity of \(O(m)\) that can find its spanning tree \(T\) such that for each vertex \(v\in V_G\), we have: \[ \deg_T(v)\leq\left\lceil\frac{\deg_G(v)}{2}\right\rceil + 1\] ### Algorithm Overview The core idea of this algorithm is to construct a strongly connected and balanced directed graph \(D\), and then output an out - branching of \(D\). Different from previous work, the author of this paper uses a simple edge - traversal method based on depth - first search (DFS), which can be completed with only one traversal, without the need for an iterative path method. ### Algorithm Steps 1. **Compute Edge DFS**: First, compute the edge DFS \(L\) of graph \(G\). 2. **Initialize Spanning Tree**: Initialize the spanning tree \(T\) to contain an arbitrary vertex. 3. **Expand Spanning Tree**: In the case of \(V_G\neq V_T\), select an edge \((u, v)\in L\) such that \(u\notin V_T\) and \(v\in V_T\), and add the edge \(\{u, v\}\) to \(T\). 4. **Return Spanning Tree**: Finally, return the spanning tree \(T\). ### Complexity and Correctness Analysis Through Lemma 4 and Lemma 5, the author proves the correctness and the linear - time complexity \(O(m)\) of this algorithm. Specifically: - **Lemma 4**: Proves that the tree \(T\) finally obtained by the algorithm is a spanning tree of graph \(G\). - **Lemma 5**: Proves that the time complexity of the algorithm is \(O(|E_G|)\), that is, the linear - time complexity. Through these lemmas and theorems, the author successfully solves the problem of the linear - time algorithm for the degree limit of the spanning tree in 2 - edge - connected graphs.