Slide1 l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 31

Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 - Bäume: Durchlaufreihenfolgen, Analyse nat. Bäume) PowerPoint PPT Presentation


  • 257 Views
  • Uploaded on
  • Presentation posted in: General

Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 - Bäume: Durchlaufreihenfolgen, 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)

Download Presentation

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

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Slide1 l.jpg

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

Prof. Th. Ottmann


Bin re suchb ume l.jpg

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)

  • Entfernen (remove, delete)

  • unterstützt werden.

  • Suchbaumeigenschaft: Die Schlüssel im linken Teilbaum eines Knotens psind alle kleiner als der Schlüssel von p, und dieserist wiederumkleiner als sämtliche Schlüssel im rechten Teilbaum von p.

  • Implementierung:


Nat rliche b ume l.jpg

Natürliche Bäume

Einfügen 5

9

9

3

12

3

12

4

4

5

  • 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)


Durchlaufreihenfolgen in b umen l.jpg

Durchlaufreihenfolgen in Bäumen

Durchlaufreihenfolgen zum Besuchen der Knoten des Baums

  • zur Ausgabe

  • zur Berechnung von Summe, Durchschnitt, Anzahl der Schlüssel . . .

  • zur Änderung der Struktur

    Wichtigste Durchlaufreihenfolgen:

  • Hauptreihenfolge = Preorder = WLRbesuche erst Wurzel, dann rekursiv linken und rechten Teil-Baum falls vorhanden

  • Nebenreihenfolge = Postorder = LRW

  • Symmetrische Reihenfolge = Inorder = LWR

  • die Spiegelbild-Varianten von 1-3


Hauptreihenfolge preorder l.jpg

17

11

22

14

7

12

Hauptreihenfolge (Preorder)

Ausgehend von der Wurzel p eines Baums ist die Hauptreihenfolge wiefolgt rekursiv definiert:

Durchlaufen aller Knoten eines Binärbaumes mit Wurzel p in Hauptreihenfolge:

Besuche p,

durchlaufe den linken Teilbaum von p in Hauptreihenfolge,

durchlaufe den rechten Teilbaum von p in Hauptreihenfolge.


Hauptreihenfolge programm l.jpg

Hauptreihenfolge Programm

// Hauptreihenfolge; WLRvoid preOrder (){ preOrder (root); System.out.println ();}void preOrder (SearchNode n){ if (n == null) return; System.out.print (n.content+" "); preOrder (n.left); preOrder (n.right);}// Nebenreihenfolge; LRWvoid postOrder (){ postOrder (root); System.out.println ();}// ...


Symmetrische reihenfolge inorder l.jpg

Symmetrische Reihenfolge (Inorder)

Die Durchlaufreihenfolge ist: erst linker Teilbaum, dann Wurzel, dann rechterTeilbaum:

// Symmetrische; LWRvoid inOrder (){ inOrder (root); System.out.println ();}void inOrder (SearchNode n){ if (n == null) return;

inOrder (n.left);

System.out.print (n.content+" ");

inOrder (n.right);}// Nebenreihenfolge; LRW// ...

Die anderen Durchlaufreihenfolgen werden analog implementiert.


Beispiel l.jpg

17

11

22

14

7

12

Beispiel

Preorder:17, 11, 7, 14, 12, 22

Postorder:7, 12, 14, 11, 22, 17

Inorder:7, 11, 12, 14, 17, 22


Nichtrekursive varianten mit gef delten b umen l.jpg

Nichtrekursive Varianten mit gefädelten Bäumen

17

Wurzel

22

11

7

14

12

Rekursion kann vermiedenwerden, wenn man anstelle dernull-Referenzensogenannte Fädelungszeiger auf die Vorgängerbzw. Nachfolgerverwendet.


Bin re suchb ume10 l.jpg

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)

  • Entfernen (remove, delete)

  • unterstützt werden.

  • Suchbaumeigenschaft: Die Schlüssel im linken Teilbaum eines Knotens psind alle kleiner als der Schlüssel von p, und dieserist wiederumkleiner als sämtliche Schlüssel im rechten Teilbaum von p.

  • Implementierung:


Nat rliche b ume11 l.jpg

Natürliche Bäume

Einfügen 5

9

9

3

12

3

12

4

4

5

  • 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)


Beispiel f r suchen einf gen entfernen l.jpg

17

11

22

14

7

12

Beispiel für Suchen, Einfügen, Entfernen


Sortieren mit nat rlichen suchb umen l.jpg

Sortieren mit natürlichen Suchbäumen

Idee:Bau für die Eingabefolge einen natürlichen Suchbaum auf und gib dieSchlüssel in symmetrischer Reihenfolge (Inorder) aus.

Bemerkung:Abhängig von der Eingabereihenfolge kann der Suchbaumdegenerieren.

Komplexität:Abhängig von der internen Pfadlänge

Schlechtester Fall:Sortierte Eingabe:  (n2) Schritte.

Bester Fall:Es entsteht ein vollständigerSuchbaum mit minimalmöglicher Höhe von etwa log n. n mal Einfügen und Ausgeben ist daher in Zeit O(n log n) möglich.

Mittlerer Fall:?


Analyse nat rlicher suchb ume l.jpg

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.  nn + O(n)


Ursache f r den unterschied l.jpg

3

3

3

1

2

2

2

1

3

1

3

1

1

2

2

Ursache für den Unterschied

 Bei der Random-Tree-Analyse werden ausgeglichene Bäume häufigergezählt.

3,2,13,1,2 1,3,23,2,1 2,1,3 und 2,3,1


Interne pfadl nge l.jpg

Interne Pfadlänge

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

Rekursive Definition:

1. Ist t der leere Baum, so istI(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:

(

)

å

+

=

Tiefe

(

p

)

1

I

(

t

)

p

P innerer Knoten von t


Durchschnittliche suchpfadl nge l.jpg

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?


Interne pfadl nge bester fall l.jpg

Interne Pfadlänge: Bester Fall

Es ensteht ein vollständiger Binärbaum


Interne pfadl nge schlechtester fall l.jpg

Interne Pfadlänge: Schlechtester Fall


Zuf llige b ume l.jpg

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 denWert k hat, genau 1/n.

  • Wenn k der erste Schlüssel ist, wird kzur 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. dieSchlüssel k + 1,…,n).


Erwartete interne pfadl nge l.jpg

Erwartete interne Pfadlänge

EI(n) :Erwartungswert für die interne Pfadlänge eines zufälligerzeugten binären Suchbaums mit n Knoten

Offensichtlich gilt:

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

=

EI

(

0

)

0

=

EI

(

1

)

1

n

1

å

=

-

+

-

+

EI

(

n

)

(

EI

(

k

1

)

EI

(

n

k

)

n

)

n

=

k

1

n

n

1

å

å

=

+

-

+

-

n

(

EI

(

k

1

)

EI

(

n

k

))

n

=

=

k

k

1

1


Beweis 1 l.jpg

Beweis (1)

n

2

å

+

=

+

+

und daher

Aus den beiden letzten Gleichungen folgt

EI

(

n

1

)

(

n

1

)

*

EI

(

k

)

+

n

1

=

k

0

n

å

+

+

=

+

+

2

(

n

1

)

*

EI

(

n

1

)

(

n

1

)

2

*

EI

(

k

)

=

k

0

-

n

1

å

=

+

2

n

*

EI

n

2

*

EI

(

k

)

=

k

0

+

+

-

=

+

+

(

n

1

)

EI

(

n

1

)

n

*

EI

(

n

)

2

n

1

2

*

EI

(

n

)

+

+

=

+

+

+

(

n

1

)

EI

(

n

1

)

(

n

2

)

EI

(

n

)

2

n

1

+

+

2

n

1

n

2

+

=

+

EI

(

n

1

)

EI

(

n

).

+

+

n

1

n

1


Beweis 2 l.jpg

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.

=

+

-

EI

(

n

)

2

(

n

1

)

H

3

n

n

1

1

=

+

+

+

H

1

...

n

2

n

1

1

=

+

g

+

+

O

H

ln

n

(

)

n

2

2

n

n

g

=

0

.

5772

...


Beweis 3 l.jpg

Beweis (3)

Damit ist

Und daher

1

=

-

-

g

+

+

+

g

+

O

EI

(

n

)

2

n

ln

n

(

3

2

)

*

n

2

ln

n

1

2

(

)

n

EI

(

n

)

2

ln

n

=

-

-

g

+

+

2

ln

n

(

3

2

)

...

n

n

2

2

ln

n

=

-

-

g

+

+

*

log

n

(

3

2

)

...

2

log

e

n

2

2

log

2

2

ln

n

=

-

-

g

+

+

10

*

log

n

(

3

2

)

...

2

log

e

n

10

2

ln

n

»

-

-

g

+

+

1

.

386

log

n

(

3

2

)

...

2

n


Beobachtungen l.jpg

Beobachtungen

  • Suchen, Einfügen und Entfernen eines Schlüssels ist bei einemzufällig erzeugten binären Suchbaum mit n Schlüsseln im Mittel inO(log2n) Schritten möglich.

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

  • Man kann nachweisen, dass der mittlere Abstand eines Knotens vonder Wurzel in einem zufällig erzeugten Baum nur etwa 40% überdem Optimum liegt.

  • Die Einschränkung auf den symmetrischen Nachfolgerverschlechtert jedoch das Verhalten.

  • Führt man in einem zufällig erzeugten Suchbaum mit n Schlüsseln n2Update-Operationen durch, so ist der Erwartungswert für diedurschnittliche Suchpfadlänge lediglichΘ(n).


Typischer bin rbaum f r eine zuf llige schl sselsequenz l.jpg

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


Resultierender bin rbaum nach n 2 updates l.jpg

Resultierender Binärbaum nach n2 Updates


Strukturelle analyse von bin rb umen l.jpg

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 =


Anzahl strukturell verschiedener bin rb ume l.jpg

Anzahl strukturell verschiedener Binärbäume


Gesamte interne pfadl nge aller b ume mit n knoten l.jpg

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

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


Zusammenfassung l.jpg

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


  • Login