• Keine Ergebnisse gefunden

DIGITALE BÄUME – TRIES

N/A
N/A
Protected

Academic year: 2021

Aktie "DIGITALE BÄUME – TRIES"

Copied!
42
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm

DIGITALE BÄUME –

TRIES

(2)

1

Übersicht

0. Einführung 1.  Algorithmen

2.  Eigenschaften von Programmiersprachen 3.  Algorithmenparadigmen

4.  Suchen & Sortieren 5.  Hashing

6.  Komplexität von Algorithmen 7.  Abstrakte Datentypen (ADT) 8.  Listen

9.  Bäume 10.  Graphen

(3)

2

Lernziele des Kapitels

¨  Verstehen, was ein digitaler Baum ist und wie er

funkHoniert?

¨  Kennenlernen von Tries und ihrer Arbeitsweise.

¨  ImplemenHerung von Tries kennenlernen.

¨  Kennenlernen der OperaHonen auf Tries.

¨  Spezielle Tries - Patricia-Bäume - kennenlernen.

2

(4)

4

Suchbäume - bisher

o  In jedem aufgesuchten Knoten gibt es einen vollständigen Vergleich zwischen Schlüsselwerten.

o  Ist der Suchschlüssel nicht im Baum, wird dies erst in einem BlaSknoten festgestellt.

 Aufwand für vollständige Schlüsselvergleiche ist groß.

Speicherplatz für vollständige Schlüsselspeicherung ist hoch.

(5)

5

Idee für eine andere OrganisaHon von Suchbäumen:

Digitale Suchbäume

o  Idee: In jedem aufgesuchten Knoten werden

aufeinanderfolgende Teile des Suchschlüssels miteinander verglichen:

Jede unterschiedliche Folge von Teilschlüsseln ergibt einen eigenen Suchweg im Baum

Alle Schlüssel mit gleichem Präfix haben in der Länge des Präfixes den gleichen Suchweg.

Die Ziffern oder Zeichendarstellung der verwendeten Suchschlüssel werden ausgenutzt.

Schlüssel = Folge von alphabeHschen Zeichen, Ziffern, Bits oder Gruppen dieser Elemente.

MächHgkeit des Alphabets für die Schlüsselteile = m à m-Wege- Baum.

(6)

6

Idee für eine andere OrganisaHon von Suchbäumen:

Digitale Suchbäume

Au^au des Digitalbaums: Zerlegung des Schlüssels der Länge L in L/k Teile gleicher Länge.

Aneinanderreihung der Schlüsselteile = Weg im Digitalbaum; i-te Kante = i-ter Teil des Schlüssels.

Baum = Menge, der für alle Schlüssel zu speichernden Wege.

Die Markierungen aller von einem Knoten abgehenden Kanten sind paarweise verschieden.

Aussehen des Baums hängt ab von der darzustellenden Schlüsselmenge.

Höhe des Baums = Anzahl der Teile des längsten Schlüsselwertes; bei fester Schlüssellänge L à h = L/k

(7)

7

Digitalbaum: Beispiel

17 21 39 47

02 17 99 15 17 49 11

47

10 25

20 50

01 17

34 25

170234 170225 171717 219901 391550 391720 394910 394925 471147

•  Schlüssel: 6-stellige Zahlen (L = 6)

•  Schlüsselteile = Ziffernpaare (k = 2)

•  Grad des Baums m = 100

(8)

8

Tries

o  Spezielle ImplemenHerung von digitalen Bäumen.

¤  Digital leitet sich aus der Behandlung der Schlüssel ab. Diese werden als Zeichen- oder Ziffernfolgen eines Zahlensystems zur Basis n

betrachtet.

o  n-äre Baumstruktur, wobei n = Anzahl der Zeichen des Alphabets dieser ZeichenkeSen.

(9)

9

Historie & Namensgebung

o  1959 von Renee de la Briandais entwickelt.

o  1960 Namensgebung von Edward Fredkin.

o  Ursprung vom englischen Wort „Retrieval“.

o  Zweck: Suchen und Wiederauffinden von ZeichenkeSen.

Trie, Try, Tree ?

(10)

11

Struktur 1/3

o  Für ein Alphabet mit N Zeichen enthält jeder Knoten ein Feld mit N Verweisen.

o  Für ein Alphabet ohne Umlaute, ausschließlich bestehend aus Großbuchstaben, können die Knoten demnach 26 Verweise auf Folgeknoten enthalten.

o  Wörter werden als Buchstabenfolgen aufgefasst.

o  Verzweigungen gibt es dort, wo verschiedene Buchstaben unterschieden werden müssen.

o  Kein Wort darf Präfix eines anderen sein.

¤  Das kann man lösen, indem man ein im Alphabet nicht enthaltenes Zeichen (z.B. Blank) an jedes Wort anhängt.

(11)

12

Struktur 2/3

o  Die eigentlichen Schlüssel werden nur in den BlaSknoten gespeichert.

o  Teilschlüssel der inneren Knoten dienen hierbei nur zur Wegfindung.

o  Struktur eines Trie ist unabhängig der Einfügereihenfolge. D.h.

für jede Menge von unterschiedlichen Schlüsseln exisHert ein eindeuHger Trie.

(12)

13

Struktur 3/3

26-ärer Trie

(13)

14

Trie: Beispiel 1

A B

N R T

BE

K T

ANNE

ARK ART

AT

(14)

16

Suchen 1/3

•  Ausgehend von der Wurzel wird für jedes Zeichen des Suchschlüssels der jeweilige Verweis verfolgt.

A B

N R T

BE

K T

ANNE

ARK ART

AT

•  Suchschlüssel: AT

•  Vergleich des ersten Zeichens AT

(15)

17

Suchen 2/3

•  Ausgehend von der Wurzel wird für jedes Zeichen des Suchschlüssels der jeweilige Verweis verfolgt.

A B

N R T

BE

K T

ANNE

ARK ART

AT

•  Suchschlüssel: AT

•  Vergleich des nächsten Zeichens AT

(16)

18

Suchen 3/3

o  Erfolglose Suche bei:

¤  Ende auf einem BlaS das nicht dem Suchschlüssel entspricht.

¤  Ende auf einem Inneren Knoten der keinen Verweis auf das zu testende Zeichen enthält.

(17)

19

Einfügen 1/5

o  Zum Einfügen wird zuerst der Algorithmus zur Suche angewandt.

o  Falls der Schlüssel im Trie vorhanden ist, wird die OperaHon abgebrochen.

o  Im Falle dass der Schlüssel noch nicht im Trie vorhanden ist, wird die Suche im letzten noch übereinsHmmenden Knoten unterbrochen.

(18)

20

Einfügen 2/5

o  Falls die Suche auf einem inneren Knoten endet, wird ein neues BlaS mit dem Suchschlüssel generiert und der

passende Verweis des inneren Knotens mit diesem verknüpr.

o  Beispiel: ARI

(19)

21

Einfügen 3/5

A B

N R T

BE

K T

ANNE

ARK ART

AT

A B

N R T

BE

K T

ANNE

ARI ART

AT

ARK I

Einzufügender Schlüssel: ARI

(20)

22

Einfügen 4/5

o  Falls die Suche in einem BlaS endet, müssen für alle Zeichen in denen der Suchschlüssel und der Schlüssel des BlaSes

übereinsHmmen neue innere Knoten angelegt werden.

o  Beispiel: ANI

(21)

23

Einfügen 5/5

ANNE

A B

N R T

BE

K T

ARI ART

AT

ARK I

A B

N R T

BE

K T

ARI ART

AT

ARK I

ANNE ANI

I N

Einzufügender Schlüssel: ANI

(22)

24

Aufwand / Höhe

o  Suchaufwand im „Worst-Case“ und Erfolgsfall eines Schlüssel der Länge m ist O(m).

o  Die Höhe eines Tries wird durch die Länge des längsten in ihm enthaltenen Schlüssels besHmmt.

(23)

25

Speicherkonsum 1/5

(24)

26

Speicherkonsum 2/5

o 

Auffällig: Die ImplemenHerung der Knoten ist sehr speicheraufwändig.

o 

Besonders in Heferen Ebenen eines Tries werden hier nur sehr wenige ArrayposiHonen belegt.

o 

Seltene oder sogar nichtvorhandene

BuchstabenkombinaHonen führen zu leeren Verweisen:

¤  Schlüssel die mit X,Y beginnen

¤  KombinaHonen wie XX, XZ, etc.

(25)

27

¨  ImplemenHerung eines Knotens als verkeSete Liste zur SpeicheropHmierung.

¨  Symbol: Speicherung des Zeichens das die Kante (nextLevel) zum nächsten Knoten bezeichnet.

¨  Leaf: Referenz auf ein BlaS, ansonsten NULL.

¨  nextLevel: Referenz auf den nächsten Knoten, ansonsten NULL.

¨  nextSymbol: Referenz auf das nächste Element der Liste.

¨  Nachteil: Langsamer als StaHsche Arrays.

Speicherkonsum 3/5

Symbol Leaf Next

Level Next Symbol

(26)

28

Speicherkonsum 4/5

A B

N R T

BE

K T

ANNE

ARK ART

AT

(27)

29

A NULL Next

Level Next Symbol

N NULL Symbol Next R NULL Next

Level Next

Symbol T NULL Next

Symbol

B NULL NULL

ANNE

BE

. . .

AT

Speicherkonsum 5/5

(28)

30

Binäre digitale Suchbäume / Binäre Tries

o  Unterschied zum Binärbaum und Digitalbaum: in dem Baum wird nicht entsprechend des Ergebnisses des Vergleiches zwischen den Schlüsseln verzweigt, sondern entsprechend der Bits des Schlüssels.

¤  Erste Ebene à das führendes Bit.

¤  Zweite Ebene à das zweite führende Bit.

¤  Solange weiter, bis ein äußerer Knoten vorgefunden wird.

o  Die Algorithmen für binäre digitale Suchbäume sind prakHsch dieselben wie für Binärbäume. Einziger Unterschied: die

VergleichsoperaHon der Schlüssel.

¤  Die auszuführenden OperaHonen unterscheiden sich im wesentlichen nicht von den bisher vorgestellten Tries.

(29)

35

Binäre Tries

¨ 

Die linke Kante eines Knotens verweist auf die Teilbäume die als führendes Bit 0 haben.

¨ 

Die rechte Kante eines Knotens verweist auf die

Teilbäume die als führendes Bit 1 haben.

(30)

36

Beispiel:

SchriSweises Einfügen 1/5

1. Einfügen: A

1 A 00001 19 S 10011 5 E 00101 18 R 10010 3 C 00011

(31)

37

Beispiel:

SchriSweises Einfügen 2/5

2. Einfügen: S

1 A 00001 19 S 10011 5 E 00101 18 R 10010 3 C 00011

(32)

38

Beispiel:

SchriSweises Einfügen 3/5

3. Einfügen: E

1 A 00001 19 S 10011 5 E 00101 18 R 10010 3 C 00011

(33)

39

Beispiel:

SchriSweises Einfügen 4/5

4. Einfügen: R

1 A 00001 19 S 10011 5 E 00101 18 R 10010 3 C 00011

(34)

40

Beispiel:

SchriSweises Einfügen 5/5

5. Einfügen: C

1 A 00001 19 S 10011 5 E 00101 18 R 10010 3 C 00011

(35)

41

Wörter

o  Für Wörter gelten dieselben Regeln.

o  Zur Generierung von Worten werden einfach die Bitstrings ihrer einzelnen Zeichen zusammengesetzt.

¤  z.B. A=00001, S=10011 AS=0000110011

(36)

42

Binäre Tries - Eigenscharen

o  Der ungünsHgste Fall für binäre Tries ist viel besser als für binäre Suchbäume, wenn die Anzahl der Schlüssel groß ist und die Schlüssel nicht lang sind.

o  Die Länge des längsten Pfades in binärem Trie = längste ÜbereinsHmmung in den führenden Bits zwischen zwei beliebigen Schlüsseln im Baum. Diese ist für viele

Anwendungen meist relaHv klein (z. B. wenn die Schlüssel aus zufälligen Bits bestehen).

(37)

45

Ausblick

o  Mängel von Tries (unter anderem):

¤  Einwegeverzweigungen der BinärTries

¤  Unterschiedliche Arten von Knoten ziehen durchaus KomplikaHonen mit sich.

o  Um solche Probleme zu vermeiden und auch um

Speicherplatz zu sparen wurden PATRICIA Tries entwickelt.

(38)

46

Patricia-Bäume

Ansatz von D. R. Morrisson um die 2 Unzulänglichkeiten der digitalen Tries zu vermeiden:

o  PracHcal Algorithm To Retrieve InformaHon Coded In Alphanumeric (ZweckmäßigerAlgorithmus zum

Wiederauffinden von alphanumerisch kodierter InformaHon)

(39)

47

Patricia-Bäume - DefiniHon

o  Grundidee: Teile, die für den Vergleich bzw. das Verzweigen irrelevant sind, werden übersprungen.

¤  Jeder Knoten enthält die Anzahl der übersprungenen Bits bzw.

Zeichen.

¤  Damit kennt man die PosiHon in der ZeichenkeSe, die für den weiteren Vergleich heranzuziehen ist.

o  Gegenüber einfachem Trie è komprimierte Darstellung.

o  Suchaufwand, spezielle bei sehr langen und weniger häufigen Wörtern wird reduziert.

(40)

48

Patricia-Bäume - Beispiel

2

2

t

e j

i

n

Oberkante 4

Objektmethode Objektmenge

Objektiv

Zahl in den Knoten = # der zu überspringenden Zeichen

m

Anzahl der

übersprungenen Zeichen

(41)

49

Noch Fragen?

49

(42)

50

Quellen

hSp://linux.thai.net/~thep/datrie/datrie.html

hSp://www.csse.monash.edu.au/~lloyd/HldeAlgDS/Tree/Trie/

hSp://en.wikipedia.org/wiki/Trie hSp://de.wikipedia.org/wiki/Trie

hSp://tom.biodome.org/briandais.html Algorithmen in Java – Robert Sedgewick

Algorithmen und Datenstrukturen – Gunter Saake, Kai-Uwe SaSler Datenstrukturen und Algorithmen – Harald Reß, Günter Viebeck

Referenzen

ÄHNLICHE DOKUMENTE

Das Neujahrskon- zert in Zusammenarbeit mit der Stadt Königstein und gefördert von der Taunus Sparkasse, ist seit einigen Jahren ein Publi- kumsmagnet nicht nur für

Im Oktober werden dann die 25 Kastanien von der Hohenzollernstraße bis zu den Schmuckhöfen der Ebertsiedlung gefällt und noch in diesem Jahr durch 18 Amberbäume, die sich vor

Ziel ist es, das bürgerschaftliche Engagement im Hinblick auf die anstehenden Veränderungen durch die Digitalisierung zu stärken sowie Handlungsempfehlun- gen für Politik

Die Corona-Krise hat die digitale Transformation vieler Unternehmen beschleunigt. Bereits vor der Krise war die Sicherung der Wettbewerbsfähigkeit für Unternehmen durch mehr

Nur der Inhaber der Karte, al- so der Arzt, ist nach dem Einführen der Karte in ein Lesegerät und nach der Eingabe einer Geheimnummer in der Lage, die auf dem Computer ge-

Neue Operationsschlüssel wurden für sechs Indika- tionen vorgeschlagen: The- rapien für enterale und par- enterale Ernährung und In- fusionstherapie; Differenzie- rung

Auch wenn der Baum einer Bebauung im Weg ist, die nicht anders geplant werden kann, kann sich der Eigentümer eine Genehmigung bei der Stadt ein- holen.. Diese ist erfahrungsgemäß

In München überreicht die Bayerische Umweltministerin Ulrike Scharf dem BUND Naturschutz (BN) heute den Förderbescheid des Bayerischen Natur- schutzfonds für das Projekt „Neue