VDS 10 - Bäume

Werbung
Vorlesung Datenstrukturen
Bäume
Grundlagen
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 331
Motivation
Lineare Listen
Lineare Listen sind eine eindimensionale Datenstruktur, d.h. es besteht exakt eine
Beziehung in eine Richtung: Ein Listenelement besitzt genau einen Nachfolger und genau
einen Vorgänger (auf den direkt nur bei doppelt verketteter Liste zugegriffen werden kann).
Nachteile von Listen
Ausdrucksmächtigkeit der Modellierung:
• Viele Strukturen der Realwelt sind hierarchisch organisiert und diese Zusammenhänge
lassen sich nicht adäquat bzw. überhaupt nicht mit Listen (und auch nicht mit Feldern)
darstellen.
Suchoperationen nach einem beliebigen Listenelement laufen generell in O(n).
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 332
Hierarchische Strukturen
Beispiel
Fußball Weltmeisterschaft
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 333
Baum - Definitionen (1)
Modellierung von Hierarchien
Die Modellierung hierarchischer Zusammenhänge kann
mit Hilfe der Datenstruktur Baum geschehen.
Baum
Nichtleere Sammlung von Knoten und Kanten
Knoten
Objekt, das Informationen enthält
Kante
Ungerichtete Verbindung zwischen zwei Knoten
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 334
Beispiel Stammbaum
Person
(P)
Ps Vater
(VP)
VPs Vater
(VVP)
Ps Mutter
(MP)
VPs Mutter
(MVP)
MPs Vater
(VMP)
MPs Mutter
(MMP)
MVPs Vater MVPs Mutter VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter
(VMVP)
(MMVP)
(VVMP)
(MVMP)
(VMMP)
(MMMP)
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 335
Beispiel Stammbaum - Knoten
Person
(P)
Ps Vater
(VP)
VPs Vater
(VVP)
Ps Mutter
(MP)
Knoten
VPs Mutter
(MVP)
MPs Vater
(VMP)
MPs Mutter
(MMP)
MVPs Vater MVPs Mutter VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter
(VMVP)
(MMVP)
(VVMP)
(MVMP)
(VMMP)
(MMMP)
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 336
Beispiel Stammbaum - Kanten
Person
(P)
Ps Vater
(VP)
VPs Vater
(VVP)
Ps Mutter
(MP)
Kanten
VPs Mutter
(MVP)
MPs Vater
(VMP)
MPs Mutter
(MMP)
MVPs Vater MVPs Mutter VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter
(VMVP)
(MMVP)
(VVMP)
(MVMP)
(VMMP)
(MMMP)
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 337
Definitionen (2)
Vorgänger eines Knotens
Jeder Knoten (außer der Wurzel) besitzt genau einen (durch eine Kante verbundenen)
Vorgängerknoten (alt. Bezeichnungen: Übergeordneter Knoten, Elternknoten).
Nachfolger eines Knotens
Jeder Knoten kann eine beliebige Menge an (durch Kanten verbundenen)
Nachfolgerknoten besitzen (alt. Bezeichnungen: Untergeordnete Knoten, Kindknoten).
Wurzel
Knoten eines Baums, der keinen Vorgänger besitzt.
Blatt
Knoten ohne Nachfolger werden als Blatt- oder Terminalknoten bezeichnet.
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 338
Beispiel Stammbaum
Wurzel
Person
(P)
Ps Vater
(VP)
VPs Vater
(VVP)
Ps Mutter
(MP)
VPs Mutter
(MVP)
MPs Vater
(VMP)
MPs Mutter
(MMP)
MVPs Vater MVPs Mutter VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter
(VMVP)
(MMVP)
(VVMP)
(MVMP)
(VMMP)
(MMMP)
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 339
Beispiel Stammbaum - Blätter
Person
(P)
Ps Vater
(VP)
VPs Vater
(VVP)
Ps Mutter
(MP)
MPs Vater
(VMP)
VPs Mutter
(MVP)
MPs Mutter
(MMP)
MVPs Vater MVPs Mutter VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter
(VMVP)
(MMVP)
(VVMP)
(MVMP)
(VMMP)
(MMMP)
Blätter
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 340
Beispiel Stammbaum - Pfad
Person
(P)
Ps Vater
(VP)
Ps Mutter
(MP)
Pfad
Pfad
Liste disjunkter Knoten, bei der aufeinander
MPs Vater
(VMP)
MPs Mutter
(MMP)
folgende Knoten durch Kanten verbunden sind
Definierende Eigenschaft eines Baumes
Zwischen zwei beliebigen Knoten eines Baumes
VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter
(VVMP)
(MVMP)
(VMMP)
(MMMP)
gibt es genau einen Pfad!
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 341
Definitionen (3)
Ebene (Rekursive Definition)
Die Ebene eines Baumknotens ist um 1 höher als die Ebene seines Vorgängerknotens. Die Wurzel eines Baumes liegt auf Ebene 0.
Gleichgeordnete Knoten
Knoten die auf einer Ebene liegen werden als gleichgeordnete Knoten bezeichnet.
Höhe eines Baums
Die Höhe eines Baums bezeichnet die maximale Anzahl seiner Ebenen (rek. Definition: Die
Höhe eines Baumes ist um 1 größer als die Maximalhöhe der Teilbäume seiner Wurzel).
Geordneter Baum
Die Reihenfolge der Nachfolger eines Knotens ist von Bedeutung und deshalb festgelegt.
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 342
Beispiel Stammbaum
Person
(P)
Ps Vater
(VP)
VPs Vater
(VVP)
Ps Mutter
(MP)
VPs Mutter
(MVP)
MPs Vater
(VMP)
MPs Mutter
(MMP)
Gleichgeordnete Knoten der Ebene 2
MVPs Vater MVPs Mutter VMPs Vater VMPs Mutter MMPs Vater MMPs Mutter
(VMVP)
(MMVP)
(VVMP)
(MVMP)
(VMMP)
(MMMP)
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 343
Mehrwegbäume (1)
M-ärer Baum
Geordneter Baum, dessen Knoten jeweils genau M Nachfolger besitzen.
Problem
Wie behandelt man Knoten mit einer geringeren Nachfolgeranzahl?
Externe Knoten (äußere Knoten)
Bezeichnen spezielle Knoten ohne Nachfolger. Sie dienen als Pseudoknoten,
auf die Knoten verweisen können, die nicht M Nachfolger besitzen.
Interne Knoten (innere Knoten)
Besitzen genau M Nachfolger (die jedoch auch externe Knoten sein können).
Blattknoten eines M-ären Baums
Sind interne Knoten, die ausschließlich externe Nachfolgerknoten besitzen.
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 344
Mehrwegbäume (2)
Ausgeglichener M-ärer Baum
Auf jeder Ebene i befinden sich genau Mi Knoten. Die einzige Ausnahme stellt die
letzte Ebene dar, auf der sich auch weniger Knoten befinden können.
Voller Baum
Auf jeder inneren Ebene eines Baumes sind genauso viele Knoten zu finden, wie
durch die Anzahl der Wege möglich ist. Die Blattebene stellt eine Ausnahme dar
und darf auch weniger Knoten enthalten.
Vollständiger Baum
Ein Baum ist voll und alle inneren Knoten der Blattebene liegen links bezüglich
der externen Knoten.
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 345
Spezialfälle (1)
Unärer Baum (M=1)
Jeder Knoten besitzt genau einen Nachfolgerknoten.
Korrespondenz
Unäre Bäume sind durch Listen darstellbar:
• die Wurzel korrespondiert zum Listenkopf
• es existiert nur ein Blattknoten (das Listenende),
der auf einen externen Knoten verweist.
Konsequenz
Listen sind nur ein Spezialfall von Bäumen!
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 346
Spezialfälle (2)
Binärbaum (M=2)
Rekursive Definition: Ein Binärbaum ist entweder
• ein externer Knoten
oder
• ein interner Knoten, der mit zwei Binärbäumen verbunden ist.
Linker Teilbaum
Erster Kindknoten eines internen Binärbaumknotens
Rechter Teilbaum
Zweiter Kindknoten eines internen Binärbaumknotens
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 347
Eigenschaften von Binärbäumen
Ausgangspunkt sei ein Binärbaum mit N internen Knoten:
Anzahl externer Knoten
N+1
Kantenanzahl
2N
Höhe h
ld N < h ≤ N
Korrespondenz zu geordneten Bäumen
Jeder beliebige geordnete allgemeine Baum kann als Binärbaum dargestellt werden: Dazu
verbindet man die linke Kante jedes Knotens mit seinem äußersten linken Nachfolger und
die rechte Kante jedes Knotens mit seinem rechten gleichgeordneten Knoten.
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 348
Eine offene Frage
Laufzeit von Sortierverfahren
Wir haben im Kapitel „Sortieren“ gesehen, dass die besten allgemeinen
Sortierverfahren in O(n log n) laufen.
Frage
Kann es effizientere allgemeine Sortierverfahren für Felder geben?
Basis der Antwort
Um diese Frage beantworten zu können, wollen wir Sortieralgorithmen mit
Hilfe sogenannter Entscheidungsbäume ausdrücken.
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 349
Entscheidungsbaum
Definition
Ein Entscheidungsbaum ist ein binärer Baum, bei dem die von einem Knoten ausgehende
Verbindung zum linken Teilbaum mit Ja und die Verbindung zum rechten Teilbaum mit Nein
beschriftet ist.
Allen inneren Knoten des Baumes ist eine Bedingung zugeordnet.
Die Blätter des Baumes drücken dann über ihren Weg von der Wurzel alle möglichen
Kombinationen dieser Bedingungen hinsichtlich erfüllt oder nicht erfüllt aus.
Entscheidungsbaum für Sortieralgorithmen
Eine Bedingung besteht aus dem Vergleich zweier Elemente der zu sortierenden Folge.
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 350
Eigenschaften
Blattanzahl
Die Blätter repräsentieren den Endzustand zwischen allen möglichen Vergleichen aller möglichen
Datenkonstellationen eines Feldes mit n Elementen.
Um die Blattanzahl zu bestimmen müssen wir die Frage beantworten, wie viele unterschiedliche
Arten es gibt, ein Feld mit n Elementen anzuordnen ➔ Antwort: Es gibt n! Permutationen.
Fehlzustandsblattknoten
Es existieren noch weitere Blattknoten, die inkonsistente Zustände ausdrücken (z.B. c<b, a<c, b<a).
Obwohl diese Blattknoten für das Ergebnis der Sortierung keine Rolle spielen, müssen sie
dahingehend berücksichtigt werden, dass die Anzahl möglicher Blattknoten nun auch größer als n!
sein kann (Anzahl möglicher Anordnungen + Fehlzustände)
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 351
Anzahl an Vergleichsoperationen
Vergleichsoperation
Eine Kante zwischen einem Knoten und seinem Elternknoten entspricht einer
Vergleichsoperation.
Sortierung einer bestimmten Datenkonstellation
Die Anzahl der Kanten auf dem Weg von der Wurzel bis zu einem Blatt (=Pfadlänge) entspricht
den notwendigen Vergleichen eines (hypothetischen) Sortieralgorithmus für eine bestimmte
Datenkonstellation.
Sortierung einer beliebigen Datenkonstellation
Die durchschnittliche Anzahl von Kanten zwischen der Wurzel und allen sinnvollen Blattknoten
entspricht der durchschnittlich benötigten Anzahl an Vergleichen eines (hypothetischen)
Sortieralgorithmus‘.
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 352
Performanz eines Sortieralgorithmus‘
Knotenanzahl eines vollständigen Binärbaums
Wir wissen bereits, dass ein vollständiger binärer Baum mit i Ebenen 2i–1 Blätter
und 2i–1–1 innere Knoten, also 2i–1 Knoten insgesamt besitzt.
Knotenanzahl eines beliebigen Binärbaums
Sei m die Anzahl der Blätter und k die Anzahl der inneren Knoten eines beliebigen
Binärbaumes mit i Ebenen. Dessen Knotenanzahl wird in der Regel kleiner als die
eines vollständigen Binärbaumes sein, d.h. k+m ≤ 2i–1.
Konsequenz
Für die Anzahl der inneren Knoten eines beliebigen Binärbaumes gilt: k ≤ 2i–1–1.
Für die Anzahl der Blätter eines beliebigen Binärbaumes gilt: m ≤ 2i–1.
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 353
Performanz eines Sortieralgorithmus‘
Blattanzahl eines Entscheidungsbaums
Ein Entscheidungsbaum ist ein Binärbaum mit mindestens n! Blättern, d.h. n! ≤ m ≤ 2i–1.
Aus dieser Ungleichung können wir ableiten, wie viele Vergleiche ein beliebiger
Sortieralgorithmus für ein Feld mit n Elementen im worst case durchführen muss.
Wir formen n! ≤ 2i–1 um in ld(n!) ≤ i–1, d.h. dass die Pfadlänge von der Wurzel bis zu
einem Blatt mindestens ld(n!) betragen muss.
ld(n!) bedeutet O(n log n), d.h. im Schnitt können wir kein besseres Verhalten für einen
Sortieralgorithmus erwarten (falls der Entscheidungsbaum nicht ausgeglichen ist, kann
es zwar kürzere Pfade geben - z.B. für sortierte Datenkonstellationen bei InsertionSort,
aber diese müssen durch längere Pfade wieder kompensiert werden).
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 354
Ende der Vorlesung
Dr. Frank Seifert
Vorlesung Datenstrukturen - Sommersemester 2016
Folie 355
Herunterladen