Vorlesung Informatik 2
Download
1 / 31

- PowerPoint PPT Presentation


  • 339 Views
  • Uploaded on

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)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '' - carlyn


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 p sind 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 p sind 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,1 3,1,2 1,3,2 3,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



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).




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 =



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