Prof. Dr. V. Strehl Informatik 8 May 8, 2003 Übungen zur Einführung in die Theoretische Informatik 3 SS 2003 I hear, I forget; I see, I remember; I do, I understand. Chinesisches Sprichwort, zitiert in Rawlins, Compared to what? • Aufgabe 6: Vergleich von Laufzeiten I Ihnen liegen zur Lösung eines Problems drei Algorithmen A, B, C vor, deren Laufzeit bei inputs der Grösse n ∈ N jeweils tA (n) = 4 · n + 20 tB (n) = n · log2 (n) + 2 · n + 4 tC (n) = n · (n − 1) + 4 beträgt. Welcher Algorithmus ist in Abhängigkeit von der input-Grösse n der Beste bzw. Schlechteste? • Aufgabe 7: Vergleich von Laufzeiten II Sie haben einen Rechner, der 103 Operationen pro Sekunde ausführt. Betrachten Sie fünf Algorithmen, die in Abhängigkeit von der Eingabegrösse n jeweils Ti (n) (1 ≤ i ≤ 5) Operationen ausführen. Dabei sei T1 (n) = 500 · n, T2 (n) = 50 · n log n, T3 (n) = n2 , T4 (n) = 3n 3 · n3 , T5 (n) = 1.000 10.000 Geben Sie für jeden der fünf Algorithmen an, welche Eingabegrösse n in genau einer Sekunde, einer Minute, einer Stunde, einem Tag, einem Monat bearbeitet werden kann. 1 Sekunde 1 Minute 1 Stunde 1 Tag 1 Monat T1 T2 T3 T4 T5 Wie verändern sich diese Werte, wenn die Rechenleistung um den Faktor 10 höher liegt, d.h. 104 Operationen pro Sekunde? • Aufgabe 8: Binäre Bäume I Die Menge B der binären Bäume wird rekursiv definiert durch die Regeln: – ist ein binärer Baum – sind t` , tr binäre Bäume, so ist auch t = h, t` , tr i ein binärer Baum – nur das, was durch die beiden vorigen Regeln erzeugt werden kann, ist ein binärer Baum Binäre Bäume werden üblicherweise dargestellt im Sinne der Graphentheorie als Bäume mit Wurzel, wobei ein Knoten zwei oder keinen Knoten als (geordnetet) Nachfolger hat. Ersteres sind die mit bezeichneten inneren Knoten, letzteres die mit bezeichneten äusseren Knoten (Blätter). In der obigen Definition bezeichnet also einen Baum, der nur aus einem einzigen (und zwar äusseren) Knoten besteht; das Objekt t = h, t` , tr i ist ein Baum mit Wurzel , an die zwei binäre Bäume t` und tr als linker bzw. rechter Teilbaum angehängt sind. t = !", t!, tr # t! tr 1. Es bezeiche Bn die Menge der Binärbäume mit n inneren (und n + 1 äusseren) Knoten. Konstruieren Sie (in grafischer Darstellung) Bn für n = 0, 1, 2, 3, 4. 2. Binärbbäume kann man mittels Wörtern über dem Alphabet { , } codieren, indem man gemäss dem rekursiven Aufbau eine Abbildung code : B → { , }∗ definiert: code( ) = code(h, t` , tr i) = code(t` ) code(tr ) Dem entspricht die Generierung mittels einer kontextfreien Grammatik GB in BNF mit einem Variablensymbol B (das also auch Startsymbol ist), Terminalsymbolen und , sowie den Produktionen B → BB In dem grafischen Beispiel entspricht dann der linke (rechte) Teilbaum t` (tr ) dem Wort code(t` ) = , (dem Wort code(tr ) = ), der Baum t = h, t` , tr i somit dem Wort code(t) = code(t` ) code(tr ) = (a) Überprüfen sie die eben gemachte Aussage über das Beispiel. (b) Geben Sie die den Mengen Bn (n = 0, 1, 2, 3, 4) entsprechenden von GB erzeugten Wortmengen an. (c) Konstruieren Sie das Wort code(t) für den folgenden Binärbaum (d) Untersuchen sie für die folgenden Wörter, ob sie Codierungen von Binärbäumen im Sinne der Abbildung code : B → { , }∗ sind i. ii. iii. 3. Überprüfen Sie an den Beispiel-Wortmengen folgende Beobachtung und beweisen Sie dann: streicht man in jedem von GB erzeugten Wort das letzte Symbol und identifiziert man dann mit “linke Klammer” und mit “rechte Klammer”, so entsprechen diese Wörter genau den wohlgeformten Klammerausdrücken entsprechender Länge. [Hinweis: es könnte nützlich sein, auch für die wohlgeformten Klammerausdrücke eine kontextfreie Grammatik zu entwerfen.] 4. Reminiszenz an Theorie-1: (a) Warum ist die Sprache der Binärbäume nicht regulär (= Typ-3)? (b) Konstruieren sie einen Kellerautomaten, der die Sprache der Binärbäume akzeptiert.