Theoretische Informatik

Ähnliche Dokumente
Theoretische Informatik

Theoretische Informatik

Theoretische Informatik Automaten und formale Sprachen

Was bisher geschah. Modellierung von Aussagen durch Logiken. Modellierung von Daten durch Mengen

Theoretische Informatik

Theoretische Informatik

Grundlagen der theoretischen Informatik

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

Berechenbarkeit und Komplexität

Informatik IV Theoretische Informatik

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Berechenbarkeitstheorie 1. Vorlesung

Theoretische Informatik für Medieninformatiker

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

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Was bisher geschah: Formale Sprachen

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

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Theoretische Informatik I

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

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -

Automaten und Formale Sprachen

Grundlagen der Programmierung (Vorlesung 24)

Theoretische Informatik. Berechenbarkeit

Automaten und Formale Sprachen

Einführung in die theoretische Informatik

Informatik III Grundlagen der theoretischen Informatik

Theoretische Grundlagen der Informatik

Algorithmen und Berechnungskomplexität I

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

Theoretische Informatik II

Vorlesung Automaten und Formale Sprachen Sommersemester 2018

Adventure-Problem. Vorlesung Automaten und Formale Sprachen Sommersemester Adventure-Problem

Grundkurs Theoretische Informatik

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

Was bisher geschah. Darstellung von Sprachen Ausführen von Berechnungen

Theoretische Informatik und Logik Übungsblatt 1 (2016S) Lösung

Vorlesung Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2015

Theoretische Grundlagen der Informatik

Herzlich willkommen!!!

Theoretische Informatik II

Unentscheidbarkeitssätze der Logik

Logik und diskrete Strukturen

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Was bisher geschah Alphabet, Wort, Sprache

Die Unentscheidbarkeit extensionaler Eigenschaften von Turingmaschinen: der Satz von Rice

Reduktion / Hilberts 10. Problem

Einführung in die Theoretische Informatik

(Algebraische) Strukturen Beispiele (Träger-)Mengen (Individuenbereiche) mit Relationen (Eigenschaften, Beziehungen) und Funktionen (Operationen) auf

Theoretische Informatik

Allgemeines Halteproblem Hilberts 10. Problem

Wiederholung: Modellierung in Prädikatenlogik

Theoretische Informatik II

Gegenstand der Vorlesung 1

Grundlagen der Theoretischen Informatik

Informatik III. 1. Motivation und Organisation. Christian Schindelhauer

Grundkurs Theoretische Informatik

Einführung in die Theoretische Informatik. Inhalte der Lehrveranstaltung. Definition (Boolesche Algebra) Einführung in die Logik

Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2013/14

3. Klausur Einführung in die Theoretische Informatik Seite 1 von Welches der folgenden klassischen Probleme der Informatik ist entscheidbar?

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

Automaten und Formale Sprachen 1. Vorlesung

Clevere Algorithmen programmieren

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

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

Übungsaufgaben zu Formalen Sprachen und Automaten

Nachklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13

Einführung in die Theoretische Informatik I/ Grundlagen der Theoretischen Informatik. SS 2007 Jun.-Prof. Dr. Bernhard Beckert Ulrich Koch

Satz von Rice. Lemma 39

1. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Klausur SoSe Juli 2013

DUDEN. Basiswissen Schule. Informatik Abitur. PAETEC Verlag für Bildungsmedien Berlin : Dudenverlag Mannheim Leipzig Wien Zürich

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

Turing-Maschinen: Ein abstrakes Maschinenmodell

Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Automaten und formale Sprachen Klausurvorbereitung

Transkript:

Theoretische Informatik Sibylle Schwarz Westsächsische Hochschule Zwickau Dr. Friedrichs-Ring 2a, RII 263 http://wwwstud.fh-zwickau.de/~sibsc/ sibylle.schwarz@fh-zwickau.de SS 2011 1

Einordnung der Theoretischen Informatik Informatik Wissenschaft von der Darstellung und Verarbeitung symbolischer Information durch Algorithmen Teilgebiete der Informatik: theoretisch technisch Sprachen zur Formulierung von Information und Algorithmen, Möglichkeiten und Grenzen der Berechenbarkeit durch Algorithmen, Grundlagen für technische und praktische (und angewandte) Informatik maschinelle Darstellung von Information Mittel zur Ausführung von Algorithmen praktisch Entwurf und Implementierung von Algorithmen angewandt Anwendung von Algorithmen 2

Theoretische Informatik ältester Zweig der Informatik (lange vor Computern) Mathematische Prinzipien: Abstraktion ermöglicht verallgemeinerte Aussagen und breit einsetzbare Verfahren, Ergebnisse und Verfahren oft nicht sofort praktisch anwendbar, müssen auf spezielle Situationen angepasst werden. Beweisbarkeit erfordert präzise Modellierung des Problems Nachweis der Korrektheit von Hard- und Software (Tests können dies nicht!) Wissen aus der theoretischen Informatik veraltet kaum. 3

Themen der theoretischen Informatik Formale Sprachen Repräsentation von Problemen in maschinenlesbarer Form (Mensch-Maschine-Kommunikation, Modellierung) Ausdrucksstärke und Flexibilität von Programmiersprachen Übersetzung höherer Programmiersprachen in ausführbaren Code Nachweis der Korrektheit von Algorithmen (Verifikation) Maschinenmodelle Möglichkeiten und Grenzen verschiedener Modelle zur Ausführung von Algorithmen Berechenbarkeitstheorie Welche Probleme sind überhaupt algorithmisch (mit Hilfe eines Computers) lösbar? Auch negative Antworten sind sehr hilfreich (sparen Aufwand für unlösbare Probleme). Komplexitätstheorie Für welche Probleme gibt es schnelle Algorithmen? 4

Inhalt der Lehrveranstaltung Formale Sprachen Alphabet, Wort, Sprache Wortersetzung Grammatiken, Chomsky-Hierarchie Maschinenmodelle Endliche Automaten Kellerautomaten Turing-Maschinen Berechenbarkeit berechenbare Funktionen Berechnungsmodelle These von Church algorithmische Entscheidbarkeit / Unentscheidbarkeit Komplexität Komplexitätsmaße Komplexitätsklassen P, NP, PSPACE jeweils mit vielen Beispielen 5

Literatur Uwe Schöning: Theoretische Informatik - kurzgefasst (Spektrum 2001) John E. Hopcroft, Jeffrey D. Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie (Addison-Wesley 1990) Dirk W. Hoffmann: Theoretische Informatik (Hanser 2009) Rolf Socher: Theoretische Grundlagen der Informatik (Hanser 2008) Ulrich Hedtstück: Einführung in die Theoretische Informatik (Oldenbourg 2007) Gottfried Vossen, Kurt-Ulrich Witt: Grundkurs Theoretische Informatik (Vieweg 2006) Alexander Asteroth, Christel Baier: Theoretische Informatik. Eine Einführung in Berechenbarkeit, Komplexität und formale Sprachen (Pearson 2002) Renate Winter: Theoretische Informatik (Oldenbourg 2002) 6

Organisation http://wwwstud.fh-zwickau.de/~sibsc/lehre/ss11/ti/ Vorlesung (in HS2) Z1 Donnerstag 15:20-16:50 Z1 Freitag 9:20-10:50 Z2 Donnerstag 15:20-16:50 Hausaufgaben (Voraussetzung zur Prüfungszulassung) schriftliche Aufgaben praktische Aufgaben (Autotool) Übungen 2 Gruppen Z2 Montag 9:20-10:50 Uhr in PBS 304 Z2 Montag 11:20-12:50 Uhr in 311 (Z2 Mittwoch ca. 13:30-15:00 Uhr in 311 Ausweichtermin, freiwillige Übungen für alle) Fragen zum Vorlesungsstoff Besprechung der schriftlichen Übungsaufgaben Prüfung: Klausur 90 min (Hilfsmittel: handgeschriebenes A4-Blatt) 7

Formale Sprachen natürliche Sprachen Rechtschreibung: korrekte Wörter Grammatik: Aufbau korrekter Sätze Definition von Programmiersprachen: Syntax Form der Sprachelemente Semantik Bedeutung der Sprachelemente und -strukturen Pragmatik Regeln zur zweckmäßigen Anwendung Syntax: Schlüsselwörter, Bezeichner, Darstellung von Zahlen,... Programmstrukturen: Form der Ausdrücke, Anweisungen, Deklarationen,... 8

Maschinenmodell: endlicher Automat Beschreibung des dynamischen Verhaltens von Systemen Modellierung von Abläufen Beispiele: Bedienoperationen an Geräten oder Software Schaltfolgen von Ampelanlagen Ablauf von Geschäftsprozessen Steuerung von Produktionsanlagen 9

Beispiel: Einlassautomat mit Karte definiert durch Zustände: gesperrt, frei Startzustand: gesperrt Aktionen (Eingabesymbole): Karte (anlegen), Durchgehen, Timeout Zustandsübergänge(gesperrt, Karte) frei (frei, Karte) frei (frei, Durchgehen) gesperrt (frei, Timeout) gesperrt definiert mögliche (erlaubte) Folgen von Aktionen ( Karte Karte ( Durchgehen + Timeout )) Diese Folgen lassen sich durch reguläre Ausdrücke darstellen. 10

Berechenbarkeit / Entscheidbarkeit Halteproblem: Kann ein Programm U existieren, welches für jedes beliebige Programm P (Eingabe als Quelltext) entscheidet, ob P nach endlich vielen Schritten anhält? Nein Folgerungen: Alle Versuche, ein solches Programm zu schreiben, müssen fehlschlagen. Suche nach Verfahren, die für möglichst viele Programme P entscheiden, ob P nach endlich vielen Schritten anhält, ist sinnvoller. 11

Komplexität Beispiel Primzahltest Problem: Ist eine gegebene Zahl n eine Primzahl? Instanz des Problems: Ist 12347 eine Primzahl? lösbar durch Algorithmus: 1. Für alle i {2,..., n}: Test: Ist n durch i teilbar? ja: Ende mit Ausgabe n ist nicht prim. nein: weiter (mit Test für i + 1) 2. Ausgabe: n ist prim. Test ist für große Zahlen aufwendig. Geht es besser? Was bedeutet aufwendig und einfach? Wie aufwendig ist eine Berechnung? Wie aufwendig ist die Lösung eines Problemes? 12

Beispiele banane ist ein Wort (Zeichenkette) mit Symbolen aus der Menge {a, b, e, n} neben und abbbeeeab auch, ananas und ab + bea nicht 2009 ist ein Wort mit Symbolen aus der Menge {0, 2, 9} 90 und 09020090 auch, 2090 nicht (x + y) (z x) ist ein Wort mit Symbolen aus der Menge {x, y, z, (, ), +,, } ()xz(xy + auch, x + 3 z nicht ( p p) q ist ein Wort mit Symbolen aus der Menge {p, q,,,, (, )} q (p q) und )( p auch, p = q nicht otto holt obst. ist ein Wort mit Symbolen aus der Menge {otto, obst, holt,., },.otto..otto auch, los otto nicht 13

Begriffe Notationen: Für eine Menge A heißt A n = A A }{{} n = {w 1 w n i : w i A} Menge aller Wörter der Länge n über A (n-tupel, Vektoren, Listen, Zeichenketten) A = {n N} An A 0 = {ε} Menge aller Wörter über A mit leerem Wort ε Alphabet (endliche) Menge A von Symbolen Wort endliche Folge von Symbolen w = w 1 w n mit i {1,..., n} : w i A Länge eines Wortes w = Anzahl der Symbole in w Sprache Menge von Wörtern L A 14

Beispiele für Sprachen Menge aller englischen Wörter L 1 {a,..., z} Menge aller deutschen Wörter L 2 {a,..., z, ß,ä,ö,ü} Menge aller möglichen DNA L 3 {A, T, G, C} Menge aller natürlichen Zahlen in Dezimaldarstellung L 4 {0,..., 9} (evtl. mit führenden Nullen) Menge aller natürlichen Zahlen in Binärdarstellung (Bitfolgen beliebiger Länge) L 5 {0, 1} Menge aller deutschen Sätze L 6 (L 2 {.,,,!,?, (, ), }) Problem: Für die automatische Verarbeitung von Sprachen ist eine endliche Darstellung notwendig (auch für unendliche Sprachen). 15

Verkettung Verkettung von Wörtern: : A A A, wobei für alle Wörter u = u 1 u m A, v = v 1 v n A gilt u v = u 1 u m v 1 v n Beispiel: anne marie = annemarie Eigenschaften der Operation : ist assoziativ, d.h. für alle Wörter u, v, w A gilt (u v) w = u (v w) Das leere Wort ε ist neutral für, d.h. w A : (ε w = w ε = w) Damit ist (A,, ε) ein Monoid (Halbgruppe mit neutralem Element). ist nicht kommutativ. Gegenbeispiel: u = marie, v = anne u v = marieanne annemarie = v u 16

Umkehrung (gespiegeltes Wort) Umkehrung von w = w 1 w n : w R = w n w 1 Beispiele: marie R = eiram, 2009 R = 9002, 101 R = 101 ( to ( ( m (ate) R) R n ) R ) R =... Fakt Für jedes Wort w A gilt ( w R) R = w. Beweis: Für beliebiges w = w 1... w n A gilt w R = w n w 1 (nach Definition von R ) und damit (w R ) R = (w n w 1 ) R = w 1... w n (nach Def. von R ). Wegen w 1... w n = w gilt (w R ) R = w. Fakt Für zwei beliebige Wörter u, v A gilt (u v) R = v R u R. 17

Palindrome Palindrom: Wort w mit w = w R B: anna, neben, ε, jedes Wort der Länge 1 Die Menge aller Palindrome über dem Alphabet A ist L pal = {w A w = w R } = {w w R w A } {w a w R w A a A} }{{}}{{} L pal0 L pal1 Beispiele für Wörter aus L pal : otto = ot to = ot (ot) R für w = ot A = {a,..., z} reliefpfeiler = relief p feiler = relief p (relief ) R für w = relief A = {a,..., z} 1 = ε 1 ε = ε 1 ε R für A = {0, 1} ε = ε ε = ε ε R 18

Relationen auf Wörtern (binäre Relation = Menge geordneter Paare) Präfix-Relation (Anfangswort): A A Für zwei Wörter u = u 1 u m A, v = v 1 v n A gilt genau dann u v, wenn ein Wort w A existiert, so daß u w = v gilt. Beispiele: an anna (mit w = na) n anna tom tomate (mit w = ate) oma tomate für jedes Wort u A gilt ε u (mit w = u) für jedes Wort u A gilt u u (mit w = ε) 19

Postfix- und Infix-Relation Postfix-Relation: Für zwei Wörter u = u 1 u m A, v = v 1 v n A heißt u genau dann Postfix von v, wenn ein Wort w A existiert, so dass w u = v gilt. Beispiel: enten ist Postfix von studenten Infix-Relation (Teilwort, Faktor): Für zwei Wörter u = u 1 u m A, v = v 1 v n A heißt u genau dann Infix von v, wenn zwei Wörter w, w A existieren, so dass w u w = v gilt. Beispiel: uwe ist Infix von sauwetter satt ist kein Infix von sauwetter 20