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

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

Embed Size (px)

Citation preview

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

1

Vorlesung Informatik 2

Algorithmen und Datenstrukturen

(19 - Analyse natürlicher Bäume)

Prof. Th. Ottmann

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

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: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann

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: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann

4

Beispiel für Suchen, Einfügen, Entfernen

17

11 22

7 14

12

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

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: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann

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

1

2

3

3

2

1

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

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

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: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann

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: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann

9

Interne Pfadlänge: Bester Fall

Es entsteht ein vollständiger Binärbaum

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

10

Interne Pfadlänge: Schlechtester Fall

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

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: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann

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: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann

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: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann

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: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann

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: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann

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

durchschnittliche Suchpfadlänge lediglich Θ(n).

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

17

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

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

18

Resultierender Binärbaum nach n2 Updates

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

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: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann

20

Anzahl strukturell verschiedener Binärbäume

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

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: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann

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