uebungen4

Werbung
Prof. Dr. V. Strehl
Informatik 8
May 12, 2004
Übungen zur
Einführung in die Theoretische Informatik 3
SS 2004
Practice yourself, for heavens sake, in little
things; and thence proceed to greater.
Epictetus, zitiert in Knuth, The Art of
Computer Programming vol.1
• Aufgabe 11: Lineare Rekursionen 1. Ordnung
In vielen Situationen, insbesondere bei der Komplexitätsanalyse von divide-and-conquerAlgorithmen, stösst man häufig auf Rekursionsgleichungen des allereinfachsten Typs, nämlich
lineare Rekursionen 1. Ordnung:
xn+1 = an+1 · xn + bn+1 (n ≥ 0)
Dabei sind (an )n≥1 , (bn )n≥1 bekannte Folgen (von Zahlen), x0 ist ein Startwert. Die zu
untersuchende Folge (xn )n≥0 ist durch diese Daten eindeutig bestimmt. Gesucht ist – wenn
möglich – ein Ausdruck für xn , aus dem man das Wachstumsverhalten der Folge ablesen kann.
Ob das gelingt, hängt natürlich davon ab, wie “gutartig” die Folgen (an )n≥1 und (bn )n≥1 sind.
Für einen speziellen Fall kann man einen Lösungsansatz sofort hinschreiben:
∀n ≥ 1 an = 1 ⇒ xn = x0 +
n
X
bk (n ≥ 0)
k=1
Den allgemeinen Fall (s.o.) kann man mittels Variablentransformation (vorausgesetzt, dass
alle an 6= 0 sind) auf diesen Typ reduzieren, indem neue Unbekannte yn einführt, wobei
y0 = x0 und xn = a1 · a2 · · · an · yn (n ≥ 1)
(a) Bestimmen Sie die Lösung der Rekursion xn+1 = −3 · xn + 2 (n ≥ 0) mit x0 = 1 nach
dieser Methode.
[Hinweis: Es ist gut, sich an die endliche geometrische Reihe zu erinnern. Die wird noch
öfter gebraucht werden]
(b) Bestimmen Sie die Lösung der Rekursion xn+1 = a · xn + b (n ≥ 0).
(c) Bestimmen Sie die Lösung der Rekursion xn+1 = 3 · xn + n (n ≥ 0), x0 = P
0.
n
n−k
[Hinweis: hier muss man wissen, wie man Summen vom Typ s(n) =
k=1 k · b
auswertet. Das muss man nicht unbedingt auswendig wissen. Wenn man keine Formelsammlung oder geeignete Software zur Hand hat, kann man sich das ganz schnell
P überlegen:
s(n) erfüllt sowohl s(n + 1) = n + 1 + b · s(n) als auch s(n + 1) = bn + s(n) + nj=1 bn−j ,
und daraus erhält man s(n).]
• Aufgabe 12: Grössenvergleich in der lexicografischen Ordnung
Übertragen Sie die in der Vorlesung behandelten Aussagen über die lexicografische Ordnung
und den Grössenvergleich vom zweielementigen Alphabet auf beliebige (endliche) Alphabete.
An die Stelle von B tritt nun ein k-elementiges Alphabet Ak = {0, 1, 2, . . . , k − 1} mit der
“natürlichen” Ordnung 0 < 1 < 2 < . . . < k − 1. Die Menge (Ak )n Vektoren der Länge n
über Ak entspricht bijektiv und ordnungtreu den Zahlen [0 . . . k n − 1] mittels Zahldarstellung
zur Basis k. Insbesondere interessiert: wieviele Vergleichsoperationen von Elementen aus Ak
benötigt man beim lexicografischen Grössenvergleich in (Ak )n im Mittel? Finden Sie eine
lineare Rekursion für diese mittlere Anzahl Vn und lösen sie diese (vgl. die vorige Aufgabe).
Was geschieht mit Vn für n → ∞ ?
1
• Aufgabe 13: Bitvektoren und Binomialkoeffizienten
Mit B n wird die Menge der Bitvektoren der Länge n bezechnet. Das (Hamming-)Gewicht
kak eines a ∈ B ∗ ist die Anzahl der von 0 verschiedenen Komponenten, rekursiv definiert:
kk = 0,
kak = h(a) + kt(a)k (a ∈ B + )
Für 0 ≤ k ≤ n bezeichne Bkn = {a ∈ Bn ; kak = k} die Menge der Bitvektoren der Länge n
mit Gewicht k. Die Mächtigkeit von Bkn ist ein Binomialkoeffizient:
n
n!
n(n − 1) · · · (n − k + 1)
n
]Bk =
=
=
k! (n − k)!
k!
k
Üblicherweise setzt man nk = 0 für k < 0 und k > n.
(a) Falls Ihnen entfallen sein sollte, was es mit den Binomialkoenffizienten auf sich hat (obige
Formeln, Rekursionsformel, d.h. Pascalsches Dreieck, binomische Formel, etc.), so wäre
es jetzt an der Zeit, dies zu rekapitulieren.
(b) Wie verhält sich die Funktion n 7→ nk (für festes k) in ihrem Wachstum für n → ∞ ?
Geben Sie eine Antwort in Θ und in ∼.
(c) Mit Hn,k = {a ∈ B n ; kak ≤ k} bezeichnet man die Hamming-Kugel vom Radius k in
B n – ein fundamentales Objekt in der Codierungstheorie.
Wie wächst das “Volumen” (= Anzahl der Elemente) von Hn,k (bei festem k) für n → ∞?
(d) Betrachten Sie im Sinne von Aufgabe 9 das Schleifenkonstrukt
C(n) ≡ for a in B n do A(a)
wobei die Kosten tA (a) für die Ausführung von A(a) gleich c · kak sein sollen.
Welches sind die Kosten für die Auführung von C(n) ?
2
Herunterladen