Theoretische Informatik: Berechenbarkeit und Formale Sprachen

Theoretische Informatik: Berechenbarkeit und Formale Sprachen Prof. Dr. F. Otto Fachbereich Elektrotechnik/Informatik, Universität Kassel 34109 Kassel...
Author: Alwin Schmitz
2 downloads 0 Views 95KB Size
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

Suggest Documents