로차-테테 사이클 검출 알고리즘

Rocha–Thatte cycle detection algorithm

Rocha-Thete 알고리즘[1] 대량 동기식 메시지 패스 추상화에 기반한 대규모 지시 그래프사이클을 검출하기 위한 그래프 이론분산 알고리즘이다.메시지 패싱에 의한 사이클 검출 알고리즘은 분산형 그래프 처리 시스템에서 구현하기에 적합하며, 주로 이차 메모리에 기반한 그래프치 등 디스크 기반 컴퓨팅을 위한 시스템에서의 구현에도 적합하다.[2]디스크 기반 계산은 대규모 그래프를 처리하기 위해 하나의 컴퓨터를 가지고 있고, 그 계산이 기본 메모리 용량을 초과할 때 필요하다.

개요

Rocha-Thete 알고리즘은 대량 동기식 메시지 패스 추상화에 기초하여 정점들 사이에서 메시지를 전달함으로써 지시된 G 의 사이클을 검출하기 위한 일반적인 알고리즘이다.이것은 그래프의 정점들이 사이클을 감지하기 위해 함께 작동하는 정점 중심 접근법이다.대량 동기 병렬 모델은 일련의 반복으로 구성되며, 각 반복에서 정점은 이전 반복에서 다른 정점에 의해 전송된 메시지를 수신하고 다른 정점에 메시지를 전송할 수 있다.

각 패스에서 의 각 활성 꼭지점은 다음에 설명된 대로 정점 집합의 바깥쪽 근처로 전송된다.첫 번째 통과에서 각 v 이(가) 메시지) 을(를) 모든 근거리 밖으로 전송한다.이후 반복에서 각 활성 v v이(가) 이전 반복에서 받은 각 시퀀스에 을(를) 추가한다.그런 다음 모든 업데이트된 시퀀스를 근거리 무선으로 전송한다. 이(가) 이전 반복에서 메시지를 수신하지 않은 경우 이(가) 자체 비활성화됨모든 정점이 비활성화되면 알고리즘이 종료된다.

v{\ v v 수신한 시퀀스 , ,, ) }의 경우, 추가된 시퀀스는 다음 두 가지 경우 전달되지 않는다(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

아래 그림은 알고리즘 실행의 예를 나타낸다.에서 = 3 i 모든 정점 세 개가 사이클을 한다2 3 ) 알고리즘은 순서에서 최소 식별자 값을 가진 정점으로부터만 검출된 사이클을 방출하여 사이클이 단 한 번만 보고되도록 한다[1]

An example of the execution of the algorithm for detecting cycles by message passing.

알고리즘의 총 반복 횟수는 그래프에서 가장 긴 경로에 있는 정점의 수에 최종 정점을 비활성화하기 위한 몇 단계를 더 추가한다.총 반복 횟수를 분석하는 동안 최종 정점을 비활성화하고 계산의 끝을 감지하는 데 필요한 몇 개의 추가 반복 횟수는 무시한다. 이는 ( ) O 반복이기 때문이다.실제로 이러한 최종 몇 번의 반복의 실제 횟수는 알고리즘 구현에 사용되는 프레임워크에 따라 달라진다.[1]

실험 성능

시뮬레이션에[3] 따르면 Rocha-Thete 알고리즘은 메시지 수와 전송된 총 비트 수와 관련하여 깊이 우선 검색의 분산 버전보다 통신 오버헤드가 작다.구체적으로, DFS의 분산 버전은 Rocha-Thete 알고리즘보다 교환되는 최대 한 개의 더 많은 메시지를 요구할 수 있다.

참조

  1. ^ a b c Rocha, Rodrigo Caetano; Thatte, Bhalchandra (2015), Distributed cycle detection in large-scale sparse graphs, Simpósio Brasileiro de Pesquisa Operacional (SBPO), doi:10.13140/RG.2.1.1233.8640
  2. ^ Kyrola; Blelloch; Guestrin (2012), GraphChi: Large-scale graph computation on just a PC
  3. ^ Oliva, Gabriele; Setola, Roberto; Glielmo, Luigi; Hadjicostis, Christoforos (2016), "Distributed Cycle Detection and Removal", IEEE Transactions on Control of Network Systems, 5: 194–204, doi:10.1109/TCNS.2016.2593264