Theoretische Informatik: Berechenbarkeit und Formale Sprachen Prof. Dr. F. Otto Fachbereich Elektrotechnik/Informatik, Universität Kassel 34109 Kassel, Germany E-mail:
[email protected]
SS 2015
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
1 / 313
Vorlesung mit Übungen im SS 2015 Vorlesung: Dienstag Donnerstag Beginn:
9 - 10 Uhr, Raum 1603 WA 10 - 12 Uhr, Raum 1603 WA
Dienstag, den 14.04.2015, 915 Uhr.
Übungen und Tutorien in 5 Gruppen (Beginn: 20.04.2015): Gruppe 1: Gruppe 2: Gruppe 3: Gruppe 4: Gruppe 5:
Montag Dienstag Dienstag Freitag Freitag
16 - 18 Uhr, Raum -1607 WA 16 - 18 Uhr, Raum -1607 WA 16 - 18 Uhr, Raum -1606 WA 8 - 10 Uhr, Raum -1606 WA 10 - 12 Uhr, Raum -1418 WA
Anmeldung: Ab 14.4.2015, 10:30 Uhr, auf der Webseite der Vorlesung: http://www.theory.informatik.uni-kassel.de/ veranstaltungen/theoInf-B+FormSpSS2015/ Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
2 / 313
Wöchentliche Übungsaufgaben: KEINE Abgabe, aber selbständiges Bearbeiten als Vorbereitung auf die Übungen! Studienleistungen als Voraussetzung für die Teilnahme an der Modulprüfung (Klausur) [Voraussetzung: Anmeldung in einer Übungsgruppe]: 1. Probeklausur: Dienstag, 19.05.15, 9:15 - 10:00, in Raum 1603 WA 2. Probeklausur: Dienstag, 16.06.15, 9:15 - 10:00, in Raum 1603 WA 3. Probeklausur: Dienstag, 14.07.15, 9:15 - 10:00, in Raum 1603 WA Um zur Modulprüfung zugelassen zu werden, müssen mindestens zwei dieser Probeklausuren bestanden werden! Homepage: http://www.theory.informatik.uni-kassel.de/ veranstaltungen/theoInf-B+FormSpSS2015/ Abschlussklausur: Termin wird rechtzeitig bekannt gegeben. Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
3 / 313
Literatur: Buch zur Vorlesung: Uwe Schöning; Theoretische Informatik - kurzgefasst. Spektrum Akademischer Verlag, Heidelberg/Berlin, 5. Auflage, 2008, ISBN 978-3-8274-1824-1. Ergänzende Literatur: J.E. Hopcroft, R. Motwani, J.D. Ullman; Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. Oldenbourg Verlag, München, 4. Auflage, 2000. J. Hromkoviˇc; Theoretische Informatik. Teubner Verlag, Wiesbaden, 3. Auflage, 2007. K. Wagner; Theoretische Informatik - Eine kompakte Einführung. Springer Verlag, Berlin/Heidelberg, 2. Auflage, 2003. u.v.m. Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
4 / 313
Juray Hromkoviˇc; Algorithmic Adventures - From Knowledge to Magic, Springer 2009. Chapter 1:
A Short Story About the Development of Computer Science or Why Computer Science Is Not a Computer Driving Licence
Chapter 3:
Infinity Is Not Equal to Infinity, or Why Infinity Is Infinitely Important in Computer Science
Chapter 4:
Limits of Computability or Why Do There Exist Tasks That Cannot Be Solved Automatically by Computers
Online: link.springer.com/book/10.1007/978-3-540-85986-4
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
5 / 313
Verstehen der verwendeten Sprache und Notation
Vorbereitungskurs Theoretische Informatik und Diskrete Mathematik (FB16-1028)
Themen: mathematische Aussagen, Beweistechniken, Syntax und Semantik mathematischer Objekte, ... Zeit: Mittwoch 10-12 Uhr Ort: Raum 1114 Beginn: Mittwoch, 15.04.15
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
6 / 313
Einleitung Die Theoretische Informatik entwickelt formale Modelle für die Objekte und Methoden der Praktischen und Technischen Informatik. Modell: Beschreibung des Wesentlichen einer Klasse von verwandten realen Phänomenen unter Abstrahierung von technischen Details und zufälligen Eigenschaften. Nutzen: - besseres Verständnis der realen Phänomene - Entwicklung von Problemlösungen mit formalen Methoden Wo konkret werden in der Informatik formale Methoden benötigt ?
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
7 / 313
Einleitung Die Theoretische Informatik entwickelt formale Modelle für die Objekte und Methoden der Praktischen und Technischen Informatik. Modell: Beschreibung des Wesentlichen einer Klasse von verwandten realen Phänomenen unter Abstrahierung von technischen Details und zufälligen Eigenschaften. Nutzen: - besseres Verständnis der realen Phänomene - Entwicklung von Problemlösungen mit formalen Methoden Wo konkret werden in der Informatik formale Methoden benötigt ?
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
7 / 313
Einleitung Die Theoretische Informatik entwickelt formale Modelle für die Objekte und Methoden der Praktischen und Technischen Informatik. Modell: Beschreibung des Wesentlichen einer Klasse von verwandten realen Phänomenen unter Abstrahierung von technischen Details und zufälligen Eigenschaften. Nutzen: - besseres Verständnis der realen Phänomene - Entwicklung von Problemlösungen mit formalen Methoden Wo konkret werden in der Informatik formale Methoden benötigt ?
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
7 / 313
Einleitung Die Theoretische Informatik entwickelt formale Modelle für die Objekte und Methoden der Praktischen und Technischen Informatik. Modell: Beschreibung des Wesentlichen einer Klasse von verwandten realen Phänomenen unter Abstrahierung von technischen Details und zufälligen Eigenschaften. Nutzen: - besseres Verständnis der realen Phänomene - Entwicklung von Problemlösungen mit formalen Methoden Wo konkret werden in der Informatik formale Methoden benötigt ?
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
7 / 313
Problemstellung: umgangssprachlich beschrieben ↓A1 Formale Problembeschreibung (Problemspezifikation)
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
8 / 313
Problemstellung: umgangssprachlich beschrieben ↓A1 Formale Problembeschreibung (Problemspezifikation)
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
8 / 313
Beispiel: Auftragsplanung Eingaben:
Aufträge A1 , . . . , An (n ≥ 2), Bearbeitungsdauer ℓ1 , . . . , ℓn ∈ N+ , Deadlines d1 , . . . , dn ∈ N+ , Profitwerte p1 , . . . , pn ∈ N+ , identische Prozessoren P1 , . . . , Pm (m ≥ 1).
Aufgabe:
Ordne jedem Auftrag Ai (1 ≤ i ≤ n) einen Zeitpunkt zi ≥ 0 und einen Prozessor Pj (1 ≤ j ≤ m) zu, der Ai ab Zeitpunkt zi bearbeiten soll. Bedingungen: Es muß zi + ℓi ≤ di gelten! Pj ist im Zeitraum zi bis zi + ℓi mit Ai beschäftigt. Ziel: Finde ein Z : {A1 , . . . , An } → ({P1 , . . . , Pm } × N), sodass der erzielte Profit maximiert wird! Für ℓ1 = . . . = ℓn = 1 = m gibt es ein effektives Verfahren! (siehe “Entwurf und Analyse von Algorithmen”). Das allgemeine Problem selbst ist “NP-hart”. Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
9 / 313
Beispiel: Auftragsplanung Eingaben:
Aufträge A1 , . . . , An (n ≥ 2), Bearbeitungsdauer ℓ1 , . . . , ℓn ∈ N+ , Deadlines d1 , . . . , dn ∈ N+ , Profitwerte p1 , . . . , pn ∈ N+ , identische Prozessoren P1 , . . . , Pm (m ≥ 1).
Aufgabe:
Ordne jedem Auftrag Ai (1 ≤ i ≤ n) einen Zeitpunkt zi ≥ 0 und einen Prozessor Pj (1 ≤ j ≤ m) zu, der Ai ab Zeitpunkt zi bearbeiten soll. Bedingungen: Es muß zi + ℓi ≤ di gelten! Pj ist im Zeitraum zi bis zi + ℓi mit Ai beschäftigt. Ziel: Finde ein Z : {A1 , . . . , An } → ({P1 , . . . , Pm } × N), sodass der erzielte Profit maximiert wird! Für ℓ1 = . . . = ℓn = 1 = m gibt es ein effektives Verfahren! (siehe “Entwurf und Analyse von Algorithmen”). Das allgemeine Problem selbst ist “NP-hart”. Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
9 / 313
Beispiel: Auftragsplanung Eingaben:
Aufträge A1 , . . . , An (n ≥ 2), Bearbeitungsdauer ℓ1 , . . . , ℓn ∈ N+ , Deadlines d1 , . . . , dn ∈ N+ , Profitwerte p1 , . . . , pn ∈ N+ , identische Prozessoren P1 , . . . , Pm (m ≥ 1).
Aufgabe:
Ordne jedem Auftrag Ai (1 ≤ i ≤ n) einen Zeitpunkt zi ≥ 0 und einen Prozessor Pj (1 ≤ j ≤ m) zu, der Ai ab Zeitpunkt zi bearbeiten soll. Bedingungen: Es muß zi + ℓi ≤ di gelten! Pj ist im Zeitraum zi bis zi + ℓi mit Ai beschäftigt. Ziel: Finde ein Z : {A1 , . . . , An } → ({P1 , . . . , Pm } × N), sodass der erzielte Profit maximiert wird! Für ℓ1 = . . . = ℓn = 1 = m gibt es ein effektives Verfahren! (siehe “Entwurf und Analyse von Algorithmen”). Das allgemeine Problem selbst ist “NP-hart”. Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
9 / 313
Problemstellung: umgangssprachlich beschrieben ↓A1 Formale Problembeschreibung (Problemspezifikation) ↓A2 Formale Beschreibung einer Lösung (Algorithmus) ↓A3 Programm (in einer gebräuchlichen Programmiersprache) ↓A4 Interpretation der vom Programm gelieferten Ergebnisse im Sinne der ursprünglichen Problemstellung A1 und A4: Informatiker gemeinsam mit Anwender A2 und A3: Informatiker Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
10 / 313
Problemstellung: umgangssprachlich beschrieben ↓A1 Formale Problembeschreibung (Problemspezifikation) ↓A2 Formale Beschreibung einer Lösung (Algorithmus) ↓A3 Programm (in einer gebräuchlichen Programmiersprache) ↓A4 Interpretation der vom Programm gelieferten Ergebnisse im Sinne der ursprünglichen Problemstellung A1 und A4: Informatiker gemeinsam mit Anwender A2 und A3: Informatiker Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
10 / 313
Problemstellung: umgangssprachlich beschrieben ↓A1 Formale Problembeschreibung (Problemspezifikation) ↓A2 Formale Beschreibung einer Lösung (Algorithmus) ↓A3 Programm (in einer gebräuchlichen Programmiersprache) ↓A4 Interpretation der vom Programm gelieferten Ergebnisse im Sinne der ursprünglichen Problemstellung A1 und A4: Informatiker gemeinsam mit Anwender A2 und A3: Informatiker Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
10 / 313
Problemstellung: umgangssprachlich beschrieben ↓A1 Formale Problembeschreibung (Problemspezifikation) ↓A2 Formale Beschreibung einer Lösung (Algorithmus) ↓A3 Programm (in einer gebräuchlichen Programmiersprache) ↓A4 Interpretation der vom Programm gelieferten Ergebnisse im Sinne der ursprünglichen Problemstellung A1 und A4: Informatiker gemeinsam mit Anwender A2 und A3: Informatiker Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
10 / 313
Problemstellung: umgangssprachlich beschrieben ↓A1 Formale Problembeschreibung (Problemspezifikation) ↓A2 Formale Beschreibung einer Lösung (Algorithmus) ↓A3 Programm (in einer gebräuchlichen Programmiersprache) ↓A4 Interpretation der vom Programm gelieferten Ergebnisse im Sinne der ursprünglichen Problemstellung A1 und A4: Informatiker gemeinsam mit Anwender A2 und A3: Informatiker Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
10 / 313
Problemstellung: umgangssprachlich beschrieben ↓A1
Korrektheit ?
Formale Problembeschreibung (Problemspezifikation) ↓A2 Korrektheit ?
Logik
Formale Beschreibung einer Lösung (Algorithmus) Berechenbarkeitstheorie, Algorithmentheorie ↓A3
Korrektheit ?
Programm (in einer gebräuchlichen Programmiersprache) Formale Sprachen, Automatentheorie ↓A4
Korrektheit ?
Interpretation der vom Programm gelieferten Ergebnisse im Sinne der ursprünglichen Problemstellung A1 und A4: Informatiker gemeinsam mit Anwender A2 und A3: Informatiker Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
11 / 313
Vorlesung
”Theoretische Informatik: Berechenbarkeit und Formale Sprachen”:
(1.) Was ist ein Algorithmus? Unter einem Algorithmus versteht man eine präzise, endliche Verarbeitungsvorschrift, die so formuliert ist, dass die in der Vorschrift notierten Elementaroperationen von einer mechanischen oder elektrisch arbeitenden Maschine durchgeführt werden können. Die Anzahl der verfügbaren Elementaroperationen ist beschränkt, ebenso ihre Ausführungszeit. Aus der sprachlichen Darstellung des A. muß die Abfolge der einzelnen Schritte eindeutig hervorgehen. Hierbei sind Wahlmöglichkeiten zugelassen, wobei aber genau festgelegt sein muß, wie diese Auswahl erfolgen soll (nach Appelrath und Ludewig 1991).
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
12 / 313
Vorlesung
”Theoretische Informatik: Berechenbarkeit und Formale Sprachen”:
(1.) Was ist ein Algorithmus? Unter einem Algorithmus versteht man eine präzise, endliche Verarbeitungsvorschrift, die so formuliert ist, dass die in der Vorschrift notierten Elementaroperationen von einer mechanischen oder elektrisch arbeitenden Maschine durchgeführt werden können. Die Anzahl der verfügbaren Elementaroperationen ist beschränkt, ebenso ihre Ausführungszeit. Aus der sprachlichen Darstellung des A. muß die Abfolge der einzelnen Schritte eindeutig hervorgehen. Hierbei sind Wahlmöglichkeiten zugelassen, wobei aber genau festgelegt sein muß, wie diese Auswahl erfolgen soll (nach Appelrath und Ludewig 1991).
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
12 / 313
Vorlesung
”Theoretische Informatik: Berechenbarkeit und Formale Sprachen”:
(1.) Was ist ein Algorithmus? Unter einem Algorithmus versteht man eine präzise, endliche Verarbeitungsvorschrift, die so formuliert ist, dass die in der Vorschrift notierten Elementaroperationen von einer mechanischen oder elektrisch arbeitenden Maschine durchgeführt werden können. Die Anzahl der verfügbaren Elementaroperationen ist beschränkt, ebenso ihre Ausführungszeit. Aus der sprachlichen Darstellung des A. muß die Abfolge der einzelnen Schritte eindeutig hervorgehen. Hierbei sind Wahlmöglichkeiten zugelassen, wobei aber genau festgelegt sein muß, wie diese Auswahl erfolgen soll (nach Appelrath und Ludewig 1991).
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
12 / 313
Vorlesung
”Theoretische Informatik: Berechenbarkeit und Formale Sprachen”:
(1.) Was ist ein Algorithmus? - Formale Modelle für den Begriff „Berechenbarkeit“: Welche Funktionen sind berechenbar, welche Mengen (Sprachen) sind entscheidbar? Gibt es Funktionen f : N → N, die nicht berechenbar sind? Gibt es Mengen H ⊆ N, die unentscheidbar sind? (2.) Mit welchen Mitteln lassen sich unendliche Sprachen endlich beschreiben? Programmiersprachen: syntaktische Korrektheit? Semantik?
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
13 / 313
Vorlesung
”Theoretische Informatik: Berechenbarkeit und Formale Sprachen”:
(1.) Was ist ein Algorithmus? - Formale Modelle für den Begriff „Berechenbarkeit“: Welche Funktionen sind berechenbar, welche Mengen (Sprachen) sind entscheidbar? Gibt es Funktionen f : N → N, die nicht berechenbar sind? Gibt es Mengen H ⊆ N, die unentscheidbar sind? (2.) Mit welchen Mitteln lassen sich unendliche Sprachen endlich beschreiben? Programmiersprachen: syntaktische Korrektheit? Semantik?
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
13 / 313
Vorlesung
”Theoretische Informatik: Berechenbarkeit und Formale Sprachen”:
(1.) Was ist ein Algorithmus? - Formale Modelle
Kapitel 1: Berechenbarkeitstheorie
Welche Funktionen sind berechenbar, welche Mengen (Sprachen) sind entscheidbar? Gibt es Funktionen f : N → N, die nicht berechenbar sind? Gibt es Mengen H ⊆ N, die unentscheidbar sind? (2.) Mit welchen Mitteln lassen sich unendliche Sprachen endlich beschreiben? Kapitel 2: Automatentheorie und Formale Sprachen Programmiersprachen: syntaktische Korrektheit? Semantik? Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
14 / 313
(3.) Welcher Bedarf an den Resourcen ”Rechenzeit” und ”Speicherplatz” entsteht bei der Lösung welcher Probleme? Gibt es Funktionen f : N → N, die prinzipiell berechenbar sind, die aber dennoch praktisch nicht berechnet werden können? Kann man mit mehr Rechenzeit wirklich mehr Funktionen berechnen? siehe Vorlesungen: – Komplexitätstheorie – Entwurf und Analyse von Algorithmen
Prof. Dr. F. Otto (Universität Kassel)
Berechenbarkeit und Formale Sprachen
15 / 313