• Keine Ergebnisse gefunden

B7. Balancierte B¨ aume 1

N/A
N/A
Protected

Academic year: 2022

Aktie "B7. Balancierte B¨ aume 1"

Copied!
7
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen und Datenstrukturen

B7. Balancierte B¨ aume 1

Marcel L¨ uthi and Gabriele R¨ oger

Universit¨ at Basel

10. April 2019

1Folien basieren auf Vorlesungsfolien von Sedgewick & Wayne

https://algs4.cs.princeton.edu/lectures/33BalancedSearchTrees- 2x2.pdf

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 1 / 26

Algorithmen und Datenstrukturen

10. April 2019 — B7. Balancierte B¨ aume

a

aFolien basieren auf Vorlesungsfolien von Sedgewick & Wayne

https://algs4.cs.princeton.edu/lectures/33BalancedSearchTrees- 2x2.pdf

B7.1 Einf¨ uhrung B7.2 2-3 B¨ aume

B7.3 Rot-Schwarz B¨ aume

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 2 / 26

B7. Balancierte B¨aume2 Einf¨uhrung

B7.1 Einf¨ uhrung

B7. Balancierte B¨aume3 Einf¨uhrung

Informatiker des Tages : Donald Knuth

Donald E. Knuth

I Autor: ”The art of computer programming”

I Autor des Textsatzsystems TEX I Gewinner Turing Award (1974) und

vieler anderer Preise I Arbeit an Analyse von

Algorithmen

I Entwickelte erste Sprache f¨ ur

”Literate programming”

Knuth D. The art of computer programming 1: Fundamental

algorithms 2: Seminumerical algorithms 3: Sorting and searching.

(2)

B7. Balancierte B¨aume4 Einf¨uhrung

Balancierte B¨ aume

Worst-case Average-case

Implementation suchen einf¨ ugen l¨ oschen suchen (hit) einf¨ ugen l¨ oschen

Verkettete Liste N N N N/2 N N/2

Bin¨ are suche log

2

(N) N N log

2

(N) N/2 N

BST N N N log

2

(N) log

2

(N) √

N Ziel log

2

(N) log

2

(N) log

2

(N) log

2

(N) log

2

(N) log

2

(N)

Frage

K¨ onnen wir eine Implementation finden, bei der alle Operationen logarithmische Komplexit¨ at haben?

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 5 / 26

B7. Balancierte B¨aume5 2-3 B¨aume

B7.2 2-3 B¨aume

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 6 / 26

B7. Balancierte B¨aume6 2-3 B¨aume

2-3 B¨ aume

Wir unterscheiden zwei Knotentypen 2-Knoten 1 Schl¨ ussel, zwei Kinder 3-Knoten 2 Schl¨ ussel, drei Kinder I Wir verlangen symmetrische Ordnung

I Zus¨ atzlich muss Baum perfekt balanciert sein.

I Jeder Pfad von Wurzel zu Blatt hat dieselbe L¨ ange.

B7. Balancierte B¨aume7 2-3 B¨aume

Einf¨ ugen in 2-3 Baum

Einf¨ ugen in 2-Knoten auf letzter Ebene

I Neuer Schl¨ ussel zu 2-Knoten hinzuf¨ ugen. Knoten wird zu

3-Knoten.

(3)

B7. Balancierte B¨aume8 2-3 B¨aume

Einf¨ ugen in 2-3 Baum

Einf¨ ugen in 3-Knoten auf letzter Ebene

I Neuer Schl¨ ussel zu 3-Knoten hinzuf¨ ugen. Knoten wird tempor¨ ar zu 4-Knoten.

I Mittlerer Knoten in Parent einf¨ ugen.

I Falls n¨ otig, rekursiv fortsetzen.

I Falls Wurzel erreicht wird, und diese zu 4-Knoten wird, wird diese zu zwei 2-Knoten.

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 9 / 26

B7. Balancierte B¨aume9 2-3 B¨aume

Lokale Transformationen

I Teilen eines 4 Knotens ist lokale Operation I Unterb¨ aume nicht davon betroffen I Konstante Anzahl Operationen

Quelle: Abb. 3.30, Algorithmen, Wayne & Sedgewick

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 10 / 26

B7. Balancierte B¨aume10 2-3 B¨aume

Globale Eigenschaften

I Invariante: Jede Operation bel¨ asst Baum perfekt balanciert.

I Ordnung der Teilb¨ aume bleibt erhalten.

Quelle: Abb. 3.31, Algorithmen, Wayne & Sedgewick

B7. Balancierte B¨aume11 2-3 B¨aume

2-3 Baum: Quiz: Performance

I B¨ aume sind perfekt balanciert!

Baumh¨ ohe:

Worst Case

Best Case

(4)

B7. Balancierte B¨aume12 2-3 B¨aume

Ubersicht ¨

Worst-case Average-case

Implementation suchen einf¨ ugen l¨ oschen suchen (hit) einf¨ ugen l¨ oschen

Verkettete Liste N N N N/2 N N/2

Bin¨ are suche log

2

(N) N N log

2

(N) N/2 N

Bin¨ arer Suchbaum N N N log

2

(N) log

2

(N) √

N 2-3 Baum log

2

(N) log

2

(N) log

2

(N) log

2

(N) log

2

(N) log

2

(N)

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 13 / 26

B7. Balancierte B¨aume13 2-3 B¨aume

Problem

2-3 B¨ aume sind m¨ uhsam zu implementieren.

I Wir m¨ ussen viele Spezialf¨ alle unterscheiden.

I Code wird unelegant und fehleranf¨ allig.

I Elegante L¨ osung: Rot-Schwarz B¨ aume

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 14 / 26

B7. Balancierte B¨aume14 Rot-Schwarz B¨aume

B7.3 Rot-Schwarz B¨aume

B7. Balancierte B¨aume15 Rot-Schwarz B¨aume

Informatiker des Tages : Robert Sedgewick

Robert Sedgewick

I Professor in Princeton

I Doktorand von Donald Knuth.

I ”Erfinder” der Rot-Schwarz B¨ aume I Autor von unserem Lehrbuch.

Guibas, Leo J., and Robert Sedgewick. ”A dichromatic framework

for balanced trees”, IEEE Foundations of Computer Science, 1978.

(5)

B7. Balancierte B¨aume16 Rot-Schwarz B¨aume

Rot-Schwarz B¨ aume: Idee

I 2-3 Baum wird als bin¨ arer Suchbaum repr¨ asentiert I 3-Knoten werden mit speziellen ”roten” links markiert.

Quelle: Abb. 3.34, Algorithmen, Wayne & Sedgewick

Quelle: Abb. 3.36, Algorithmen, Wayne & Sedgewick

Quelle: Abb. 3.36, Algorithmen, Wayne & Sedgewick

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 17 / 26

B7. Balancierte B¨aume17 Rot-Schwarz B¨aume

Rot-Schwarz B¨ aume - Definition

Ein Rot-Schwarz Baum ist ein bin¨ arer Suchbaum, mit der Eigenschaft:

I Rote Referenzen zeigen nach links

I Von keinem Knoten gehen zwei rote Referenzen aus I (Keine 4-Knoten im 2-3 Baum)

I Jeder Pfad von der Wurzel zu einem Blatt hat die gleiche Anzahl von schwarzen Referenzen.

I (Gleiche Tiefe im 2-3 Baum)

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 18 / 26

B7. Balancierte B¨aume18 Rot-Schwarz B¨aume

Repr¨ asentation in Code

I Jeder Knoten hat genau eine Referenz von Parent I 1 Feld in Knoten gen¨ ugt um Farbe speichern

c l a s s N o d e [ Key , V a l u e ]:

N o d e ( key : Key , v a l u e : V a l u e ) key : Key

v a l u e : V a l u e

l e f t : N o d e [ Key , V a l u e ] r i g h t : N o d e [ Key , V a l u e ] c o l o r : C o l o r # R e d or B l a c k

B7. Balancierte B¨aume19 Rot-Schwarz B¨aume

Suchen und ordnungsbasierte Operationen

I RB-Tree ist ein bin¨ arer Suchbaum - einfach mit Farbe I Implementation von Suche und ordnungsbasierten

Operationen bleibt gleich.

I Farbe wird ignoriert.

Quelle: Abb. 3.36, Algorithmen, Wayne & Sedgewick

(6)

B7. Balancierte B¨aume20 Rot-Schwarz B¨aume

Einf¨ ugen: Idee

Grundidee

Alle Operationen werden auf Operationen in entsprechendem 2-3 Baum zur¨ uckgef¨ uhrt

I Neuer Link wird immer Rot I F¨ uhrt zu potentiellem 4 Knoten

in 2-3 Baum

I Lokale Operationen um 2-3 Baum wiederherzustellen

I Farb wechseln I Rotation links I Rotation rechts

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 21 / 26

B7. Balancierte B¨aume21 Rot-Schwarz B¨aume

Einf¨ ugen: Details

I Unterscheidung aller m¨ oglichen F¨ alle

I Pro Fall: Eigene Strategie um 2-3 Baum wiederherzustellen Am besten in Ruhe selber lesen / anschauen

I Relevante Teile aus dem Buch auf Adam

I Gute, schrittweise Erkl¨ arung mit Ablaufprotokoll I Details nicht pr¨ ufungsrelevant

Animation:

https://algs4.cs.princeton.edu/lectures/

33DemoRedBlackBST.mov

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 22 / 26

B7. Balancierte B¨aume22 Rot-Schwarz B¨aume

Einf¨ ugen: Implementation

I Tr¨ ugerisch einfache Implementation

def _ p u t ( self , key , value , n o d e ):

if ( n o d e == N o n e ):

r e t u r n R e d B l a c k B S T . N o d e ( key , value , C o l o r . RED , 1) e l i f key < n o d e . key :

n o d e . l e f t = s e l f . _ p u t ( key , value , n o d e . l e f t ) e l i f key > n o d e . key :

n o d e . r i g h t = s e l f . _ p u t ( key , value , n o d e . r i g h t ) e l i f key == n o d e . key :

n o d e . v a l u e = v a l u e

if s e l f . _ i s R e d ( n o d e . r i g h t ) and not s e l f . _ i s R e d ( n o d e . l e f t ):

n o d e = s e l f . _ r o t a t e L e f t ( n o d e )

if s e l f . _ i s R e d ( n o d e . l e f t ) and s e l f . _ i s R e d ( n o d e . l e f t . l e f t ):

n o d e = s e l f . _ r o t a t e R i g h t ( n o d e )

if s e l f . _ i s R e d ( n o d e . l e f t ) and s e l f . _ i s R e d ( n o d e . r i g h t ):

s e l f . _ f l i p C o l o r s ( n o d e )

n o d e . c o u n t = 1 + s e l f . _ s i z e ( n o d e . l e f t ) + s e l f . _ s i z e ( n o d e . r i g h t )

B7. Balancierte B¨aume23 Rot-Schwarz B¨aume

Implementation

Jupyter-Notebook: RedBlackBST.ipynb

(7)

B7. Balancierte B¨aume24 Rot-Schwarz B¨aume

Analyse

Theorem

Die H¨ ohe eines Rot-Schwarz-Baums mit N Knoten ist nicht h¨ oher als 2 log 2 (N ) .

Intuition:

I Jeder Pfad von Wurzel zu Blatt hat gleiche Anzahl von Schwarzen Referenzen

I Korrespondenz mit 2-3 Baum

I Es gibt nie zwei rote Referenzen hintereinander.

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 25 / 26

B7. Balancierte B¨aume25 Rot-Schwarz B¨aume

Ubersicht ¨

Worst-case Average-case

Implementation suchen einf¨ ugen l¨ oschen suchen (hit) einf¨ ugen l¨ oschen

Verkettete Liste N N N N/2 N N/2

Bin¨ are suche log

2

(N) N N log

2

(N) N/2 N

Bin¨ arer Suchbaum N N N log

2

(N) log

2

(N) √

N Rot-Schwarz Baum log

2

(N) log

2

(N) log

2

(N) log

2

(N) log

2

(N) log

2

(N)

Wir haben logarithmische Komplexit¨ at aller Operationen mit einer kleinen Konstante.

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 10. April 2019 26 / 26

Referenzen

ÄHNLICHE DOKUMENTE

2-3 Baum wird als bin¨ arer Suchbaum repr¨ asentiert 3-Knoten werden mit speziellen ”roten” links markiert.

I Falls Wurzel erreicht wird, und diese zu 4-Knoten wird, wird diese zu zwei 2-Knoten....

[r]

B-B¨aume verallgemeinern bin¨are Suchb¨aume dahingehend, dass in einem Knoten mehrere Schl¨ ussel stehen und ein Knoten mehrere Kinder hat.. (Typischerweise

Rot-Schwarz-B¨ aume: bin¨ are Suchb¨ aume mit zus¨ atzlicher Struktur, die daf¨ ur sorgt, dass diese balanciert sind, also die H¨ ohe h¨ ochstens O(log n) ist.. Jeder Knoten wird

K aum eine Branche klagt der- zeit nicht über Fachkräfte- mangel infolge des demografi- schen Wandels. Doch inwieweit dieser zuvor über Vorruhestands- regelungen selber

Der EuGH hat festgestellt, dass die Richtlinie einer Regelung entgegensteht, wonach der überlebende Partner nach Versterben seines Lebenspartners keine

Das Tetraeder hat gleich viele Kanten wie der Würfel Flächen. Wir stellen einen Satz „Platonische