Dariusz Dereniowski,Janusz Dybizbański,Przemysław Karpiński,Michał Zakrzewski,Paweł Żyliński
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$.
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.