Ludwig-Maximilians-Universität Münhen Institut für Informatik Prof. Dr. Volker Heun Sommersemester 2016 Wiederholungsklausur 19. Oktoer 2016 Algorithmishe Bioinformatik I Vorname Name Matrikelnummer Reihe Platz Untershrift Hiermit stimme ih einer Veröffentlihung meines Klausurergenisses dieser Semestralklausur unter Verwendung meiner Matrikelnummer im Internet zu. Ja Nein (Untershrift) Allgemeine Hinweise zur Semestralklausur Vor der Prüfung ist diese Seite mit Vornamen, Namen, Matrikelnummer, Reihe und Platz leserlih mit Drukuhstaen zu versehen und zu untershreien. Bitte niht in roter oder grüner Fare zw. niht mit Bleistift shreien. Der Studentenausweis und ein amtliher Lihtildausweis sind ereit zu halten. Die reine Beareitungszeit eträgt 120 Minuten. Es sind insgesamt 40 Punkte zu erreihen, zum Bestehen sind 17 Punkte nötig. Viel Erfolg! Hörsaal verlassen von... is... von... is... Vorzeitig agegeen um... Hz A1 A2 A A4 A5 Erstkorrektur Nahkorrektur Zweitprüfer
Aufgae 1 (8 Punkte) Gi das Master-Theorem aus der Vorlesung an. Spezifiziere hierzu insesondere die drei vershiedenen Fälle und gi an, welhe Lösung der jeweilige Fall esitzt. Bestimme die Asymptotik von T(n) mithilfe des Master-Theorems aus der Vorlesung unter Angae einer der drei Fälle (siehe oen) mit Begründung zw. egründe, warum das Master-Theorem niht anwendar ist. Es gilt daei immer T(1) = 1: a) T(n) = 2 T(n/4)+ n, ) T(n) = 4 T(n/)+n 2. ) T(n) = T(n/)+n/log(n). Seien a,,d N mit > 1, sei f(n) eine Funktion und sei T(n) definiert durh die Rekursionsgleihung T(n) = a T(n/)+f(n) für n > 1 und T(1) = d. Dann gilt: Θ(n log (a) ) falls f(n) = O(n log (a) e ) für ein konstantes e > 0 Θ(n T(n) = log (a) log(n)) falls f(n) = Θ(n log (a) ) Θ(f(n)) falls f(n) = Ω(n log (a)+e ) für ein konstantes e > 0 und a f(n/) f(n) für ein konstantes < 1 a) Für das Master-Theorem erhalten wir a = 2, = 4 und f(n) = n. Es gilt log 4 (2) = 1 2 und somit f(n) = n = n 1/2 = Θ(n log 2 (4) ) = Θ(n log (a) ). Also gilt der zweite Fall des Master-Theorems und es ist T(n) = Θ(f(n)log(n)) = Θ( nlog(n)). ) Für das Master-Theorem erhalten wir a = 4, = und f(n) = n 2. Da offensihtlih 1 < log (4) < 2 gilt, gilt auh log (4) = 1 + e für ein geeignetes e (0,1). Damit erhalten wir f(n) = n 2 = Ω(n 1+e ) = Ω(n log (a)+e ) für das oige e (0,1/2). Weiter ist 4 ) 2 4 9 n2! f(n) und somit gilt der dritte Fall des Master-Theorems mit = 4 9 T(n) = Θ(f(n)) = Θ(n 2 ). < 1 und wir erhalten ) Für das Master-Theorem erhalten wir a =, = und f(n) = n/log(n). Es gilt log (a) = log () = 1. Es gilt n/log(n) = ω(n 1 e ) für alle e > 0. Also ist f(n) = n/log(n) = ω(n 1 e ) und damit f(n) O(n 1 e ) = O(n log (a) e ) für alle e > 0 und Fall 1 ist niht zutreffend. Weiter ist f(n) = n/log(n) = ω(n) und daher f(n) Θ(n) = Θ(n log (a) ). Fall 2 trifft also niht zu. Da n/log(n) = o(n), ist auh f(n) = n/log(n) Ω(n 1+e ) für alle e > 0. Das Master- Theorem ist also auh im Fall niht anwendar. [SS16] 2
Aufgae 2 (8 Punkte) Betrahte die folgende Suhwortmenge S = {a, a,, a,, a}. a) Konstruiere einen Suhwort-Baum für S nah Aho-Corasik; ) Konstruiere die Failure-Links in diesem Suhwort-Baum; ) Markiere nah dem in der Vorlesung angegeenen Algorithmus von Aho und Corasik alle Knoten darin, die einem Suhwort aus S entsprehen; d) Markiere nah dem in der Vorlesung angegeenen Algorithmus von Aho und Corasik die Knoten, für die Treffer ausgegeen werden und gee die zugehörigen Hit-Links an. e) Wende den Algorithmus von Aho-Corasik mit dem konstruierten Suhwort-Baum auf das folgende Wort an: t 1 t 11 = aa. Hinweis: Verwende vershiedene Faren, aus denen ersihtlih wird, welhe Teile des Baumes(zw. welhe Annotationen) zu welhem Aufgaenteil gehören(zeihne ggf. den Baum mehrmals). 1 5 a 2 Failure-Links sind orange und gestrihelt, Hit- Links grün und gepunktet dargestellt. Die laue Zahl i git den Knoten an, an dem versuht wird, mit s i weiterzuareiten; Bei * efindet sih der Algorithmus am Ende. 6 Es werden daei die folgenden Treffer an der entsprehenden Endposition ausgegeen: 7 4, @ 2 a,a @ 4 a @ 5 8 11 5, @ 7, @ 9 a a @ 10 a,a,a @ 11 9 10 * Der Lesarkeit wegen werden hier die Worte der Treffermenge ausgegeen, normalerweise wird die Länge zw. die daraus erehnete Startposition ausgegeen. 11 [SS16]
Aufgae (8 Punkte) Betrahte die Wörter s = BAHAMA und t = OBAMA. Berehne den ersten Shritt des Hirsherg-Algorithmus ei einem gloalen Sequenzen-Alignment für s und t zur Rekonstruktion des Traeaks. Bestimme insesondere den zw. die Shnittpunkte der Wörter s und t, d.h. die Teilwörter, für die der Hirsherg-Algorithmus rekursiv aufgerufen wird und gi das zw. die zugehörigen Alignments an. Gi dazu sowohl die eiden Taellen zur Ermittlung der Shnittpunkte an und zeihne in diesen Taellen auh die Traeak-Pfeile ein (die vom Hirsherg-Algorithmus niht verwendet werden). Die enötigten rekursiv konstruierten Alignments dürfen aus diesen Taellen agelesen werden. Die Kostenfunktion für ein Distanzmaß sei daei mit 0 für ein Math, mit für eine Sustitution und mit 2 für eine Indel-Operation gegeen. Begründe kurz in eigenen Worten, warum die Rekonstruktion eines optimalen Alignments eim Hirsherg-Algorithmus linearen Platz enötigt. B A H A M A O B A M A 0 2 4 6 8 10 2 2 4 6 8 4 5 4 2 4 6 6 7 6 4 5 7 =10 =9 =6 =6 =9 =1 4 2 0 2 4 6 6 4 2 0 2 4 8 6 4 2 0 2 10 8 6 4 2 0 Damit liegt der Shnittpunkt ei (, 2), d.h. BAH AMA versus OB AMA, oder (, ), d.h. BAH AMA versus OBA MA. Die eiden Alignments lauten: ( ) ( ) BAHAMA BAHAMA zw.. OB AMA OBA MA Der Divide-Shritt enötigt jeweils linearen Platz O(n), da nur die letzten eiden Zeilen der DP-Matrix zu speihern sind. Da der Platz in den rekursiven Aufrufen wiederverwendet werden kann ist der Platzedarf hierfür insgesamt linear. Im Conquer-Shritt wird nur das Alignment aufgeaut, das insgesamt linearen Platz O(n + m) enötigt. [SS16] 4
Aufgae 4 (8 Punkte) Zeige, dass gilt: i 4 (n i+1) 4 Θ(n 9 ). Hinweis: Verwende daei geeignete Ashätzungen. Es gilt: i 4 (n i+1) 4 Also ist n i4 (n i+1) 4 O(n 9 ). Weiter gilt n 4 n 4 = n 8 = n 9. i 4 (n i+1) 4 = 2n i= n 2n i= n 2n i= n 2n i= n i 4 (n i+1) 4 n ) 8 4 ( n ) 4 ( n 2n ) 4 2n +1 ) 4 ( 2n n (( ) 2n ) 1 +1 ) 8 1 ) n 1 n für n 6 6 n 8 6 ) 9 6) ) +1 ) ) +1 ) Also gilt n i4 (n i+1) 4 Ω(n 9 ). Zusammen gilt also n i4 (n i+1) 4 Θ(n 9 ). [SS16] 5
Aufgae 5 (8 Punkte) Für ein Wort w = w 1 w m Σ m ezeihnet w R = w m w 1 Σ m das gespiegelte Wort zu w. Konstruiere einen möglihst effizienten Algorithmus, der für ein Wort t Σ n ein längstes Teilwort von t findet, dessen gespiegeltes Wort eenfalls in t vorkommt. Hinweis: Korrektheitseweis und Laufzeitanalyse niht vergessen! Wir konstruieren nun für t t R $ mit,$ / Σ mit $ den zugehörigen Suffix-Baum T. Die Größe des Suffix-Baumes eträgt O(2n) = O(n). Mit einer Tiefensuhe entfernen wir alle Teiläume, die üer das Zeihen erreihar sind. Somit enden nun alle Pfade im Suffix-Baum mit dem Zeihen oder $. Mit einer weiteren Tiefensuhe markieren wir alle Knoten des Baumes, von denen sowohl ein Blatt erreihar ist, dessen Kantenlael mit endet, als auh ein Blatt erreihar ist, dessen Kantenlael mit $ endet. Somit ist jedes Wort w, das zu einem Pfad von der Wurzel zu einem markierten Knoten des Suffix-Baumes korrespondiert, sowohl ein Präfix eines Suffixes von t als auh ein Präfix eines Suffixes von t R. Das Wort w ist also sowohl Teilwort von t als auh von t R. Damit tauht neen dem Wort w in t auh w R in (t R ) R = t auf, da w auh in t R auftauht. Somit müssen wir mit einer weiteren Tiefensuhe nur einen tiefsten(zgl. der String-Tiefe) Knoten in diesem Suffix-Baum finden. Da sowohl die Konstruktion des Suffix-Baumes in Zeit O(2n) als auh die drei Tiefensuhen nur jeweils O(n) Zeit enötigen, ist die Gesamtaufzeit O(n). [SS16] 6