22
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume) Prof. Th. Ottmann

Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

Embed Size (px)

DESCRIPTION

Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume). Prof. Th. Ottmann. Binäre Suchbäume. Binärbäume zur Speicherung von Mengen von Schlüsseln (in den inneren Knoten der Bäume), so dass die Operationen Suchen (find) Einfügen (insert) - PowerPoint PPT Presentation

Citation preview

Page 1: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

1

Vorlesung Informatik 2

Algorithmen und Datenstrukturen

(19 - Bäume: Analyse nat. Bäume)

Prof. Th. Ottmann

Page 2: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

2

Binärbäume zur Speicherung von Mengen von Schlüsseln (in den inneren

Knoten der Bäume), so dass die Operationen

• Suchen (find)

• Einfügen (insert)

• Entfernen (remove, delete)

unterstützt werden.

Suchbaumeigenschaft: Die Schlüssel im linken Teilbaum eines Knotens p

sind alle kleiner als der Schlüssel von p, und dieser ist wiederum

kleiner als sämtliche Schlüssel im rechten Teilbaum von p.

Implementierung:

Binäre Suchbäume

Page 3: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

3

Natürliche Bäume

• Baum-Struktur hängt von Einfügereihenfolge in anfangs leeren Baum ab

• Höhe kann linear zunehmen, sie kann aber auch in O(log n) sein, genau

log2(n+1)

9

3 12

4

9

3 12

5

Einfügen 5

4

Page 4: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

4

Beispiel für Suchen, Einfügen, Entfernen

17

11 22

7 14

12

Page 5: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

5

Analyse natürlicher Suchbäume

Zwei alternative Vorgehensweisen zur Bestimmung der internen Pfadlänge:

1. Random-Tree-Analyse, d.h. Mittelwert über alle möglichen Permutationen

der (in den anfangs leeren Baum) einzufügenden Schlüssel.

2. Gestaltanalyse, d.h. Mittelwert über alle strukturell möglichen Bäume mit n

Schlüsseln.

Unterschied des Erwartungswertes für die interne Pfadlänge:

1. 1.386 n log2n – 0.846 n + O(log n)

2. nn + O(n)

Page 6: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

6

Ursache für den Unterschied

Bei der Random-Tree-Analyse werden ausgeglichene Bäume häufiger

gezählt.

3

2

1

3

1

2

1

3

2

3

2

1

3

2

1

3,2,1 3,1,2 1,3,2 3,2,1 2,1,3 und 2,3,1

Page 7: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

7

Interne Pfadlänge

Interne Pfadlänge: Maß zu Beurteilung der Güte eines Suchbaumes.

Rekursive Definition:

1. Ist t der leere Baum, so ist

I(t) = 0.

2. Für einen Baum mit Wurzel t, linkem Teilbaum tl und rechtem

Teilbaum tr gilt:

I(t) := I(tl) + I(tr)+ Zahl der Knoten von t.

Offensichtlich gilt:p

tI

P innerer Knoten von t

pTiefe 1)()(

Page 8: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

8

Durchschnittliche Suchpfadlänge

Für einen Baum t ist die durchschnittliche Suchpfadlänge definiert durch:

D(t) = I(t)/n, n = Anzahl innerer Knoten in t

Frage: Wie groß ist D(t) im

• besten• schlechtesten• mittleren Fall

für einen Baum t mit n inneren Knoten?

Page 9: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

9

Interne Pfadlänge: Bester Fall

Es ensteht ein vollständiger Binärbaum

Page 10: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

10

Interne Pfadlänge: Schlechtester Fall

Page 11: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

11

Zufällige Bäume

• Seien oBdA die Schlüssel {1,…,n} einzufügen.

• Sei ferner s1,…, sn eine zufällige Permutation dieser Schlüssel.

• Somit ist die Wahrscheinlichkeit P(s1 = k), dass s1 gerade den

Wert k hat, genau 1/n.

• Wenn k der erste Schlüssel ist, wird k zur Wurzel.

• Dann enthalten der linke Teilbaum k – 1 Elemente (nämlich die

Schlüssel 1,…,k - 1) und der rechte Teilbaum n – k Elemente (d.h. die

Schlüssel k + 1,…,n).

Page 12: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

12

Erwartete interne Pfadlänge

EI(n) : Erwartungswert für die interne Pfadlänge eines zufällig

erzeugten binären Suchbaums mit n Knoten

Offensichtlich gilt:

Behauptung: EI(n) 1.386n log2n - 0.846n + O(logn).

n

k

n

k

n

k

knEIkEIn

n

nknEIkEIn

nEI

EI

EI

1 1

1

))()1((1

))()1((1

)(

1)1(

0)0(

Page 13: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

13

Beweis (1)

und daher

Aus den beiden letzten Gleichungen folgt

n

k

kEIn

nnEI0

)(*1

2)1()1(

1

0

2

0

2

)(*2*

)(*2)1()1(*)1(

n

k

n

k

kEInEIn

kEInnEIn

).(1

2

1

12)1(

12)()2()1()1(

)(*212)(*)1()1(

nEIn

n

n

nnEI

nnEInnEIn

nEInnEInnEIn

Page 14: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

14

Beweis (2)

Durch vollständige Induktion über n kann man zeigen, dass für alle n 1 gilt:

ist die n -te harmonische Zahl, die wie folgt

Abgeschätzt werden kann:

Dabei ist die so genannte Eulersche Konstante.

nHn

1...

2

11

)1

(2

1ln 2nn

nHn

...5772.0

nHnnEI n 3)1(2)(

Page 15: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

15

Beweis (3)

Damit ist

Und daher

)1(21ln2*)23(ln2)(n

nnnnnEI

...ln2

)23(log386.1

...ln2

)23(log*log

2log2

...ln2

)23(log*log

2

...ln2

)23(ln2)(

2

210

10

22

n

nn

n

nn

e

n

nn

e

n

nn

n

nEI

Page 16: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

16

Beobachtungen

• Suchen, Einfügen und Entfernen eines Schlüssels ist bei einem

zufällig erzeugten binären Suchbaum mit n Schlüsseln im Mittel in

O(log2 n) Schritten möglich.

• Im schlechtesten Fall kann der Aufwand jedoch Ω(n) betragen.

• Man kann nachweisen, dass der mittlere Abstand eines Knotens von

der Wurzel in einem zufällig erzeugten Baum nur etwa 40% über

dem Optimum liegt.

• Die Einschränkung auf den symmetrischen Nachfolger

verschlechtert jedoch das Verhalten.

• Führt man in einem zufällig erzeugten Suchbaum mit n Schlüsseln n2

Update-Operationen durch, so ist der Erwartungswert für die

durschnittliche Suchpfadlänge lediglich Θ(n).

Page 17: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

17

Typischer Binärbaum für eine zufällige Schlüsselsequenz

Page 18: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

18

Resultierender Binärbaum nach n2 Updates

Page 19: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

19

Strukturelle Analyse von Binärbäumen

Frage: Wie groß ist die durchschnittliche Suchpfadlänge eines Binärbaumes mit N

inneren Knoten, wenn man bei der Durchschnittsbildung jeden strukturell

möglichen Binärbaum mit N inneren Knoten genau einmal zählt?

Antwort: Sei

IN = gesamte interne Pfadlänge aller strukturell verschiedenen Binärbäume mit N

inneren Knoten

BN = Anzahl aller strukturell verschiedenen Bäume mit N inneren Knoten

Dann ist IN/BN =

Page 20: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

20

Anzahl strukturell verschiedener Binärbäume

Page 21: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

21

Gesamte interne Pfadlänge aller Bäume mit N Knoten

• Für jeden Baum t mit linkem Teilbaum tl und rechtem Teilbaum tr gilt:

Page 22: Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Bäume: Analyse nat. Bäume)

22

Zusammenfassung

Die durchschnittliche Suchpfadlänge in einem Baum mit N inneren Knoten (gemittelt

über alle strukturell möglichen Bäume mit N inneren Knoten) ist:

1/N IN/BN