Сокращение использования пространства st-подключения с несколькими проходами?


20

Предположим, что граф с вершинами представлен как поток из ребер, но допускается несколько проходов по потоку.н мGnm

Моника Раух Хензингер, Прабхакар Рагхаван и Шридар Раджагопалан отметили, что пространство необходимо, чтобы определить, существует ли путь между двумя заданными вершинами в , если для данных разрешено проходов. (См. Также версию технического отчета .) Однако они не предоставляют алгоритм для фактического достижения этой границы. Я предполагаю, что оптимальный алгоритм фактически будет занимать пространство в реалистичной вычислительной модели, поскольку нужно различать различных вершин, если нельзя индексировать память, используя указатели постоянного размера.G kΩ(n/k)GknO((nlogn)/k)n

Как можно решить связность графа с проходами, используя пространство ?O ( ( nkO((nlogn)/k)

Если разрешен только один проход, входные данные могут быть сохранены как разделение набора вершин, объединяя наборы, если грань видна между вершинами в двух разных наборах. Это явно требует не более пространства. Мой вопрос о : как можно использовать больше проходов, чтобы уменьшить требуемое пространство?k > 1O(nlogn)k>1

(Во избежание тривиальности является параметром, который не может быть ограничен априори константой, а границы пространства являются выражениями, включающими функции как и .)н кknk


Обновление: даже для было бы действительно полезно иметь способ хранить только вершин. Или на самом деле существует более сильная нижняя граница для некоторой константы , независимо от ?n / 2 c n c kk=2n/2cnck


Как независимо от ? Если он может быть очень большим, тогда st-связность может быть решена в пространстве , так что есть шанс для алгоритма, но, как показывает azotlichid, вероятно, нет в . O ( log 2 n ) O ( n log н / к )kO(log2⁡n)O(nlog⁡n/k)
— Домоторп

Обратите внимание, что исключение проходов Гухой и Макгрегором для рандомизированных алгоритмов работает в противоположном направлении, используя больше места для меньшего количества проходов (хотя дополнительное пространство велико, если желаемая ошибка мала). Этот вопрос спрашивает, может ли использование большего количества проходов уменьшить использование пространства.
— Андрас Саламон

Ответы:


8

Это давняя открытая проблема - найти алгоритм для st-связности, который работает одновременно в сублинейном пространстве и полиномиальном времени, более легкая задача, чем та, к которой вы стремитесь. Такие алгоритмы известны для ненаправленной версии , но даже они требуют большого полиномиального времени (а не O (км) времени, которое подразумевается алгоритмом k-pass). См. Особенно ссылку на статью Томпы о том, почему направленный случай кажется трудным.


1
М. Томпа, Два знакомых алгоритма транзитивного замыкания, которые не допускают полиномиального времени, реализации сублинейного пространства , SIAM J. Comput. 11 (1), 130–137. dx.doi.org/10.1137/0211010
— Саламон

Эта статья дает «алгоритм для st-связности, который работает одновременно в сублинейном пространстве и полиномиальном времени».

4

Это не ответ, но я просто хотел отметить, что если вы можете решить эту проблему для , то вы решите st-связность в пространстве и времени ( что в автономном случае вы можете сделать с вероятностью> 1/2, выполняя случайное блуждание, но это кажется немного сложнее, когда края приходят из потока). Очень интересный вопрос, ИМО.O ( log n ) O ( n m )k=Θ(n)O(log⁡n)O(nm)


3

Йосси Шилоах, Узи Вишкин. Алгоритм параллельного подключения O (log n). J. Algorithms, 1982: 57 ~ 67 - одна из моих любимых работ. Было бы интересно, если бы вы могли сделать это в O ((nlogn / k) / p) пространстве с p процессорами в раундах, где каждый раунд каждому процессору разрешено читать только в O (n / p) ребер.k


Спасибо за указатель, это интересная статья. Процессоры имеют общий доступ к структуре данных, которая по меньшей мере равна размеру графика, поэтому это не помогает сократить использование пространства. Было бы действительно интересно, если бы был способ уменьшить использование пространства, используя количество раундов, а также количество процессоров.
— Андрас Саламон

2

Еще один не ответ: есть некоторые статьи об алгоритмах в стиле mapreduce, работающих на больших графах. Цель состоит в том, чтобы получить для каждой машины пространство o (m) для плотных графиков, но обычно требуется O (n) пространства на машину.

Теория.stanford.edu/~sergei/papers/soda10-mrc.pdf http://theory.stanford.edu/~sergei/papers/spaa11-matchings.pdf


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