Einführung in die Theoretische Informatik 3 SS 2003

Werbung
Prof. Dr. V. Strehl
Informatik 8
May 8, 2003
Übungen zur
Einführung in die Theoretische Informatik 3
SS 2003
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 9: Asymptotischer Vergleich von Funktionen
1. Zeigen Sie, dass für Funktionen f, g : N → R+ gilt: O(f (n)+g(n)) = O(max(f (n), g(n)))
2. Zeigen Sie, dass für Konstanten a, b (wobei b > 0) gilt: (n + a)b ∈ Θ(nb ).
3. Zeigen Sie, dass die Binomialkoeffizienten nk , wenn man sie für festes k ∈ N als Funktion
n(n−1)
n
n
n
von n betrachtet,
Polynome
sind.
Zum
Beispiel:
=
1,
=
n,
= 2 .
0
1
2
n
n
k
Allgemein: k ist ein Polynom vom Grad k, also k ∈ Θ(n ).
Für welche Konstante ck gilt nk ∼ ck · nk ?
4. Vergleichen
√ Sie das asymptotische Wachstum der beiden Funktionen
f : n 7→ 2 log n und g : n 7→ nc , wobei 0 < c < 1 eine Konstante ist.
Von welcher Stelle an ist die schneller wachsende Funktion immer grösser?
(NB: diese Stelle hängt natürlich von c ab.)
5. Bekanntlich gilt loga n ∈ Θ(logb n) für Basen a, b > 1. Aber gilt auch 2loga n ∈ Θ(2logb n )?
• Aufgabe 10: Mittlere Bitlänge — Komplexität des Grössenvergleichs
1. Betrachten sie in dieser Aufgabe für festes n ≥ 1 die Menge [0..2n − 1] als einen mit
der Gleichverteilung (d.h. Wahrscheinlichkeit 2−n für jedes Element) ausgestatteten
Wahrscheinlichkeitsraum. Die Längenfunktion `(k) = blog kc + 1 für ganze Zahlen1
`n : [0..2n − 1] → {1, 2, . . . , n} : k 7→ blog kc + 1
ist dann eine auf [0..2n − 1] definierte Zufallsvariable. Es bezeichne
Ln = E(`n ) =
1
2n
X
`(k)
0≤k<2n
den Mittelwert (Erwartungswert) dieser Zufallsvariablen. Zeigen Sie:
Ln = n − 1 +
1
2n−1
(Überprüfen Sie das direkt für kleine Werte von n !)
Hierfür gibt es verschiedene Möglichkeiten.
(a) Stellen sie eine Rekursionsgleichung für die Zahlen Ln auf und lösen Sie diese.
1
Dabei wird log(0) = 0 gesetzt, damit 0 die Länge 1 erhält.
(b) Zeigen sie direkt
X
`(k) = 1 +
0≤k<2n
n
X
j · 2j−1
j=1
und werten Sie die rechte Summe (endliche geometrische Reihe!) aus mittels


n
n
n
X
X
X
d
xj  j · 2j−1 =
=
j · xj−1 dx
x=2
x=2
j=1
j=1
j=1
2. Anwendung: Stellt man natürliche Zahlen in der Binärdarstellung dar, so entspricht
der Grössenvergleich der Zahlen dem Vergleich ihrer Bitdarstellungen in lexikografischer
Ordnung. Dazu bezeichne
Bn = {hbn−1 , bn−2 , . . . , b1 , b0 i ; bj ∈ {0, 1} (0 ≤ j < n)}
die Menge des Bitvektoren der Länge n. Die Abbildung
n
Bn → [0..2 − 1] : hbn−1 , bn−2 , . . . , b1 , b0 i 7→
n−1
X
b j 2j
j=0
ist eine Bijektion. (Warum?)
Für jede ganze Zahl k ∈ [0..2n − 1] bezeichne dann hki2 ∈ Bn deren Urbild, d.h. die
Binärdarstellung der Länge k (mit führenden Nullen!).
(a) Zeigen Sie, dass für x, y ∈ [0..2n − 1] gilt:
x < y ⇔ hxi2 <lex hyi2
Dabei bezeichnet <lex die auf 0 <lex 1 basierende lexikografische Ordnung auf Bn .
(b) Hat man Zahlen anhand Ihrer Bit-Darstellung der Grösse nach zu vergleichen, so
benutzt man die lexikografische Ordnung. Wie? Formulieren Sie einen Algorithmus.
(c) Für praktische Anwendungen interessant ist die Frage nach der mittleren Anzahl Vn
von Vergleichen auf Bit-Ebene, die man braucht, um von zwei beliebigen Bitvektoren
∈ Bn zu entscheiden, welcher lexikografisch grösser ist (oder ob sie gleich sind).
Hierbei sei Bn mit der Gleichverteilung ausgestattet.
Begründen Sie die Aussage:
Vn = n − Ln + 1
(Hinweis: zwei Bitvektoren gleicher Länge unterscheiden sich, von links gelesen,
erstmals an der Position j, wenn ihre komponentenweise gebildete xor-Summe an
dieser Position j die erste 1 (von links gelesen) hat.)
Wie verhält sich also Vn bei wachsendem n? Wie drückt sich dies mit der LandauNotation aus? Was hat das für Konsequenzen in Bezug auf uniformes vs. logarithmisches Kostenmaß, falls es um den Grössenvergleich von natürlichen Zahlen
geht?
• Aufgabe 11: Binäre Bäume II
(Gleiche Notation wie in Aufgabe 8)
1. Für Binärbäume (und auch für andere Typen von Bäumen) betrachtet man verschiedene
Parameter, die induktiv definiert oder beschrieben werden:
– i(t) = Anzahl der inneren (“internal”) Knoten von t:
(
0
falls t = i(t) =
1 + i(t` ) + i(tr ) falls t = h , t` , tr i
– e(t) = Anzahl der äusseren (“external”) Knoten von t:
(
1
falls t = e(t) =
e(t` ) + e(tr ) falls t = h , t` , tr i
– s(t) = i(t) + e(t) = Grösse (“size”) von t:
(
1
falls t = s(t) =
1 + s(t` ) + s(tr ) falls t = h , t` , tr i
– h(t) = Höhe (“height”) von t:
(
0
falls t = h(t) =
1 + max{h(t` ), h(tr )} falls t = h , t` , tr i
Zeigen sie, dass für alle binären Bäume t ∈ B folgende Aussagen gelten:
(a) e(t) = i(t) + 1, und damit s(t) = 2 · i(t) + 1 = 2 · e(t) − 1
(b) h(t) ≤ i(t)
(c) e(t) ≤ 2h(t) , also log e(t) ≤ h(t)
Identifizieren Sie in ii. und iii. die Situationen, in denen Gleichheit eintritt.
2. Es bezeichne cn die Anzahl der binären Bäume mit n inneren Knoten, also cn = ]Bn .
Man kann zeigen, dass
1
2n
cn =
n+1 n
gilt. Vergleichen sie dies mit den von Ihnen in Aufgabe 8.1 konstruierten Daten. Wie
verhalten sich diese Anzahlen (cn )n≥0 asymptotisch für n → ∞?
(Hinweis: Benutzen Sie die Stirling-Formel für das asymptotische Verhalten von n!.
3. Nur eine Bemerkung, aber als Anregung vielleicht ganz nützlich und interessant:
Die Zahlen cn werden in der Literatur zu Ehren des belgischen Mathematikers Eugene Charles Catalan (1814–1894), der 1838 die obige Formel gefunden hat, als
Catalan-Zahlen bezeichnet (obwohl sie in der Literatur schon früher auftauchen). Wegen der vielfältigen Vorkommen binärer Bäume in den verschiedensten Situationen und
Verkleidungen spielen diese Zahlen eine enorme Rolle bei der quantitativen Analyse von
Strukturen und Algorithmen — man trifft sie eher noch häufiger an als die notorischen
Fibonacci-Zahlen. In dem Buch Grundlegende Algorithmen von V. Heun (die 2. Auflage
ist gerade erschienen) beispielsweise finden Sie im Abschnitt 7.7 eine Untersuchung zur
“optimalem Klammerung von Matrizenprodukten”, ein klassisches Optimierungsproblem, das man mit Hilfe der Technik der “dynamischen Programmierung” lösen kann.
Die Catalan-Zahl cn gibt gerade die Anzahl der verschiedenen Möglichkeiten an, ein
Produkt von n + 1 Matrizen (beliebigen, aber kompatiblen Formats) auszurechen. An
der genannten Textstelle finden Sie ein drastisches Beispiel, wie unterschiedlich die Anzahl der Operationen (Additionen und Multiplikationen von Koeffizienten) sein kann,
wenn man ein Produkt M1 · M2 · M3 · M4 von vier Matrizen auf die c3 = 5 verschiedenen
Weisen
M1 (M2 (M3 M4 )), M1 ((M2 M3 )M4 ), (M1 M2 )(M3 M4 ), (M1 (M2 M3 ))M4 , ((M1 M2 )M3 )M4
ausrechnet. Diese fünf verschiedenen Möglichkeiten entsprechen offensichtlich den fünf
Binärbäumen mit drei inneren Knoten (= Multiplikationen).
In dem genannten Abschnitt des Buches finden Sie auch einen Beweis der Formel aus
dem vorigen Teil der Aufgabe.
Herunterladen