Dynamic Algorithms for Approximate Steiner Trees - Raikwar, Hemraj; Sadharakiya, Harshil; Karmakar, Sushanta (Concurrency and computation, 2025)
ABSTRACT This study investigates the dynamic Steiner tree problem. The objective of the Steiner tree problem is to compute a minimum‐weight tree connecting a set of designated vertices called terminals in a connected weighted graph with positive real edge weights. A dynamic graph is one in which the set of edges, the set of vertices, or both can change over time. Here, we focus on dynamic graphs where edges can change over time. The work begins by establishing a lower bound on the update time required to maintain an MST heuristic based (2−ϵ)$$ \left(2-ε \right) $$‐approximate Steiner tree (where ϵ$$ ε $$ is a small fraction) in a general graph undergoing edge insertions or deletions. Subsequently, we propose two dynamic algorithms: A fully dynamic algorithm to maintain an approximate Steiner tree in planar graphs and an incremental algorithm to maintain an approximate Steiner tree in general graphs. We focus on edge‐weighted connected graphs. The graph undergoes dynamic updates where edges with specific weights can be either inserted or deleted. The goal is to efficiently compute a Steiner tree of the updated graph, guaranteeing a solution quality (Steiner tree cost) within a good factor of the optimal Steiner tree. In the fully dynamic case, our analysis demonstrates that the presented algorithm maintains an approximation factor of (2+ϵ)$$ \left(2+ε \right) $$. The worst case update time for processing a series of k$$ k $$ number of updates is Õ(|S|2n+|S|D+n)$$ \overset{\widetilde }{O}\left({\left|S\right|}^2\sqrt{n}+|S|D+n\right) $$ where n$$ n $$ is the cardinality of the vertex set of the input graph, D$$ D $$ denotes the unweighted diameter of the updated graph, and k∈Z+:1≤k≤(n+m)$$ k\in {Z}^{+}:1\le k\le \left(\sqrt{n+m}\right) $$. It is shown that the update time can be improved to O(n(ϵ′)−2)$$ O\left(n{\left(ε^{′}\right)}^{-2}\right) $$ in a special case. On the other hand, the incremental algorithm maintains an approximate Steiner tree in general graphs with an approximation factor of (2−ϵ)$$ \left(2-ε \right) $$ under edge insertions. It achieves an update time of O(nDs)$$ O\left(nD_s\right) $$. Here Ds$$ D_s $$ is the shortest path diameter of the modified graph. The fully dynamic algorithm leverages concepts from an existing Steiner tree algorithm and a dynamic distance oracle. On the other hand, the incremental algorithm maintains a partition of the input graph in the form of a shortest path forest, which aids in efficiently updating a Steiner tree.