Theoretische Informatik Wintersemester 2016/2017 2V, Mittwoch, 12:00-13:30 Uhr, F303 2Ü, Dienstag, 12:00-13:30 Uhr, BE08 2Ü, Dienstag, 15:00-16:30 Uhr, B212 2Ü, Mittwoch, 8:30-10:00 Uhr, B312 Fachprüfung: Klausur Prof. Dr. Peer Ueberholz e-mail: peer.ueberholz@hsnr.de http://lionel.kr.hs-niederrhein.de/~ueberholz/ 1
4 wesentliche Teilgebiete der Informatik 1. Technische Informatik 2. Praktische Informatik 3. Angewandte Informatik 4. Theoretische Informatik Was ist was? 2
Theoretische Informatik Praktische Grundlagen für andere Bereiche der Informatik Prinzipielle Grenzen des Machbaren * Gibt es Probleme, die mit Rechnern grundsätzlich nicht gelöst werden können? * Welche Probleme lassen sich (nicht) effizient lösen? Klassifikation von Problemen Philosophische Fragestellungen 3
Praktische Bedeutung der Theoretischen Informatik Aufgabe unlösbarer Probleme Suche nach Alternativen für nicht effizient lösbaren Probleme Design von Sprachen (z.b. XML, C) Formale Beschreibung von Problemen Schärfung unserer Analysefähigkeit Offene und gelöste interessante Probleme Viele naheliegenden Fragen sind unlösbar Die 1 Millionen $-Frage, ist P = NP? siehe http://www.claymath.org/millennium/ (vielleicht gelöst) 4
Gebiete der Theoretischen Informatik Berechenbarkeitstheorie unlösbare Probleme Komplexitätstheorie (nicht) effizient lösbare Probleme Formaler Sprachen Beschreibung des Rechner-Input Klassifizierung der Sprachen 5
Kompetenzen Angelehnt an den Richtlinien der Gesellschaft für Informatik und Bestandteil unserer Modulbeschreibungen ist das Ziel der Veranstaltung folgende Kompetenzen zu vermittelt: Formale, algorithmische, mathematische Kompetenzen * denkt logisch und algorithmisch * findet geeignete mathematische Abstraktionen und Modelle für konkrete Problemsituationen * kann Probleme mit Automaten und Formalen Sprachen beschreiben Design-Kompetenz * besitzt die Fähigkeit zur Abstraktion 6
Inhalt 1. Etwas zur mathematischen Allgemeinbildung 2. Einführung in die Problemstellung 3. Berechenbarkeit 4. Komplexität 5. Formale Sprachen 7
Kapitel 1 und 2 Definition, Satz, Beweis, Beweismethoden Mengen, endlich und unendlich Alphabet und Sprachen Problemdefinition als Verbindung zwischen einem Input und einem Output Suchprobleme und Entscheidungsprobleme 8
Kapitel 3, Berechenbarkeit (Beispiel) Das 10. Hilbertsche Problem: Finde einen Algorithmus, der entscheidet, ob ein gegebenes Polynom in mehreren Variablen eine ganzzahlige Nullstelle hat. Beispiel: p(x,y,z) := 6x 3 yz 2 +3xy 2 x 3 10 hat Nullstelle p(x,y,z) = 0 an x = 5,y = 3,z = 0 Matijasevic (1970) Solch einen Algorithmus gibt es nicht! Wie kommt man zu so einer Aussage? 9
Kapitel 3, Berechenbarkeit (Inhalt) Problemstellung * Formulierung als Funktion oder Relation Was ist ein Algorithmus? * Turingmaschine und äquivalente Rechnermodelle Nachweis der Unlösbarkeit eines Problems * Berechenbarkeitsdefinitionen * Halteproblem und andere Probleme 10
Kapitel 4, Komplexität Aufwandsbeschreibung * Landau-Symbole, Worst/Average Case * time- versus space-komplexität Komplexitätsklassen * Die Klassen P und NP * Robustheit der Klassen gegenüber Maschinenmodellen * NP Vollständigkeit * das Problem P = NP Alternativen für schwierige Probleme * Monte-Carlo Algorithmen * Approximationsalgorithmen 11
Kapitel 5, Formale Sprachen Sprachenklassifizierung * Erzeugende Grammatiken versus erkennende Automaten * Chomsky-Hierarchie für Grammatiken * unentscheidbare Probleme Grammatiken * Syntaxbäume * Backus-Naur Form * reguläre Ausdrücke Praxisrelevante Sprachklassen * Reguläre Sprachen (endliche Automaten) * Kontextfreie Sprachen (Programmiersprachen) 12
Vorlesungsunterlagen Wesentliche Teile der Vorlesung wurde von Prof. Dalitz übernommen. Ein Skript zur Vorlesung (von Prof. Dalitz und mir) wird ausgeteilt Inhalte der Vorlesungsfolien befinden sich im Skript Übungsblätter auf meiner Homepage, zusammen mit dem Skript zu den Übungen mitbringen (bitte zu den Übungen vorbereiten) Keine Probeklausur, EIN handschriftlich beschriebenes DIN A4-Blatt zur Klausur erlaubt, keine anderen Unterlagen! 13
Literatur Asteroth, Baier: Theoretische Informatik. Pearson Studium, 2008 Vossen, Witt: Grundkurs Theoretische Informatik. Vieweg Verlag 2006 Sipser: Introduction to the Theory of Computation. PSW Publishing, 2012 Schöning: Theoretische Informatik - kurzgefasst. Spektrum Akademischer Verlag, 2008 Hopcroft, Motwani, Ullmann: Einführung in Automatentheorie, Formale Sprachen und Berechenbarkeit. Pearson Studium, 2011 14