Jump to content

Алгоритм обнаружения цикла Роча – Татта

Алгоритм Роча – Татта [ 1 ] это распределенный алгоритм в теории графов для обнаружения циклов на крупномасштабных ориентированных графах, основанный на абстракции массовой синхронной передачи сообщений. Этот алгоритм обнаружения циклов путем передачи сообщений подходит для реализации в распределенном графе. процессорных системах, а также подходит для реализации в системах дисковых вычислений, таких как GraphChi, [ 2 ] где вычисления в основном основаны на вторичной памяти. Дисковые вычисления необходимы, когда у нас есть один компьютер для обработки крупномасштабных данных. графики, а вычисления превышают объем основной памяти.

Алгоритм Роча – Татта — это общий алгоритм обнаружения циклов в ориентированном графе. путем передачи сообщений между его вершинами на основе абстракции массовой синхронной передачи сообщений. Это вершинно-ориентированный подход, при котором вершины графа работают вместе для обнаружения циклов. Массовая синхронная параллельная модель состоит из последовательности итераций, в каждой из которых вершина может получать сообщения, отправленные другими вершинами на предыдущей итерации, и отправлять сообщения другим вершинам.

В каждом проходе каждая активная вершина отправляет набор последовательностей вершин своим внешним соседям, как описано ниже. На первом проходе каждая вершина отправляет сообщение всем своим дальним соседям. В последующих итерациях каждая активная вершина добавляет к каждой последовательности, полученной на предыдущей итерации. Затем он отправляет все обновленные последовательности своим внешним соседям. Если не получил ни одного сообщения на предыдущей итерации, то деактивируется сам. Алгоритм завершается, когда все вершины деактивируются.

Для последовательности полученный вершиной , добавленная последовательность не пересылается в двух случаях: (i) если , затем обнаружил цикл, о чем сообщается; (ii) если для некоторых , затем обнаружил последовательность, содержащую цикл ; в этом случае последовательность отбрасывается, поскольку цикл должен был быть обнаружен на более ранней итерации; если быть точным, этот цикл должно быть обнаружено в итерации . Каждый цикл обнаруживается всеми к в той же итерации; об этом сообщает вершина .

На рисунке ниже представлен пример выполнения алгоритма. В итерации , все три вершины обнаруживают цикл . Алгоритм гарантирует, что о цикле сообщается только один раз, выдавая обнаруженный цикл только из вершины с наименьшим значением идентификатора в упорядоченной последовательности, которой в примере является вершина 2. [ 1 ]

Пример выполнения алгоритма обнаружения циклов по передаче сообщений.

Общее количество итераций алгоритма равно числу вершин в самой длинной путь в графе, плюс еще несколько шагов по деактивации последних вершин. В ходе анализа общее количество итераций, мы игнорируем несколько дополнительных итераций, необходимых для деактивации финальной вершин и обнаружения окончания вычисления, поскольку итерации. На практике фактическое число количество этих последних нескольких итераций зависит от платформы, используемой для реализации алгоритма. [ 1 ]

Экспериментальная производительность

[ редактировать ]

Симуляторы [ 3 ] показывают, что алгоритм Роча-Татта имеет меньшие накладные расходы на связь, чем распределенная версия поиска в глубину , как в отношении количества сообщений, так и в отношении общего количества отправленных битов. В частности, распределенная версия DFS может потребовать обмена сообщениями на порядок больше, чем алгоритм Роча-Татта.

  1. ^ Перейти обратно: а б с Роча, Родриго Каэтано; Татте, Бхалчандра (2015), Обнаружение распределенных циклов в крупномасштабных разреженных графах , Бразильский симпозиум по эксплуатационным исследованиям (SBPO), doi : 10.13140/RG.2.1.1233.8640
  2. ^ Кирола; Блеллох; Гестрин (2012), GraphChi: крупномасштабные вычисления на графах только на ПК.
  3. ^ Олива, Габриэле; Сетола, Роберто; Глиельмо, Луиджи; Хаджикостис, Христофорос (2016), «Обнаружение и удаление распределенного цикла», Транзакции IEEE по управлению сетевыми системами , 5 : 194–204, doi : 10.1109/TCNS.2016.2593264 , S2CID   3974646
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e7b2442118542a3fc1f93131d291622e__1708168140
URL1:https://arc.ask3.ru/arc/aa/e7/2e/e7b2442118542a3fc1f93131d291622e.html
Заголовок, (Title) документа по адресу, URL1:
Rocha–Thatte cycle detection algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)