• Keine Ergebnisse gefunden

n) pro Operation.

N/A
N/A
Protected

Academic year: 2021

Aktie "n) pro Operation."

Copied!
31
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Satz 74

Bei der obigen Implementierung ergibt sich eine amortisierte Komplexit¨ at von O(log

n) pro Operation.

Beweis:

Sei T

0

der (endg¨ ultige) In-Baum, der durch die Folge der Union’s, ohne die Find ’s, entstehen w¨ urde (also keine Pfad-Kompression).

Ordne jedem Element x drei Werte zu:

rank(x):= H¨ ohe des Unterbaums in T

0

mit Wurzel x class(x):=

i ≥ 1 falls a

i−1

< rank(x) ≤ a

i

ist (i ≥ 1) 0 falls rank(x) = 0

Dabei gilt: a

0

= 0, a

i

= 2

2

..2 i 20en

f¨ ur i ≥ 1.

Setze zus¨ atzlich a

−1

:= −1.

(2)

* *

* *

* *

H H H Y

H H H Y

t

t t t t t t

t t

0 1

2 3

4 5

6 0

0

X X X y

X X X y

X X X y

XX X z class 1

class 2

class 3

class 0

p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p

p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p p

p p p p p p p pp pp

p pp p pp pp pp p pp pp pp pp pp pp pp pp pp

EADS 8.2 Union/Find-Datenstruktur 312/530

ľErnst W. Mayr

(3)

Beweis (Forts.):

dist(x) ist die Distanz von x zu einem Vorfahr y im

momentanen Union/Find-Baum (mit Pfad-Kompression), so dass class(y) > class(x) bzw. y die Wurzel des Baumes ist.

Definiere die Potenzialfunktion Potenzial := c X

x

dist(x), c eine geeignete Konstante > 0

(4)

Beweis (Forts.):

Beobachtungen:

i) Sei T ein Baum in der aktuellen Union/Find-Struktur (mit Pfad-Kompression), seien x, y Knoten in T, y Vater von x.

Dann ist class(x) ≤ class(y).

ii) Aufeinander folgende Find(x) durchlaufen (bis auf eine) verschiedene Kanten. Diese Kanten sind (im wesentlichen) eine Teilfolge der Kanten in T

0

auf dem Pfad von x zur Wurzel.

EADS 8.2 Union/Find-Datenstruktur 314/530

ľErnst W. Mayr

(5)

Beweis (Forts.):

Amortisierte Kosten Find(x):

Sei x

0

→ x

1

→ x

2

. . . x

k

= r der Pfad von x

0

zur Wurzel. Es gibt h¨ ochstens log

n-Kanten (x

i−1

, x

i

) mit class(x

i−1

) < class(x

i

). Ist class(x

i−1

) = class(x

i

) und i < k (also x

i

6= r), dann ist

dist(x

i−1

) vor der Find(x)-Operation ≥ 2, nachher gleich 1.

Damit k¨ onnen die Kosten f¨ ur alle Kanten (x

i−1

, x

i

) mit class(x

i−1

)

= class(x

i

) aus der Potenzialverringerung bezahlt werden. Es ergeben sich damit amortisierte Kosten

O(log

n)

(6)

Beweis (Forts.):

Amortisierte Gesamtkosten aller (n − 1)-Union’s:

ppppp ppppp ppppp pppppp

pppppp ppp s s r

x ppppp ppppp

ppppp pppppp pppppp ppp s r

0

ppppp ppppp ppppp pppppp

pppppp ppp s s r

x pppppp

pppppp ppp s r

0

⇒ T

1

< T

2

T

1

T

2

c g

c g c g

c g c g c g

Die gesamte Potenzialerh¨ ohung durch alle Union’s ist nach oben durch das Potenzial von T

0

beschr¨ ankt (Beobachtung ii).

EADS 8.2 Union/Find-Datenstruktur 316/530

ľErnst W. Mayr

(7)

Beweis (Forts.):

Potenzial(T

0

) ≤ c ·

logn

X

i=0

ai

X

rank(x)=j=ai−1+1

dist(x)

≤ c ·

logn

X

i=0

ai

X

rank(x)=j=ai−1+1

n 2

j

a

i

≤ c · n

logn

X

i=0

a

i

1

2

ai−1

= c · n

logn

X

i=0

1

= O(n log

n) .

Die zweite Ungleichung ergibt sich, da alle Unterb¨ aume, deren

Wurzel x rank(x) = j hat, disjunkt sind und jeweils ≥ 2

j

Knoten

enthalten.

(8)

8.2.4 Erweiterungen

1) Bessere obere Schranke α(k, n), k ≥ n. Betrachte die (Variante der) Ackermannfunktion A(m, n) mit:

A(0, n) = 2n; n ≥ 0

A(m, 0) = 2; m ≥ 1

A(m + 1, n + 1) = A(m, A(m + 1, n))

s * m

n

? -

0 2 4 6 8

2 4 8 16 32 2 8 2

9

2 2 pppp p

Die Ackermannfunktion A(·, ·) steigt asymptotisch schneller als jede primitiv-rekursive Funktion.

EADS 8.2 Union/Find-Datenstruktur 318/530

ľErnst W. Mayr

(9)

Definition 75

Die Klasse der primitiv-rekursiven Funktionen (auf den nat¨ urlichen Zahlen) ist induktiv wie folgt definiert:

1

Alle konstanten Funktionen sind primitiv-rekursiv.

2

Alle Projektionen sind primitiv-rekursiv.

3

Die Nachfolgerfunktion auf den nat¨ urlichen Zahlen ist primitiv-rekursiv.

4

Jede Funktion, die durch Komposition von primitiv-rekursiven Funktionen entsteht, ist primitiv-rekursiv.

5

Jede Funktion, die durch sog. primitive Rekursion aus primitiv-rekursiven Funktionen entsteht, ist primitiv-rekursiv.

Primitive Rekursion bedeutet folgendes Schema f¨ ur die Definition von f :

f (0, · · · ) = g(· · · )

f (n + 1, · · · ) = h(f(n, · · · ), · · · )

wobei g, h bereits primitiv-rekursive Funktionen sind.

(10)

Weiter wird gesetzt:

α(k, n) := min{i ≥ 1; A(i, k

n

) > log n}

Dann gilt: Der Zeitbedarf f¨ ur eine Folge von k Find- und Union-Operationen auf einer Menge mit n Elementen, darunter n − 1 Union, ist

O(kα(k, n)) .

Es gilt auch eine entsprechende untere Schranke.

Robert E. Tarjan:

Data Structures and Network Algorithms

SIAM CBMS-NSF Regional Conference Series in Applied Mathematics Bd. 44 (1983)

EADS 8.2 Union/Find-Datenstruktur 320/530

ľErnst W. Mayr

(11)

2) Variante der Pfadkompression:

s s

s s

s s

s s

s s

s s

x

r Großvater

6 -

6 -

Diese Variante der Pfadhalbierung erf¨ ullt ebenfalls die

O(kα(k, n)) Schranke.

(12)

Kapitel III Selektieren und Sortieren

1. Einleitung

Gegeben: Menge S von n Elementen aus einem total geordneten Universum U , i ∈ N, 1 ≤ i ≤ n.

Gesucht: i-kleinstes Element in S.

Die F¨ alle i = 1 bzw. i = n entsprechen der Suche nach dem Minimum bzw. Maximum.

Der Standardalgorithmus daf¨ ur ben¨ otigt n − 1 Vergleiche.

EADS 1 Einleitung 322/530

ľErnst W. Mayr

(13)

Satz 76

Die Bestimmung des Minimums/Maximums von n Elementen ben¨ otigt mindestens n − 1 Vergleiche.

Beweis:

Interpretiere Algorithmus als Turnier. Ein Spiel wird jeweils vom kleineren Element gewonnen. Wir beobachten: Jedes Element außer dem Gesamtsieger muss mindestens ein Spiel verloren haben

⇒ n − 1 Vergleiche notwendig.

(14)

Bestimmung des Vize-Meisters bzw. des zweitkleinsten Elements

Satz 77

Das zweitkleinste von n Elementen kann mit n + dlog

2

ne − 2 Vergleichen bestimmt werden.

Beweis:

Wir betrachten wiederum ein KO-Turnier: (n − 1) Vergleiche gen¨ ugen zur Bestimmung des Siegers (Minimum).

Das zweitkleinste Element ist unter den

” Verlierern“ gegen das Minimum zu suchen. Deren Anzahl ist ≤ dlog

2

ne. Man bestimme nun unter diesen Elementen wiederum das Minimum und erh¨ alt damit das zweitkleinste Element in ≤ dlog

2

ne − 1 weiteren Vergleichen.

EADS 1 Einleitung 324/530

ľErnst W. Mayr

(15)

Lewis Carroll:

Lawn Tennis Tournaments

St. Jones Gazette (Aug. 1, 1883), pp. 5–6

Reprinted in The Complete Work of Lewis Carroll. Modern Library, New York (1947)

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)

Donald E. Knuth:

The art of computer programming. Vol. 3: Sorting and searching,

3. Auflage, Addison-Wesley Publishing Company: Reading

(MA), 1997

(16)

2. Der Blum-Floyd-Pratt-Rivest-Tarjan Selektions-Algorithmus

Definition 78

Sei n ∈ N. Der Median (das

” mittlere“ Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei

i = l n

2 m

.

Bemerkung: F¨ ur gerade n wird manchmal auch i =

n

2

+ 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 326/530 ľErnst W. Mayr

(17)

Der BFPRT-Selektions-Algorithmus (1/3)

1

Teile S in

n

m

Bl¨ ocke auf,

n

m

davon mit je m Elementen

2

Sortiere jeden dieser Bl¨ ocke

3

Sei S

0

die Menge der

n

m

Mediane der Bl¨ ocke. Bestimme rekursiv den Median s dieser Mediane (also das

l

|S0| 2

m

-kleinste

Element von S

0

).

(18)

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

2

EADS 2 Der Blum-Floyd-Pratt-Rivest-Tarjan Selektions-Algorithmus 328/530 ľErnst W. Mayr

(19)

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

.

(20)

Sei T (n) die worst-case Anzahl von Vergleichen f¨ ur |S| = n des Algorithmus BFPRT. Sei C

m

die # von Vergleichen, um m Elemente zu sortieren (z.B. C

5

= 7, C

11

= 26). Es gilt:

T (n) ≤ T l n

m m

| {z }

3.

+ T 3

4 n

| {z }

5.

+ l n

m m

| {z }

2.

C

m

+ j n

2 k

|{z}

4.

Satz 79

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 330/530 ľErnst W. Mayr

(21)

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 l n

m m

c + 3

4 n

c + l n

m m

C

m

+ j n

2 k

≤ cn | · 1 n (IA)

⇔ (bis auf de , bc ) c m + 3

4 c + C

m

m + 1

2 ≤ c

⇔ − c m − 3

4 c + c ≥ C

m

m + 1 2

⇔ c ≥

Cm

m

+

12

1 −

34

m1

Bemerkung: m = 11 c = c(m) ≈ 20.

(22)

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

J. Comput. Syst. Sci. 7, pp. 448–461 (1973)

EADS 2 Der Blum-Floyd-Pratt-Rivest-Tarjan Selektions-Algorithmus 332/530 ľErnst W. Mayr

(23)

3. Randomisierter Median-Algorithmus

Problemstellung: Bestimme den Median von n Elementen

1

W¨ ahle n

34

Elemente zuf¨ allig und gleichverteilt aus den n Elementen aus.

2

Sortiere diese n

34

Elemente mit einem (Standard-) n log n-Algorithmus.

3

Setze

p

1

:= max{

n

3 4

2

− √

n, 1}-kleinstes Element der n

34

Elemente.

p

2

:= min{

n

3 4

2

+ √

n, n

34

}-kleinstes Element der n

34

Elemente.

n

34

n ppp ppp

p ppp

pppp pppp pp

S0

z }| {

S1

z }| {

S2

z }| {

p

1

p

2

(24)

4

Partitioniere die n Elemente in S

0

:= {Elemente < p

1

}

S

1

:= {p

1

≤ Elemente ≤ p

2

} S

2

:= {p

2

< Elemente}

5

Falls |S

0

| ≥

n

2

oder |S

2

| ≥

n

2

oder |S

1

| ≥ 4 · n

34

, dann wiederhole den Algorithmus;

ansonsten sortiere S

1

und liefere das (

n

2

− |S

0

|)-kleinste Element davon ab.

EADS 3 Randomisierter Median-Algorithmus 334/530

ľErnst W. Mayr

(25)

Satz 80

Obiger randomisierter Algorithmus bestimmt den Median von n-Elementen mit einer erwarteten Anzahl von

32

n + o(n) Vergleichen.

Beweis:

i) Korrektheit: klar.

(26)

Beweis (Forts.):

ii) Anzahl der Vergleiche in einer Iteration:

O(n

34

log n

34

) + Kosten der Partitionierung F¨ ur die Partitionierung ist der naive Ansatz zu ung¨ unstig, stattdessen:

p

1

p

2

S

0

S

1

S

2

n-Elemente

W¨ ahle zuerst jeweils mit Wahrscheinlichkeit

12

aus, ob Element x mit p

1

oder p

2

verglichen wird, mache zweiten Vergleich nur, falls n¨ otig.

EADS 3 Randomisierter Median-Algorithmus 336/530

ľErnst W. Mayr

(27)

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 ≤

32

n + o(n) ist).

(28)

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] = P

x∈Wertebereich

x · Pr[X = x]

(X ist diskret, d.h. der Wertebereich von X ist endlich) Markov-Ungleichung: Pr[X ≥ t] ≤

E[X]t

f¨ ur X nicht negativ Chebyshev-Ungleichung: Pr[|X − E [X]| ≥ t] ≤

Var(X)

t2

EADS 3 Randomisierter Median-Algorithmus 338/530

ľErnst W. Mayr

(29)

Beweis (Forts.):

Binomialverteilung: Seien X

1

, . . . , X

n

unabh¨ 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)

(30)

Beweis (Forts.):

Die Auswahl der n

34

Elemente wird wiederholt, falls |S

0

| ≥

n2

. Dies passiert gdw wir h¨ ochstens

12

n

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

34

Elemente stattfinden muss.

Setze Bernoulli-Zufallsvariable X

1

, . . . , X

n

mit:

X

i

=

1, falls Element i < Median ausgew¨ ahlt wird 0, sonst

X := P

X

i

ist binomialverteilt mit Parametern n und

12

n

14

, und E [X] =

12

n

34

, Var[X] = n ·

12

n

14

(1 −

12

n

14

) =

12

n

34

(1 − o(1)).

EADS 3 Randomisierter Median-Algorithmus 340/530

ľErnst W. Mayr

(31)

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

| ≥

n

2

] und Pr[|S

1

| ≥ 4 · n

34

]) ergeben analoge Absch¨ atzungen.

Damit: Wiederholung mit WS ≤ O(n

14

).

Referenzen

ÄHNLICHE DOKUMENTE

Ausdruck, dessen Wert nach bool konvertierbar ist Falls expression Wert false hat: Programm wird mit entsprechender Fehlermeldung

Jahre spart, Dann kann er Dann kann er sich einen sich einen Porsche Porsche kaufen kaufen. Wenn Wenn ( ( Bedingung Bedingung ; ; Dann_Wert Dann_Wert ; ;

• Diagonalisierung liefert f¨ur jede effektiv aufz¨ahlbare Menge von totalen Funktionen eine Diagonalfunktion d, die total, effektiv und nicht in der Menge liegt.. Will man

Beachte: Ein primitiv rekursiver Ausdruck stellt stets f¨ur jedes n eine Funktion dar.. Diese k¨onnen recht

Problem: Rekursionsgleichungen (Kleenesche Normalform) lassen sich nicht direkt verwenden.. Argumente müsen “Zahl” als

Beachte: Ein primitiv rekursiver Ausdruck stellt stets f¨ur jedes n eine Funktion dar.. Diese k¨onnen recht

Wir werden Anweisungen durch Zahlen codie- ren und dementsprechend Programme durch die Codierungen der Zahlenfolgen darstellen.. Um die Interpreterfunktion zu simulieren ben¨otigen

Wenn diese nicht existiert (entweder da h keine Nullstelle hat, oder da h undefiniert ist f¨ ur Werte, die kleiner als die Nullstelle sind), dann ist auch der µ-Operator angewendet