Effiziente Algorithmen SS 2013 ¨Ubungsblatt 2

Werbung
TU Ilmenau, Fakultät IA
Institut TI, FG Komplexitätstheorie und Effiziente Algorithmen
Univ.-Prof. Dr. Martin Dietzfelbinger, Dipl.-Inf. M. Aumüller
http://www.tu-ilmenau.de/iti/lehre/lehre-ss-2013/ea/
Effiziente Algorithmen SS 2013
Übungsblatt 2
Themen für die zweite Übungsstunde am 30.4., 7.5., bzw. 8.5.2013. (Die Mittwochsübung
verschiebt sich aufgrund des Feiertags um eine Woche und findet im Sr HU 202 statt.)
Abgabe von Lösungsvorschlägen (mit Übungsgruppe!) für die markierten Aufgaben (*) bis
zum 29.4.2013, 17 Uhr, per E-Mail an [email protected] oder direkt in
meinem Büro (Z 1057).
Aufgabe 1 (Suche eines lokalen Minimums)*
Sei M = (ai,j ) eine n × m-Matrix mit paarweise verschiedenen, reellwertigen Einträgen.
Wir können M der Anschaulichkeit halber auch als ein 2-dimensionales n × m-Gitter
betrachten, an dessen Kreuzungspunkten reelle Zahlen stehen. Die direkten Nachbarn
von ai,j in diesem Gitter sind, sofern vorhanden, ai+1,j , ai,j+1 , ai−1,j und ai,j−1 . Wir
nennen ai,j ein lokales Minimum, falls ai,j kleiner als all seine Nachbarn ist.
Entwerfen und analysieren Sie einen Divide-and-Conquer-Algorithmus, der auf Eingabe
M ein lokales Minimum bestimmt! Ihr Algorithmus sollte eine Laufzeit von O(min(n, m)·
log(max(n, m))) bzw. O(max(n, m)) besitzen. Beweisen Sie, dass ein in einem Teilproblem bestimmtes lokales Minimum auch ein lokales Minimum im Ausgangsproblem ist!
Aufgabe 2 (Finden des Medians von fünf Elementen)*
Der aus der Vorlesung bekannte BFPRT-Algorithmus teilt Elemente einer total geordneten Menge in Fünfergruppen auf und bestimmt in jeder Gruppe den Median. In der
Vorlesung wird behauptet, dass diese Medianbestimmung mit sechs Vergleichen möglich
ist.
Geben Sie ein Verfahren an, das den Median von fünf Elementen mit maximal sechs
Vergleichen ermittelt.
Hinweis: Versuchen Sie, die beiden kleinsten Elemente (ohne deren Beziehung zueinander) mit 5 Vergleichen zu bestimmen, wobei Sie zusätzlich nach diesen Vergleichen
Information über die Ordnung zweier beliebiger restlicher Elemente haben sollten.
Aufgabe 3 (Eine abgewandelte Form des BFPRT-Algorithmus)*
Nach dem Halten der Vorlesung ist Martin A. noch nicht zufrieden: die Aufteilung der
Elemente in Fünfer-Gruppen im BFPRT-Algorithmus erscheint ihm willkürlich. Nach
Stunden des Rechnens in seinem stillen Kämmerlein kommt er zu folgender Vermutung:
Wenn ich die Elemente in Siebener-Gruppen einteile, dann erhalte ich einen
deterministischen Algorithmus für das Auswahlproblem mit Laufzeit O(n).
Wenn ich die Elemente jedoch in Dreier-Gruppen einteile, dann ermöglicht
mir der BFPRT-Ansatz keinen Linearzeitalgorithmus.
Betrachten Sie die Laufzeitabschätzung aus der Vorlesung und rechnen Sie die Laufzeit im Fall von Dreier-Gruppen bzw. Siebener-Gruppen nach. Ist Martins Vermutung
richtig?
2
Effiziente Algorithmen SS 2013
Übungsblatt 2
Aufgabe 4 (Falls die Zeit reicht: Iterativer Algorithmus für die Fourier-Transformation)
In der Vorlesung haben Sie eine rekursive Variante des FFT-Algorithmus kennengelernt.
Wir wollen in dieser Übungsaufgabe betrachten, wie man diesen Algorithmus iterativ
formulieren kann. Betrachten Sie dazu die folgende Schaltung für n = 8:
Wie man leicht sehen kann, muss die Eingabe (a0 , . . . , an−1 ) = (ω 0 , . . . , ω n−1 ) permutiert werden, um dann schichtweise die nötigen Additionen und Multiplikationen
durchführen zu können. Zum Beispiel muss für n = 8 das Resultat der Permutation
(a0 , a4 , a2 , a6 , a1 , a5 , a3 , a7 ) sein.
Wenn eine Leitung mit einer natürlichen Zahl j beschriftet ist, so wird der Wert am
linken Ende der Leitung mit ω j multipliziert. In den jeweiligen Knoten erfolgt dann eine
Addition der von links kommenden (komplexen) Zahlen. (Betrachten Sie hierfür auch
die Kommentare auf Vorlesungsfolie 33 des Foliensatzes zur FFT.)
(a) Geben Sie einen Algorithmus BitPermut(a) an, der die Eingabe (a0 , . . . , an−1 ) so
permutiert, dass sie als Startbelegung für den iterativen FFT-Algorithmus genutzt werden kann. Dies ist beispielsweise recht einfach rekursiv zu bewerkstelligen.
Können Sie die Permutation auch direkt beschreiben? (Es kann hierbei hilfreich
sein, die Schaltungen für n = 4 und n = 16 zu betrachten.)
(b) Formulieren Sie eine iterative Variante des FFT-Algorithmus.
Herunterladen