Параллельные алгоритмы для направленной st-связности


13

Чонг, Хан и Лэм показали, что ненаправленное соединение через st-соединение может быть решено с помощью EREW PRAM за с помощью O ( m + n ) процессоров. Какой самый известный параллельный алгоритм для направленной st-связности ? Пожалуйста, укажите время работы, детерминированный / рандомизированный алгоритм и используемую модель PRAM (предполагая, что число процессоров является полиномиальным). Известны ли какие-либо o ( log 2 n ) параллельные по времени алгоритмы для особых случаев направленной st-связности?O(logn)O(m+n)o(log2n)


Википедия говорит, что poly (n) процессоров + время полилога в EREW PRAM такое же, как в NC. Я не очень знаком с моделью EREW PRAM, но есть ли связь между time (и полиномиально многими процессорами) и N C i ? Другими словами, есть ли способ перефразировать ваш вопрос в терминах схем с ограниченной глубиной? (logn)iNCi
Робин Котари

разные модели параллельного ОЗУ эквивалентны до логарифмических коэффициентов, поэтому, хотя EREW PRAM совпадает с NC, это может быть неверно для определенных мощностей журналирования.
Суреш Венкат

При соответствующих ограничениях на набор вторжений время O (входа в систему) в CRCW PRAM является точно одинаковым AC ^ i, для i> = 1.
Кристоффер Арнсфельт Хансен

Если есть направленный путь, возможно ли его найти? st
Кумар

Ответы:


13

Направленная достижимость может быть легко достигнута с использованием O ( ) процессоров и времени O ( log n ) на CRCW-PRAM или в O ( n ω ) процессорах и O ( log 2 n ) времени на EREW-PRAM, где ω < 2.376 - показатель умножения матриц, а n - число вершин. Следующая статья утверждает, O ( n ω ) и O ( log nn3(lognnωlog2nω<2.376nnωlogn) время на CREW-PRAM: «Оптимальные параллельные алгоритмы для транзитивного замыкания и расположения точек в плоских структурах» Тамасии и Виттера. Другие статьи утверждают то же самое и цитируют обзор Карпа и Рамачандрана (Параллельные алгоритмы для машин с общей памятью, в: J. van Leeuwen (Ed.), Handbook of теоретическая информатика). В самом опросе упоминается, что транзитивное замыкание происходит в AC1 и, следовательно, может быть решено за O (log n) на CRCW-PRAM, но часть о CREW-PRAM отсутствует.

Все подобные Штрассену алгоритмы для умножения матриц (включая алгоритм Копперсмита-Винограда) являются по существу параллельными алгоритмами, которые выполняются за время O ; транзитивное замыкание влечет за собой дополнительный журнал (но если вы разрешите неограниченное разветвление, то тривиальная матрица O ( n 3 ) может быть выполнена с постоянной глубиной, и поэтому достижимость составляет время O ( log n ) в CRCW-PRAM). Это открытая проблема для улучшения числа процессоров с текущей лучшей ~ n 2.376 ; это также большая открытая проблема, если достижимость в NC1, поскольку это подразумевает L = NL среди других вещей.(logn)n3(logn)n2.376


1
Можете ли вы добавить ссылки.
Шива Кинтали

Я знаю только о времени O (log n) в CRCW PRAM. Вы это имели в виду?
Кристоффер Арнсфельт Хансен

O (logn) на CREW это здорово. Вот что я ищу. Я хотел бы принять ваш ответ. Пожалуйста, добавьте ссылку.
Шива Кинтали

Нам нужно O (logn) итераций умножения матриц для решения st-связности.
Шива Кинтали

В терминах параллельных алгоритмов вам нужно O (log n) итераций матрицы mult для решения достижимости; это не относится к последовательным алгоритмам, так как вы можете делать некоторые умные рекурсивные вещи (см. Fisher & Meyer'71). Однако, если ваша модель вычислений допускает неограниченное разветвление (как в случае AC1 и, следовательно, CRCW PRAM), матрица Mult может выполняться с постоянной глубиной, и поэтому транзитивное замыкание может выполняться с логарифмической глубиной.
Дева

7

В книге Джозефа Яха (1992) «Введение в параллальные алгоритмы» перечислены следующие результаты для транзитивного замыкания:

  • O(logn)O(n3logn)
  • O(log2n)O(nωlogn)

O(logn)

  • uvuv

Таким образом, кажется, что поиск o (log ^ 2 {n}) параллельного по времени алгоритма на CREW PRAM для общих ориентированных графов является открытой проблемой.
Шива Кинтали

Обратите внимание, что я сказал o (log ^ 2 {n}), а не O (log ^ 2 {n}).
Шива Кинтали

5

Если вы хотите, чтобы работа была небольшой, а не просто полиномиальной, есть элегантный алгоритм Уллмана и Яннакакиса, который позволяет найти компромисс между временем и работой. Таблица 1 в моей статье о параллельном вычислении сильно связанных компонентов суммирует результаты параллельной направленной связи, о которых я знаю: http://www.cs.brown.edu/~ws/papers/scc.pdf .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.