• Keine Ergebnisse gefunden

Algorithmische Bioinformatik I

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmische Bioinformatik I"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Ludwig-Maximilians-Universit¨at M¨unchen Institut f¨ur Informatik

Prof. Dr. Volker Heun Markus Joppich Jens Quedenfeld

Sommersemester 2016 Programmieraufgabe 18. Mai 2016

Algorithmische Bioinformatik I

Abgabetermin: Donnerstag den 2. Juni, vor der Vorlesung

Aufgabe 1 (Programmieraufgabe 12P)

Modifiziere den Algorithmus von Knuth, Morris und Pratt und den Algorithmus von Boyer und Moore, so, dass er alle Vorkommen eines Suchwarts s ∈ Σm in einem Text t ∈ Σn findet.

Implementiere diese Algorithmen f¨ur die oben genannte Modifikationen sowie die naive Suche in Java.

Beachten Sie folgende Vorgehensweise bei der Implementierung:

• Die Ausgabe f¨ur alle drei Varianten ist gleich.

• Start und Ende einer L¨osung bilden ein Intervall.

• Der Aufruf der bereits in Java implementierten Suche wird mit 0 Punkten bewertet.

Dies gilt auch f¨ur RegEx-Aufrufe, etc.

Da die Ausgabe von allen drei Varianten gleich ist, empfiehlt es sichwiederverwendbare Funktionen zu ¨uberlegen (insbesondere die auch die Verwendung einer abstrakten Klasse).

Beachten Sie dies beim Entwurf Ihrer Implementierung. Die Abgabe erfolgt ¨uben den Abgabeserver https://services.bio.ifi.lmu.de/abgabeserver.

Aufruf: java -jar gruppennname_blatt02.jar [kmp|bm|naive] "s0. . . sm" "t0. . . tn"

Das erste Argument ∈ { kmp, bm, naive } gibt an, ob die Knuth-Morris-Pratt-, Boyer- Moore- oder naive Version gew¨ahlt werden soll. Sollten Sie eine Variante noch nicht im- plementiert haben, lassen Sie die Ausgabe einfach leer (oder rufen Sie eine implementierte Variante auf). Kombinieren Sie bei Boyer-Moore sowohl die bad-characterals auch die strong good-suffix Regel.

Das zweite Argument gibt das zu suchende Wort s an, das dritte Argument einen Referenz-/Datenbank-/zu durchsuchenden Stringt.

Die Ausgabe sollf¨ur jedes gefundene Vorkommenzeilenweise und durch Tabulator/tab- getrennt jeweils das gefundene Wort, Start-, End-Position in t sowie die Anzahl ben¨o- tigter Vergleiche angeben. Das erste Zeichen in t hat den Index 0.

Bitte vergessen Sie nicht, dass Ihrejar-Datei auchIhren Source-Code enthaltenmuss!

(2)

Beispiel f¨ur naive:

s: C C T T T T G C

t: GCTTCTGCTA C C T T T T G C idx 0123456789 10 11 12 13 14 15 16 17

Ausgabe:

CCTTTTGC \t 10 \t 17 \t 21

2

Referenzen

ÄHNLICHE DOKUMENTE

In der Regel werden die ¨ Ubungsbl¨atter mittwochs in der Vorlesung ausgegeben und sind in der darauf folgenden Woche mittwochs in der Vorlesung abzugeben (alter- nativ

Vervollst¨andige die folgende Tabelle (Herleitung bitte auch angeben), in der die Ein- gabegr¨oßen angegeben sind, f¨ur die der i-te Algorithmus auf dem SuperComputer (ziemlich)

Ludwig-Maximilians-Universit¨at M¨unchen Institut f¨ur

Ludwig-Maximilians-Universit¨at M¨unchen Institut f¨ur

Ludwig-Maximilians-Universit¨at M¨unchen Institut f¨ur

Dies ist ein Bonus-Blatt, d.h. welche Annotationen) zu welchem Aufgabenteil geh¨oren

Entwirf einen effizienten Algorithmus, der in einem Text t das l¨angste Teilwort w findet, das genau zweimal in t als Teilwort auftritt... Hinweis: Korrektheitsbeweis

im H¨orsaal E006 im Hauptgeb¨aude der LMU eine Informationsveranstaltung f¨ur Studierende der Bioinformatik zum Hauptstudium (5. Fachsemester) im Bachelor. und zum ¨ Ubergang in