next up previous contents
Next: Der Schönhage-Paterson-Pippenger-Median-Algorithmus Up: Selektieren und Sortieren Previous: Der Blum-Floyd-Pratt-Rivest-Tarjan Selektions-Algorithmus

Randomisierter-Median-Algorithmus

Problem: Bestimme den Median von n Elementen:
1.
Wähle $n^{\frac{3}{4}}$ Elemente zufällig aus dem n Elementen aus.
2.
Sortiere diese $n^{\frac{3}{4}}$ Elemente mit einem $n\log n$-Algorithmus.
3.
Setze
p1
$:=\max \{ \frac{n^{\frac{3}{4}}}{2} -\sqrt{n},1 \}$-kleinsten Element der $n^{\frac{3}{4}}$ Elemente.
p2
$:=\min \{ \frac{n^{\frac{3}{4}}}{2} +\sqrt{n}, n^{\frac{3}{4}} \}$-kleinsten Element der $n^{\frac{3}{4}}$ Elemente.

\begin{picture}
(130,42) 
 \put(30,8){
\framebox 
(70,7){$n^{\frac{3}{4}}$}}
 \p...
 ... \put(50,4){\makebox(0,0){$p_1$}}
 \put(80,4){\makebox(0,0){$p_2$}}\end{picture}
4.
Partitioniere n Elemente in
S0
$ := \{ \text{Elemente} < p_1\}$
S1
$ := \{ p_1 \leq \text{Elemente} \leq p_2\}$
S2
$ := \{ p_2 < \text{Elemente} \}$
5.
Falls $\vert S_0\vert\geq \left\lceil\frac{n}{2}\right\rceil$ oder $\vert S_2\vert\geq
\left\lceil\frac{n}{2}\right\rceil$ oder $\vert S_1\vert \geq 4 \cdot n^{\frac{3}{4}}$ dann wiederhole den Algorithmus
ansonsten sortiere S1 und liefer das $\left\lceil\frac{n}{2}\right\rceil- \vert S_0\vert$-kleinste Element davon ab.
\fbox {\parbox[c]{12.45cm}{\textbf{Satz:}
Obiger Algorithmus bestimmt den Median...
 ...enten mit einer erwarteten Anzahl
von $\frac{3}{2}n+o(n)$\space Vergleichen.
}}

Beweis:
i)
Korrektheit: klar.
ii)
Anzahl der Vergleichen einer Iteration:
$\mathcal{O}(n^{\frac{3}{4}}\log{n^{\frac{3}{4}}})$ + Kosten der Partitionierung
Kosten der Partitionierung: zu naiv, bessere Ansatz:

\begin{picture}
(150,20) 

 \put(2,10){\line(1,0){110}}

 \put(2,8){\line(0,1){4...
 ...5,11){\makebox(0,0){$n$-Elemente}} 
 \put(121,10){\vector(-1,0){7}}\end{picture}
Wähle zuerst mit der Wahrscheinlichkeit je $\frac{1}{2}$ aus, ob Element x mit p1 oder p2 verglichen wird, mache zwei Vergleiche nur, falls nötig. Erwartete Anzahl Vergleiche dafür ist gleich:

\begin{displaymath}
\begin{split}
 & = n\cdot \frac{1}{2} \left( \frac{\vert S_0...
 ... + 2 + 2\cdot n^{-\frac{1}{4}}) = \frac{3}{2} + o(n)\end{split}\end{displaymath}

Wir zeigen, daß der Algorithmus mit der Wahrscheinlichkeit $\geq 1-\mathcal{O}(n^{-\frac{1}{4}})$ nur eine Iteration benötigt (daraus folgt, daß insgesamt Anzahl der Vergleiche $\leq
\frac{3}{2}n+o(n)$ ist). Dafür verwenden wir Hilfsmittel aus der Stochastik:

Auswahl der $n^{\frac{3}{4}}$ Elemente wird wiederholt, falls $\vert S_0\vert\geq \frac{n}{2}$. Dies passiert gdw. wir höchstens $\frac{1}{2}n^{\frac{3}{4}}-\sqrt{n}$Elemente aus der Hälfte der aller Elemente $\leq$ Median auswählen.
Was ist also die Wahrscheinlichkeit dafür, daß keine neue Auswahl der $n^{\frac{3}{4}}$ Elemente stattfinden muß?
Setze Binäre Zufallsvariable für jedes $X_i,\cdots,X_n$ mit:

\begin{displaymath}
X_i = \left\{ \begin{array}
{ll} 1 \text{ ,falls Element $i$...
 ...}lfte der
Wert liegt} \\  0 \text{ ,sonst} \end{array} \right. \end{displaymath}

$X=\sum X_i$ binomialverteilt mit Parametern n und $\frac{1}{2}n^{-\frac{1}{4}}$
E($X)=\frac{1}{2}n^{\frac{3}{4}}$, Var($X)=n \cdot \frac{1}{2}^{-\frac{1}{4}}
(1-\frac{1}{2}n^{-\frac{1}{4}})= \frac{1}{2}n^{\frac{3}{4}}(1-o(1)) $

Die Wahrscheinlichkeit hierbei ist:

\begin{displaymath}
\begin{split}
 \text{WS}(\vert S_0\vert\geq \frac{n}{2}) & =...
 ...(1))}{n} \leq \frac{1}{2}n^{-\frac{1}{4}}(1-o(1))\\ \end{split}\end{displaymath}

Die Wahrscheinlichkeit für den Fall, daß man von vorne anfangen muß:

\begin{displaymath}
\text{WS} \Rightarrow 1-\left(\frac{1}{2}n^{-\frac{1}{4}}(1-o(1))\right)\end{displaymath}

Die anderen beiden Wahrscheinlichkeitsbedingungen (WS($\vert S_2\vert\geq
\left\lceil\frac{n}{2}\right\rceil$) und WS($\vert S_1\vert \geq 4 \cdot n^{\frac{3}{4}}$)) ergeben analoge Abschätzungen $ \Rightarrow $ Widerholung mit WS $\leq \mathcal{O}(n^{-\frac{1}{4}})$ $\Diamond$

next up previous contents
Next: Der Schönhage-Paterson-Pippenger-Median-Algorithmus Up: Selektieren und Sortieren Previous: Der Blum-Floyd-Pratt-Rivest-Tarjan Selektions-Algorithmus
Abbas-Bardia Kabiri-Jarghouyeh
3/3/1999