Übungen Algorithmische Intelligenz - Blatt 3
Abgabe 22.5.2013, Besprechung 22.5.2013
1. (Einfaches String-Matching)
Finden sie alle Vorkommen (absolute Indizes) des Wortsloveinfortune (a) mit den naivenO(nm)Algorithmus zur Mustererkennung in Texten.
(b) mit den Algorithmus von Rabin Karp. Definieren Sie dabei eine geeignete Hashfunktion auf den ASCII Zeichensatz.
(c) durch den Algorithmus von Knuth-Morris-Pratt (inklusive Konstruktion der Fehlerfunktion).
Sie finden die entsprechende Datei auf der Übungsseite zur Vorlesung.
Aufgrund der Größe des Wortschatz wird empfohlen, die drei Algorithmen (in einer Programmier- spracher Ihrer Wahl) zu implementieren!
2. (Aho-Corasick)
(a) Zeichnen Sie den Mehrwegsuchbaum (Trie) mit Fehlerfunktion zu den Zeichenketten1100110, 1011001,10101überΣ ={0,1}.
(b) Geben Sie den abgeleiteten endlichen Automaten zur Teilstringerkennung an (Zeichnung und Übergangstabelle).
(c) Finden Sie alle Vorkommen von1?0?0in10010010010110110010100110100011000.
3. (Suffixbäume)
(a) Konstruieren Sie den Suffixbaum zu der Zeichenkettebabaabaaa$einschließlich der Suf- fixlinks.
(b) Geben Sie einen Algorithmus an, um in Zeichenkette mdie längste Teilzeichenkette m0 zu finden, die mindestens zweimal inmvorkommt. Wieviele Schritte braucht Ihr Verfahren?
(c) Beschreiben Sie, wie man in einem Suffixbaum nach allen Teilzeichenketten suchen kann, die lexikographisch zwischen zwei Zeichenkettenm1 undm2fallen, z.B., liegtaccgtalexiko- graphisch zwischenacaundacct. Wieviel Schritte braucht Ihr Verfahren?
1