2. Der Blum-Floyd-Pratt-Rivest-Tarjan Selektions-Algorithmus
Definition 77
Sei n ∈
N. DerMedian(das
” mittlere“ Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei
i =
ln
2
m.
Bemerkung: F¨ ur gerade n wird manchmal auch i =
n2
+ 1 benutzt.
Sei m eine kleine ungerade Zahl (etwa 5 ≤ m ≤ 21). Sei S := {a
1, . . . , a
n} eine Menge von n paarweise verschiedenen Elementen. Zur Bestimmung des i-kleinsten Element in S betrachten wir folgenden Algorithmus BFPRT.
EADS 2 Der Blum-Floyd-Pratt-Rivest-Tarjan Selektions-Algorithmus 305/361 ľErnst W. Mayr
Der BFPRT-Selektions-Algorithmus (1/3)
1
Teile S in
nm
Bl¨ ocke auf,
nm
davon mit je m Elementen
2
Sortiere jeden dieser Bl¨ ocke
3
Sei S
0die Menge der
nm
Mediane der Bl¨ ocke. Bestimme rekursiv den
Medians dieser Mediane (also das
l|S0| 2
m
-kleinste
Element von S
0).
Der BFPRT-Selektions-Algorithmus (2/3)
4
Partitioniere S − {s} in S
1:= {x ∈ S : x < s},
S
2:= {x ∈ S : x > s}. Bemerkung: |S
1|, |S
2| ≥
n4, falls n ≥ 3m − 1.
r r r r r
g r r r r r
g r r r r r
g r r r r r r r r
g r r r r r
g r r r r r
g r r r r r r r r
g r r r r r g
s
J J
^
< s
> s
⊆ S
1⊆ S
2EADS 2 Der Blum-Floyd-Pratt-Rivest-Tarjan Selektions-Algorithmus 307/361 ľErnst W. Mayr
Der BFPRT-Selektions-Algorithmus (3/3)
5
Falls i ≤ |S
1|, bestimme rekursiv das i-kleinste Element in S
1. Falls i = |S
1| + 1, gib s als L¨ osung zur¨ uck.
Ansonsten bestimme rekursiv das (i − |S
1| − 1)-kleinste
Element in S
2.
Sei T (n) die worst-case Anzahl von Vergleichen f¨ ur |S| = n des Algorithmus BFPRT. Sei C
mdie # von Vergleichen, um m Elemente zu sortieren (z.B. C
5= 7, C
11= 26). Es gilt:
T (n) ≤ T
ln
m
m| {z }
3.
+ T 3
4 n
| {z }
5.
+
ln
m
m| {z }
2.
C
m+
jn
2
k|{z}
4.
Satz 78
Der Selektions-Algorithmus BFPRT bestimmt das i-kleinste Element von n Elementen mit O(n) Vergleichen (und Zeit).
EADS 2 Der Blum-Floyd-Pratt-Rivest-Tarjan Selektions-Algorithmus 309/361 ľErnst W. Mayr
Beweis:
Annahme: T (n) ≤ c · n, wobei c = c(m) konstant ist.
Die Annahme ist ok, falls T (n) ≤ T
l
n m
m
+ T
3 4 n
+
l
n m
m
C
m+
j
n 2
k≤ cn; dies gilt, falls
ln
m
mc + 3
4 n
c +
ln
m
mC
m+
jn
2
k≤ cn | · 1 n (IA)
⇔ (bis auf de , bc ) c m + 3
4 c + C
mm + 1
2 ≤ c
⇔ − c m − 3
4 c + c ≥ C
mm + 1 2
⇔ c ≥
Cm
m
+
121 −
34−
m1Bemerkung: m = 11 c = c(m) ≈ 20.
Literatur:
Vaughan R. Pratt, Frances F. Yao:
On lower bounds for computing the i-th largest element
Proc. 14th Ann. IEEE SWAT, pp. 70–81 (1973)Manuel Blum, Robert W. Floyd, Vaughan R. Pratt, Ron L.
Rivest, Robert E. Tarjan:
Time bounds for selection
JCSS7, pp. 448–461 (1973)EADS 2 Der Blum-Floyd-Pratt-Rivest-Tarjan Selektions-Algorithmus 311/361 ľErnst W. Mayr
3. Randomisierter Median-Algorithmus
Problemstellung: Bestimme den Median von n Elementen
1
W¨ ahle n
34Elemente zuf¨ allig und gleichverteilt aus den n Elementen aus.
2
Sortiere diese n
34Elemente mit einem (Standard-) n log n-Algorithmus.
3
Setze
p1 := max{n
3 4
2 −√
n,1}-kleinstes Element dern34 Elemente.
p2 := min{n
3 4
2 +√
n, n34}-kleinstes Element dern34 Elemente.
n
34n
ppp pppp ppp
pppppppppp
S0
z }| {
S1
z }| {
S2
z }| {
p
1p
24
Partitioniere die n Elemente in
S0 :={Elemente< p1}S1 :={p1≤Elemente≤p2} S2 :={p2<Elemente}
5
Falls |S
0| ≥
n2
oder |S
2| ≥
n2
oder |S
1| ≥ 4 · n
34, dann wiederhole den Algorithmus;
ansonsten sortiere S
1und liefere das (
n2
− |S
0|)-kleinste Element davon ab.
EADS 3 Randomisierter Median-Algorithmus 313/361
ľErnst W. Mayr
Satz 79
Obiger randomisierter Algorithmus bestimmt den Median von n-Elementen mit einer erwarteten Anzahl von
32n + o(n) Vergleichen.
Beweis:
i) Korrektheit: klar.
Beweis (Forts.):
ii) Anzahl der Vergleiche in einer Iteration:
O(n
34log n
34) + Kosten der Partitionierung F¨ ur die Partitionierung ist der naive Ansatz zu ung¨ unstig, stattdessen:
p
1p
2S
0S
1S
2n-Elemente
W¨ ahle zuerst jeweils mit Wahrscheinlichkeit
12aus, ob Element x mit p
1oder p
2verglichen wird, mache
zweitenVergleich nur, falls n¨ otig.
EADS 3 Randomisierter Median-Algorithmus 315/361
ľErnst W. Mayr
Beweis (Forts.):
Die erwartete Anzahl von Vergleichen ist dann
= n 2
|S
0|
n · 1 + |S
1| + |S
2| n · 2
+ n
2 |S
2|
n · 1 + |S
0| + |S
1| n · 2
= n 2
|S
0| + |S
2|
n + 2
n
z }| {
|S
0| + |S
1| + |S
2| +|S
1| n
= n
2 (3 + |S
1| n ) = 3
2 n + o(n)
Wir zeigen nun, dass der Algorithmus mit Wahrscheinlichkeit
≥ 1 − O(n
−14) nur eine Iteration ben¨ otigt (daraus folgt dann, dass
insgesamt die Anzahl der Vergleiche ≤
32n + o(n) ist).
Beweis (Forts.):
Daf¨ ur verwenden wir Hilfsmittel aus der Wahrscheinlichkeitstheorie/Stochastik:
Bernoulli-Zufallsvariable (ZV): X, Werte ∈ {0, 1} mit X =
1 mit WS p
0 mit WS q = 1 − p Erwartungswert einer ZV:
E
[X] =
Px∈Wertebereich
x · Pr[X = x]
(X ist diskret, d.h. der Wertebereich von X ist endlich) Markov-Ungleichung: Pr[X ≥ t] ≤
E[X]tf¨ ur X nicht negativ Chebyshev-Ungleichung: Pr[|X −
E[X]| ≥ t] ≤
Var(X)t2
EADS 3 Randomisierter Median-Algorithmus 317/361
ľErnst W. Mayr
Beweis (Forts.):
Binomialverteilung: Seien X
1, . . . , X
nunabh¨ angige, identisch verteilte Bernoulli-Zufallsvariablen mit Pr[X
i= 1] = p.
X :=
n
X
i=1
X
i.
X ist binomial verteilt, mit Wertebereich {0, 1, . . . , n}.
Pr[X = k] = n
k
p
k(1 − p)
n−k E[X] =n · p
Var[X] = n · p · (1 − p) = n · p · q .
In Zeichen: X ∼ B(n, p)
Beweis (Forts.):
Die Auswahl der n
34Elemente wird wiederholt, falls |S
0| ≥
n2. Dies passiert gdw wir h¨ ochstens
12n
34− √
n Elemente aus der H¨ alfte aller Elemente ≤ dem Median ausw¨ ahlen.
Wir bestimmen die Wahrscheinlichkeit daf¨ ur, dass keine neue Auswahl der n
34Elemente stattfinden muss.
Setze Bernoulli-Zufallsvariable X
1, . . . , X
nmit:
X
i=
1, falls Element i < Median ausgew¨ ahlt wird 0, sonst
X :=
PX
iist binomialverteilt mit Parametern n und
12n
−14, und
E[X] =
12n
34, Var[X] = n ·
12n
−14(1 −
12n
−14) =
12n
34(1 − o(1)).
EADS 3 Randomisierter Median-Algorithmus 319/361
ľErnst W. Mayr
Beweis (Forts.):
Die Wahrscheinlichkeit hierbei ist Pr[|S
0| ≥ n
2 ] = Pr[X ≤ 1
2 n
34− √
n] ≤ Pr[|X −
E[X]| ≥ √ n]
≤
1
2
n
34(1 − o(1))
n ≤ 1
2 n
−14(1 − o(1)) Die anderen beiden Wahrscheinlichkeitsbedingungen (Pr[|S
2| ≥
n2
] und Pr[|S
1| ≥ 4 · n
34]) ergeben analoge Absch¨ atzungen.
Damit: Wiederholung mit WS ≤ O(n
−14).
4. Sch¨ onhage/Paterson/Pippenger-Median-Algorithmus
Definition 80
Sei k ∈
N\{0}. P
kist die folgende partielle Ordnung:
s s s
s s s
. . . . . . . .
| {z }
k k
z }| {
@
@
@
@ gs
2k + 1 Elemente
s s ssg s
@@ s s
⊇ P
3Also: Spezielle Binomialb¨ aume mit
” Zentrum“.
EADS 4 Sch¨onhage/Paterson/Pippenger-Median-Algorithmus 321/361
ľErnst W. Mayr
Definition 81
1
Der Baum H
0besteht aus einem Knoten, und dieser ist auch das Zentrum.
2
H
2h(h > 0) besteht aus zwei H
2h−1, deren Zentren durch eine neue Kante verbunden sind. Das Zentrum des H
2hist das kleinere der beiden Zentren der H
2h−1.
3
H
2h+1(h ≥ 0) besteht aus zwei H
2h, deren Zentren durch
eine neue Kante verbunden sind, sein Zentrum ist das gr¨ oßere
dieser beiden Zentren.
H
0H
1H
2H
3H
4 gs
sgs
H
0H
0 gsss s
ss
s s
g
s
s
s s
ss
s s
g s s
s s
s
s
s s
ss
s s
EADS 4 Sch¨onhage/Paterson/Pippenger-Median-Algorithmus 323/361
ľErnst W. Mayr
Lemma 82 (Zerlegungslemma)
a) H
hhat 2
hKnoten, es werden 2
h− 1 Vergleiche ben¨ otigt, um H
hzu konstruieren.
b) H
2hkann zerlegt werden in
sein Zentrumeine Menge{H1, H3, . . . , H2h−1} von disjunkten Teilb¨aumen, deren Zentren alle gr¨oßer sind als das Zentrum vonH2h. eine Menge{H0, H2, H4, . . . , H2h−2}von disjunkten Teilb¨aumen mit Zentren kleiner als das vonH2h.
Lemma 82 (Zerlegungslemma)
c) H
2k+1kann so zerlegt werden, dass die
Zusammenhangskomponente des Zentrums genau 2
kKnoten
≥ dem Zentrum enth¨ alt, indem h¨ ochstens 2
k+1− 1 Kanten entfernt werden.
H
2kkann so zerlegt werden, dass die
Zusammenhangskomponente des Zentrums genau 2
kKnoten enth¨ alt, die alle ≤ dem Zentrum sind, indem h¨ ochstens 2
k− 1 Kanten entfernt werden.
d) Falls k ≤ 2
h− 1, dann kann H
2hso zerlegt werden, dass die Zusammenhangskomponente des Zentrums genau 2k + 1 Elemente enth¨ alt, von denen k gr¨ oßer und k kleiner als das Zentrum sind (⇒ P
k).
Dazu gen¨ ugt es, h¨ ochstens 3k + 2h Kanten zu entfernen. Die restlichen Zusammenhangskomponenten sind wieder H
i’s.
EADS 4 Sch¨onhage/Paterson/Pippenger-Median-Algorithmus 324/361
ľErnst W. Mayr
Zerlegungslemma
AA AA
AA
s
s
s s g s
s
s s
s
s
s s
ss s s
Abtrennung von Wildwuchs AA < gs(Zentrum)
> gs(Zentrum)
#
"! H2
H1
H0
'
&
$
H3 %
Bemerkung: Bei jedem Konstruktionsschritt wird ein Vergleich durchgef¨ uhrt, um zu bestimmen, welcher der beiden Teilb¨ aume das kleinere Zentrum hat. Im Algorithmus von Sch¨ onhage, Paterson und Pippenger werden aus Teilst¨ ucken H
rgr¨ oßere B¨ aume H
r+1zusammengebaut, wodurch schrittweise eine partielle Ordnung auf den Eingabewerten bestimmt wird. Wurde ein Baum H
2hhinreichender Gr¨ oße hergestellt, so wird er durch Zerlegung in einen Baum umgewandelt, der nur noch sein altes Zentrum sowie k dar¨ uberliegende und k darunterliegende Elemente enth¨ alt, wobei k ≤ 2
h− 1.
EADS 4 Sch¨onhage/Paterson/Pippenger-Median-Algorithmus 326/361
ľErnst W. Mayr
Beispiel 83
In diesem Beispiel wollen wir H
4zerlegen und w¨ ahlen k = 3:
s
s
s s g s
s
s s
s
s
s s s
s
s s H4
Um einen H
4derart zu zerlegen, m¨ ussen wir 5 Kanten aufbrechen.
Dabei werden drei H
0, ein H
1sowie ein H
2abgespalten.
s s
g s
s
s
ss
g s s
g
s gss
s s gs gs H1 H0 H2 H0 H0
EADS 4 Sch¨onhage/Paterson/Pippenger-Median-Algorithmus 328/361
ľErnst W. Mayr
Ubrig bleibt die gew¨ ¨ unschte Struktur mit k Knoten ¨ uber dem Zentrum und k unter dem Zentrum, wodurch eine partielle Ordnung auf 2k + 1 Eingabewerten bestimmt wurde:
s s s
s s s
. . . . . . . .
| {z }
k k
z }| {
@
@
@
@ s
2k + 1 Elemente
Die bei der Zerlegung angefallenen Restst¨ ucke werden beim
Aufbau weiterer B¨ aume benutzt. So geht das bereits angesammelte
Wissen ¨ uber die Ordnung der Elemente nicht verloren.
Beweis von a):
Wir beweisen nun die Teile a) bis d) des Zerlegungslemmas.
Lemma 84
H
rhat 2
rKnoten, es werden 2
r− 1 Vergleiche ben¨ otigt, um H
raufzubauen.
Beweis:
In jedem der r Konstruktionsschritte wird die Anzahl der Knoten verdoppelt. Da wir mit einem Knoten beginnen, hat H
rfolglich 2
rKnoten. Die Anzahl der notwendigen Vergleiche C
runterliegt folgender Rekursionsgleichung (r ≥ 1):
C
r= 1 + 2C
r−1und C
0= 0 . Damit folgt sofort C
r= 2
r− 1.
EADS 4 Sch¨onhage/Paterson/Pippenger-Median-Algorithmus 330/361
ľErnst W. Mayr
Beweis von b):
Lemma 85
H
rkann in folgende disjunkte Bereiche unterteilt werden:
sein Zentrum,
eine Reihe H
1, H
3, . . . , H
r−1(r gerade) bzw. . . . , H
r−2(r ungerade) von Unterb¨ aumen, deren Zentren ¨ uber dem von H
rliegen,
eine Reihe H
0, H
2, . . . , H
r−2(r gerade) bzw. . . . , H
r−1(r
ungerade) von Unterb¨ aumen, deren Zentren unter dem von
H
rliegen.
Beweis von b):
Beweis:
Durch Induktion ¨ uber r.
Induktionsanfang:
f¨ ur H
0gilt die Behauptung.
Induktionsannahme:
die Behauptung gelte f¨ ur H
r−1.
EADS 332/361
ľErnst W. Mayr
Beweis von b):
Beweis:
1
Sei r = 2h, h > 0.
H
2hbesteht aus zwei H
2h−1, wobei das kleinere der beiden alten Zentren das neue Zentrum z bildet. Wende auf den H
2h−1, der z enth¨ alt, die Induktionsannahme an. Wir k¨ onnen diesen Unterbaum also in z sowie H
1, H
3, . . . , H
2h−3(Zentren
¨uber
z) und H
0, H
2, . . . , H
2h−2(Zentren
unterz)
partitionieren. Zusammen mit dem H
2h−1, dessen Zentrum
¨
uber z liegt, ergibt sich die Induktionsbehauptung f¨ ur H
2h.
Beweis von b):
Beweis:
2
Sei r = 2h + 1, h ≥ 0. H
2h+1besteht aus zwei H
2h, wobei das gr¨ oßere der beiden alten Zentren das neue Zentrum z bildet. Wende auf den H
2h, der z enth¨ alt, die
Induktionsannahme an. Wir k¨ onnen diesen Unterbaum also in z sowie H
1, H
3, . . . , H
2h−1(Zentren
uber¨z) und
H
0, H
2, . . . , H
2h−2(Zentren
unterz) partitionieren.
Zusammen mit dem H
2h, dessen Zentrum unter z liegt, ergibt sich die Induktionsbehauptung f¨ ur H
2h+1.
EADS 4 Sch¨onhage/Paterson/Pippenger-Median-Algorithmus 332/361
ľErnst W. Mayr