请输入您要查询的百科知识:

 

词条 Rocha–Thatte cycle detection algorithm
释义

  1. Overview

  2. Experimental Performance

  3. References

Rocha–Thatte algorithm[1] is a distributed algorithm in graph theory for detecting cycles on large-scale directed graphs based on the bulk synchronous message passing abstraction.

This algorithm for detecting cycles by message passing is suitable to be implemented in distributed graph

processing systems, and it is also suitable for implementations in systems for disk-based computations, such as the GraphChi,[2] where the computation is mainly based on secondary memory.

Disk-based computations are necessary when we have a single computer for processing large-scale

graphs, and the computation exceeds the primary memory capacity.

Overview

The Rocha–Thatte algorithm is a general algorithm for detecting cycles in a directed graph by message passing among its vertices, based on the bulk synchronous message passing abstraction. This is a vertex-centric approach in which the vertices of the graph work together for detecting cycles. The bulk synchronous parallel model consists of a sequence of iterations, in each of which a vertex can receive messages sent by other vertices in the previous iteration, and send messages to other vertices.

In each pass, each active vertex of sends a set of sequences of vertices to its out-neighbours as described next. In the first pass, each vertex sends the message to all its out-neighbours. In subsequent iterations, each active vertex appends to each sequence it received in the previous iteration. It then sends all the updated sequences to its out-neighbours. If has not received any message in the previous iteration, then deactivates itself. The algorithm terminates when all the vertices have been deactivated.

For a sequence received by vertex , the appended sequence is not forwarded

in two cases: (i) if , then has detected a cycle, which is reported;

(ii) if for some , then has detected a sequence that contains the cycle ; in this case, the sequence is discarded, since the cycle must have been detected in an earlier iteration; to be precise, this cycle

must have been detected in iteration . Every cycle is detected by all to in the same iteration; it is reported by the vertex .

The figure below presents an example of the execution of the algorithm. In iteration , all the three vertices detect the cycle . The algorithm ensures that the cycle is reported only once by emitting the detected cycle only from the vertex with the least identifier value in the ordered sequence, which is the vertex 2 in the example.[1]

The total number of iterations of the algorithm is the number of vertices in the longest

path in the graph, plus a few more steps for deactivating the final vertices. During the analysis of

the total number of iterations, we ignore the few extra iterations needed for deactivating the final

vertices and detecting the end of the computation, since it is iterations. In practice, the actual number

of these final few iterations depends on the framework being used to implement the algorithm.[1]

Experimental Performance

Simulations[3] show that the Rocha-Thatte algorithm has a smaller communication overhead than a distributed version of depth-first search, regarding both the number of messages and the total number of bits sent. Specifically, the distributed version of DFS may require up to one order of magnitude more messages exchanged than the Rocha-Thatte algorithm.

References

1. ^{{citation|title=Distributed cycle detection in large-scale sparse graphs|first1=Rodrigo Caetano|last1=Rocha|first2=Bhalchandra|last2=Thatte|year=2015|publisher=Simpósio Brasileiro de Pesquisa Operacional (SBPO)|doi=10.13140/RG.2.1.1233.8640}}
2. ^{{citation|last1=Kyrola|last2=Blelloch|last3=Guestrin|title=GraphChi: Large-scale graph computation on just a PC|year=2012|url=http://dl.acm.org/citation.cfm?id=2387880.2387884}}
3. ^{{citation|title=Distributed Cycle Detection and Removal|journal=IEEE Transactions on Control of Network Systems|volume=5|pages=194–204|first1=Gabriele|last1=Oliva|first2=Roberto|last2=Setola|first3=Luigi|last3=Glielmo|first4=Christoforos|last4=Hadjicostis|year=2016|doi=10.1109/TCNS.2016.2593264}}
{{DEFAULTSORT:Rocha-Thatte cycle detection algorithm}}

1 : Graph algorithms

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/20 8:50:41