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