Algorithmen und Berechenbarkeit Aufgabenblatt 5

Werbung
Volker Diekert, Armin Weiß
Wintersemester 2014/2015
Algorithmen und Berechenbarkeit
Aufgabenblatt 5
Abgabe: Bis Donnerstag, den 11.12. um 11:30 Uhr im Abgabekasten im ersten Obergeschoss.
Besprechung: In den Kalenderwochen 51 und 03.
1. O-Notation.
Sind die folgenden Aussagen wahr oder falsch? Beweisen oder widerlegen Sie sie.
a) f ∈ o(g) impliziert f ∈
/ Ω(g).
b) f ∈ o(g) genau dann, wenn f ∈
/ Ω(g).
c) f ∈ o(g) genau dann, wenn f ∈ O(g) und f ∈
/ Ω(g).
d) Seien f und g Polynome. Dann gilt f ∈ o(g) genau dann, wenn f ∈
/ Ω(g).
e) Seien f, g : N → N monoton wachsend. Ist f 6∈ O(g), dann ist g ∈ O(f ).
2. Rekursionsgleichungen (schriftlich)
(4 Punkte)
Lösen Sie folgende Rekursionsgleichungen. Hierbei sei stets t(1) = 1.
a) t(n) = t(n − 1) + 1
d) t(n) = t(bn/2c) + 1
b) t(n) = t(n − 1) + n
e) t(n) = 7 t(bn/3c) + n3 + n log8 n
c) t(n) = 3 t(n − 1)
f) t(n) = 5 t(bn/2c) + n2
Lösen Sie Gleichungen 2a) bis 2d) exakt und beweisen Sie Ihre Lösung mit Induktion. In
Gleichung 2d) dürfen Sie annehmen, dass n eine Zweierpotenz ist. Für Gleichungen 2e)
und 2f) reicht eine Lösung in Θ-Notation.
3. Laufzeiten (schriftlich).
(4 Punkte)
Es sei folgendes Programmfragment gegeben, das Routinen A1 , A2 , A3 , A4 , A5 und A6 mit
Laufzeiten t1 (n), t2 (n), t3 (n), t4 (n), t5 (n) und t6 (n) definiert. Geben Sie das asymptotische
Wachstum dieser Laufzeiten in Θ-Notation an. Die Laufzeit sei hierbei durch die Anzahl der
ausgeführten arithmetischen Operationen gegeben.
function A1 (n):
x := 0;
for i = 1 to 5 · n do
for j = i to 3 · n do
x := x + 1 od od;
return x
function A3 (n):
x := A1 (n);
if n ≤ 1 then
return n fi;
return x + A3 (n − 1)
function A5 (n, a):
if n = 0 then
return a fi;
return A5 (n − 1, 1) +
A5 (n − 1, 2) +
A5 (n − 1, 3)
function A2 (n):
if n ≤ 2 then
return 1 fi;
return A2 (n − 2) + n
function A4 (n, a):
function A6 (n):
x := a;
if n < 6 then
for i = 1 to 7 do
return 0 fi;
x := x + A4 (bn/5c , i) od;
return 2 + A6 (bn/8c)
return x
Geben Sie in den schriftlichen Abgaben nur die Laufzeiten an.
4. Entwerfen Sie einen Algorithmus, der sowohl das Minimum als auch das Maximum eines
gegebenen Feldes n ganzer Zahlen ermittelt und deutlich weniger als 2n Vergleiche benötigt.
5. Lokale Minima auf Schachbrettern (schriftlich)
(6 Punkte)
Gegeben sei ein n × n-Schachbrett als 2-dimensionales Array. Jedes der Felder des Schachbretts ist mit einer Zahl beschriftet, wobei die Zahlen paarweise verschieden sind. Ein lokales
Minimum ist ein Feld so, dass jedes seiner bis zu 8 Nachbarfelder mit einer größeren Zahl
beschriftet ist.
a) Beschreiben Sie einen effizienten Algorithmus, der ein (beliebiges) lokales Minimum
bestimmt und dessen Koordinaten ausgibt. Erläutern Sie, warum Ihr Algorithmus korrekt ist. (Ein Θ(n2 )-Algorithmus wird mit 0 Punkten bewertet! Insbesondere dürfen also
nicht alle Felder angeschaut werden.)
b) Schreiben Sie den Pseudo-Code zu Ihrem Algorithmus.
c) Bestimmen Sie die Anzahl an Vergleichen (in Θ-Notation), die Ihr Algorithmus
benötigt.
6. Bonusaufgabe: Domino (schriftlich – Abgabe am 15.01. mit Blatt 6).
(8 Bonuspunkte)
Gegeben sei folgende Variante des Domino-Spiels:
Das Spiel wird von zwei Spielern A und B gespielt, die abwechselnd jeweils eine Zeile
von Domino-Steinen bilden. Es gibt eine endliche Menge verschiedener Domino-Typen. Die
Domino-Steine sind quadratisch, an allen 4 Seiten mit einer Zahl beschriftet und dürfen
nicht gedreht werden. Jeder Spieler kann beliebig viele Steine jeden Typs verwenden.
Am Anfang sind eine Anfangszeile RA und eine Endzeile RE mit jeweils m Dominosteinen
gegeben. Beginnend mit der Anfangszeile, legen nun die Spieler immer abwechselnd eine
gesamte Zeile unter die zuletzt gelegte Zeile an. Die gebildeten Zeilen müssen jeweils mit der
vorausgehenden Zeile zusammenpassen und müssen alle die gleiche Länge haben. Wie beim
normalen Domino, dürfen zwei Steine immer nur dann nebeneinander (bzw. untereinander)
liegen, wenn die entsprechenden Seiten mit der gleichen Zahl beschriftet sind.
Sobald irgendein Spieler die Endzeile RE legt, gewinnt Spieler A; wird die Endzeile innerhalb
einer vorher festgelegten Rundenzahl nicht gelegt, so gewinnt Spieler B.
Zeigen Sie, dass folgendes Problem PSPACE-vollständig ist:
Eingabe: Eine endliche Menge D ⊆ N4 von Domino-Typen, sowie eine Anfangs- und eine
Endzeile (RA ∈ Dm , bzw. RE ∈ Dm ) und die maximale Anzahl an Runden t ∈ N
(unär gegeben).
Frage:
Hat Spieler A eine Gewinnstrategie (d. h. kann er einen Sieg erzwingen, egal wie
gut Spieler B spielt)?
http://www.fmi.uni-stuttgart.de/ti/lehre/ws14/aubfm/
Herunterladen