Ograniczasz wykorzystanie miejsca przez łączność st za pomocą wielu przebiegów?

20

Załóżmy, że wykres z n wierzchołkami jest przedstawiony jako strumień m krawędzi, ale nad strumieniem dozwolonych jest wiele przejść.Gnm

Monika Rauch Henzinger, Prabhakar Raghavan i Sridar Rajagopalan zauważyli, że przestrzeń jest niezbędna do ustalenia, czy istnieje ścieżka między dwoma podanymi wierzchołkami w G , jeśli dopuszcza się k przejść przez dane. (Zobacz także wersję raportu technicznego .) Nie zapewniają one jednak algorytmu umożliwiającego osiągnięcie tego ograniczenia. Zakładam, że optymalny algorytm faktycznie wziąłby O ( ( nΩ(n/k)Gk przestrzeń w realistycznym modelu obliczeniowym, ponieważ trzeba rozróżnić n różnych wierzchołków, jeśli nie można indeksować pamięci za pomocą wskaźników o stałym rozmiarze.O((nlogn)/k)n

Jak można zdecydować o połączeniu grafu za pomocą przejść za pomocą O ( ( nk spacja?O((nlogn)/k)

Jeśli dozwolone jest tylko jedno przejście, dane wejściowe mogą być przechowywane jako partycja zestawu wierzchołków, łącząc zestawy, jeśli krawędź jest widoczna między wierzchołkami w dwóch różnych zestawach. Wymaga to najwyżej co najwyżej przestrzeń. Moje pytanie dotyczy k > 1 : jak można użyć większej liczby przejść, aby zmniejszyć wymaganą przestrzeń?O(nlogn)k>1

(Aby uniknąć trywialności, jest parametrem, którego a priori nie można ograniczyć stałą, a granice przestrzeni są wyrażeniami obejmującymi funkcje zarówno n, jak i k .)knk


Aktualizacja: nawet dla naprawdę przydatny byłby sposób przechowywania tylko n / 2 wierzchołków. Czy jest tam rzeczywiście silniejszy dolny c n dla pewnej stałej c , niezależnie od k ?k=2n/2cnck

András Salamon
źródło
Jak niezależnie od ? Jeśli może być bardzo duży, to łączność st można rozwiązać w przestrzeni O ( log 2 n ) , więc istnieje szansa na algorytm, ale jak pokazuje azotlichid, prawdopodobnie nie w O ( n log n / k ) . kO(log2n)O(nlogn/k)
domotorp,
Zauważ, że eliminacja przepustek Guha i McGregor dla algorytmów losowych działa w przeciwnym kierunku, wykorzystując więcej miejsca, aby umożliwić mniej przebiegów (choć dodatkowa przestrzeń jest duża, jeśli pożądany błąd jest niewielki). To pytanie dotyczy tego, czy przy użyciu większej liczby przebiegów można zmniejszyć wykorzystanie miejsca.
András Salamon

Odpowiedzi:

8

Od dawna otwartym problemem jest znalezienie algorytmu łączności st, który działa jednocześnie w przestrzeni subliniowej i czasie wielomianowym, co jest łatwiejszym zadaniem niż to, do czego dążysz. Takie algorytmy są znane dla wersji bezkierunkowej , ale nawet one wymagają dużego czasu wielomianowego (zamiast czasu O (km), co wynikałoby z algorytmu k-pass). Zobacz w szczególności odniesienie do pracy Tompy na temat tego, dlaczego skierowana sprawa wydaje się trudna.

Noam
źródło
1
M. Tompa, Dwa znane algorytmy zamykania przechodniego, które nie dopuszczają czasu wielomianowego, implementacje przestrzeni podliniowej, SIAM J. Comput. 11 (1), 130–137. dx.doi.org/10.1137/0211010
András Salamon
Ten artykuł daje „algorytm dla st-connectivity, który działa jednocześniesub-liniowej przestrzeni i czasie wielomianowym.”
4

k=Θ(n)O(logn)O(nm)

zotachidil
źródło
3

k

Chad Brewbaker
źródło
Dzięki za wskaźnik, to ciekawy papier. Procesory mają wspólny dostęp do struktury danych, która jest co najmniej tak duża jak wykres, więc nie pomaga to zmniejszyć wykorzystania miejsca. Byłoby naprawdę interesujące, gdyby istniał sposób na zmniejszenie wykorzystania miejsca poprzez wykorzystanie liczby rund, a także liczby procesorów.
András Salamon,
2

Jeszcze jedna odpowiedź: jest kilka artykułów na temat algorytmów w stylu mapreduce działających na dużych wykresach. Celem jest uzyskanie przestrzeni o (m) na maszynę dla gęstych wykresów, ale zwykle potrzeba przestrzeni O (n) na maszynę.

teorii.stanford.edu/~sergei/papers/soda10-mrc.pdf http://theory.stanford.edu/~sergei/papers/spaa11-matchings.pdf

Martin Pál
źródło
1

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

domotorp
źródło