Scharfe Konzentration zur Auswahl durch zufällige Aufteilung?


11

Der übliche einfache Algorithmus zum Finden des Medianelements in einem Array mit n Zahlen ist:An

  • Probe - Elemente von A mit Ersatz in Bn3/4AB
  • Sortiere und finde den Rang | B | ± B ElementelundrvonB.|B|±nlrB
  • Stellen Sie sicher, dass sich und r auf gegenüberliegenden Seiten des Medians von A befinden und dass höchstens C √ vorhanden istlrA Elemente inAzwischenlundrfür eine geeignete KonstanteC>0. Scheitern Sie, wenn dies nicht geschieht.CnAlrC>0
  • Andernfalls finden Sie den Median, indem Sie die Elemente von zwischen l und r sortierenAlr

Es ist nicht schwer zu erkennen, dass dies in linearer Zeit abläuft und dass es mit hoher Wahrscheinlichkeit gelingt. (Alle schlechten Ereignisse sind große Abweichungen von der Erwartung eines Binomials.)

Ein alternativer Algorithmus für dasselbe Problem, der für Schüler, die eine schnelle Sortierung gesehen haben, natürlicher ist, ist der hier beschriebene: Zufällige Auswahl

Es ist auch leicht zu erkennen, dass dieser eine lineare erwartete Laufzeit hat: Sagen Sie, dass eine "Runde" eine Folge von rekursiven Aufrufen ist, die endet, wenn man eine 1 / 4-3 / 4-Aufteilung gibt, und beobachten Sie dann, dass die erwartete Länge von Eine Runde ist höchstens 2. (Bei der ersten Ziehung einer Runde beträgt die Wahrscheinlichkeit, einen guten Split zu erhalten, 1/2 und steigt dann tatsächlich an, da der Algorithmus so beschrieben wurde, dass die Rundenlänge von einer geometrischen Zufallsvariablen dominiert wird.)

Also jetzt die Frage:

Kann gezeigt werden, dass die randomisierte Auswahl mit hoher Wahrscheinlichkeit in linearer Zeit abläuft?

Wir haben Runden, und jede Runde hat eine Länge von mindestens k mit einer Wahrscheinlichkeit von höchstens 2 - k + 1 , so dass eine Vereinigungsgrenze ergibt, dass die Laufzeit O ( n log log n ) mit einer Wahrscheinlichkeit von 1 - 1 / ist. O ( log n ) .O(logn)k2k+1O(nloglogn)11/O(logn)

Das ist irgendwie unbefriedigend, aber ist es tatsächlich die Wahrheit?


Bitte klären Sie, auf welchen Algorithmus sich Ihre Fragen beziehen.
Raphael

Fragen Sie sich, ob Sie Ihre Gewerkschaftsbindung korrekt angewendet haben oder ob es eine bessere, zufriedenstellendere Bindung gibt?
Joe

@ Joe Letzteres. Der Punkt ist, dass Runden ein Artefakt sind, um zu erhalten, dass die runde Länge von einer Geometrie dominiert wird. Dann "vergisst" die Analyse, ob der Algorithmus vor oder hinter dem Algorithmus liegt, der immer einen 1 / 4-3 / 4-Split auf der Nase erhält, um die Geometrie unabhängig zu machen. Ich frage, ob dieses "Betrügen", wie Yuval es unten ausdrückte, immer noch eng ist.
Louis

Antworten:


5

Θ(n)G(1/2)p(n)0Pr[G(1/2)log2p(n)1]=p(n)Ω(nlog2p(n)1)=ω(n)

G(1/2)

n (in gewissem Sinne) zu einer Grenzverteilung führt, die unbegrenzt ist. Siehe zum Beispiel Grübels Artikel "Hoares Auswahlalgorithmus: Ein Markov-Kettenansatz", der auf den Originalartikel verweist.


C>0C>0

1
CCnpC>0

Ich bin jetzt glücklicher, da die runde Länge nicht viel kleiner ist als die geometrische Länge , die für die Obergrenze verwendet wird. Ich denke, das ist es, was G & R riger macht. Gute Antwort.
Louis
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.