Protokoll in Informatik 02.12.14 Mario Fohs Theorie des Algorithmus und der Turingmaschine Die Turingthese: a) Die Turingmaschine ist ein Computer: Jede Turingmaschine lässt sich durch einen Computer simulieren. Ein Computer ist also mindestens so leistungsfähig wie eine Turingmaschine. b) Jeder Computer lässt sich auf eine Turingmaschine reduzieren: - endliches Alphabet: Ein Computer erkennt unterschiedlich viele verschiedene Zeichen (ASCII) beim Lesen und Schreiben - potentiell unendliches Speicherband: Es soll immer genügend Speicherplatz vorhanden sein. - Operation auf dem Arbeitsfeld: Schreiben gleichzeitige Bearbeitung eines Feldes Lesen nach rechts Behandlung benachbarter Felder (Diskette, Zeiger) nach links - endliche Zustandsmenge: Wegen endlicher Algorithmen und unendlich vielen Programmschritte ( Prozessorschritte) möglich. - eindeutige Überführungsfunktion: Durch ein Programm wird der nächst folgende Zustand eindeutig festgelegt (Eindeutigkeit des Algorithmus) c) Ergebnis: Jeder (!) Algorithmus kann (im Prinzip) von einer Turingmaschine abgearbeitet werden. d) Turingthese: - Ein Algorithmus ist ein Vorgang, der von einer Turingmaschine ausführbar ist. - Ein Algorithmus ist eine Turingmaschine. - Der intuitive Begriff des Algorithmus (allgemeines, ausführbares, eindeutiges, endliches Verfahren und der präzise Begriff des Algorithmus (Turingmaschine) stimmen überein. e) Anwendungen: Beweise für die Ausführbarkeit von Algorithmen: - positiv: Turingmaschine dazu finden - negativ: es gibt keine Turingmaschine dazu 8. Abzählbarkeit a) Definition: Eine Menge heißt abzählbar, wenn deren Elemente eindeutig der Menge der natürlichen Zahlen zuordnen: N= {a1,a2,a3…} (unendlich) b) Satz: Die Menge der Turingmaschinen ist abzählbar. Beweis: 1.) Jede Turingmaschine ist durch eine Kette von Fünftupel darstellbar. Z0 x y R Z1 Es gibt nur endlich viele Befehle! Startzustand gelesen gelesen Endzustand Kopf 2.) Die Zahl der Zustände ist abzählbar (durchnummeriert) z0,z1,z2… - Die Buchstaben sind endlich: a,b,c… Die Kombinationen sind abzählbar. 3.) Ergebnis: Die Menge aller Fünftupel ist abzählbar. Die Menge der Turingmaschinen ist abzählbar c) Satz: Finde eine überabzählbare Menge von Funktionen. Diese kann dann nicht mit einer Turingmaschine dargestellt werden. d) Satz: Die Menge aller Funktionen: f: N N ist überabzählbar. Beweis: (indirekt) Finde ein Gegenbeispiel Angenommen, alle Funktionen f können durchnummeriert werden, d.h. es gibt eine nummerierte Folge: f1,f2,f3… die Funktionswerte sind ebenfalls eine Folge natürlicher Zahlen f(1) f(2) f(3) f1 25 37 40 f2 7 3 1 f3 5 4 2 fiktive Funktionswerte Die Menge der f: NN ist abzählbar, wenn alle in dieser Tabelle vorkommen. Wir konstruieren eine Funktion, die nicht in dieser Tabelle vorkommt. Definiere f*: N N so, dass f*(n) ≠ fn (n) (Diagonalwerte) d.h. sie unterscheidet sich an einer Stelle von allem aufgezählten. sie gehört nicht zum Abzählschema Die Annahme ist falsch die Menge aller ist überabzählbar e) Folgerung: Die Menge der Turingmaschinen ist abzählbar. Die Menge der Funktionen f: N N ist überabzählbar. Es gibt Funktionen, die nicht von einer Turingmaschine berechenbar sind. Funktionen, für die es keinen Algorithmus gibt!