1. Aufgabe 2. Aufgabe 3. Aufgabe - fbi.h

Werbung
Algorithmik
Sommersemester 2010
Prof. Dr. Steffen Lange
3. Übungsblatt
1. Aufgabe
Es sei s ein Binärstring der Länge n. Der folgende Divide and Conquer –Algorithmus kann verwendet werden, um zu bestimmen, wie oft die Ziffer 1 im Binärstring s vorkommt.
(i) Falls s der Binärstring 0 ist, gib eine 0 zurück. Falls s der Binärstring 1
ist, gib eine 1 zurück.
(ii) Andernfalls zerlege s in zwei Binärstrings s1 und s2 , deren Länge sich maximal um eins unterscheidet. Wende den Divide & Conquer –Algorithmus
auf die Binärstrings s1 und s2 an. Bestimme die Summe der als Ergebnis
zurückgegebenen Zahlen x1 und x2 und gib die Summe x1 + x2 zurück.
Geben Sie eine einfache Funktion f (.) an, die sowohl eine obere als auch eine untere Schranke für die Laufzeit des vorgestellten Divide & Conquer –Algorithmus
ist.
Hinweis: Gehen Sie bei Ihrer Laufzeitanalyse der Einfachheit halber davon
aus, daß (i) in konstanter Zeit realisiert werden kann und daß in (ii) sowohl die
beiden Binärstrings s1 und s2 als auch die Summe der zurückgegebenen Zahlen
x1 und x2 in konstanter Zeit bestimmt werden können.
2. Aufgabe
Illustrieren Sie die Arbeitsweise des in der Vorlesung vorgestellten Algorithmus
zur Bestimmung der Länge der längsten gemeinsamen Zeichenkette zweier gegebener Zeichenketten w1 und w2 anhand des folgenden Beispiels:
• w1 = bontsabib
• w2 = aboanasai
3. Aufgabe
Es seien u = u0 · un und v = v 0 · vm zwei Zeichenketten der Länge n bzw.
m. Ferner sei w = w0 · wk eine Zeichenkette der Länge k, welche eine längste
gemeinsame Teilzeichenkette von u und v ist.
Zeigen Sie, daß die folgenden Aussagen richtig sind!
1
(i) Wenn un = vm gilt, so ist wk = un .
(ii) Wenn un = vm gilt, so ist w0 eine längste gemeinsame Teilzeichenkette
von u0 und v 0 .
4. Aufgabe
Illustrieren Sie die Arbeitsweise des in der Vorlesung vorgestellten Algorithmus
zur Bestimmung der Editierdistanz zweier gegebener Zeichenketten w1 und w2
anhand des folgenden Beispiels:
• w1 = bontsab
• w2 = aboasai
5. Aufgabe
Es seien u und v zwei Zeichenketten. Ferner sei P ein Programm mit den Kosten
k, mit welchem die Zeichenkette u in die Zeichenkette v überführt werden kann.
Zeigen Sie, daß es auch ein Programm P 0 mit den Kosten k gibt, mit welchem
die Zeichenkette v in die Zeichenkette u überführt werden kann.
6. Aufgabe
Es sei die folgende rekursive Definition einer zweistelligen Funktion f (x, y) über
den natürlichen Zahlen gegeben:
• Für alle x, y ∈ IN gilt: f (x, 0) = f (0, y) = 2.
• Für alle x, y ∈ IN gilt: f (x + 1, y + 1) = f (x + 1, y) + f (x, y + 1).
(1) Bestimmen Sie den Funktionswert f (2, 1).
(2) Überlegen Sie sich einen Algorithmus zur Berechnung der Funktion f (x, y),
der auf dem Paradigma der dynamischen Programmierung beruht.
(i) Illustrieren Sie die Arbeitsweise dieses Algorithmus anhand der Berechnung des Funktionswerts f (3, 2) (/* etwa durch Angabe der ausgefüllten Tabelle */)?
(ii) Geben Sie den Funktionswert f (3, 2) an.
(iii) Wie viele Additionen – in Abhängigkeit von x und y – benötigt Ihr Algorithmus, um den Funktionswert f (x, y) zu berechnen? Begründen
Sie Ihre Antwort kurz.
2
Herunterladen