当前位置: X-MOL 学术Theory Comput. Syst. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A One Pass Streaming Algorithm for Finding Euler Tours
Theory of Computing Systems ( IF 0.5 ) Pub Date : 2022-12-12 , DOI: 10.1007/s00224-022-10077-w
Christian Glazik , Jan Schiemann , Anand Srivastav

Given an undirected graph G on n nodes and m edges in the form of a data stream we study the problem of finding an Euler tour in G. Our main result is the first one-pass streaming algorithm computing an Euler tour of G in the form of an edge successor function with only \(\mathcal O(n\log (n))\) RAM, which is optimal for this setting (e.g. Sun and Woodruff (2015)). Since the output size can be much larger, we use a write-only tape to gradually output the solution. The previously best-known result for finding Euler tours in data streams is implicitly given by the W-stream algorithm of Demetrescu et al. (2010) using \(\mathcal O(m/n)\) passes under the same RAM limitation. Our approach is to partition the edges into edge-disjoint cycles and to merge the cycles until a single Euler tour is achieved. In the streaming environment such a merging is far from being obvious as the limited RAM allows the processing of only a constant number of cycles at once. This enforces merging of cycles that partially are no longer present in RAM. We solve this problem with a new edge swapping technique, for which storing two certain edges per node is sufficient to merge tours without having all tour edges in RAM. The mathematical key is to model tours and their merging in an algebraic way, where certain equivalence classes represent subtours. This quite general approach might be of interest also in other routing problems.



中文翻译:

寻找 Euler Tours 的一次性流算法

给定一个数据流形式的n 个节点和m条边的无向图G ,我们研究了在G中寻找欧拉之旅的问题。我们的主要结果是第一个单程流算法以边缘后继函数的形式计算G的欧拉之旅,只有\(\mathcal O(n\log (n))\) RAM,这对于此设置是最佳的(例如 Sun 和 Woodruff (2015))。由于输出大小可以大得多,我们使用只写磁带逐渐输出解决方案。Demetrescu 等人的 W-stream 算法隐式给出了以前在数据流中寻找欧拉环路的最著名结果。(2010) 使用\(\mathcal O(m/n)\)在相同的 RAM 限制下通过。我们的方法是将边划分为边不相交的循环并合并循环,直到实现单个欧拉环路。在流媒体环境中,这种合并远非显而易见,因为有限的 RAM 一次只能处理恒定数量的循环。这强制合并部分不再存在于 RAM 中的周期。我们用一种新的边交换技术解决了这个问题,每个节点存储两条确定的边足以合并游览,而无需将所有游览边都放在 RAM 中。数学关键是以代数方式对游览及其合并进行建模,其中某些等价类表示子游览。这种非常通用的方法也可能对其他路由问题感兴趣。

更新日期:2022-12-13
down
wechat
bug