Сокращение использования пространства 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(log2n)O(nlogn/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(logn)O(nm)

zotachidil
источник
3

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

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

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

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

Мартин Пал
источник
1

O(nlogn/k)kn/kstn/kn/kst

domotorp
источник