Übungen Algorithmische Intelligenz - Blatt 4
Abgabe 5.6.2013, Besprechung 5.6.2013
1. (Generalisierte Suffixbäume)
SeiSeine Menge vonkZeichenketten.
(a) Geben Sie einen effizienten Algorithmus (basierend auf Suffixbäumen) an, der für jede Zeichenkettem ∈ S bestimmt, ob meine Teilzeichenkette einer anderen Zeichenkettem0 ∈Sist.
(b) Geben Sie einen Algorithmus an, der für jedes der k2
Paare von Zeichen- ketten inS die längste gemeinsame Zeichenkette bestimmt. Die Laufzeit sollteO(kD)mitD=Pk
i=1|mi|betragen.
Hinweis: Zeigen Sie zuerstPk i=1
Pk
j=1|mi|+|mj|=O(kD).
(c) Sei nunn=|m1|=. . .=|mk|. Geben Sie einen Algorithmus an, der für jeden der k2
Paare den längsten gemeinsamen Präfix angibt. Die Laufzeit sollteO(nk+p)betragen, wobeipdie Anzahl der Paare sein soll, deren gemeinsamer Präfix nicht leer ist.
2. (Perfektes Hashing)
(a) Berechnen Sie den perfekten Hashwert der Permutation(5 8 3 6 1 9 2 4 7) entsprechend der lex. Ordnung und Myrvold & Ruskey.
(b) Berechnen Sie die Permutation von 421.123.837.658 in der Permutations- gruppeS15entsprechend der lex. Ordnung und nach Myrvold & Ruskey.
3. (Sub- und Approximative Zeichenkettensuche)
(a) Finden Sie die Teilzeichenkettelogininalgorithm engineering mit Hilfe der Dynamischen Programmierung (Tabelle).
(b) Formen Sie das Wort Samstagmit möglichst wenig Editieroperationen (Löschen, Einfügen und Ersetzen) in das WortSonntagum.
4. (Teilmengensuche) Generieren Sie alle möglichen Kreuzworträtsel zu
1
2 3 4
5
und dem Wörterbuch {AE,EX,SE,SP,TT,AST,ERN,ESA,ETA,ETE,GPU, SSD UTE,HART,PART,TEIL,ZART}.
1