Theoretische Informatik: Berechenbarkeit und Formale Sprachen

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

Prof. Dr. F. Otto (Universität Kassel)

Berechenbarkeit und Formale Sprachen

1 / 309

Vorlesung mit Übungen im SS 2012 Vorlesung: Dienstag Donnerstag Beginn:

9 - 10 Uhr, Raum 1603 WA 10 - 12 Uhr, Raum 1603 WA

Donnerstag, den 12.04.2012, 1015 Uhr.

Übungen und Tutorium in 5 Gruppen: Gruppe 1: Gruppe 2: Gruppe 3: Gruppe 4: Gruppe 5:

Montag Dienstag Dienstag Dienstag Freitag

Prof. Dr. F. Otto (Universität Kassel)

16 - 18 Uhr, Raum -1607 WA 16 - 18 Uhr, Raum -1607 WA 16 - 18 Uhr, Raum 2104 WA 16 - 18 Uhr, Raum -1606 WA (in Engl.) 8:30 - 10 Uhr, Raum -1606 WA

Berechenbarkeit und Formale Sprachen

2 / 309

Übungsaufgaben: Mittwoch → Mittwoch (50% verpflichtend für Klausurteilnahme + aktive Teilnahme an den Übungen mit „Vorrechnen“) Homepage: http://www.theory.informatik.uni-kassel.de/ veranstaltungen/theoInf-B+FormSpSS2012/ Abschlussklausur: Termin wird rechtzeitig bekannt gegeben.

Prof. Dr. F. Otto (Universität Kassel)

Berechenbarkeit und Formale Sprachen

3 / 309

Literatur: Buch zur Vorlesung: Uwe Schöning; Theoretische Informatik - kurzgefasst. Spektrum Akademischer Verlag, Heidelberg/Berlin, 4. Auflage, 2001. 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 / 309

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

5 / 309

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

5 / 309

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

5 / 309

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

5 / 309

Problemstellung: umgangssprachlich beschrieben ↓A1 Formale Problembeschreibung (Problemspezifikation)

Prof. Dr. F. Otto (Universität Kassel)

Berechenbarkeit und Formale Sprachen

6 / 309

Problemstellung: umgangssprachlich beschrieben ↓A1 Formale Problembeschreibung (Problemspezifikation)

Prof. Dr. F. Otto (Universität Kassel)

Berechenbarkeit und Formale Sprachen

6 / 309

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 ein 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

7 / 309

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 ein 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

7 / 309

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 ein 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

7 / 309

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

8 / 309

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

8 / 309

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

8 / 309

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

8 / 309

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

8 / 309

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

9 / 309

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

10 / 309

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

10 / 309

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

10 / 309

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

11 / 309

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

11 / 309

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

12 / 309

(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

13 / 309

Suggest Documents