Алгоритм обнаружения цикла Роча – Татта
Алгоритм Роча – Татта [ 1 ] это распределенный алгоритм в теории графов для обнаружения циклов на крупномасштабных ориентированных графах, основанный на абстракции массовой синхронной передачи сообщений. Этот алгоритм обнаружения циклов путем передачи сообщений подходит для реализации в распределенном графе. процессорных системах, а также подходит для реализации в системах дисковых вычислений, таких как GraphChi, [ 2 ] где вычисления в основном основаны на вторичной памяти. Дисковые вычисления необходимы, когда у нас есть один компьютер для обработки крупномасштабных данных. графики, а вычисления превышают объем основной памяти.
Обзор
[ редактировать ]Алгоритм Роча – Татта — это общий алгоритм обнаружения циклов в ориентированном графе. путем передачи сообщений между его вершинами на основе абстракции массовой синхронной передачи сообщений. Это вершинно-ориентированный подход, при котором вершины графа работают вместе для обнаружения циклов. Массовая синхронная параллельная модель состоит из последовательности итераций, в каждой из которых вершина может получать сообщения, отправленные другими вершинами на предыдущей итерации, и отправлять сообщения другим вершинам.
В каждом проходе каждая активная вершина отправляет набор последовательностей вершин своим внешним соседям, как описано ниже. На первом проходе каждая вершина отправляет сообщение всем своим дальним соседям. В последующих итерациях каждая активная вершина добавляет к каждой последовательности, полученной на предыдущей итерации. Затем он отправляет все обновленные последовательности своим внешним соседям. Если не получил ни одного сообщения на предыдущей итерации, то деактивируется сам. Алгоритм завершается, когда все вершины деактивируются.
Для последовательности полученный вершиной , добавленная последовательность не пересылается в двух случаях: (i) если , затем обнаружил цикл, о чем сообщается; (ii) если для некоторых , затем обнаружил последовательность, содержащую цикл ; в этом случае последовательность отбрасывается, поскольку цикл должен был быть обнаружен на более ранней итерации; если быть точным, этот цикл должно быть обнаружено в итерации . Каждый цикл обнаруживается всеми к в той же итерации; об этом сообщает вершина .
На рисунке ниже представлен пример выполнения алгоритма. В итерации , все три вершины обнаруживают цикл . Алгоритм гарантирует, что о цикле сообщается только один раз, выдавая обнаруженный цикл только из вершины с наименьшим значением идентификатора в упорядоченной последовательности, которой в примере является вершина 2. [ 1 ]
Общее количество итераций алгоритма равно числу вершин в самой длинной путь в графе, плюс еще несколько шагов по деактивации последних вершин. В ходе анализа общее количество итераций, мы игнорируем несколько дополнительных итераций, необходимых для деактивации финальной вершин и обнаружения окончания вычисления, поскольку итерации. На практике фактическое число количество этих последних нескольких итераций зависит от платформы, используемой для реализации алгоритма. [ 1 ]
Экспериментальная производительность
[ редактировать ]Симуляторы [ 3 ] показывают, что алгоритм Роча-Татта имеет меньшие накладные расходы на связь, чем распределенная версия поиска в глубину , как в отношении количества сообщений, так и в отношении общего количества отправленных битов. В частности, распределенная версия DFS может потребовать обмена сообщениями на порядок больше, чем алгоритм Роча-Татта.
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с Роча, Родриго Каэтано; Татте, Бхалчандра (2015), Обнаружение распределенных циклов в крупномасштабных разреженных графах , Бразильский симпозиум по эксплуатационным исследованиям (SBPO), doi : 10.13140/RG.2.1.1233.8640
- ^ Кирола; Блеллох; Гестрин (2012), GraphChi: крупномасштабные вычисления на графах только на ПК.
- ^ Олива, Габриэле; Сетола, Роберто; Глиельмо, Луиджи; Хаджикостис, Христофорос (2016), «Обнаружение и удаление распределенного цикла», Транзакции IEEE по управлению сетевыми системами , 5 : 194–204, doi : 10.1109/TCNS.2016.2593264 , S2CID 3974646