Einführung in die Theoretische Informatik

Größe: px
Ab Seite anzeigen:

Download "Einführung in die Theoretische Informatik"

Transkript

1 Einführung in die Theoretische Informatik Prof. Dr. W. Vogler Sommersemester

2 INHALTSVERZEICHNIS i Inhaltsverzeichnis 1 Formale Sprachen und Wörter Wörter Monoide Relationen Regelsysteme und Normalformen Grundbegriffe Normalformen und Noethersche Induktion Chomsky-Grammatiken Grundbegriffe Die Chomsky-Hierarchie Normalform Reguläre Sprachen Endliche Automaten Pumping Lemma Deterministische Automaten Abschlußeigenschaften, Entscheidbarkeitsprobleme und Simulation Rationale Ausdrücke und der Satz von Kleene Lexikalische Analyse (F)LEX Kontextfreie Sprachen Backus-Naur-Form Ableitungsbäume und Eindeutigkeit Das Pumping Lemma für kontextfreie Sprachen bzw.: Das uvwxy Theorem Abschlußeigenschaften Vereinfachung kontextfreier Grammatiken Chomsky Normalform und der Cocke Kasami Younger Algorithmus Kellerautomaten Kellerautomaten und kontextfreie Sprachen Deterministische Kellerautomaten Compilation, YACC Turingmaschinen Turingmaschinen und Typ-0-Sprachen Entscheidbarkeit Eigenschaften aufzählbarer Sprachen Unentscheidbarkeit und kontext-freie Sprachen Primitiv- und µ-rekursive Funktionen

3 1 FORMALE SPRACHEN UND WÖRTER 1 1 Formale Sprachen und Wörter Literatur: Hopcroft, Motwani, Ullman: Introduction to Automata Theory, Languages and Computation. dtsch.: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie Schöning: Theoretische Informatik kurz gefaßt. 5. Auflage Harrison: Introduction to Formal Language Theory Salomaa: Formale Sprachen, 1978 Eilenberg: Automata, Languages, and Machines, Vol. A, 1974 Diese Vorlesung befaßt sich mit mathematischen Konzepten, die für die Informatik besonders wichtig sind (Stichwort: korrekte Software). Im Vordergrund steht dabei die Thematik Automaten und formale Sprachen. Dabei geht es um die präzise Beschreibung gewisser Mengen von Zeichenketten, z.b. der Menge aller syntaktisch korrekten C-Programme, und des weiteren um (mathematische) Maschinen, die die Zugehörigkeit zu einer solchen Menge effizient entscheiden wie z.b. ein Compiler. Eine Klasse solcher Maschinen bilden die Turingmaschinen, mit denen man jeden (!) Computer bzw. jedes (!) Programm modellieren kann. Sie unterstützen daher Untersuchungen über die prinzipiellen Möglichkeiten und Grenzen von Programmen/Algorithmen. 1.1 Wörter Wort: Sequenz von Zeichen aus einem gegebenen Zeichenvorrat (z.b. C-Programm) formale Sprache: Menge von Wörtern (z.b. der syntaktisch korrekten C-Programme) Definition 1.1. Ein Alphabet (Zeichenvorrat) Σ ist eine endliche Menge; ihre Elemente heißen Buchstaben (Zeichen); oft ist zusätzlich eine totale Ordnung auf Σ gegeben. Eine Folge von Buchstaben w = a 1 a n mit a i Σ heißt Wort oder Zeichenkette über Σ. w := n ist die Länge des Wortes. Für n = 0 heißt w das leere Wort und wird mit λ (oft auch ε) bezeichnet. Σ n bezeichnet die Menge der Wörter mit Länge n. Wörter der Länge 1 sind einfach Buchstaben; also Σ 1 = Σ und Σ 0 =

4 1 FORMALE SPRACHEN UND WÖRTER 2 Σ + = n 1Σ n Menge der nichtleeren Wörter Σ = n 0Σ n = Σ + {λ} Menge aller Wörter Eine formale Sprache über Σ ist eine Teilmenge L Σ. Beispiele 1.2. {abba, babba} und {aa, ab, ba, bb} sind Sprachen über {a, b}. Die leere Sprache und die Sprache {λ}, die nur das leere Wort enthält, sind Sprachen über jedem Alphabet. immer λ Σ, speziell: Bemerkung: Die Schreibweise a 1 a n setzt voraus, daß die a i unzerlegbar sind. Wäre Σ = {0,10,100}, so wüßten wir nicht, ob 100 ein oder zwei Buchstaben sein soll. Behelf: < 0 >,< 10 >,< 100 > oder in C: if, for Definition 1.3. Die Konkatenation der Wörter v = a 1 a n Σ n und w = b 1 b m Σ m ist v w = a 1 a n b 1 b m Σ n+m ; wir schreiben oft vw. Induktionsbeweise sind in der Informatik besonders wichtig. Wir wollen daher als Fingerübung Wörter noch einmal sehr formal anschauen. Entsprechend zu Konstruktoren in der funktionalen Programmierung kann man Wörter aus dem leeren Wort (erster Konstruktor) durch Voranstellen von Buchstaben (prefix- bzw. vor-operation, zweiter Konstruktor) gewinnen. Dies entspricht der folgenden induktiven Definition. Definition 1.4. Σ ist die (bzgl. ) kleinste Menge mit i) λ Σ ii) Ist w Σ und a Σ, so ist auch aw Σ. Bemerkung: Ein Präfix ist ein Anfangsstück eines Wortes (inkl. λ!). Kleinste Menge heißt: nur nach diesen Regeln aufgebaute Objekte sind Wörter. Wenn man belegen will, dass aba ein Wort ist, so muss man argumentieren: λ ist ein Wort wegen i); dann ist auch aλ = a ein Wort wegen ii) mit w = λ; dann ist auch baλ = ba ein Wort wegen ii) mit w = a; dann ist auch abaλ = aba ein Wort wegen ii) mit w = ba. (Achtung: Hier ist a ein fester Buchstabe, eine Konstante; in 1.4 ii) ist a eine Variable, die für jeden Buchstaben steht.) So eine Argumentationskette heißt Herleitung unsere Beispielherleitung hat die Länge 4. Mehr dazu in der Logik. Definition 1.4 entspricht einerseits der Standard-Induktion: i) ist die Verankerung und definiert alle Wörter der Länge 0, also λ; ii) setzt voraus, dass wir alle Wörter der Länge n bereits definiert haben, und definiert unter dieser Voraussetzung alle Wörter der Länge n+1. Definition 1.4 entspricht andererseits einer Induktion über die Herleitungslänge: Hier gewinnt man mit i) alle Wörter der Herleitungslänge 1 es könnte aber mehrere Regeln zu

5 1 FORMALE SPRACHEN UND WÖRTER 3 dieser Länge geben; mit ii) gewinnt man aus einem Wort der Herleitungslänge n eines der Herleitungslänge n + 1 es könnte wiederum mehrere solcher Regeln geben. Hat man eine solche induktive Definition, so kann man Beweise und weitere Definitionen durch Induktion über die Herleitungslänge eines beteiligten Worts führen. Beschreibt die induktive Definition den Aufbau von Objekten wie in unserem Beispiel, spricht man dann von einem induktiven Beweis oder einer induktiven Definition über den Aufbau (hier: eines Worts) oder von struktureller Induktion (hier: über ein Wort). Da es i.a. viele Regeln geben kann, die alle abgeklappert werden müssen, tut man letzteres ohne explizit über Verankerung oder Induktionsschritt zu reden. Beispiel 1.5. Induktive Definition der Konkatenation uw (Induktion über den Aufbau des ersten Arguments u): i) u = λ: λ w = w; ii) u = av: (av) w = a(v w), a Σ Ist für das kürzere v schon definiert, haben wir es jetzt unter Verwendung von prefix auch für das längere u definiert. ( = rekursiver Fkt. in Programmiersprachen) Bevor wir ein Beispiel eines induktiven Beweises geben, der auf Definition 1.4 aufbaut, zunächst noch ein anderes Beispiel für eine induktive Aufbau-Definition: Definition 1.6. Die Menge der (besonders) einfachen Terme SimT ist die (bzgl. ) kleinste Menge mit i) a,b,c,d SimT ii) Sind v,w SimT, so auch (v +w) SimT. iii) Sind v,w SimT, so auch (v w) SimT. Z.B. sind a,(b c),((b+c) (c+a)) SimT. Herleitungen von (b+c) und (c+a) sind: b wg. i), c wg. i) und (b+c) wg. ii).. Systematisch bekommen wir dann folgende Herleitung von ((b+c) (c+a)) (es geht aber auch kürzer): b wg. i), c wg. i), (b+c) wg. ii), c wg. i), a wg. i), (c+a) wg. ii), Haben v und w die Herleitungslängen n und m, so hat (v + w) die Herleitungslänge. Achtung: ((b + c) (c + a)) hat die Herleitungslängen 7, aber auch 6 einfach Um die einfachen Terme (e.t.) mit einer Herleitungslänge n zu definieren, gehen wir also davon aus, dass alle e.t. mit einer Herleitungslänge m < n bereits definiert sind. Dies entspricht dem folgenden Induktionsprinzip: Proposition 1.7. Sei A(n) eine Aussage über die natürliche Zahl n. Angenommen es gilt A(0) (Ind.verankerung) und für alle n das folgende: Wenn A(m) für alle m mit m < n + 1 gilt (Ind.vor.), so gilt auch A(n + 1) (Ind.beh.). Dann gilt A(n) für alle natürlichen Zahlen n; vgl. Korollar 2.10.

6 1 FORMALE SPRACHEN UND WÖRTER 4 Wir haben hier eine stärkere Ind.vor., was den Beweis der Ind.beh. erleichtern kann. Warum dürfen wir so verfahren? Nun zu dem angekündigten Beispiel, das auf Definition 1.4 aufbaut: Beispiel 1.8. λ ist neutrales Element, d.h. es gilt λw = w = wλ. (Das ist natürlich eigentlich völlig klar.) Beweis. Erstes = nach 1.5 i); zweites = mit Induktion über den Aufbau von w: i) w = λ: λ = λλ (1.5 i)); ii) w = av: Ind.annahme: v = vλ av Ind = a(vλ) = (av)λ nach 1.5 ii). Analog kann man zeigen, daß die Konkatenation assoziativ ist: (uv)w = u(vw). Definition 1.9. Ist A Σ, so ist w A die Anzahl der Zeichen von w, die in A liegen; speziell ist also w = w Σ. Formaler: λ A = 0 { 1+ v A wenn a A av A = v A sonst Beispiele Wörter mit gleich vielen a und b: w a = w b Wörter gerader Länge: w mod 2 = 0 Kommunikation eines Pufferspeichers: Hier soll e für eine Eingabe in den Puffer, a bzw. b für eine Ausgabe auf Kanal A bzw. B stehen. w {a,b,e} ist ein korrektes Pufferverhalten, z.b. eaeeaeb (nicht aber eaeabe), wenn für jedes Präfix v von w gilt v {a,b} v e.

7 1 FORMALE SPRACHEN UND WÖRTER Monoide Strukturen mit einer assoziativen Operation mit 1 gibt es häufiger. Definition Ein Monoid ist ein Tripel (M,,1 M ), wobei eine assoziative Operation auf der Menge M und 1 M M neutrales Element ist. Beispiele für Monoide (Σ,,λ) für Σ 2 nicht kommutativ: ab ba (B,, true) (N, +, 0), N enthält immer 0 (B,,false) (Z,+,0) In Monoiden kann man natürlichzahlige Potenzen definieren: x n ist das Produkt von nx en; formal: x 0 = 1; x n+1 = x x n Speziell für Σ ist also w n die Konkatenation von n w s und w 0 = λ. Weiter ist z.b. (ab) 3 = ababab, ab 3 = abbb und a 3 b 3 = aaabbb Potenzieren geht als Rechenart höherer Stufe also vor. Es gelten in allen Monoiden die üblichen Rechenregeln für Potenzen: x 1 = x; x n+m = x n x m ; (x n ) m = x nm Weiter verhält sich die Länge wie ein Logarithmus: λ = 0; vw = v + w ; w n = n w Auch die zwei im folgenden definierten Typen von Monoiden interessieren in dieser Vorlesung. Definition Für eine Menge M sei P(M) die Potenzmenge von M, d.h. die Menge aller Teilmengen von M. Die Operation eines Monoids M wird auf P(M) erweitert: für K,L M ist K L = {k l k K,l L}. Beispiele In (N, +, 0) gilt: {0, 1} +{3, 7} = In B: {true} {true, false} = In {a,b,c} : {ab,ac} {c,cb} = {a,ab} 2 = In {0,1,...,9} : {1,...,9} {0,5} ist die Menge aller zweistelligen, durch 5 teilbaren Dezimalzahlen. Proposition Für ein Monoid M ist auch (P(M),,{1 M }) ein Monoid. K M : K = = K Das Monoid P(Σ ) enthält gerade alle formalen Sprachen über Σ. Die n-te Potenz von Σ P(Σ ) besteht aus allen Produkten von n Elementen von Σ, also allen Wörtern der Länge n genau wie wir Σ n oben bereits definiert haben. Wenn wir die Elemente von Σ als Aktionen eines Systems oder eines Programms auffassen, sind die Wörter Aktionsfolgen, d.h. Abläufe des Systems (vgl. Beispiel Kommunikation eines

8 1 FORMALE SPRACHEN UND WÖRTER 6 Pufferspeichers). Die möglichen Abläufe des Systems (die von den Eingangsdaten oder z.b. vom Benutzer beeinflußt werden können und daher nicht von vornherein eindeutig festliegen) bilden eine Sprache L. L n ist dann die n-fache Iteration des Programms (for-schleife); u.a. für beliebige (endliche) Iteration (terminierende while-schleife) führen wir ein: L + = n 1 L n L = n 0L n = L + {λ} Für L = Σ entsprechen L + und L unseren obigen Festlegungen. Beispiel {0,1,...,9} {0,5} sind alle durch 5 teilbaren Dezimalzahlen (evtl. mit führenden Nullen). ohne führende Nullen: 1.3 Relationen Auch die (zweistelligen) Relationen über einer Menge bilden ein Monoid. Zur Erinnerung: R M M ist eine (zweistellige) Relation über M; wir schreiben oft xry statt (x,y) R. Relationen sind z.b. < und über R, komponentenweises über R n, und id M = {(x,x) x M}. Wir können R auch als (gerichteten) Graph sehen: M ist die Menge der Ecken (Knoten), R die Menge der gerichteten Kanten oder Pfeile. Definition Ein Graph G = (V, E) besteht aus einer (in der Regel endlichen) Menge V von Ecken (vertex, vertices) und einer Menge E V V von Kanten (edges); statt (v,w) E schreibt man bei Graphen meist vw E. Ein Pfad (von x 0 nach x n ) (der Länge n) ist eine Folge x 0 x 1...x n, n 0, mit (x i,x i+1 ) E für alle i < n. (Analog gibt es auch unendliche Pfade.) Der Pfad ist ein geschlossener Kantenzug, wenn x 0 = x n ; ein solcher ist ein Kreis, wenn sonst alle x i verschieden sind. Ein Graph G ist ein Baum mit Wurzel u 0, wenn es für jedes v V genau einen Pfad von u 0 nach v gibt. Gelegentlich betrachten wir auch unendliche Bäume. Ist G ein Baum und v V, so heißen die w V mit vw E die Kinder von v; gibt es einen Pfad von v nach w, so ist w ein Nachkomme von v. R ist (wobei alle Formeln jeweils für alle x, y, z M gelten): reflexiv gdw. irreflexiv gdw. transitiv gdw. symmetrisch gdw. antisymmetrisch gdw. xrx xrx xry yrz = xrz xry = yrx xry yrx = x = y Definition Sind R und S Relationen über M, so ist R S = RS = {(x,z) y : xry ysz}. Die konverse Relation von R ist R 1 = {(y,x) xry}. Bemerkung: Jetzt können wir die obigen Grundeigenschaften auch elementfrei definieren:

9 1 FORMALE SPRACHEN UND WÖRTER 7 reflexiv gdw. transitiv gdw. symmetrisch gdw. antisymmetrisch gdw. id M R RR R R R 1 R R 1 id M Weiter heißt die Relation R Quasi- oder Präordnung, wenn sie reflexiv und transitiv ist; z.b. komponentenweise auf Vektoren: (1, 9, 4),(3, 3, 8) unvergleichbar Äquivalenzrelation, wenn sie Präordnung und symmetrisch ist partielle Ordnung oder Halbordnung, wenn sie Präordnung und antisymmetrisch ist strikte Halbordnung bzw. strikte partielle Ordnung, wenn sie irreflexiv und transitiv ist totale Ordnung, wenn sie partielle Ordnung ist und x, y M : xry yrx Beispiele mindestens so groß wie ist für Menschen eine Präordnung; insbesondere können verschiedene Menschen gleich groß sein. gleich groß ist für Menschen eine Äquivalenzrelation. Komponentenweises aufr n ist eine partielle Ordnung; z.b. sind(1,2,3) und(42,729,2) ungeordnet. Mit Präordnungen oder Halbordnungen kann man z.b. Präferenzen modellieren (wie z.b. schmeckt mir besser ); dabei sind nicht immer alle Auswahlmöglichkeiten vergleichbar. Präferenzen sind interessant, wenn man aus einer Datenbank die besten Treffer auf eine Suchanfrage liefern will. Totale Ordnungen auf endlichen Mengen sind Folgen und entsprechen damit Wörtern und evtl. Systemabläufen; diese Abläufe sind sequentiell. Ist das System aber verteilt/parallel, werden Aktionen von verschiedenen Prozess(or)en ausgeführt manche von einem Prozess, Synchronisationsaktionen auch von zweien oder mehreren gemeinsam. Gleichzeitige Aktionen sind sicher nicht total geordnet; auch sonstige kausal unabhängige Aktionen sollten evtl. ungeordnet sein; mit dieser Sichtweise ist ein Ablauf eine partielle Ordnung, ein sogenannter nebenläufiger Ablauf. Führt Prozess 1 abcd, Prozess 2 ebf aus (b Synchronisationsaktion), ist der Ablauf Proposition Die (zweistelligen) Relationen über einer Menge M bilden mit und id M ein Monoid. Beweis. Z.B. ist (x,z) id M R gdw. y : xid M y yrz; dies gilt gdw. xrz, da xid M y gerade x = y bedeutet. Also ist id M R = R. Damit ist also R n definiert; insbesondere ist R 0 = id M. Anschaulich bedeutet xr n y, daß es einen Pfad von x nach y aus genau n Kanten in R gibt. R 1 ist nicht invers zu R, denn in der Regel ist RR 1 id M. Wir definieren analog zu oben: R + = n 1 R = n 0 R n R n

10 1 FORMALE SPRACHEN UND WÖRTER 8 xr y heißt also, daß es einen Pfad von x nach y gibt, bzw. daß x = y, xry oder z 1,...z n : xrz 1, z 1 Rz 2,..., z n Ry. Proposition i) R ist die kleinste reflexive und transitive Relation, die R enthält die sogenannte reflexiv-transitive Hülle von R. ii) R + ist die kleinste transitive Relation, die R enthält die sogenannte transitive Hülle von R. Beweis. s. Diskrete Strukturen bzw. Schöning. Mit der neuen Notation können wir den Begriff azyklisch einführen und den nachfolgenden Zusammenhang zwischen unseren Begriffen herstellen. Definition Eine Relation R (bzw. der entsprechende Graph) ist azyklisch, wenn xr + x für kein x gilt. Proposition Ist die Relation R azyklisch, so ist R eine Halbordnung und R + eine strikte Halbordnung. Beweis. Übung Umgekehrt möchte man eine (strikte) Halbordnung oft mit möglichst wenigen Pfeilen darstellen. Dazu definieren wir: Definition Ist R eine Relation, so heißt x direkter Vorgänger von y x, xṙy, wenn xry und für alle z: xrz zry = x = z y = z. Aufgrund des folgenden Ergebnisses genügt es bei endlichen (strikten) Halbordnungen R, wenn wir nur Ṙ (z.b. graphisch) angeben; wir sprechen dann von dem Hasse-Diagramm von R. Ein Beispiel haben wir schon oben gesehen: Proposition i) Ist R eine endliche strikte Halbordnung, so ist Ṙ + = R. ii) Ist R eine endliche Halbordnung, so ist Ṙ = R. Übung: Warum ist dies evtl. falsch für unendliches R?

11 2 REGELSYSTEME UND NORMALFORMEN 9 2 Regelsysteme und Normalformen 2.1 Grundbegriffe Ziel: allgemeine Beschreibung von Umformungsprozessen auf Wörtern (für Berechnungen und die Erzeugung interessanter Wörter) schrittweise / induktive Erzeugung von Wörtern mit einfachen Regeln, ausgehend von einfachen Wörtern (induktive Erzeugung obwohl es keine Konstruktoren gibt) Berechnung: Reduktion von Wörtern auf Normalform; wichtige Fragen dabei: Wann terminiert eine solche Reduktion? Wann liefert sie ein eindeutiges Ergebnis? Werkzeug: Überführungsregeln, die Wörter geeignet umbauen Definition 2.1. Ein Regelsystem über einem Alphabet Σ ist eine endliche Menge P Σ Σ von Regeln (Produktionen). Statt (x, y) P schreiben wir oft x y; x heißt die linke, y die rechte Seite der Regel. Sprechweisen: x geht in y über, x kann ein y sein P wird meist vollständig aufgelistet. Beispiel 2.2. Ein Regelsystem zur Erzeugung von Bezeichnern. Dabei sei Bu die Menge der Buchstaben, Zi die Menge der Ziffern Σ = Bu Zi {Id} Id a für alle a Bu Id Id b für alle b Bu Zi Interpretation: Ein Bezeichner ist ein Buchstabe oder aber ein Bezeichner, gefolgt von einem Buchstaben oder einer Ziffer. Dabei ist Id ein Hilfszeichen, Bu Zi enthält die eigentlichen Zeichen. Bezeichner sind genau die Wörter über Bu Zi, die man aus dem Hilfszeichen Id erhält durch endlichmalige Anwendung der Regeln wobei am Ende das Zeichen Id eliminiert wird. Mehr zu dieser Unterscheidung von Hilfszeichen (Nichtterminalzeichen) und Terminalzeichen in Kapitel 3. Anwendung einer Regel x y auf ein Wort u bedeutet, daß wir x als Teilwort in u finden und durch y ersetzen. u = u x u v = u y u Definition 2.3. Sei P ein Regelsystem, u,v Σ. i) v ist direkt aus u ableitbar, u = v, wenn gilt: u = u xu,v = u yu mit u,u,u Σ und x y P.

12 2 REGELSYSTEME UND NORMALFORMEN 10 ii) v ist in n Schritten aus u ableitbar, u = n v, wenn gilt: v 0,...,v n : u = v 0 = v 1 =... = v n = v. (Also: u,v Σ : u = 0 v genau dann, wenn ) iii) v ist aus u ableitbar, u = v, wenn u = n v für ein n 0. (Also: u : u = u) Ferner ist u = + v, wenn u = n v für ein n > 0. n + =, = und = sind einfach = n, = + und = gemäß Abschnitt 1.3. Beispiel 2.4. i) Id = Id 3 = Id c3 = bc3; also ist bc3 ein Bezeichner. ii) Addition von Strichzahlen: Σ = {,+} P : + λ Etwa + + = + = }{{} }{{} }{{} }{{} u u u u + + = + = } {{ } }{{} }{{} }{{} u u u u Jeweils keine weiteren Regelanwendungen möglich. Regelsystem gutartig: stets nur endlich viele Regelanwendungen möglich (Terminierung) Ergebnis unabhängig von der Reihenfolge der Regelanwendungen (Determiniertheit); dies gilt, obwohl es verschiedene Regelanwendungen für dasselbe Wort geben kann (s.o.), das System in diesem Sinn also nicht-deterministisch ist. Beispiel 2.5. Erkennung korrekter Klammerfolgen: Σ = {(,)} P : () λ Etwa ((()())()) = ((())()) = (()()) = (()) = () = λ Genau die korrekten Klammerfolgen können auf λ reduziert werden: )((()())(() = )((())(() = )(()(() = )((() = )(( 2.2 Normalformen und Noethersche Induktion Die folgenden Begriffe und Ergebnisse sind auch für Relationen = anwendbar, die nicht aus Regelsystemen entstehen!! Definition 2.6. Ist = die Ableitungsrelation des Regelsystems P über Σ, so ist w Σ eine Normalform (NF) (bzw. irreduzibel), wenn es kein u mit w = u gibt. Eine Normalform w ist eine Normalform von v Σ, wenn man v auf w reduzieren kann, d.h. v = w.

13 2 REGELSYSTEME UND NORMALFORMEN 11 Die Ableitungen in den beiden obigen Beispielen führten jeweils auf Normalformen. Wir haben bereits festgestellt: die Berechnung von P aus Beispiel 2.4 kommt immer zum Ende, führt also auf eine NF; die Berechnung von P kommt immer zum selben Ergebnis, d.h. jedes v hat genau eine NF. Definition 2.7. Eine Ableitungsrelation = (bzw. das entsprechende Regelsystem) ist konfluent, wenn es für alle u,v 1,v 2 mit u = v 1 und u = v 2 ein w gibt mit v 1 = w und v 2 = w; Noethersch 1 (bzw. terminierend), wenn es keine unendliche ( absteigende ) Kette v 0 = v 1 =... gibt. Der Begriff Noethersch wird vor allem auch bei strikten Halbordnungen verwendet; wir sprechen kürzer von einer Noetherschen Halbordnung. Bsp.: < auf N Proposition 2.8. i) Ist die Ableitungsrelation = über Σ konfluent, so hat jedes u Σ höchstens eine Normalform. ii) Ist = Noethersch, so hat jedes u Σ mindestens eine Normalform. iii) Ist = konfluent und Noethersch, so hat jedes u Σ genau eine Normalform. Beweis. i) Sei u Σ mit Normalformen v 1 und v 2. Dann gilt nach Definition u = v 1 und u = v 2 und nach Vor. gibt es ein w mit v 1 = w und v 2 = w. Da v 1 und v 2 Normalformen sind, gilt dann aber v 1 = w = v 2. ii) Hat u Σ keine Normalform, setzen wir u 0 = u. Haben wir u 0 = u 1 =...u n schon gefunden, so ist u n keine Normalform, d.h. es gibt u n+1 mit u n = u n+1. Nach Induktion gibt es also eine unendliche absteigende Kette; Widerspruch. iii) folgt aus i) und ii). Für Noethersche Ableitungsrelationen gilt das folgende interessante Beweisprinzip, die sogenannte Noethersche Induktion. (im Englischen auch: well-founded induction) Satz 2.9. Sei die Ableitungsrelation = über Σ Noethersch; sei A(u) eine Aussage über u Σ. Angenommen es gilt für alle u Σ das folgende: Wenn A(v) für alle v mit u = + v gilt, so gilt auch A(u). Dann gilt A(u) für alle u Σ. Beweis. Angenommen, A ist falsch für u 0. Dann muß A auch falsch sein für ein u 1 mit u 0 = u1. Haben wir jetzt schon eine Kette u 0 = u1 =...un gefunden, so daß A falsch ist für alle u i, also auch u n, können wir die Kette analog um ein u n+1 verlängern. Insgesamt gibt es dann eine unendliche absteigende Kette von Wörtern, die alle A verletzen, ein Widerspruch. Dieser Satz läßt sich auch auf natürliche Zahlen anwenden, wenn wir N statt Σ und > statt = betrachten, denn > ist eine Noethersche Halbordnung; ferner gilt > = > +. Dann ist die Noethersche Induktion das folgende Prinzip: 1 nach der Mathematikerin Emmy Noether

14 2 REGELSYSTEME UND NORMALFORMEN 12 Korollar Sei A(n) eine Aussage über die natürliche Zahl n. Angenommen es gilt für alle n das folgende: Wenn A(m) für alle m mit m < n gilt, so gilt auch A(n). Dann gilt A(n) für alle natürlichen Zahlen n. Dies ist also eine Induktion ohne Verankerung wie kann das sein? Eine andere Anwendung ist Königs Lemma aus der Graphentheorie das z.b. eine interessante Anwendung in der Theorie der Petrinetze hat. Wir behandeln hier eine Version für Bäume, die auch unendlich sein dürfen. Ein Baum mit Wurzel u 0 ist ein Graph, bzw. eine Relation R auf einer Menge V, so daß es für jedes v V genau einen Pfad u 0 Ru 1...R u n = v gibt, s. Definition Der Baum kann unendlich sein (d.h. V ist unendlich), weil es einen unendlichen Pfad gibt; letzteres heißt gerade, daß R (das ja keine Kreise zuläßt) nicht Noethersch ist. Oder er kann unendlich sein, weil ein Knoten unendlich viele Kinder hat. Königs Lemma zeigt nun, daß dies die beiden einzigen Gründe sind. Man sagt, der Baum sei endlich verzweigt, wenn jedes v V nur endlich viele Kinder hat. Satz Königs Lemma Ein endlich verzweigter Baum mit Wurzel u 0 ist genau dann unendlich, wenn er einen unendlichen Pfad hat. Beweis. Die Rückrichtung ist offensichtlich. Nehmen wir also an, daß es keinen unendlichen Pfad gibt, R also Noethersch ist. Wir zeigen A(u) für alle u V, wobei A(u) besagt, daß u nur endlich viele Nachkommen hat. Aus A(u 0 ) folgt dann, daß der Baum endlich ist. Sei also u beliebig, und es gelte A(v) für alle v mit ur + v. Also haben insbesondere die endlich vielen Kinder v 1,...,v n jeweils nur endlich viele Nachkommen, deren Summe also endlich ist. Diese Summe plus 1 (für u) ist die Zahl der Nachkommen von u, also endlich; damit gilt A(u). Als letzte Anwendung kehren wir zur Frage nach der eindeutigen NF zurück. Um 2.8 iii) anzuwenden, müßten wir insbesondere prüfen, ob = konfluent ist, wobei wir sehr viele Tripel u,v 1,v 2 prüfen müssen. Einfacher ist die folgende Eigenschaft. Definition Eine Ableitungsrelation = (bzw. das entsprechende Regelsystem) ist lokal konfluent, wenn es für alle u,v 1,v 2 mit u = v 1 und u = v 2 ein w gibt mit v 1 = w und = w; vgl. Abbildung 1, linke Seite. v 2 Satz Ist eine Ableitungsrelation = über Σ (bzw. das entsprechende Regelsystem) lokal konfluent und Noethersch, so ist sie konfluent. Beweis. Wir zeigen mit Noetherscher Induktion A(u) für alle u Σ, wobei A(u) besagt, daß es für alle v 1,v 2 mit u = v 1 und u = v 2 ein w gibt mit v 1 = w und v 2 = w. Sei also u Σ, so daß A(x) für alle x mit u = + x gilt. Seien weiter v 1,v 2 mit u = v 1 und u = v 2 gegeben. Ist z.b. u = v 1, können wir w = v 2 wählen und sind fertig; u = v 2 analog. Also können wir annehmen, daß es x 1,x 2 gibt mit u = x 1 = v 1 und u = x 2 = v 2, und nach Induktion gelten A(x 1 ) und A(x 2 ); vgl. Abbildung 1, rechte Seite.

15 2 REGELSYSTEME UND NORMALFORMEN 13 u v 1 * v 2 * * x 1 w u * * * * v 1 x 2 y z * * * v 2 w Abbildung 1: Wegen der lokalen Konfluenz gibt es zu u,x 1,x 2 ein y mit x 1 = y und x 2 = y. Wegen A(x 1 ), x 1 = v 1 und x 1 = y gibt es ein z mit v 1 = z und y = z. Wegen A(x 2 ), x 2 = v 2 und x 2 = y = z gibt es ein w mit v 2 = w und z = w. Jetzt gilt also v 2 = w und v 1 = z = w. Wir wenden dieses Ergebnis auf folgendes Regelsystem an: Beispiel Σ = {0,1} P 01 : 01 λ 10 λ Etwa für : = = 001 = 0 P 01 angewandt auf u berechnet also anscheinend die (absolute) Differenz zwischen u 0 und u 1, wobei diese durch die entsprechende Zahl von Nullen angegeben wird, wenn u 0 größer ist, und durch die entsprechende Zahl von Einsen sonst. Die Normalformen von P 01 sind gerade die Wörter, die nur aus Nullen oder nur aus Einsen bestehen. Bei einem solchen Wort ist keine Regel anwendbar, bei allen anderen Wörtern muß irgendwo eine 0 neben einer 1 stehen, so daß ein weiterer Ableitungsschritt möglich ist. Um zu zeigen, daß P 01 (bzw. = ) Noethersch ist, kann man genau wie beim Beweis, daß eine Programmschleife terminiert (s. Info I, Info III) eine Terminierungsfunktion verwenden. Definition Eine Terminierungsfunktion zu einem Regelsystem über Σ ist eine Funktion f : Σ M, wobei R eine Noethersche Halbordnung (strikt) auf M ist und für alle u,v Σ mit u = v gilt: f(u)rf(v). Aus der Sicht von f und R macht also jeder Ableitungsschritt das Wort kleiner. Proposition Ein Regelsystem ist Noethersch, wenn es eine Terminierungsfunktion hat. Beweis. Gäbe es trotzdem eine unendliche Kettev 0 = v 1 =..., so wäref(v 0 ) R f(v 1 ) R... eine unendliche Kette von R, ein Widerspruch. Meist verwendet man (N,>) als (M,R), so auch in unserem Beispiel. Für P 01 setzen wir einfach f : {0,1} N,u, denn natürlich macht jeder Ableitungsschritt das Wort Das folgende Beispiel zeigt, daß es für eine Terminierungsfunktion nicht genügt zu fordern, daß sie auf den Grundregeln echt abnimmt, d.h. daß für alle Regeln x y gilt: f(x)rf(y). Beispiel Σ := {a} a aa

16 2 REGELSYSTEME UND NORMALFORMEN 14 R sei > auf N, f(a) = 1 und f(u) = 0 sonst. Es gilt f(a) > f(aa), aber offenbar gibt es die unendliche Ableitungsfolge a = aa = aaa =... Nun zeigen wir, daß bei P 01 jedes Wort genau eine Normalform hat. Nach 2.8 müssen wir dazu noch Konfluenz zeigen, und wegen Satz 2.13 sogar nur lokale Konfluenz. Sei also u {0,1} ein Wort mit zwei Ableitungsschritten zu zwei verschiedenen Wörtern v 1,v 2 ; es gibt also dazu passend zwei Anwendungsstellen {01, 10} in u, und diese müssen verschieden sein, da die linken Seiten der Regeln verschieden sind. Also ist u = u 01u 01u (oder u = u 10u 01u etc.), v 1 = u u 01u und v 2 = u 10u u ; dann ist aber v 1 = u u u und v 2 = u u u (genauso in den anderen 3 Fällen), und wir sind fertig. Diese Argumentation gilt analog in jedem Regelsystem! Gilt lokale Konfluenz also immer? Tatsächlich haben wir jetzt etwas übersehen! Das ist nicht immer so einfach! Beachte: 10 kann sich nicht mit 10, 01 nicht mit 01 Nur können ein Problem sein; ferner sind u, u egal: Argumentation muss für u = u = λ gelten, dann gilt sie aber auch für alle u, u. In Zukunft: nur die isolierten betrachten, im Bsp. als In unserem Fall ergibt sich die Tatsache, daß es höchstens eine NF gibt auch aus dem folgenden Korrektheitsbeweis. Dazu: Definition Eine Invariante zu einem Regelsystem über Σ ist eine Funktion f : Σ M, so daß für alle u,v Σ mit u = v gilt: f(u) = f(v). Auch dieses wichtige Werkzeug zur Analyse von Regelsystemen hat eine Analogie bei Programmen (s. Info I, Info III): Das Regelsystem P 01 hat offenbar die Invariante f(u) := u 0 u 1, da jeweils u 0 und u 1 um 1 vermindert werden. Wenn eine Ableitung von u also zum Ende kommt mit einem Wort w das tut sie immer, s.o., so besteht einerseits w nur aus Nullen oder nur aus Einsen (dies sind die NFen, s.o.), und andererseits ist u 0 u 1 = w 0 w 1. Also leistet P 01 tatsächlich, was wir oben vermutet haben.

17 3 CHOMSKY-GRAMMATIKEN 15 3 Chomsky-Grammatiken Für die systematische Beschreibung von Programmiersprachen verfeinert man Regelsysteme wie folgt: Aufteilung in Hilfszeichen (Variable, Nonterminale) und die Zeichen, aus denen die Wörter von Interesse gebildet werden (Terminalzeichen) Auszeichnung eines Startsymbols Es gibt eine Analogie zwischen regelrecht gebildeten Programmen und regelrecht gebildeten (grammatikalisch korrekten) Sätzen der deutschen Sprache. Daher heißen unsere Regelsysteme auch Grammatiken. (Tatsächlich ist Noam Chomsky Linguist.) Beispielgrammatik (Hier sind Wörter der formalen Sprache Sätze der deutschen Sprache. Für mehrere Regeln A w 1,...A w n schreiben wir kurz A w 1... w n.) Satz Subj Präd Obj. (eigentlich: <Satz> etc.) Subj Art Attrphrase Sub Art Sub Obj Art Attrphrase Sub Art Sub Präd jagt Art die der Attrphrase Attr Attr, Attrphrase Attr kleine große bissige Sub Hund Katze Ableitung: 3 Satz = Art Attrphrase Sub Präd Art Attrphrase Sub. 3 = Art Attr, Attr Sub Präd Art Attr Sub. 8 = der große, bissige Hund jagt die kleine Katze. syntaktisch/semantisch ok der Hund jagt der Katze. syntaktisch falsch der große, kleine Hund jagt die Katze. semantisch falsch der große, bissige, große Hund...??? 3.1 Grundbegriffe Definition 3.1. Eine Grammatik (Chomsky- oder Phrasenstrukturgrammatik) G über dem endlichen Alphabet Σ von Terminalzeichen ist ein Tupel G = (V, Σ, P, S), wobei: V mit V Σ = endliche Menge von Variablen (Nonterminalen) (vgl. Satz, Sub) P (V Σ) + (V Σ) endliche Menge von Regeln (Produktionen) S V Startsymbol (Axiom)

18 3 CHOMSKY-GRAMMATIKEN 16 Konvention: Bezeichnungen sind meist: a,b,c Σ u,v,w Σ A,B,C V ; S V Startsymbol α,β,γ (V Σ) Häufig wird nur P angegeben, z.b. für ergibt sich die Grammatik P = {S asd azd,z bzc bc} G = ({S,Z},{a,b,c,d},P,S). Nach Definition 2.3 ist auch für Grammatiken (direkt) ableitbar ( = und = ) eingeführt. n n Wenn wir G explizit erwähnen wollen, schreiben wir =, = bzw. = für =, = bzw. G G G =. Unser wesentliches Interesse ist auf die aus S ableitbaren Wörter gerichtet, die aus Terminalzeichen bestehen. Definition 3.2. Die Satzformsprache S(G) ist die Menge S(G) = {α (V Σ) S = G α}. (Also: S S(G)). S = α 1 =... = α n ist eine Ableitung von α n. Die von G erzeugte Sprache ist L(G) = {v Σ S = v} = S(G) Σ. G Zwei Grammatiken G und G heißen äquivalent, wenn L(G) = L(G ). Beispiele 3.3. i) P = {S B SB SZ} {B β β {a,...,z}} {Z β β {0,...,9}} vgl. Beispiel 2.2 Eine Ableitung ist S = SZ = SBZ = SdZ = BdZ 2 = ad1. L(G) ist die Menge der Bezeichner. S(G) = ii) P = {S asb λ}. Wie bestimmen wir L(G)? Zunächst ist S(G) = {a n Sb n n 0} {a n b n n 0} =: X. Beweis: : Sei α S(G), d.h. S n = α für ein n N. Wir zeigen durch Induktion über n, daß α X. n = 0: α = S X. n + 1: S n = β = α; nach Induktion ist β X. Ist β = a k b k, gibt es keinen Ableitungsschritt; Widerspruch. Also ist β = a k Sb k und α = a k+1 Sb k+1 X bei Anwendung

19 3 CHOMSKY-GRAMMATIKEN 17 der ersten Regel oder α = a k b k X bei Anwendung der zweiten Regel. Kurz: S X und X ist abgeschlossen unter =. : a n Sb n S(G) mit Induktion über n: a 0 Sb 0 = S S(G); ist a n Sb n S(G) nach Ind.ann., so S = a n Sb n = a n+1 Sb n+1 wegen der ersten Regel, also a n+1 Sb n+1 S(G). Wegen a n Sb n S(G) folgt nun auch a n b n S(G) mit der zweiten Regel. Damit ist offenbar L(G) = {a n b n n 0}. Bemerkenswert: Diese Sprache zählt, was unbeschränktes Gedächtnis erfordert. Bem.: Das vorgestellte Verfahren zur Bestimmung von L(G) ist nicht immer notwendig eigentlich auch hier nicht. Es wird oft darauf verzichtet. iii) P = {S asbc λ, CB BC, ab ab, bb bb, bc bc, cc cc} Eine Ableitung ist S = asbc = aasbcbc = aabcbc = 2 aabbcc = 3 aabbcc. Es gilt auch S = aabcbc = aabcbc, von wo man die Ableitung nicht fortsetzen kann. Man kann zeigen, daß L(G) = {a n b n c n n 0}. s. Schöning Beispiel 3.4. P = {S (S +S) S +S (S S) S S a b c}. Also ist Σ = Eine Ableitung ist S = S +S = S S +S = (S +S) S +S 4 = (a+b) c+a. Die Grammatik erzeugt alle teilweise geklammerten arithmetischen Ausdrücke mit den Programmvariablen a, b, c. Grammatiken, bei denen die linke Seite jeder Regel aus genau einem Nonterminal besteht, heißen kontextfrei, s.u. (Die Grammatik in 3.3 iii) ist z.b. nicht kontextfrei.) Für solche Grammatiken kann man eine Ableitung sehr übersichtlich als Ableitungs- oder Syntaxbaum darstellen. Dabei wird die Wurzel mit S beschriftet, und für jede Anwendung einer Regel erhält der der linken Seite entsprechende Knoten passend viele Kinder, die der Reihe nach mit den Zeichen der rechten Seite beschriftet werden. Am unteren Rand steht die erzeugte Satzform. In unserem Beispiel: S S + S S * S a ( S + S ) c a b Interessanterweise gibt der Baum auch die Berechnungsstruktur von (a + b) c + a wieder: Die Blätter werden durch passende Werte ersetzt. Sind alle Kinder (ggf.) ausgewertet, so ergibt sich aus ihren Werten der Wert für den Vater. Beachten Sie, daß die Baumstruktur wiedergibt, daß Punkt- vor Strichrechnung geht (abgesehen von Klammerung).

20 3 CHOMSKY-GRAMMATIKEN 18 Dieser Zusammenhang von Ableitungs- und Berechnungsstruktur ist im Compilerbau sehr wichtig. (Die Auswertung von Ausdrücken erfolgt im compilierten Programm genau nach dem gerade beschriebenen Prinzip.) Dummerweise hat (a + b) c + a auch noch eine andere Ableitung mit einem anderen Ableitungsbaum: S = S S = S S +S = (S +S) S +S = 4 (a+b) c+a S S * S ( S + S ) S + S a b Jetzt bindet plötzlich + stärker als das ist natürlich falsch. Für den praktischen Einsatz müssen wir unsere Grammatik also noch verbessern. (s.u.) c a 3.2 Die Chomsky-Hierarchie Man unterscheidet wie gerade schon angedeutet bei Grammatiken verschiedene Typen. Eine Grammatik ist vom Typ i, bzw. eine Typ i Grammatik (oder auch Chomsky i Grammatik), i = 0,1,2,3, wenn alle Regeln die folgende Form haben: (dabei A,B V, α,β,γ (V Σ), u Σ ) Typ 0: beliebig; speziell: klassische Typ 0 Grammatik: αaβ γ Typ 1: a) monotone Grammatik: α β mit α β oder S λ; falls S λ, dann erscheint S nie auf der rechten Seite einer Regel. Bsp. 3.3 iii) ist b) kontextsensitive Grammatik: αaβ αγβ mit γ 1 oder S λ; falls S λ, dann wie oben ist auch Typ 2: kontextfreie Grammatik: A α Typ 3: reguläre Grammatik: rechtslineare Grammatik: A ub oder A u Bsp. 3.3 i) ist (linkslineare Grammatik: A Bu oder A u) Bei kontextfreien Regeln A α wird A unabhängig vom Kontext, d.h. von den umgebenden Zeichen, ersetzt; bei einer kontextsensitiven Regel αaβ αγβ ist das gerade anders solche Regeln arbeiten also gezielter.

21 3 CHOMSKY-GRAMMATIKEN 19 Definition 3.5. Eine formale Sprache heißt vom Typ i, wenn sie von einer Typ i Grammatik erzeugt wird i = 0, 1, 2, 3. Man sagt auch: statt vom Typ rekursiv aufzählbar 0 kontextsensitiv 1 kontextfrei 2 regulär 3 Offenbar ist jede Typ 3 Grammatik auch vom Typ 2; demnach ist natürlich auch jede Typ 3 Sprache vom Typ 2. Wegen Regeln der Form A λ ist aber nicht jede Typ 2 Grammatik auch vom Typ 1; trotzdem wird sich im nächsten Abschnitt, in dem wir uns einen ersten genaueren Überblick über die Grammatik-Typen verschaffen, herausstellen, daß auch jede Typ 2 Sprache vom Typ 1 ist. Es wäre auch zunächst denkbar, daß es zu jeder Typ 2 Sprache L auch eine Typ 3 Grammatik gibt, die L erzeugt. Es wird sich herausstellen, daß dies nicht der Fall ist, und es wird sich für die Sprachebene ergeben: Dies ist die Chomsky Hierarchie. Typ3 Typ2 Typ1 Typ0 Von großem Interesse ist das Wortproblem: Gegeben G und w Σ mit Länge n. Ist w L(G)? (z.b. Grammatik für C, eine Zeichenfolge Prog. Ist Prog ein C Programm?) Für eine gegebene Grammatik vom Typ ist das Wortproblem: 0 eventuell unentscheidbar. 1 entscheidbar, aber sehr komplex. 2 in O(n 2,4 ) entscheidbar. 3 in O(n) mit konstantem Platz entscheidbar. for i:=1 to n do something O(n) for i:=1 to n do for j:=1 to i do something O(n 2 ) Summe 1 bis n ist O(n 2 ). Ziel der Vorlesung ist die Untersuchung der Sprachklassen der Chomsky-Hierarchie ( ohne Typ 1) und der zugeordneten Maschinenmodelle. Speziell: Wortproblem. Es hat sich herausgestellt, daß für diese Untersuchungen Abschlußeigenschaften besonders hilfreich sind. (Z.B.: Ist die Vereinigung zweier regulärer Sprachen regulär?) Eigentlich haben Programme kontextsensitive Aspekte z.b. müssen Variable vor ihrer Benutzung deklariert werden; da aber bereits kontextsensitive Sprachen sehr schwer zu handhaben sind, verwendet man für Programmiersprachen kontextfreie (und für einige Aspekte reguläre) Grammatiken und beschreibt die kontextsensitiven Aspekte mit anderen Mitteln. Typ-0-Sprachen sind wichtig bei der Untersuchung, welche Fragestellungen sich überhaupt algorithmisch, also durch einen Computer lösen lassen.

22 3 CHOMSKY-GRAMMATIKEN Normalform Es stellt sich zunächst die Frage, ob die spezielleren klassischen Typ 0 Grammatiken weniger können als allgemeine Typ 0 Grammatiken. Um dies zu widerlegen, zeigen wir daß zu jeder Typ 0 Grammatik effektiv eine äquivalente klassische Typ 0 Grammatik existiert. Dabei bedeutet effektiv, daß wir ein konkretes Verfahren zur Umwandlung angeben. Proposition 3.6. Zu jeder Grammatik G gibt es effektiv eine äquivalente Grammatik G mit P V + V V Σ); die Transformation erhält die (Unter )Typen außer Typ 3. Speziell: Zu jeder Typ 0 Grammatik gibt es effektiv eine äquivalente klassische Typ 0 Grammatik. Die Transformation ist auch für kontextfreie Grammatiken nützlich. Beweis. Für jedes Terminalzeichen a sei a ein neues Zeichen, eine Kopie von a. Wir setzen V = V {a a Σ}, Σ = Σ, S = S. P erhalten wir aus P, indem wir alle a Σ durch a ersetzen und die Regeln a a hinzufügen ( a Σ). Untertypen bleiben erhalten. Z.B.: P = {S as ab, ab abb} belegt, daß a + b + Typ 0 Sprache ist. Daraus wird P = {S a S a b, a b a b b, a a, b b}; dies belegt, daß a + b + auch klassische Typ 0 Sprache ist. Der Ableitung S = as = aas = aaab = aaabb entspricht in G S = a S = a a S = a a a b = a a a b b = aa a b b 4 = aaabb. Es gibt in G aber auch weniger geordnete Ableitungen. Zum Äquivalenzbeweis: i) a i,b i V Σ, m,n 0: a 1 a m = G b 1 b n genau dann, wenn ã 1 ã m = G b1 b n, wobei ã i = { a i für a i Σ a i für a i V, analog für b i Also: Wenn S = G w Σ, dann S = G w = G w. ii) Gilt u = v mit einer Regel a a und v = w mit einer Regel, die aufgrund von P G G in P ist, dann lassen sich die Regeln auch in umgekehrter Reihenfolge anwenden mit einer Ableitung u = v = w. G G Jede Ableitung in G läßt sich also umwandeln, so daß die Terminale zum Schluß eingesetzt werden. Nach i) gibt es also Ableitung in G für dasselbe Wort. Formaler: S = G w Σ, dann S = G w = G w, und mit i) S = G w. Es läßt sich auch zeigen, daß zu jeder monotonen Grammatik effektiv eine äquivalente kontextsensitive Grammatik existiert. (aufwendig!) Also leisten die Untertypen von Typ-0- und Typ-1-Grammatiken jeweils dasselbe. Um die Inklusionen der Chomsky-Hierarchie einzusehen, fehlt uns also nur noch der Schritt von Typ 2 zu Typ 1; dazu müssen wir die λ Regeln A λ eliminieren.

23 3 CHOMSKY-GRAMMATIKEN 21 Definition 3.7. Eine Regel A λ heißt λ Regel. Ein Symbol A heißt nullierbar, falls A = λ. G Satz 3.8. Zu jeder kontextfreien Grammatik G existiert effektiv eine kontextfreie Grammatik G ohne λ Regeln mit L(G ) = L(G) {λ}. Beweis. Füge iterativ Regeln zu P hinzu: Wenn A A 1 A n (alle A j Σ V ) und A i λ P, füge A A 1 A i 1 A i+1 A n hinzu. (Ist A nullierbar, weil alle A i nullierbar sind, wird also schließlich A λ hinzugefügt.) Wiederhole dies, bis keine neue Regel hinzukommt. Das Verfahren terminiert und ändert die Sprache nicht es werden nur Ableitungen auf λ vorweggenommen. Streichen aller λ Regeln ergibt G. Korollar 3.9. Jede kontextfreie Sprache ist kontextsensitiv. Beweis. Konstruiere G nach 3.8 und füge im Fall L(G) λ ein neues Startsymbol S 0 und Regeln S 0 λ und S 0 S hinzu. G ist monoton. Also gelten die Inklusionen der Chomsky-Hierarchie; ob sie echt sind, bleibt aber noch offen.

24 4 REGULÄRE SPRACHEN 22 4 Reguläre Sprachen Beispiel 4.1. Bezeichner bilden eine reguläre Sprache, obwohl unsere Grammatik in Beispiel 3.3 i) nicht regulär (sondern kontextfrei) war. Beleg: P = {S aa... za, A λ aa...za 0A...9A}. Grammatiken erzeugen Sprachen; um zu prüfen, ob ein Wort in einer Sprache liegt, sind abstrakte Maschinen nützlich vor allem, wenn sie sich auch effizient implementieren lassen. Da Maschinen Strings zeichenweise lesen, zeigen wir zunächst, daß man die Regeln rechtslinearer Grammatiken noch einfacher machen kann: Definition 4.2. Eine rechtslineare Grammatik heißt fast buchstabierend, wenn alle Regeln die Form A ub oder A u mit u Σ {λ} haben. Proposition 4.3. Zu jeder rechtslinearen Grammatik existiert effektiv eine äquivalente fast buchstabierende rechtslineare Grammatik. Beweis. Ist A ub bzw. A u eine Regel mit u = u 1...u n, n 2 und alle u i Σ, fügen wir neue Nonterminale B 1,...,B n 1 ein und ersetzen die Regel durch die Regeln A u 1 B 1, B 1 u 2 B 2,..., B n 1 u n B bzw. B n 1 u n. 4.1 Endliche Automaten Die einfachsten abstrakten Maschinen sind endliche Automaten. Sie spielen (in leicht abgewandelter Form) auch eine wichtige Rolle im Software- und Systementwurf (Zustandsübergangssysteme (UML), Transitionssysteme). Wir können die Variablen einer fast buchstabierenden rechtslinearen Grammatik als Zustände eines Automaten auffassen. Anwendung einer Regel A ab entspricht einem Zustandsübergang von A nach B, wobei a gelesen wird. Eine Regel A B entspricht einem spontanen Übergang ohne Lesen eines Zeichens. Die Maschine akzeptiert ein Wort, wenn sie am Wortende in einen besonders ausgezeichneten Zustand gelangt. Definition 4.4. Ein (nichtdeterministischer) endlicher Automat (EA) über Σ ist ein Tupel A = (Q,Σ,δ,q 0,F), wobei: Q endliche Menge von Zuständen q 0 Q Startzustand F Q Menge der (akzeptierenden oder) Endzustände δ Q (Σ {λ}) Q Übergangsrelation Graphische Darstellung: Zustand q Q bzw. q (p,α,q) δ p α q Startzustand q 0 bzw. Endzustand q F bzw.

25 4 REGULÄRE SPRACHEN 23 b a λ Beispiel 4.5. a λ c d b Ein endlicher Automat ist also ein Kanten-beschrifteter gerichteter Graph mit ausgezeichneten Ecken; die Kanten / Pfeile werden als Tripel angegeben mit der Beschriftung in der Mitte. Es kann zwischen zwei Ecken mehrere ( parallele ) Kanten mit verschiedenen Beschriftungen geben meist malt man nur eine Kante und trennt die Beschriftungen durch ein Komma. Die Sprache L(A) ist die Menge der Beschriftungen von Pfaden vonq 0 zu einem Endzustand. Auf diesem Pfad dürfen weitere Endzustände liegen; z.b. abda L(A). Definition 4.6. Zum endlichen Automaten A sei δ Q Σ Q die kleinste 3-stellige Relation mit i) p Q: (p,λ,p) δ ii) p,q,q Q, v Σ, α Σ {λ} : (p,v,q ) δ,(q,α,q) δ = (p,vα,q) δ Also: (p,v,q) δ = A kann v von p nach q lesen. Die akzeptierte (erkannte) Sprache eines endlichen Automaten A ist: L(A) = {w Σ q F mit (q 0,w,q) δ } = {w 1 w n Σ n 0; p 0 = q 0,p 1,...,p n : p n F und i = 1,...,n : w i Σ {λ} und (p i 1,w i,p i ) δ (bzw. (p 0,w 1,p 1 ),...,(p n 1,w n,p n ) δ)} Endliche Automaten A 1, A 2 heißen äquivalent, wenn L(A 1 ) = L(A 2 ). Ist speziell q 0 F, so kann man oben n = 0 wählen und erhält λ L(A). Im obigen Beispiel gibt es... mit ab beschriftete Pfade von q 0 aus, von denen nur einer in F endet. Nach 4.6 akzeptiert der Automat ab, d.h. er rät richtig im Gegensatz zu real existierenden Maschinen, die im Zweifel alles falsch machen; angelischer vs. dämonischer Nichtdeterminismus. Die Umsetzung in ein reales Programm zur Spracherkennung ist also nicht offensichtlich. Bisweilen: Menge I Q von Startzuständen; gleiche Klasse der von endlichen Automaten erkannten Sprachen. a b a b b Abbildung 2:

26 4 REGULÄRE SPRACHEN 24 Beispiel 4.7. Für A aus Abb. 2 ist L(A) =. Der dritte Zustand (als Startzustand) charakterisiert die Wörter Der zweite Zustand charakterisiert die Wörter Satz 4.8. Eine Sprache L Σ ist genau dann regulär, wenn L von einem endlichen Automaten akzeptiert wird. Beweis. = Sei G eine (wg. Prop. 4.3) fast buchstabierende rechtslineare Grammatik mit L(G) = L. Definiere A durch Q = V {f} q 0 = S F = {f} und δ = {(B,u,C) B uc P} {(B,u,f) B u P}. Man sieht, daß die Ableitungen B = wc den mit w beschrifteten Pfaden von B nach C entsprechen und die Ableitungen S = w den akzeptierenden Pfaden. = Sei umgekehrt L = L(A). Definiere G := (Q,Σ,P,q 0 ) durch P = {B uc (B,u,C) δ} {B λ B F} Z.B. wird aus p u q {p uq,q λ}. Als ersten Schritt zu einem realistischeren Automatentyp zeigen wir, daß Automaten ohne spontane Übergänge nicht weniger können. Definition 4.9. Eine endlicher Automat heißt buchstabierend, wenn δ Q Σ Q. Satz Zu jedem endlichen Automaten A existiert effektiv ein äquivalenter buchstabierender endlicher Automat A. Beweis. Wir müssen lediglich die λ Kanten eliminieren. Wir setzen R(p) = {q Q (p,λ,q) δ }. Dann sei Q = Q, q 0 = q 0, δ = {(p,a,q) Q Σ Q q R(p) : (q,a,q) δ} und F = {p Q R(p) F }. λ λ a a a a λ λ

27 4 REGULÄRE SPRACHEN Pumping Lemma für reguläre Sprachen oder: Das uvw Theorem Um zu zeigen, daß eine Sprache regulär ist, muß man lediglich eine entsprechende Grammatik oder einen entsprechenden EA angeben. Wie aber zeigt man, daß eine Sprache nicht regulär ist? Hier ein wichtiges Hilfsmittel. Satz Sei L regulär. Dann existiert ein n 1, so daß es für alle z L mit z n eine Zerlegung z = uvw gibt, für die gilt: uv n, v 1 und i 0 : uv i w L Beweis. Sei A ein buchstabierender endlicher Automat mit L = L(A). Wähle n = Q. Sei z = a 1 a m L; m n, a i Σ. Dann in A: (q 0,a 1,q 1 ),(q 1,a 2,q 2 ),...,(q m 1,a m,q m ) δ und q m F. Nach Wahl von n tritt ein Zustand in der Folge q 0,...,q m ja sogar in q 0,...,q n mehrfach auf, d.h. 0 j < k n mit q j = q k. Wir setzen u = a 1 a j,v = a j+1...a k,w = a k+1...a m. Dann gilt uv = k n; v = k j 1. Wir können von q 0 aus u lesen und q j erreichen, dann beliebig oft v und q j = q k erreichen (auch 0 mal!), schließlich w und einen Endzustand erreichen; also gilt: i 0 : uv i w L. Der Satz gibt nur eine Folgerung, aber keine Charakterisierung für reguläre Sprachen an. Aus der Folgerung kann man schließen, daß reguläre Sprachen in einem gewisse Sinn ein lineares Wachstum haben, also nicht immer größer werdende Lücken; vgl Aber eigentlich ist die Folgerung für sich genommen nicht besonders interessant. Anwendung: Zeigen, daß L die Folgerung verletzt und daher nicht regulär sein kann. Beispiel Das klassische Beispiel: L = {a m b m m 0} ist nicht regulär. (Bsp. 3.3 ii)) Beweis. Annahme: L ist regulär. Dann gibt es ein n wie in (Wir kennen n nicht, eventuell ist n sehr groß, abhängig von n dürfen wir jetzt aber ein beliebiges z L wählen.) Sei z = a n b n ; dann gibt es uvw wie in (Wir kennen uvw nicht, wir müssen in jedem Fall zum Widerspruch kommen.) Da uv n gilt uv = a j, j n, ferner ist v = a k, k 1. Für i = 0 ergibt 4.11: a j k a n j b n = a n k b n L mit n k n. Widerspruch! (Wir haben gezeigt, dass n z z = uvw gilt: uv n v 1 i 0 : uv i w L bzw. uv n v 1 = i 0 : uv i w L. Um zu zeigen, dass n k : n < k, gibt man einfach k = n+1 an; analog haben wir z = a n b n angegeben.) Schlussfolgerung: Nicht jede kontextfreie Sprache ist regulär; vgl. 3.3 ii). Endliche Automaten können nicht zählen. Beispiel L = { } a m2 m 0 ist nicht regulär. (Hat immer größere Lücken.) Beweis. Annahme: L ist regulär. Dann gibt es ein n wie in (Wir dürfen wieder ein beliebiges, langes z L wählen.) Sei z = a n2 ; dann gibt es uvw wie in (Wir kennen uvw nicht, wir müssen in jedem Fall zum Widerspruch kommen.)

28 4 REGULÄRE SPRACHEN 26 Also ist uv 2 w L und wegen 1 v uv n gilt n 2 = uvw < uv 2 w n 2 + n < n 2 +2n+1 = (n+1) 2 Also ist uv 2 w keine Quadratzahl Widerspruch!

29 4 REGULÄRE SPRACHEN Deterministische Automaten Realistische Maschinen/Programme raten nicht einfach richtig; wir geben jetzt eine realistische Automatenvariante, die man direkt in ein Programm übertragen kann. Definition Ein buchstabierender endlicher Automat heißt deterministisch (ein DEA), wenn δ eine partielle Funktion Q Σ Q ist, d.h. wenn q Q, a Σ höchstens ein Folgezustand q Q mit (q,a,q ) δ existiert. Ein DEA heißt vollständig, wenn δ eine (total definierte!) Funktion ist. Beispiel Der endliche Automat in Abbildung 2 ist deterministisch, aber nicht vollständig. Kann ein DEA A v von p nach q lesen, so istq eindeutig. Also istδ eine partielle Funktion Q Σ Q. Ein deterministischer endlicher Automat läßt sich leicht in ein Programm zur Worterkennung umwandeln; dies benötigt die Tabelle δ, den jeweils aktuellen Zustand (zunächst q 0 ), das gerade gelesene Zeichen und F, also konstanten Platzbedarf; jedes Zeichen wird in konstanter Zeit verarbeitet, das Wort also in linearer Zeit gelesen (gemessen an der Wortlänge). Satz 4.16 (Hauptsatz über endliche Automaten). Zu jeder regulären Sprache L gibt es effektiv einen vollständigen (und daher deterministischen) endlichen Automaten A mit L(A) = L. Beweis. Potenzautomatenkonstruktion von Myhill: Nach 4.10 sei A ein buchstabierender endlicher Automat mit L(A ) = L. Idee: A merkt sich in jedem seiner Zustände alle Zustände von A, in die A beim Lesen einer gegebenen Eingabe geraten kann. Also: Q := P(Q ), q 0 = {q 0 }, δ(p,a) = {q Q p P mit (p,a,q) δ } Idee: Nach dem bisher gelesenen v kann A in jedem p P sein; ist (p,a,q) δ, kann A nach va in q sein. Offenbar ist A deterministisch und sogar vollständig. F = {P Q P F }. Idee: Ist A im Superzustand P F, könnte A in p P F sein und akzeptieren. Um zu zeigen, daß L(A) = L(A ), zeigen wir durch Induktion über w : Variante 1: ( ) (q 0,w,P) δ P = { q Q (q 0,w,q) δ } Induktionsanfang: w = 0, d.h. w = λ : (q 0,λ,P) δ P = q 0 = {q 0 } = {q Q (q 0,λ,q) δ } (A und A sind buchstabierend!) Induktionsschritt: Sei w Σ und a Σ, wobei w nach Ind.ann. ( ) erfüllt: (q 0,wa,P) δ Def.δ (q 0,w,P ) δ (P,a,P) δ (A buchst.) IAnn P = {p Q (q 0,w,p) δ } (P,a,P) δ Def.δ P =... P = {q Q p P : (p,a,q) δ } P = {q Q p Q : (q 0,w,p) δ (p,a,q) δ } Def.δ P = {q Q (q 0,wa,q) δ } (A buchst.)

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende

Mehr

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Einheit 2.4 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibungsformen für Sprachen Mathematische Mengennotation Prädikate beschreiben Eigenschaften

Mehr

Grammatiken. Einführung

Grammatiken. Einführung Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische

Mehr

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax

Mehr

Wortproblem für kontextfreie Grammatiken

Wortproblem für kontextfreie Grammatiken Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Formale Sprachen und Grammatiken

Formale Sprachen und Grammatiken Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax

Mehr

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19 Inhalt 1 inführung 2 Automatentheorie und ormale prachen Grammatiken Reguläre prachen und endliche Automaten Kontextfreie prachen und Kellerautomaten Kontextsensitive und yp 0-prachen 3 Berechenbarkeitstheorie

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 3. Endliche Automaten (V) 21.05.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Determinierte endliche Automaten (DEAs) Indeterminierte

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Vorlesung Theoretische Informatik

Vorlesung Theoretische Informatik Vorlesung Theoretische Informatik Automaten und Formale Sprachen Hochschule Reutlingen Fakultät für Informatik Masterstudiengang Wirtschaftsinformatik überarbeitet von F. Laux (Stand: 09.06.2010) Sommersemester

Mehr

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit Sommersemester 2011 Dozent: Prof. Dr. J. Rothe, Prof. Dr. M. Leuschel J. Rothe (HHU Düsseldorf)

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Mathematische Grundlagen der Informatik 2

Mathematische Grundlagen der Informatik 2 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Emanuel Duss emanuel.duss@gmail.com 12. April 2013 1 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Dieses Dokument basiert

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 11: Abstrakte Reduktionssysteme schulz@eprover.org Reduktionssysteme Definition: Reduktionssystem Ein Reduktionssystem ist ein Tupel (A, ) Dabei gilt: A

Mehr

Einführung in die Algebra

Einführung in die Algebra Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 8: kontextfreie Grammatiken Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/37 Überblick Kontextfreie Grammatiken

Mehr

Informatik IC2. Balazs Simon 2005.03.26.

Informatik IC2. Balazs Simon 2005.03.26. Informatik IC2 Balazs Simon 2005.03.26. Inhaltsverzeichnis 1 Reguläre Sprachen 3 1.1 Reguläre Sprachen und endliche Automaten...................... 3 1.2 Determinisieren.....................................

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik für die Studiengänge Ingenieur-Informatik berufsbegleitendes Studium Lehramt Informatik (Sekundar- und Berufsschule) http://theo.cs.uni-magdeburg.de/lehre04s/ Lehrbeauftragter:

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

Sprachen/Grammatiken eine Wiederholung

Sprachen/Grammatiken eine Wiederholung Sprachen/Grammatiken eine Wiederholung Was sind reguläre Sprachen? Eigenschaften regulärer Sprachen Sprachen Begriffe Symbol: unzerlegbare Grundzeichen Alphabet: endliche Menge von Symbolen Zeichenreihe:

Mehr

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1 Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 7 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 1 Wir betrachten die folgende Signatur

Mehr

Einführung in die Theoretische Informatik. Prof. Dr. W. Vogler

Einführung in die Theoretische Informatik. Prof. Dr. W. Vogler Einführung in die Theoretische Informatik Prof. Dr. W. Vogler 1 INHALTSVERZEICHNIS i Inhaltsverzeichnis 1 Formale Sprachen und Wörter 1 1.1 Wörter........................................ 1 1.2 Monoide.......................................

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls 4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,

Mehr

7. Formale Sprachen und Grammatiken

7. Formale Sprachen und Grammatiken 7. Formale Sprachen und Grammatiken Computer verwenden zur Verarbeitung von Daten und Informationen künstliche, formale Sprachen (Maschinenspr., Assemblerspachen, Programmierspr., Datenbankspr., Wissensrepräsentationsspr.,...)

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 3.2.07 astian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Organisatorisches / Review is zum 2.2 müssen alle Praxisaufgaben

Mehr

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Theoretische nformatik inheit 3.1 Kontextfreie Grammatiken

Mehr

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Basis und Dimension Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren. Definition. Sei V ein K-Vektorraum und (v i ) i I eine Familie von Vektoren

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0809

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Turing-Machine Wir suchen ein Modell zur formalen Definition der Berechenbarkeit von Funktionen und deren Zeit- und Platzbedarf. Verschiedene Modelle

Mehr

Semantik von Formeln und Sequenzen

Semantik von Formeln und Sequenzen Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt

Mehr

Beispiele für Relationen

Beispiele für Relationen Text Relationen 2 Beispiele für Relationen eine Person X ist Mutter von einer Person Y eine Person X ist verheiratet mit einer Person Y eine Person X wohnt am gleichen Ort wie eine Person Y eine Person

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren: 4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie

Mehr

3. Zusammenhang. 22 Andreas Gathmann

3. Zusammenhang. 22 Andreas Gathmann 22 Andreas Gathmann 3. Zusammenhang Eine der anschaulichsten Eigenschaften eines topologischen Raumes ist wahrscheinlich, ob er zusammenhängend ist oder aus mehreren Teilen besteht. Wir wollen dieses Konzept

Mehr

Der Zwei-Quadrate-Satz von Fermat

Der Zwei-Quadrate-Satz von Fermat Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 6: Induktives Vorgehen Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische

Mehr

4. Relationen. Beschreibung einer binären Relation

4. Relationen. Beschreibung einer binären Relation 4. Relationen Relationen spielen bei Datenbanken eine wichtige Rolle. Die meisten Datenbanksysteme sind relational. 4.1 Binäre Relationen Eine binäre Relation (Beziehung) R zwischen zwei Mengen A und B

Mehr

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler Formale Sprachen Der Unterschied zwischen Grammatiken und Sprachen Rudolf Freund, Marian Kogler Es gibt reguläre Sprachen, die nicht von einer nichtregulären kontextfreien Grammatik erzeugt werden können.

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Tutorium 27 29..24 FAKULTÄT FÜR INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Definition

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Tutorium 4 26..25 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 27. Aussagenlogik: Logisches Schliessen und Resolution Malte Helmert Universität Basel 28. April 2014 Aussagenlogik: Überblick Kapitelüberblick Aussagenlogik: 26.

Mehr

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN CHRISTIAN HARTFELDT. Zweiter Mittelwertsatz Der Mittelwertsatz Satz VI.3.4) lässt sich verallgemeinern zu Satz.. Seien f, g : [a, b] R auf [a,

Mehr

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen Zusammenfassung Zusammenfassung der letzten LV Einführung in die Theoretische Informatik Woche 6 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Satz 1 Seien F, G Boolesche Ausdrücke

Mehr

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter H. Schmitt David Farago, Christoph Scheben, Mattias Ulbrich Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt

Mehr

Grammatiken und die Chomsky-Hierarchie

Grammatiken und die Chomsky-Hierarchie Grammatiken und die Chomsky-Hierarchie Def.: Eine Grammatik G=(Σ,V,S,R) besteht aus endlichem Alphabet Σ endlicher Variablenmenge V mit V Σ= Startsymbol SєV endlicher Menge R с (V Σ) + x(v Σ)* von Ableitungsregeln

Mehr

Einführung in. Logische Schaltungen

Einführung in. Logische Schaltungen Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von

Mehr

9. Übung Formale Grundlagen der Informatik

9. Übung Formale Grundlagen der Informatik Institut für Informatik Sommersemester 2001 Universität Zürich 9. Übung Formale Grundlagen der Informatik Norbert E. Fuchs (fuchs@ifi.unizh.ch) Reinhard Riedl (riedl@ifi.unizh.ch) Nadine Korolnik (korolnik@ifi.unizh.ch)

Mehr

Absolute Stetigkeit von Maßen

Absolute Stetigkeit von Maßen Absolute Stetigkeit von Maßen Definition. Seien µ und ν Maße auf (X, Ω). Dann heißt ν absolut stetig bezüglich µ (kurz ν µ ), wenn für alle A Ω mit µ(a) = 0 auch gilt dass ν(a) = 0. Lemma. Sei ν ein endliches

Mehr

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema 2x 4 + x 3 + x + 3 div x 2 + x 1 = 2x 2 x + 3 (2x 4 + 2x 3 2x 2 ) x 3 + 2x 2 + x + 3 ( x

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Die Regeln zur Bildung korrekter Wörter einer Sprache kann man in einer natürlichen Sprache formulieren. Da dies jedoch wieder Mehrdeutigkeiten mit

Mehr

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 20.12.07 Bastian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Rückblick Semi-Thue-Systeme Ein Semi-Thue-System besteht

Mehr

2. Vorlesung. Slide 40

2. Vorlesung. Slide 40 2. Vorlesung Slide 40 Knobelaufgabe Was tut dieses Programm? Informell Formal Wie stellt man dies sicher? knobel(a,b) { Wenn a = 0 dann return b sonst { solange b 0 wenn a > b dann { a := a - b sonst b

Mehr

3.2 Spiegelungen an zwei Spiegeln

3.2 Spiegelungen an zwei Spiegeln 3 Die Theorie des Spiegelbuches 45 sehen, wenn die Person uns direkt gegenüber steht. Denn dann hat sie eine Drehung um die senkrechte Achse gemacht und dabei links und rechts vertauscht. 3.2 Spiegelungen

Mehr

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung Frank Heitmann heitmann@informatik.uni-hamburg.de 13. Mai 2014 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/17 Überblick Wir hatten

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Was bisher geschah: Formale Sprachen

Was bisher geschah: Formale Sprachen Was isher geschah: Formale Sprachen Alphaet, Wort, Sprache Operationen und Relationen auf Wörtern und Sprachen reguläre Ausdrücke: Syntax, Semantik, Äquivalenz Wortersetzungssysteme Wortersetzungsregeln

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

Eine Logikschaltung zur Addition zweier Zahlen

Eine Logikschaltung zur Addition zweier Zahlen Eine Logikschaltung zur Addition zweier Zahlen Grundlegender Ansatz für die Umsetzung arithmetischer Operationen als elektronische Schaltung ist die Darstellung von Zahlen im Binärsystem. Eine Logikschaltung

Mehr

Theoretische Informatik SS 04 Übung 1

Theoretische Informatik SS 04 Übung 1 Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die

Mehr

Übung Theoretische Grundlagen

Übung Theoretische Grundlagen Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

Guten Morgen und Willkommen zur Saalübung!

Guten Morgen und Willkommen zur Saalübung! Guten Morgen und Willkommen zur Saalübung! 1 Wie gewinnt man ein Spiel? Was ist ein Spiel? 2 Verschiedene Spiele Schach, Tic-Tac-Toe, Go Memory Backgammon Poker Nim, Käsekästchen... 3 Einschränkungen Zwei

Mehr

Theoretische Informatik Mitschrift

Theoretische Informatik Mitschrift Theoretische Informatik Mitschrift 2. Grammatiken und die Chomsky-Hierarchie Beispiel: Syntaxdefinition in BNF :=

Mehr

Mathematische Maschinen

Mathematische Maschinen Mathematische Maschinen Ziel: Entwicklung eines allgemeinen Schemas zur Beschreibung von (mathematischen) Maschinen zur Ausführung von Algorithmen (hier: (partiellen) Berechnungsverfahren). Mathematische

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An Definition 4 (Operationen auf Sprachen) Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A 0 = {ɛ}, A n+1 = AA n A = n 0 An A + = n 1 An Beispiel 5 {ab, b}{a, bb} = {aba, abbb,

Mehr

Übung Theoretische Grundlagen Nachtrag zur Vorlesung Dirk Achenbach 21.11.2013

Übung Theoretische Grundlagen Nachtrag zur Vorlesung Dirk Achenbach 21.11.2013 Übung Theoretische Grundlagen Nachtrag zur Vorlesung Dirk Achenbach 21.11.2013 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory of the

Mehr

Vorname: Nachname: Matrikelnummer: E-Mail-Addresse: Studiengang (bitte genau einen ankreuzen): Master of SSE Erasmus Sonstige:

Vorname: Nachname: Matrikelnummer: E-Mail-Addresse: Studiengang (bitte genau einen ankreuzen): Master of SSE Erasmus Sonstige: RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK II RWTH Aachen D-52056 Aachen GERMANY http://www-i2.informatik.rwth-aachen.de/lufgi2/tes06/ LuFG Informatik II

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur

Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur Signatur Formeln Am Beispiel der Aussagenlogik erklären wir schrittweise wichtige Elemente eines logischen Systems. Zunächst benötigt ein logisches System ein Vokabular, d.h. eine Menge von Namen, die

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................

Mehr

Was ist ein Compiler?

Was ist ein Compiler? Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?

Mehr

Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt

Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt Methoden und Techniken an Beispielen erklärt Georg Anegg 5. November 009 Beispiel. Die Folge {a n } sei wie folgt definiert (a, d, q R, q ): a 0 a, a n+ a n q + d (n 0) Man bestimme eine explizite Darstellung

Mehr

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314

Mehr

Formale Sprachen, reguläre und kontextfreie Grammatiken

Formale Sprachen, reguläre und kontextfreie Grammatiken Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache

Mehr