Angenommen, ein Graph mit Eckpunkten wird als Strom von Kanten dargestellt, aber es sind mehrere Durchgänge über den Strom zulässig.
Monika Rauch Henzinger, Prabhakar Raghavan und Sridar Rajagopalan stellten fest, dass ein -Raum erforderlich ist, um zu bestimmen, ob es einen Pfad zwischen zwei gegebenen Eckpunkten in , wenn Durchgänge über die Daten zulässig sind. (Siehe auch die Version des technischen Berichts .) Sie bieten jedoch keinen Algorithmus, um diese Grenze tatsächlich zu erreichen. Ich gehe davon aus, dass ein optimaler Algorithmus in einem realistischen Rechenmodell tatsächlich Platz beansprucht, da man die n verschiedenen Eckpunkte unterscheiden muss, wenn man den Speicher nicht mit Zeigern konstanter Größe indizieren kann.
Wie kann man die Konnektivität von Graphen mit Durchgängen unter Verwendung von festlegen?
Wenn nur ein Durchgang zulässig ist, können die Eingabedaten als Partition der Scheitelpunktmenge gespeichert werden, wobei Sätze zusammengeführt werden, wenn eine Kante zwischen Scheitelpunkten in zwei verschiedenen Sätzen sichtbar ist. Dies erfordert eindeutig höchstens Raum. Meine Frage ist zu k > 1 : Wie kann man mehr Pässe verwenden, um den benötigten Platz zu reduzieren?
(Zur Vermeidung von Trivialität ist ein Parameter, der nicht von vornherein durch eine Konstante begrenzt werden kann, und die Raumgrenzen sind Ausdrücke, die Funktionen von n und k beinhalten .)
Update: Selbst für wäre es sehr nützlich, nur n / 2 Vertices zu speichern . Oder gibt es tatsächlich eine stärkere Untergrenze c n für eine Konstante c , unabhängig von k ?
quelle
Antworten:
Es ist ein seit langem offenes Problem, einen Algorithmus für die St-Konnektivität zu finden, der gleichzeitig im sublinearen Raum und in der Polynomzeit abläuft. Dies ist eine einfachere Aufgabe als das, was Sie anstreben. Derartige Algorithmen sind für die ungerichtete Version bekannt , aber selbst diese erfordern eine große Polynomzeit (anstelle der O (km) -Zeit, die ein k-Pass-Algorithmus implizieren würde). Siehe insbesondere den Verweis auf Tompas Aufsatz, warum der gerichtete Fall schwierig zu sein scheint.
quelle
Dies ist keine Antwort, aber ich wollte nur darauf hinweisen, dass, wenn Sie dieses Problem für lösen können, Sie die st-Konnektivität im Raum O ( log n ) und in der Zeit O ( n m ) (welche ) lösen im Offline-Fall kann man mit einer Wahrscheinlichkeit> 1/2 einen zufälligen Spaziergang machen, aber es scheint etwas schwieriger zu sein, wenn die Kanten von einem Stream stammen. Sehr interessante Frage, IMO.k=Θ(n) O(logn) O(nm)
quelle
quelle
Noch eine Nicht-Antwort: Es gibt einige Artikel über Mapreduce-Algorithmen, die mit großen Graphen arbeiten. Das Ziel besteht darin, für dichte Graphen pro Maschine den Platz o (m) zu erreichen, normalerweise wird jedoch der Platz O (n) pro Maschine benötigt.
theory.stanford.edu/~sergei/papers/soda10-mrc.pdf http://theory.stanford.edu/~sergei/papers/spaa11-matchings.pdf
quelle
Auch keine Antwort, aber Sie können in st-Konnektivität entscheidenO ( n logn / k ) nicht deterministischer Raum mit k geht vorbei. Errate einfach den erstenn / k Knoten eines s t Verfolge und überprüfe, ob sie in der ersten Runde verbunden sind, und fahre dann mit der letzten fort n / k Scheitelpunkte und überprüfen Sie die nächste n / k von dem s t Pfad und so weiter.
quelle