DIGITALE BÄUME – TRIES

Werbung
DIGITALEBÄUME–
TRIES
Algorithmen&Datenstrukturen
Prof.Dr.WolfgangSchramm
Übersicht
1
0.
Einführung
1. 
2. 
Algorithmen
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
LernzieledesKapitels
2
2
¨ 
¨ 
¨ 
¨ 
¨ 
Verstehen,waseindigitaler
Baumistundwieer
funkHoniert?
KennenlernenvonTriesund
ihrerArbeitsweise.
ImplemenHerungvonTries
kennenlernen.
KennenlernenderOperaHonen
aufTries.
SpezielleTries-Patricia-Bäumekennenlernen.
Suchbäume-bisher
4
o 
o 
InjedemaufgesuchtenKnotengibteseinenvollständigen
VergleichzwischenSchlüsselwerten.
IstderSuchschlüsselnichtimBaum,wirddieserstineinem
BlaSknotenfestgestellt.
⇒ AufwandfürvollständigeSchlüsselvergleicheistgroß.
⇒ SpeicherplatzfürvollständigeSchlüsselspeicherungisthoch.
5
IdeefüreineandereOrganisaHonvonSuchbäumen:
DigitaleSuchbäume
o 
Idee:InjedemaufgesuchtenKnotenwerden
aufeinanderfolgendeTeiledesSuchschlüsselsmiteinander
verglichen:
⇒  JedeunterschiedlicheFolgevonTeilschlüsselnergibteineneigenen
SuchwegimBaum
⇒  AlleSchlüsselmitgleichemPräfixhabeninderLängedesPräfixes
dengleichenSuchweg.
⇒  DieZiffernoderZeichendarstellungderverwendetenSuchschlüssel
werdenausgenutzt.
⇒  Schlüssel=FolgevonalphabeHschenZeichen,Ziffern,Bitsoder
GruppendieserElemente.
⇒  MächHgkeitdesAlphabetsfürdieSchlüsselteile=màm-WegeBaum.
6
IdeefüreineandereOrganisaHonvonSuchbäumen:
DigitaleSuchbäume
⇒  Au^audesDigitalbaums:ZerlegungdesSchlüsselsderLängeLinL/k
TeilegleicherLänge.
⇒  AneinanderreihungderSchlüsselteile=WegimDigitalbaum;i-te
Kante=i-terTeildesSchlüssels.
⇒  Baum=Menge,derfüralleSchlüsselzuspeicherndenWege.
⇒  DieMarkierungenallervoneinemKnotenabgehendenKantensind
paarweiseverschieden.
⇒  AussehendesBaumshängtabvonderdarzustellenden
Schlüsselmenge.
⇒  HöhedesBaums=AnzahlderTeiledeslängstenSchlüsselwertes;bei
festerSchlüssellängeLàh=L/k
Digitalbaum:Beispiel
7
•  Schlüssel: 6-stellige Zahlen (L = 6)
•  Schlüsselteile = Ziffernpaare (k = 2)
•  Grad des Baums m = 100
17
02
34
170234
25
17
17
170225 171717
21
39
99
15
17
01
50
20
219901
391550 391720
47
49
11
10
394910
25
394925
47
471147
Tries
8
o 
SpezielleImplemenHerungvondigitalenBäumen.
¤ 
o 
DigitalleitetsichausderBehandlungderSchlüsselab.Diesewerden
alsZeichen-oderZiffernfolgeneinesZahlensystemszurBasisn
betrachtet.
n-äreBaumstruktur,wobein=AnzahlderZeichendes
AlphabetsdieserZeichenkeSen.
Historie&Namensgebung
9
Trie, Try, Tree ?
o 
1959vonReneedelaBriandaisentwickelt.
1960NamensgebungvonEdwardFredkin.
o 
UrsprungvomenglischenWort„Retrieval“.
o 
Zweck:SuchenundWiederauffindenvonZeichenkeSen.
o 
Struktur1/3
11
o 
o 
o 
o 
o 
FüreinAlphabetmitNZeichenenthältjederKnoteneinFeld
mitNVerweisen.
FüreinAlphabetohneUmlaute,ausschließlichbestehendaus
Großbuchstaben,könnendieKnotendemnach26Verweise
aufFolgeknotenenthalten.
WörterwerdenalsBuchstabenfolgenaufgefasst.
Verzweigungengibtesdort,woverschiedeneBuchstaben
unterschiedenwerdenmüssen.
KeinWortdarfPräfixeinesanderensein.
¤ 
Daskannmanlösen,indemmaneinimAlphabetnichtenthaltenes
Zeichen(z.B.Blank)anjedesWortanhängt.
Struktur2/3
12
o 
o 
o 
DieeigentlichenSchlüsselwerdennurindenBlaSknoten
gespeichert.
TeilschlüsselderinnerenKnotendienenhierbeinurzur
Wegfindung.
StruktureinesTrieistunabhängigderEinfügereihenfolge.D.h.
fürjedeMengevonunterschiedlichenSchlüsselnexisHertein
eindeuHgerTrie.
Struktur3/3
13
26-ärer Trie
Trie:Beispiel1
14
A
B
BE
N
R
T
ANNE
AT
K
ARK
T
ART
Suchen1/3
16
A
B
BE
N
R
T
ANNE
AT
K
ARK
• 
T
• 
• 
Suchschlüssel: AT
Vergleich des ersten Zeichens AT
ART
Ausgehend von der Wurzel wird für jedes Zeichen des Suchschlüssels der jeweilige
Verweis verfolgt.
Suchen2/3
17
A
B
BE
N
R
T
ANNE
AT
K
ARK
• 
T
• 
• 
Suchschlüssel: AT
Vergleich des nächsten Zeichens AT
ART
Ausgehend von der Wurzel wird für jedes Zeichen des Suchschlüssels der jeweilige
Verweis verfolgt.
Suchen3/3
18
o 
ErfolgloseSuchebei:
¤ 
¤ 
EndeaufeinemBlaSdasnichtdemSuchschlüsselentspricht.
EndeaufeinemInnerenKnotenderkeinenVerweisaufdaszu
testendeZeichenenthält.
Einfügen1/5
19
o 
o 
o 
ZumEinfügenwirdzuerstderAlgorithmuszurSuche
angewandt.
FallsderSchlüsselimTrievorhandenist,wirddieOperaHon
abgebrochen.
ImFalledassderSchlüsselnochnichtimTrievorhandenist,
wirddieSucheimletztennochübereinsHmmendenKnoten
unterbrochen.
Einfügen2/5
20
o 
o 
FallsdieSucheaufeineminnerenKnotenendet,wirdein
neuesBlaSmitdemSuchschlüsselgeneriertundder
passendeVerweisdesinnerenKnotensmitdiesem
verknüpr.
Beispiel:ARI
Einfügen3/5
21
Einzufügender Schlüssel: ARI
A
A
B
B
BE
N
R
T
ANNE
K
ARK
BE
N
AT
T
ANNE
T
I
ART
R
ARI
AT
K
ARK
T
ART
Einfügen4/5
22
o 
o 
FallsdieSucheineinemBlaSendet,müssenfüralleZeichen
indenenderSuchschlüsselundderSchlüsseldesBlaSes
übereinsHmmenneueinnereKnotenangelegtwerden.
Beispiel:ANI
Einfügen5/5
23
Einzufügender Schlüssel: ANI
A
A
B
B
BE
R
N
BE
T
ANNE
R
N
T
AT
I
ARI
K
ARK
T
ART
AT
I
N
ANI
ANNE
I
ARI
K
ARK
T
ART
Aufwand/Höhe
24
o 
o 
Suchaufwandim„Worst-Case“undErfolgsfalleinesSchlüssel
derLängemistO(m).
DieHöheeinesTrieswirddurchdieLängedeslängsteninihm
enthaltenenSchlüsselsbesHmmt.
Speicherkonsum1/5
25
Speicherkonsum2/5
26
Auffällig:DieImplemenHerungderKnotenistsehr
speicheraufwändig.
o  BesondersinHeferenEbeneneinesTrieswerdenhier
nursehrwenigeArrayposiHonenbelegt.
o  Selteneodersogarnichtvorhandene
BuchstabenkombinaHonenführenzuleerenVerweisen:
o 
¤ 
¤ 
SchlüsseldiemitX,Ybeginnen
KombinaHonenwieXX,XZ,etc.
Speicherkonsum3/5
27
Symbol
Leaf
Next
Level
Next
Symbol
¨ 
ImplemenHerungeinesKnotensalsverkeSeteListezurSpeicheropHmierung.
Symbol:SpeicherungdesZeichensdasdieKante(nextLevel)zumnächsten
Knotenbezeichnet.
Leaf:ReferenzaufeinBlaS,ansonstenNULL.
nextLevel:ReferenzaufdennächstenKnoten,ansonstenNULL.
nextSymbol:ReferenzaufdasnächsteElementderListe.
¨ 
Nachteil:LangsameralsStaHscheArrays.
¨ 
¨ 
¨ 
¨ 
Speicherkonsum4/5
28
A
B
BE
N
R
T
ANNE
AT
K
ARK
T
ART
Speicherkonsum5/5
29
A
B
Next
NULL Next
Level Symbol
NULL
NULL
BE
N
NULL
ANNE
Next
Symbol
R
Next
NULL Next
Level Symbol
...
T
NULL
AT
Next
Symbol
BinäredigitaleSuchbäume/BinäreTries
30
o 
UnterschiedzumBinärbaumundDigitalbaum:indemBaum
wirdnichtentsprechenddesErgebnissesdesVergleiches
zwischendenSchlüsselnverzweigt,sondernentsprechend
derBitsdesSchlüssels.
¤ 
¤ 
¤ 
o 
ErsteEbeneàdasführendesBit.
ZweiteEbeneàdaszweiteführendeBit.
Solangeweiter,biseinäußererKnotenvorgefundenwird.
DieAlgorithmenfürbinäredigitaleSuchbäumesindprakHsch
dieselbenwiefürBinärbäume.EinzigerUnterschied:die
VergleichsoperaHonderSchlüssel.
¤ 
DieauszuführendenOperaHonenunterscheidensichim
wesentlichennichtvondenbishervorgestelltenTries.
BinäreTries
35
¨ 
¨ 
DielinkeKanteeinesKnotensverweistaufdie
TeilbäumediealsführendesBit0haben.
DierechteKanteeinesKnotensverweistaufdie
TeilbäumediealsführendesBit1haben.
36
1.Einfügen:A
1 A 00001
19 S 10011
5 E 00101
18 R 10010
3 C 00011
Beispiel:
SchriSweisesEinfügen1/5
37
2.Einfügen:S
1 A 00001
19 S 10011
5 E 00101
18 R 10010
3 C 00011
Beispiel:
SchriSweisesEinfügen2/5
38
3.Einfügen:E
1 A 00001
19 S 10011
5 E 00101
18 R 10010
3 C 00011
Beispiel:
SchriSweisesEinfügen3/5
39
4.Einfügen:R
1 A 00001
19 S 10011
5 E 00101
18 R 10010
3 C 00011
Beispiel:
SchriSweisesEinfügen4/5
40
5.Einfügen:C
1 A 00001
19 S 10011
5 E 00101
18 R 10010
3 C 00011
Beispiel:
SchriSweisesEinfügen5/5
Wörter
41
o 
o 
FürWörtergeltendieselbenRegeln.
ZurGenerierungvonWortenwerdeneinfachdieBitstrings
ihrereinzelnenZeichenzusammengesetzt.
¤ 
z.B.A=00001,S=10011
AS=0000110011
BinäreTries-Eigenscharen
42
o 
o 
DerungünsHgsteFallfürbinäreTriesistvielbesseralsfür
binäreSuchbäume,wenndieAnzahlderSchlüsselgroßist
unddieSchlüsselnichtlangsind.
DieLängedeslängstenPfadesinbinäremTrie=längste
ÜbereinsHmmungindenführendenBitszwischenzwei
beliebigenSchlüsselnimBaum.Dieseistfürviele
AnwendungenmeistrelaHvklein(z.B.wenndieSchlüsselaus
zufälligenBitsbestehen).
Ausblick
45
o 
MängelvonTries(unteranderem):
¤ 
¤ 
o 
EinwegeverzweigungenderBinärTries
UnterschiedlicheArtenvonKnotenziehendurchausKomplikaHonen
mitsich.
UmsolcheProblemezuvermeidenundauchum
SpeicherplatzzusparenwurdenPATRICIATriesentwickelt.
Patricia-Bäume
46
AnsatzvonD.R.Morrissonumdie2Unzulänglichkeitender
digitalenTrieszuvermeiden:
o  PracHcalAlgorithmToRetrieveInformaHonCodedIn
Alphanumeric(ZweckmäßigerAlgorithmuszum
WiederauffindenvonalphanumerischkodierterInformaHon)
Patricia-Bäume-DefiniHon
47
o 
Grundidee:Teile,diefürdenVergleichbzw.dasVerzweigen
irrelevantsind,werdenübersprungen.
¤ 
¤ 
o 
o 
JederKnotenenthältdieAnzahlderübersprungenenBitsbzw.
Zeichen.
DamitkenntmandiePosiHoninderZeichenkeSe,diefürdenweiteren
Vergleichheranzuziehenist.
GegenübereinfachemTrieèkomprimierteDarstellung.
Suchaufwand,speziellebeisehrlangenundwenigerhäufigen
Wörternwirdreduziert.
Patricia-Bäume-Beispiel
48
e
2
Oberkante
i
Objektiv
Anzahl der
übersprungenen Zeichen
j
4
m
2
n
Objektmenge
Zahl in den Knoten = # der
zu überspringenden Zeichen
t
Objektmethode
NochFragen?
49
49
Quellen
50
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
AlgorithmeninJava–RobertSedgewick
AlgorithmenundDatenstrukturen–GunterSaake,Kai-UweSaSler
DatenstrukturenundAlgorithmen–HaraldReß,GünterViebeck
Herunterladen