Von Claudia Koller und Bernhard Findeiß

Slides:



Advertisements
Ähnliche Präsentationen
Seminar über Algorithmen
Advertisements

Christian Scheideler SS 2009
Hier einige Hieroglyphen:
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Vorlesung Programmieren II
Polynomial Root Isolation
Schwierigkeit von Aufgabenstellungen
3. Berechenbarkeit Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar? Intuitiv: Wenn es einen Algorithmus gibt, der sie berechnet! Was heißt,
Einführung in Berechenbarkeit und Formale Sprachen
Einige entscheidbare bzw. rekursiv aufzählbare Sprachen
Verifizieren versus Berechnen
Christian Schindelhauer
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
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.
Algorithmus. Ein Kochrezept, zum Beispiel: Kartoffelbrei.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Kapitel 5 Stetigkeit.
Kapitel 1 Das Schubfachprinzip
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
Semantik von Prolog & Unifikation
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
Christian Schindelhauer
(Ron Rivest, Adi Shamit, Leonard Adleman , 1977)
Zahlen mit Zahlen ausmessen
Wie macht man ein Sudoku? Transformations-Methode:
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
1. Mengenlehre Grundbegriffe.
Grenzen der Regularität
1. Mengenlehre Grundbegriffe.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Hartmut Klauck Universität Frankfurt WS 06/
Was ist eine Funktion? Eine Zuordnung,
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Wahrscheinlichkeitsrechnung
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
ENDLICHE KÖRPER RSA – VERFAHREN.
Lernprogramm : „Quadratische Funktionen“ von W. Liebisch
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
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.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Das Traveling Salesman Problem (TSP)
Wintersemester 2005 / Vorlesung
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Lineare Gleichungen Allgemeine Einführung Äquivalenzumformungen
Lineare Optimierung Nakkiye Günay, Jennifer Kalywas & Corina Unger Jetzt erkläre ich euch die einzelnen Schritte und gebe Tipps!
 Präsentation transkript:

Von Claudia Koller und Bernhard Findeiß Turingmaschinen Von Claudia Koller und Bernhard Findeiß 1

Berechenbarkeit Jeder heutige Computer ist im Prinzip eine allgemeine Turingmaschine. Es gilt die folgende Aussage: Jede mathematische Funktion, die berechenbar ist, ist durch eine Turingmaschine berechenbar! Die Umkehrung gilt ebenso: Alles, was nicht durch eine Turingmaschine berechnet werden kann, ist überhaupt nicht berechenbar! 24

Alonzo Church (Princeton) entwickelte zusammen mit zwei seiner Studenten eine formale Sprache, das sog. Lambda-Kalkül. Es wird beim Studium sowie beim Aufbau komplizierter mathematischer Funktionen benutzt. (Die moderne Computersprache Lisp basiert ebenfalls auf dem Lambda-Kalkül) Er begründete die These, dass jede berechenbare mathematische Funktion im Lambdakalkül definierbar ist. Er zeigte, dass wenn es eine nicht berechenbare Funktion im Lambdakalkül gäbe, ließe sich mit keiner Methode bestimmen, ob eine mathematische Aussage beweisbar oder gar wahr ist. 25

Abzählbar und überabzählbar Jede endliche Menge von Objekten, die man aufzählen kann, ist genauso groß wie die Menge der natürlichen Zahlen (nach Cantor). Jede Turingmaschine kann man durch eine Zeichenkette endlicher Länge beschreiben. Daraus kann man folgern, dass alle Turingmaschinen und somit auch alle berechenbaren Funktionen in numerischer oder lexikografischer Reihenfolge aufzählbar sind. Man kann sie also mit den natürlichen Zahlen eindeutig „paaren“.

Ketten der Länge 1: Ketten der Länge 2: Ketten der Länge N: A B C ... Z # 1 9 + = - / ? £ 2 3 26 27 28 36 37 38 40 39 41 42 50 AA AB A £ BA B £ ££ ... 1 + 50 52 ... 100 101 ... 150 ... 502 + 50 AA ... A 1 + R AA ... B 2 + R ... ...LOAD#A/X=FG4QTGHJ6Q6... M + R ££ ... £ 50N + R ( R = 50 + 502 + ... + 50N-1 )

Für die Größe einer Turingmaschine gibt es keine obere Schranke, also auch keine Schranke für die Anzahl von Turingmaschinen. Cantor zeigte, dass die Menge der berechenbaren Funktionen und der natürlichen Zahlen gleich groß sind, nämlich abzählbar. Es gibt auch Mengen, die überabzählbar sind, wie z.B. die Menge aller Funktionen von den natürlichen Zahlen in die ganzen Zahlen. 26

1 2 3 f1 1 2 3 f2 1 2 3 4 5 6 ... f1 7 f2 9 f3 f4 8 f5 f6 F 1 2 3 f3 1 2 3 f4 Annahme: Aufzählung aller Funktionen der Reihe nach, indem man die natürlichen Zahlen als Indizes benutzt. Die Funktionswerte einer bel. Funktion können durch eine Reihe ganzer Zahlen angegeben werden. Ändert man nun in der 1. Funktion den 1. Funktionswert, in der 2. Funktion den 2. Funktionswert, usw. erhält man eine neue Funktion, die sich offenbar von jeder in der Liste unterscheidet. Die Annahme, dass man in der Liste alle Funktionen erfasst hat, führt also zu einem Widerspruch

Nicht jede Funktion ist berechenbar ! Es gibt also mehr solche Funktionen als natürliche Zahlen. die Menge aller berechenbaren Funktionen ist abzählbar es existieren Mengen von Funktionen die überabzählbar sind => Nicht jede Funktion ist berechenbar !

Welche Funktionen sind nicht berechenbar? Leider ergeben sich aus den Versuchen von Church und Turing keine Beispiele für nichtberechenbare Funktionen. Eines der frühesten Beispiel fand 1962 Tibor Rado (Ohio State University), nämlich das Busy-Beaver-Problem „Fleißiger Biber“ 27

Man betrachte alle Turingmaschinen mit n Zuständen (z1, z2, Man betrachte alle Turingmaschinen mit n Zuständen (z1, z2, ... , zn), einem zusätzlichem Haltezustand H und dem Alphabet (0,1). Davon sollen nur diejenigen ausgewählt werden, die nach endlich vielen Schritten stehen bleiben. In jedem Schritt muessen die Turingmaschinen ein Symbol schreiben und eine Bewegung nach links oder rechts machen oder anhalten. Die Maschine mit n Zuständen, die angesetzt auf das leere Band die meisten Einser schreibt, erhält den Titel „Fleißiger Biber“. Die Einserfolge darf Lücken enthalten.

Anzahl Einser vor dem Stopp Für kleine Anzahlen von Zuständen ist die Zahl der Einser (durch Ausprobieren) bekannt. Anzahl Zustände Anzahl Einser vor dem Stopp 1 2 4 3 6 13 5 4098 Der letzte Wert ist nicht sicher, da man nicht ausschließen kann, ob es nicht doch eine Turingmaschine mit 5 Zuständen gibt, die mehr als 4098 Einser aufs Band schreibt, bevor sie hält.

Beispiel: Fleißiger Biber mit 3 Zuständen 1 z1 1 , R , z2 1 , L , z3 z2 1 , R , z3 1 , R , H z3 1 , L , z1 0 , L , z2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Z 1 Z 2 Z 3 Z 1 Z 2 Z 1 Z 3 Z 3 Z 2 Z 1 Z 3

Die Anzahl der Einser auf dem Band wird als der Wert der „Radoschen Funktion s(N) “ bezeichnet, wobei N die Anzahl der Zustände ist. Um zu beweisen, dass s(N) nicht berechenbar ist, nimmt man an, dass s(N) berechenbar ist und leitet aus dieser Annahme einen Widerspruch her. Die Argumentation ist im Prinzip einfach in den technischen Einzelheiten ziemlich kompliziert.

Abschätzung der Anzahl der Zustände, die man benötigt um M2 Einsen auf einem leeren Band zu erzeugen. Die Turingmaschinen zum Kopieren und Multiplizieren kombiniert man zu einer Maschine mit M+16 Zuständen. Drei weitere Zustände dienen dazu, die zwei am weitesten links stehenden Einserketten zu eliminieren, so dass nur noch M2 Einsen übrigbleiben. Nun nimmt man an, dass es eine Maschine mit Z Zuständen gibt, die bei Eingabe einer Kette von N Einsen eine Kette von s(N) Einsen erzeugt.

Gesamtzahl der Zustände Drucke M Einsen auf das leere Band 1 z1 1,R,z2 z2 1,R,z3 ... zM 1,L,zM+1 z2 1 z3 1 ... zM 1 1 1 1 ... M-1 M Gesamtzahl der Zustände

Gesamtzahl der Zustände zM+1 1 zM+1 0,-,- 1,L,zM+1 Vorbereiten des Kopierprogramms 1 1 1 1 1 ... M M+1 Kopieren zM+1 1 1 1 1 1 Kopierprogramm ... M ... Gesamtzahl der Zustände

Gesamtzahl der Zustände Multipliziere M x M zM+1+8 1 1 1 1 Multiplikations- programm ... ... M+9 M M ... zM+1+15 1 1 1 1 1 1 ... ... ... M M M2 M+16 Gesamtzahl der Zustände

Gesamtzahl der Zustände Streiche die Einsen in den ersten zwei Registern 1 zM+17 0,R,zM+17 0,R, zM+18 zM+18 0,R,zM+19 zM+19 0,R,zM+19+1 0,R, zM+19 zM+17 1 1 1 1 1 1 1 ... ... ... M M M2 zM+18 1 1 1 1 1 1 ... ... ... M-1 M M2 Gesamtzahl der Zustände

Gesamtzahl der Zustände zM+19 1 1 ... ... ... M M M2 M+19 Berechne s(M2) zM+19+1 1 1 1 zM+19+1 ? ... zM+19+Z HALT ... ... M2 zM+19+Z ... 1 1 ... s(M2) Gesamtzahl der Zustände M+19+Z

Man bemerkt zunächst, dass s streng monoton wachsend ist => für X > Y gilt : (X) > (Y) Für eine beliebige Zahl von Einsern, die eine Turingmaschine mit N Zuständen druckt, kann man immer eine Turingmaschine mit (N+1) Zuständen bauen, die eine Eins zu der Einserkette hinzufügt und dann hält. Annahme: Es gibt eine Turingmaschine mit Z Zuständen, die s(M2) berechnet. Für genügend große M widerspricht diese Aussage jedoch der Tatsache, dass s streng monoton wächst.

Dies kann man durch folgende mathematischen Umformungen zeigen: s(M+19+Z)  s(M2) M = Z + 20 => Z = M – 20 M + 19 + Z = M +19 + M – 20 = 2M –1 2M – 1 = M2 – ( M – 1 )2 => M + 19 + Z = M2 – ( M –1 )2 Da ( M – 1)2 > 1, ist M2 – 1 > M2 – ( M – 1)2 Da s streng monoton wachsend ist, folgt hieraus (M2 – 1) > s (M2 – ( M – 1 )2) = s (M + 19 + Z)  s (M2) Wegen s (M2 – 1) > s (M2) ist also s nicht streng monoton wachsend.

Die Annahme, dass es eine Turingmaschine gibt, die s(M2) berechnet, führt also zu einem Widerspruch. Der soeben geführte Beweis geht von der Annahme aus, dass man Turingmaschinen, die nicht nach endlich vielen Schritten halten, aussondern kann. Wegen dieser Einschränkung kann es sein, dass die Konstruktion mangelhaft ist. Daher wird ein anderer Versuch s(N) zu berechnen betrachtet.

Man zählt alle Turingmaschinen mit N Zuständen in irgendeiner festgelegten Reihenfolge auf. Man simuliert jede davon auf einer universellen Turingmaschine. Man wählt zum Schluss diejenige aus, die die meisten Einsen auf das Band druckt.

s(N) ist nicht berechenbar ! Auch hier taucht das Problem der Maschinen die nicht halten auf: Einige der Turingmaschinen mit N Zuständen, die nicht halten, kann man durch einfache Algorithmen aus-schließen. Bei anderen kann man aber nicht sagen, ob sie irgendwann halten, deshalb muss man die Simulation ewig fortsetzen und kann deshalb nicht sicher sagen, ob die Berechnung von s(N) jemals zu einem Ende kommt. => s(N) ist nicht berechenbar !

Alle Probleme die nicht in der Klasse P liegen sind schwer handhabbar. Turingmaschinen kann man auch dazu benutzen, genaue Schranken für die Komplexität von Berechnungen zu finden. Klassifizierung von Problemen nach der Länge der Rechenzeit in Abhängigkeit von der Größe der Eingabewerte des Problems. Es soll angenommen werden, dass die schnellste bekannte Methode zur Lösung eines Problems eine Rechenzeit benötigt, die mit einer Potenz von N (z.B. N2) variiert. => Alle Probleme die nicht in der Klasse P liegen sind schwer handhabbar. Das Problem gehört zur Klasse P aller Probleme, die sich in polynominaler Zeit lösen lassen.

Deterministische und nichtdeterministische Turingmaschine Deterministische Maschine: Lösung von Problemen der Klasse P Nichtdeterministische Maschine: rät das Problem und verifiziert dann die geratene Antwort Probleme, die sich in polynominaler Zeit mit einer nichtdeterministischen Maschine lösen lassen, gehören zur NP-Klasse.

Beispiel:. Ist eine ganze Zahl eine zusammen- Beispiel: Ist eine ganze Zahl eine zusammen- gesetzte Zahl (keine Primzahl)? Deterministische Maschine: sucht systematisch nach einem Teiler Nichtdeterministische Maschine: rät einen Teiler, teilt die gegebene Zahl durch den Teiler und überprüft, ob der Rest verschwindet. Ist dies der Fall, teilt die Maschine mit, dass die Zahl keine Primzahl ist.

Die Erfahrung zeigt, dass es einfacher ist, eine Lösung als solche zu verifizieren als überhaupt eine zu finden. Doch ist es bisher noch niemandem gelungen zu beweisen, dass die Probleme aus der NP-Klasse wesentlich schwieriger sind als die aus der P-Klasse. Die Frage, ob die Klassen P und NP verschieden sind, das sogenannte P-NP-Problem ist zu einem der großen offenen Problemen der Mathematik geworden.

1970 untersuchte Stephan A. Cook das Problem den Wahrheitswert einer zusammengesetzten logischen Aussage zu berechnen. Beispielsweise ist eine zusammengesetzte Aussage, die durch „oder“ verbunden ist, genau dann wahr, wenn mind. eine der Teilaussagen wahr ist. Im allgemeinen ist es ziemlich schwierig herauszu-finden, welche der Teilaussagen wahr bzw. falsch sein muss, damit die zusammengesetzt Aussage wahr wird. Cook zeigte, dass dieses Problem (Erfüllbarkeits-problem) mind. so schwierig ist wie jedes andere Problem der NP-Klasse.

1971 untersuchte Richard M. Karp welche anderen auftretenden Probleme dieselbe Rolle wie das Entscheidungsproblem spielen können. Er entdeckte, dass viele Probleme (z.B. Färbung von Grafen mit drei Farben) genauso schwierig sind wie jedes andere Problem in der Klasse NP. Man kann beweisen, dass das Färbungsproblem und das Erfüllungsproblem in ihrer Schwierigkeit äquivalent sind. So ließ sich zeigen, dass einige hundert Probleme, die man früher als getrennte Fragen angesehen hat, tatsächlich nur verschiedene Beschreibungen ein und derselben Fragestellung sind.

Ein direkter Versuch das P-NP-Problem zu lösen scheint noch verfrüht. Die dabei auftretenden Schwierigkeiten lassen sich an Hand neuerer Entwicklungen in der Theorie der Berechenbarkeit erst richtig einschätzen. Man sollte dabei jedoch nicht vergessen, dass schon die Formulierung dieser Probleme nur möglich geworden ist, weil eine frühere Generation von Wissenschaftlern ein undurchdringlich scheinendes Problem auf einfache Weise lösen konnte. Der nächste große Fortschritt könnte im nachhinein genauso einfach aussehen wie heute Turings Gedankenmaschinen.

Einige Links: Turingmaschinen Simulator : http://www.igs.net/~tril/tm/tm.html