3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen für das Erfüllbarkeitsproblem SAT
Advertisements

Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Schwierigkeit von Aufgabenstellungen
Aufgabe: Wie stellt man eine for-Schleife durch eine while-Schleife dar ?
Sortieren I - Bubblesort -
Theoretische Grundlagen der Informatik Prof. Dr. Michael Löwe
Wiederholung Was ist Informatik?
7. Automaten Ein Automat ist ein Sechstupel A= (I, O, Q, , q0, F).
9. Syntaxdiagramme und Backus-Naur-Form (BNF)
Suche in Texten (Stringsuche )
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
8. Formale Sprachen und Grammatiken
Einführung in Berechenbarkeit und Formale Sprachen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Notationen A = ist eine endliche, nichtleere menge,
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
Christian Schindelhauer
Christian Schindelhauer
Formale Sprachen – Mächtigkeit von Maschinenmodellen
Übung 6.1Turing-Maschine 1.Machen Sie sich mit der Funktionsweise des Busy Beaver-Programms vertraut Vollziehen sie die 11 Schritte der ersten Turing-Tabelle.
Das Halteproblem. Gibt es einen Algorithmus, mit dem man für jedes beliebig vorgegebene Programm R und für jede beliebig vorgegebene Eingabe E entscheiden.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Semantik von Prolog & Unifikation
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Die Collatz-Folge a0 selbst wählen ( N) ak+1 = ak/2 falls ak gerade
Berechenbarkeit. Fragestellungen Können Computer alles ausrechnen? Kann man alles ausrechnen? Was kann man berechnen? Was nicht? Was heißt Berechenbarkeit?
Was ist ein Computer? Was ist ein Programm? Können Computer Alles?
Endliche Automaten Informatik JgSt. 13, Abitur 2009
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Hartmut Klauck Universität Frankfurt WS 06/
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Berechenbarkeit Klaus Becker 2004.
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Grundlagen der Informatik - Prof. Slany 1 Grundlagen der Informatik Prof. Wolfgang SLANY.
Algorithmen und Datenstrukturen Übungsmodul 3
PHP: Operatoren und Kontrollstrukturen
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Informatik III Christian Schindelhauer Wintersemester 2006/07
Arne Vater Wintersemester 2006/ Vorlesung
Informatik III Christian Schindelhauer Wintersemester 2006/07
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Arne Vater Wintersemester 2006/ Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Arne Vater Wintersemester 2006/07 26.
Algorithmen für das Erfüllbarkeitsproblem SAT
Turing-Maschine als Akzeptor.
Wintersemester 2005 / Vorlesung
Berechenbarkeit Klaus Becker Berechenbarkeit.
7. Formale Sprachen und Grammatiken
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
 Sortigkeit oder Arität
Dr. Wolfram Amme, Semantik funktionaler Programme, Informatik II, FSU Jena, SS Semantik funktionaler Programme.
1 DigInf 05/06 Beispiele für berechenbare Funktionen Diagonalisierung Alles gemäß handschriftlicher Folien.
 Präsentation transkript:

3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt, eine Elementaroperation ist maschinell ausführbar? Was verstehen wir unter einer Rechenmaschine? Verschiedene Ansätze zur Präzisierung des Berechenbarkeitsbegriffs: • Turing-Berechenbarkeit • While-Berechenbarkeit • Goto-Berechenbarkeit All diese Präzisierungen (und weitere) beschreiben exakt dieselbe Klasse von Funktionen ==> Churchsche These: die so erfaßte Klasse von Funktionen ist identisch mit der Klasse der intuitiv berechenbaren Funktionen

Turing-Maschinen: Ein abstrakes Maschinenmodell Eine Turing-Maschine M = <Z, , ,, z0, E> besteht aus Z: endliche Zustandsmenge : Eingabealphabet :Arbeitsalphabet, enthält  Überführungsfunktion Z  ---> Z   {L, R, N} z0: Startzustand  E: Menge der Endzustände in Z  Das Arbeitsalphabet enthält das sog. blank Symbol • Das Band ist als unendlich lang zu denken. • • A B C 1 1 A B • • Schreib-Lesekopf endliche Kontrolleinheit

Die Kontrolleinheit endliche Kontrolleinheit Schreib -Lesekopf x Eingelesen y Schreiben B Bewegung des SLK Schreib -Lesekopf x y B Programmierbare Funktionseinheit zur Realisierung der Überführungsfunktion zi,x -> zj,y,B endliche Kontrolleinheit zi zj Speicher für inneren Zustand zi

Berechnungen einer TM Eingabe steht auf Band, pro Feld ein Symbol. SL-Kopf auf dem am weitesten links stehenden Eingabesymbol S. Zustand ist Anfangszustand z0. In Abhängigkeit von Zustand und gelesenem Symbol gibt  an • Nachfolgezustand, • auf Band geschriebenes neues Symbol, • Bewegungsrichtung (Links, Rechts, Nicht bewegen) Maschine führt so lange Aktionen aus, bis Zustand aus E erreicht wird  Ausgabe steht nun auf Band. Eine Funktion heißt Turing-berechenbar, wenn es eine Turing-Maschine gibt, die sie (im genannten Sinn) berechnet. Jede Turingmaschine ist durch die Menge ihrer inneren Zustände und durch ihre Überführungsfunktion eindeutig festgelegt.

Beispiel Eingabealphabet: {0, 1}, Arbeitsalphabet: {0, 1, •} Z = {z0, z1, z2, z3}, E = {z3} Überführungsfunktion [(x, y) -> (z, v, w) statt (x,y) = (z, v, w)]: (z0, •) -> (z3, 1, N) (z0, 0) -> (z0, •, R) (z0, 1) -> (z1, •, R) (z1, •) -> (z3, 1, N) (z1, 0) -> (z2, •, R) (z1, 1) -> (z1, •, R) (z2, •) -> (z2, •, R) (z2, 0) -> (z2, •, R) (z2, 1) -> (z2, •, R) Maschine liefert 1 gdw auf Band eine Folge 0...01...1 steht. Anzahl jeweils beliebig (auch null)

While-Berechenbarkeit Ein while-Programm besteht aus folgenden Komponenten: Variablen: x0, x1, x2, ... Operationszeichen: +, -, =, != Konstanten: 0, 1, 2, ... Sonderzeichen: ;, {, }, (, ) Schlüsselwörter: while Syntax von While-Programmen, induktive Definition: 1. Eine Wertzuweisung der Form xi = xj + c; oder xi = xj - c; (c Konstante) ist ein while-Programm 2. Falls P1 und P2 while-Programme sind, so auch P1 P2 3. Falls P while-Programm ist, so ist auch while (xi !=0) {P} ein while-Programm 4. Nur die durch 1-3 beschiebenen Konstrukte sind while-Programme Semantik: Wertzuweisung: xi erhält Wert von xj ± c Sequenz: erst wird P1 ausgeführt, dann P2 Schleife: P wird so lange ausgeführt, bis xi = 0 gilt. Test vor P-Ausführung Eingabewerte sind Werte der Variablen x1, ..., xn, alle anderen zunächst 0

Beispiel Multiplikation: Eingabe: x1, x2, Ausgabe: x0 (Vorbelegung x0 = 0) while (x1 !=0) { x3 = x2; while (x3 != 0) { x0 = x0 + 1; x3 = x3 – 1; } x1 = x1 – 1; andere Konstrukte können als Abkürzung eingeführt werden, etwa: if (x !=0) P1 else P2 x1 = 1; x2 = x; while (x2 !=0) {P1; x2 = 0; x1 = 0; } while (x1 != 0) {P2; x1 = 0 ;} statt Funktion ist while-berechenbar: es gibt while-Programm, das sie berechnet.

Goto-Berechenbarkeit Ein Goto-Programm ist eine Sequenz von Anweisungen Ai mit Marken Mi: M1: A1; M2: A2; ...; Mk: Ak; (Marken, zu denen nie gesprungen wird, dürfen entfallen.) Anweisungen sind Wertzuweisungen: xi = xj ± c; unbedingter Sprung: goto Mi; (Ai wird als nächstes ausgeführt) bedingter Sprung: if (xi == c) goto Mi; Stopanweisung: STOP. While-Schleifen lassen sich mit Goto's simulieren: Aus while (xi !=0) P M1: M2: if (xi == 0) goto M2; P goto M1; ... wird Funktion Goto-berechenbar: Es gibt entsprechendes Goto-Programm

Ein Goto-Programm für die Multiplikation Annahmen: Eingabewerte x1 und x2, Ausgabe x0, x0 mit 0 vorbelegt M1: M2: M3: M4: if (x1 == 0) goto M4; x3 = x2; if (x3 == 0) goto M3; x0 = x0 + 1; x3 = x3 - 1; goto M2; x1 = x1 - 1; goto M1; return x0; Programme mit GOTO schwer verstehbar und kaum verifizierbar. Konstrukt sollte deshalb beim Programmieren nicht verwendet werden.

Äquivalenz der Präzisierungen von Berechenbarkeit Theorem: Die Begriffe  Turing-berechenbar, While-berechenbar und Goto-berechenbar  sind äquivalent.  Deshalb geht man davon aus, daß der intuitive Berechenbarkeitsbegriff in diesen Präzisierungen adäquat erfaßt wurde. Frage: Gibt es Funktionen (über den natürlichen Zahlen), die • mathematisch präzise beschrieben werden können, aber • nicht berechenbar sind?

Nicht berechenbare Funktionen: Das Halteproblem Jede Turing-Maschine und jede Eingabe läßt sich eindeutig als natürliche Zahl codieren. Unter dem speziellen Halteproblem versteht man folgendes Problem: • gegeben: natürliche Zahl m • gefragt: terminiert Turing-Maschine mit Code m bei Eingabe m? Problem repräsentierbar als Funktion f: Nat --> {0, 1}, f(m) = 1 gdw TM mit Code m hält bei Eingabe m, f(m) = 0 sonst.  Funktion f ist nicht berechenbar!! Beweisskizze:  Angenommen es gäbe TM M, die f berechnet. Konstruiere daraus TM M' wie folgt: M' führt erst M aus, danach wird getestet, ob das Band den Wert 0 hat. Falls ja terminiert M', falls nein geht M' in Endlosschleife. Sei n der Code von M'. Falls gilt: M' hält bei Eingabe n <=> M bei Eingabe n liefert 0 <=> TM mit Code n hält nicht bei Eingabe n <=> M' hält nicht bei Eingabe n Widerspruch!!