slide1
Download
Skip this Video
Download Presentation
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 - Bäume: Durchlaufreihenfolgen, Analyse nat. Bäume)

Loading in 2 Seconds...

play fullscreen
1 / 31

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


  • 338 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 'Vorlesung Informatik 2 Algorithmen und Datenstrukturen 18 - B ume: Durchlaufreihenfolgen, Analyse nat. B ume' - 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
Vorlesung Informatik 2Algorithmen und Datenstrukturen(18 - Bäume: Durchlaufreihenfolgen, Analyse nat. Bäume)

Prof. Th. Ottmann

bin re suchb ume
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
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
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

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

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
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
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
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)
sortieren mit nat rlichen suchb umen
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
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

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
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
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
Interne Pfadlänge: Bester Fall

Es ensteht ein vollständiger Binärbaum

zuf llige b ume
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
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
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
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
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
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
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
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
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

ad