Herzlich willkommen!!!

Ähnliche Dokumente
Herzlich willkommen!!!

Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit. Sommersemester Herzlich willkommen!

Herzlich willkommen!!!

Theoretische Informatik 2 bzw. Formale Sprachen und Berechenbarkeit. Sommersemester Herzlich willkommen!

Ist eine algorithmische Problemstellung lösbar und wenn ja, mit welchen Mitteln? was ist eine algorithmische Problemstellung?

Theoretische Informatik

Herzlich willkommen!!!

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Vorlesung Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2015

Grundlagen der Theoretischen Informatik

Einführung in die theoretische Informatik

Theoretische Informatik für Medieninformatiker

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Informatik III. 1. Motivation und Organisation. Christian Schindelhauer

Automaten und Formale Sprachen

Informatik-Grundlagen

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Theoretische Informatik

Automaten und Formale Sprachen

Theoretische Informatik

Vorlesung Berechenbarkeit und Komplexität Wintersemester 2016/17. Wer sind wir? Willkommen zu

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Grundkurs Theoretische Informatik

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Informatik III Grundlagen der theoretischen Informatik

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Übungsaufgaben zu Formalen Sprachen und Automaten

Grundlagen der theoretischen Informatik

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 0. ORGANISATORISCHES UND ÜBERBLICK

Grundlagen der Theoretischen Informatik

Theoretische Grundlagen der Informatik

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Theoretische Informatik

Klausur SoSe Juli 2013

Theoretische Grundlagen der Informatik

Einführung in die Theoretische Informatik

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

Grundlagen der Theoretischen Informatik

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

Reguläre Ausdrücke. Karin Haenelt

Algorithmentheorie 1. Vorlesung

Algorithmentheorie 1. Vorlesung

Endliche Automaten. Grundlagen: Alphabet, Zeichenreihe, Sprache. Karin Haenelt

Endliche Automaten, reguläre Ausdrücke, rechtslineare Grammatiken

Algorithmen und Berechnungskomplexität I

TU Berlin Nachklausur TheGI 2 Automaten und Komplexität (Niedermeier/Hartung/Nichterlein, Sommersemester 2012)

Theoretische Informatik I (Grundzüge der Informatik I)

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Alphabet, formale Sprache

Einführung in die Theoretische Informatik

Berechenbarkeit und Komplexität

Grundlagen der Theoretischen Informatik

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Kontakt. Teil I. Einführung.

Der erste Gödelsche Unvollständigkeitssatz

Formale Systeme, Automaten, Prozesse

Theoretische Informatik II

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45

Theoretische Grundlagen der Informatik. Vorlesung am INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Parsing regulärer Ausdrücke. Karin Haenelt

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Klammersprache Definiere

Theoretische Informatik

Theoretische Informatik II

Formale Sprachen und Automaten

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER

Theoretische Informatik I

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Grundlagen der Theoretischen Informatik Prüfungsvorbereitung September 2013

Kontextfreie Sprachen

Berechenbarkeits- und Komplexitätstheorie

Maike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden

Speicherplatz-Komplexität 1 / 30

Operationen auf endlichen Automaten und Transduktoren

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

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung

Theoretische Informatik

Grundlagen der Theoretischen Informatik

Kapitel 2: Formale Sprachen Gliederung

Grundlagen der Theoretischen Informatik

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Theoretische Grundlagen der Informatik

4. Übung zur Vorlesung Informatik III am

Theoretische Informatik. Berechenbarkeit

Proseminar Theoretische Informatik. Die Klasse NP. von Marlina Spanel

Kapitel 1.4. Exkurs: Entscheidbarkeit und Komplexität. Mathematische Logik (WS 2012/3) K. 1.4: Entscheidbarkeit und Komplexität 1/10

Anwenundg regulärer Sprachen und endlicher Automaten

Was bisher geschah: Formale Sprachen

Diskrete Mathematik. Arne Dür Kurt Girstmair Simon Legner Georg Moser Harald Zankl

Formale Sprachen. Script, Kapitel 4. Grammatiken

Kapitel 3: Grundlegende Ergebnisse aus der Komplexitätstheorie Gliederung

Transkript:

Theoretische Informatik 2 Sommersemester 2015 Prof. Dr. Georg Schnitger AG Theoretische Informatik Goethe-Universität Frankfurt am Main Herzlich willkommen!!! 1 / 19

Kapitel 1: Einführung Einführung 2 / 19

Worum geht s? Reguläre Sprachen: Das stärkste vollständig beherrschbare Rechnermodell: Automatische Verifikation und Minimierung sind effizient möglich. Verschiedene äquivalente Perspektiven: Reguläre Ausdrücke, reguläre Grammatiken, deterministische, nichtdeterministische und probabilistische endliche Automaten, Zweiwege Automaten. Kontextfreie Sprachen: Grundlage des Compilerbaus: effiziente Compiler Speicherplatz-Komplexität: Charakterisierung regulärer und kontextsensitver Sprachen mit Hilfe ihres Speicherverbrauchs. Wie schwierig ist die Bestimmung von Gewinnstrategien in nicht-trivialen 2-Personen Spielen? Wie mächtig sind probabilistische Berechnungen und Quantenberechnungen? Parallelität: Welche Probleme in P besitzen super-schnelle parallele Algorithmen? Zusammenhang zwischen Speicherplatz und paralleler Rechenzeit. Einführung Inhaltsangabe 3 / 19

Worauf wird aufgebaut? Diskrete Modellierung: Beweismethoden eine erste Behandlung von endlichen Automaten und kontextfreien Sprachen Datenstrukturen und Theoretische Informatik 1: Laufzeitanalyse: O, o, Ω, ω and Rekursionsgleichungen Traversierung von Graphen Dynamische Programmierung NP-Vollständigkeit Berechenbarkeit Einführung Vorwissen 4 / 19

Literatur - Skript zur Vorlesung Theoretische Informatik 2, Goethe-Universität Frankfurt. - M. Sipser, Introduction to the Theory of Computation, Paperback 3rd edition, Cengage Learning, 2012. - U. Schöning, Theoretische Informatik - kurzgefasst, Spektrum 2008. - I. Wegener, Theoretische Informatik: Eine algorithmenorientierte Einführung, B.G. Teubner 1999 (2. Auflage). - Sanjeev Arora und Boaz Barak, Computational Complexity, a modern approach, Cambridge University Press 2009. - J. Shallit, A second course in Formal Languages and Automata Theory, Cambridge University Press, 2008. - J.E. Hopcroft, J.D. Ullman, R. Motwani, Introduction to Automata Theory, Languages and Computation, Addison-Wesley, 2013. Einführung Literatur 5 / 19

Die Webseite http: //www.thi.informatik.uni-frankfurt.de/lehre/gl2/sose15.de Die Webseite enthält alle wichtigen Informationen zur Veranstaltung: Alle Vorlesungsmateralien (Skript, Folien, Zugang zu Videos wie auch Extra-Materalien) finden Sie auf dieser Seite. Auch organisatorische Details zum Übungsbetrieb werden beschrieben. Unter Aktuelles finden Sie zum Beispiel: Anmerkungen zum Übungsbetrieb und gegebenenfalls Anmerkungen zu aktuellen Übungsaufgaben. Im Logbuch finden Sie Informationen, Beamer-Folien, Videos, weitere Referenzen zu den einzelnen Vorlesungsstunden. Einführung Organisatorisches 6 / 19

Mündliche Prüfungen und Übungsbetrieb BITTE, BITTE, BITTE aktiv an den Übungen teilnehmen! Wöchentliche Übungszettel auf der Webseite. Rückgabe, nach 1-wöchiger Bearbeitungszeit, zu Beginn der Vorlesung. (Rückgabe auch im Briefkasten neben Büro 312 möglich.) Wenn die mündliche Prüfung bestanden ist: Bei mindestens 40% aller Übungspunkte eine Verbesserung um einen Notenschnitt, bei mindestens 70% eine Verbesserung um zwei Notenschritte. Einführung Organisatorisches 7 / 19

BITTE, BITTE, BITTE 1 Bitte helfen Sie mir durch Fragen, Kommentare und Antworten! 2 Die Vorlesung kann nur durch Interaktion interessant werden. Ich muss wissen, wo der Schuh drückt. 3 Sie erreichen mich außerhalb der Vorlesung im Büro 303. Sprechstunde: Dienstags 10-12. Kommen Sie vorbei. Einführung Organisatorisches 8 / 19

Einige Grundbegriffe zum Thema Worte und Sprachen Worte und Sprachen 9 / 19

Alphabete, Worte und Sprachen 1 N := {0, 1, 2, 3...} ist die Menge aller natürlichen Zahlen. N >0 := {1, 2, 3,...} ist die Menge aller positiven natürlichen Zahlen. Q ist die Menge der rationalen und R die Menge der reellen Zahlen. 2 Ein Alphabet Σ ist eine endliche, nicht-leere Menge von Buchstaben. Σ n = {a 1 a n a 1,..., a n Σ} ist die Menge aller Worte der Länge n über Σ. Σ 0 = {ε} besteht nur aus dem leeren Wort ε. Σ = n N Σn ist die Menge aller Worte über dem Alphabet Σ. Σ + = n N >0 Σ n ist die Menge aller nicht-leeren Worte über Σ. 3 Für w Σ ist w die Länge von w, d.h. die Anzahl der Buchstaben in w. Für a Σ ist w a die Anzahl der Vorkommen des Buchstabens a in w. Eine Sprache L (über Σ) ist eine Teilmenge von Σ. Worte und Sprachen 10 / 19

Beispiele für Sprachen - Die Menge der im Duden aufgeführten Worte über dem Alphabet {a, A,..., z, Z,ä, Ä,..., ü,ü, ß, }. - Deutsch besteht aus allen syntaktisch korrekt aufgebauten und semantisch sinvollen Sätzen mit Worten aus dem Duden. - C++ ist die Menge aller syntaktisch richtig aufgebauten C++ Programme. Das Alphabet ist die Menge aller ASCII-Symbole. - Die Sprache der arithmetischen Ausdrücke mit den Variablen x und y besteht aus allen arithmetischen Ausdrücken über dem Alphabet {x, y, +,,, /, (, )}. - Weitere Beispielssprachen: Die Menge aller HTML-Dokumente, die Menge aller XML-Dokumente. Worte und Sprachen 11 / 19

Operationen auf Sprachen Sei Σ ein Alphabet, u = u 1 u n und v = v 1 v m seien Worte über Σ. 1 uv = u 1 u n v 1 v m ist die Konkatenation von u und v. 2 Für Sprachen L 1, L 2 über Σ ist L 1 L 2 = {uv u L 1, v L 2 } die Konkatenation von L 1 und L 2. Oft schreiben wir kurz L 1 L 2 oder L 1 L 2 statt L 1 L 2. 3 Für eine Sprache L über Σ ist L n = {u 1 u n u 1,..., u n L} L = n N L n (mit L 0 := {ɛ}) L ist die Kleene-Hülle (oder Kleene-Stern) von L. Worte und Sprachen Operationen auf Sprachen 12 / 19

Kompakte Beschreibung von Sprachen und Mengen 1 Die Menge aller Felder eines Schachbretts ist {A, B, C, D, E, F, G, H} {1, 2, 3, 4, 5, 6, 7, 8}. 2 Die Menge aller Karten eines Skatblatts ist {,,, } {7, 8, 9, 10, Bube,Dame,König,Ass}. 3 Die Menge der Binärdarstellungen der natürlichen Zahlen größer Null ist {1} {0, 1}. 4 4 i=1 {, }i ist die Menge der Kodierungen von Buchstaben im Morsealphabet. 5 Die Menge der Uhrzeiten eines Tages ist ({2} {0, 1, 2, 3} {ɛ, 1} {0, 1,..., 9}) {:} {0, 1,..., 5} {0, 1,..., 9}. 6 Und die amerikanische Entsprechung ist ({1} {0, 1, 2} {1,..., 9}) {:} {0, 1,..., 5} {0, 1,..., 9} {am, pm}. Worte und Sprachen Operationen auf Sprachen 13 / 19

Aus welchen Worten besteht die Sprache K = ({a} {b} {d} {c} ) Behauptung: K {a, b, c, d} K besteht nur aus Worten über dem Alphabet {a, b, c, d}. {a, b, c, d} besteht aus allen Worten über {a, b, c, d}. Behauptung: {a, b, c, d} K Der letzte in der Definition von K ist mächtig! Sei w = w1 w n ein beliebiges Wort in {a, b, c, d} : Jeder Buchstabe gehört zu ({a} {b} {d} {c} ). Also ist w = w 1 w n ({a} {b} {d} {c} ) n Und deshalb ist w ({a} {b} {d} {c} ) = K. Worte und Sprachen Operationen auf Sprachen 14 / 19

Rekursive Definitionen von Sprachen L ist die rekursiv definierte Sprache über dem Alphabet Σ = {0, 1}: Basisregel : ɛ L, Rekursive Regel : wenn u L, dann 0u L und u1 L. Wie sieht L aus? (1) Behauptung: {0} {1} L. Sei w {0} {1}, also w = 0 n 1 m für n, m N. Es ist ɛ L und deshalb 0ɛ, 00ɛ,..., 0 n ɛ = 0 n L. Dann aber auch 0 n 1, 0 n 11,..., 0 n 1 m L und deshalb ist w L. (2) Behauptung: L {0} {1}. Dies sieht man leicht per Induktion nach dem Aufbau von L. Somit ist L = {0} {1}. Worte und Sprachen Rekursive Definitionen 15 / 19

Das Wortproblem Das Wortproblem für eine Sprache L: Für ein vorgegebenes Wort w, entscheide ob w L. Das Wortproblem für den Duden: Entscheide, ob ein vorgegebenes Wort im Duden ist. Einfach: Bitte nachschauen. Das Wortproblem für Deutsch: Entscheide, ob ein Satz syntaktisch richtig und sinnvoll ist. Sehr schwierig. Das Wortproblem für C++: Entscheide, ob ein C++ Programm syntaktisch korrekt ist. Compiler können das. Wie schwer ist das Wortproblem für stets stets haltende C++ Programme? Worte und Sprachen Das Wortproblem 16 / 19

Das Wortproblem für C++ Programme, die stets halten main(int n) int i; { i=n; while (NOT(prim(i) && prim(i+2)) ) i++; } Die Funktion prim(i) gebe den Wert wahr genau dann zurück, wenn i eine Primzahl ist. Das Programm hält genau dann für eine Eingabe n, wenn es Primzahl-Zwillinge i, i + 2 mit i n gibt. Das Programm hält genau dann immer, wenn es unendlich viele Primzahl-Zwillinge gibt. Leider ist die Frage, ob es unendlich viele Primzahl-Zwillinge gibt, bis heute offen! Das Wortproblem für stets haltende C++ Programme ist unentscheidbar. Worte und Sprachen Das Wortproblem 17 / 19

Das Wortproblem: Ein vorläufiges Fazit Die Komplexität des Wortproblems variiert stark - von trivialen Problemen wie dem Dudenproblem, zu ernst zunehmenden Problemen wie dem Compiler-Problem für C++ Programme, - zu den schwierigen NP-vollständigen Problemen, - zu den noch schwierigeren PSPACE-vollständigen Problemen bis hin zu unentscheidbaren Problemen wie dem Wortproblem für stets haltende C++ Programme. Wir betrachten später das Wortproblem für reguläre Sprachen (abhängig von der Repräsentation als determ. oder nichtdeterm. Automat oder als regulärer Ausdruck), kontextfreie Sprachen (wenn durch eine Grammatik repräsentiert), beliebige formale Sprachen, Entscheidungsprobleme, Existenz von Gewinnzügen von 2-Personen Spielen,... Worte und Sprachen Das Wortproblem 18 / 19

Komplexitätsklassen Komplexitätsklassen charakterisieren die Schwierigkeit des Wortproblems. P ist die Klasse aller effizient berechenbaren Probleme. Ein NP-vollständiges Probleme ist höchstwahrscheinlich nicht effizient lösbar. Wir führen weitere fundamentale Komplexitätsklassen ein, um mehr zu verstehen über kontextfreie und kontextsensitive Sprachen und allgemeiner formale Sprachen, die Komplexität der Berechnung von Gewinnstrategien, probabilistische Berechnungen, Quantenberechnungen: PSPACE Probleme mit super-schnellen parallelen Algorithmen: NC. Worte und Sprachen Das Wortproblem 19 / 19