Sommersemester 2005 Abgabe am 10.6.2005 Prof. Dr. Stefan Posch, Dipl.-Inf. B. M¨oller
9. ¨ Ubung
” Algorithmen der Bioinformatik I“
1. Gegeben sei ein Alphabet A und das Metazeichen ? mit ? /∈ A. Es gelte die Konvention, daß das Metazeichen ? einen beliebigen String aus A∗ repr¨asentiert. Nun sei das Alphabet A¯ = A∪ {?}
gegeben. Jeder String aus A¯repr¨asentiert somit eine Menge von Strings ausA∗, wir bezeichnen sie als Suchmuster. Wir wollen im folgenden solche Muster in einem StringT mit Hilfe des Suffixbaums ST(T)suchen.
(a) Gegeben sei das SuchmusterS1? S2 ∈A¯mitS1, S2 ∈A∗. Konstruieren Sie einen Algorithmus, der das Musters einmal inT findet (bzw. das Nichtauftreten feststellt).
(b) Gegeben sei nun das allgemeine SuchmusterS1?S2· · ·?Sk. Konstruieren Sie einen Algorithmus, der das Musters einmal inT findet (bzw. das Nichtauftreten feststellt). Sch¨atzen Sie die Laufzeit ihres Algorithmus ab.
2. Skizzieren Sie den generalisierten Suffixbaum f¨ur die folgende Menge von Strings:
{ababbababba, abbaabbaabba, babbababbab}
3. Welche Schritte sind zum Entfernen eines StringsSi aus einem generalisierten Suffixbaum notwen- dig? Der Suffixbaum liege dabei wie in der Vorlesung angegeben mit einem gemeinsamen Termina- tionssymbol f¨ur alle Strings sowie mit Listen f¨ur die Markierungen in den Bl¨attern vor. L¨aßt sich die Aufgabenstellung inO(|Si|)l¨osen?
4. Entwickeln Sie einen Algorithmus, der das “Longest common substring”-Problem effizient l¨ost: Ge- geben seien zwei StringsS1, S2. Gesucht ist der l¨angste gemeinsame TeilstringLCS(S1, S2)beider Strings, d.h.
argmax{|S|:S ∈A∗, S vS1, SvS2}, wobeiP vT ⇔ ∃k, l:P =T[k . . . l].
Hinweis: Generalisierte Suffixb¨aume.