Speicheranforderungen für die Medianauswahl (Algorithmen mit zwei Durchläufen)


18

In einer klassischen Arbeit untersuchen Munro und Paterson das Problem, wie viel Speicher erforderlich ist, damit ein Algorithmus den Median in einem zufällig sortierten Array findet. Insbesondere konzentrieren sie sich auf das folgende Modell:

Die Eingabe wird P-mal von links nach rechts gelesen.

Es wird gezeigt, dass Speicherzellen ausreichen, die entsprechende Untergrenze jedoch nur für P = 1 bekannt ist. Ich habe kein Ergebnis für P> 1 gesehen. Kennt jemand solche Untergrenzen? O(n12P)

Beachten Sie, dass die Hauptschwierigkeit hier darin besteht, dass die Eingabe beim zweiten Durchgang nicht mehr in zufälliger Reihenfolge erfolgt.

Antworten:


14

Versuchen Sie dieses Papier von Chan in einem aktuellen SODA: http://portal.acm.org/citation.cfm?id=1721842&dl=ACM .

Bei einer schnellen Google-Suche wurde auch das folgende Dokument gefunden, das möglicherweise relevant aussieht, das ich jedoch nicht gelesen habe: http://portal.acm.org/citation.cfm?id=1374470 .


Vielen Dank, das zweite Papier scheint eine teilweise Antwort auf meine Frage zu geben. Eine solche Antwort ist in früheren Veröffentlichungen, die mir bekannt waren, nicht vorhanden.
MassimoLauria

18

Das erste Papier, das Grenzen für mehr als einen Durchgang nachweist, war mein Papier mit Jayram und Amit von SODA'08. Dann gibt es das von Warren erwähnte Papier, das die Grenzen durch einen saubereren Proof verbessert.

Kurz gesagt, wir verstehen die Abhängigkeit, wenn Sie Konstanten vor der Anzahl der Durchgänge zulassen. Natürlich sind diese Konstanten im Exponenten, also können Sie um ein genaues Verständnis bitten. Meine Hauptbeschwerde ist, dass das Modell des Multipass-Streamings nicht allzu gut motiviert ist.

Die interessantere Frage ist, ob wir eine untere Schranke eines Verzweigungsprogramms nachweisen können. Kann es sein, dass selbst für einen Algorithmus mit begrenztem Speicherplatz, der nach Belieben auf den Speicher zugreifen kann, die beste Strategie darin besteht, nur Multipass-Streaming durchzuführen?

Die Antwort scheint positiv zu sein, und wir haben teilweise Fortschritte gemacht, um dies zu beweisen.


5
Ich denke, Multipass-Streaming ist ein natürliches Modell für folgende Arten von Experimenten: Sie verwenden randomisierte Stichproben, um statistische Tests durchzuführen (z. B. Permutationstests). Sie führen Milliarden von Experimenten durch. Jedes Experiment erhält Zufallszahlen von einem PRNG und erzeugt einige Ausgabewerte. Dann möchten Sie Mediane, Histogramme usw. dieser Werte berechnen. Sie haben keinen effizienten Direktzugriff auf Ihren Output-Stream und Sie haben nicht genügend Speicher, um alles zu speichern. Sie können den Stream jedoch erneut abspielen. Setzen Sie einfach Ihren PRNG mit demselben Startwert zurück und führen Sie Ihren Algorithmus erneut aus.
Jukka Suomela

2
Wir sind uns alle einig, dass es am besten ist, obere Grenzen im Multipass-Streaming-Modell zu haben und untere Grenzen für einige relevante Verzweigungsprogrammfamilien abzugleichen.
MassimoLauria
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.