Let G = (V, E) be a directed and weighted graph with vertex set V of size n and edge set E of size m, such that each edge (u, v) \in E has a real-valued weight w(u, c). An arborescence in G is a subgraph T = (V, E') such that for a vertex u \in V, the root, there is a unique path in T from u to any other vertex v \in V. The weight of T is the sum of the weights of its edges. In this paper, given G, we are interested in finding an arborescence in G with minimum weight, i.e., an optimal arborescence. Furthermore, when G is subject to changes, namely edge insertions and deletions, we are interested in efficiently maintaining a dynamic arborescence in G. This is a well known problem with applications in several domains such as network design optimization and in phylogenetic inference. In this paper we revisit algorithmic ideas proposed by several authors for this problem, we provide detailed pseudo-code as well as implementation details, and we present experimental results on large scale-free networks and on phylogenetic inference. Our implementation is publicly available at \url{https://gitlab.com/espadas/optimal-arborescences}.
翻译:设G = (V, E)是一个有向加权图,其中顶点集V的大小为n,边集E的大小为m,每条边(u, v) ∈ E具有实值权重w(u, v)。G中的树形图是一个子图T = (V, E'),使得对于根节点u ∈ V,在T中存在从u到任意其他顶点v ∈ V的唯一路径。T的权重为其所有边的权重之和。本文研究在给定G的情况下,寻找G中权重最小的树形图,即最优树形图。此外,当G发生边插入和删除等变化时,我们关注如何高效维护G中的动态树形图。这是一个经典问题,在网络设计优化和系统发育推断等多个领域具有应用。本文重新审视了多位学者针对该问题提出的算法思想,提供了详细的伪代码及实现细节,并在大规模无标度网络和系统发育推断上展示了实验结果。我们的实现已公开于\url{https://gitlab.com/espadas/optimal-arborescences}。