Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Von Claudia Koller und Bernhard Findeiß

Ähnliche Präsentationen


Präsentation zum Thema: "Von Claudia Koller und Bernhard Findeiß"—  Präsentation transkript:

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

2 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

3 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

4 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“.

5 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 ... AA ... A 1 + R AA ... B 2 + R ... ...LOAD#A/X=FG4QTGHJ6Q6... M + R ££ ... £ 50N + R ( R = N-1 )

6 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

7 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

8 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 !

9 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

10 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.

11 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.

12 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

13 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.

14 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.

15 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

16 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

17 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

18 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

19 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

20 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.

21 Dies kann man durch folgende mathematischen Umformungen zeigen:
s(M+19+Z)  s(M2) M = Z + 20 => Z = M – 20 M Z = M M – 20 = 2M –1 2M – 1 = M2 – ( M – 1 )2 => M 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 Z)  s (M2) Wegen s (M2 – 1) > s (M2) ist also s nicht streng monoton wachsend.

22 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.

23 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.

24 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 !

25 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.

26 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.

27 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.

28 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.

29 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.

30 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.

31 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.

32 Einige Links: Turingmaschinen Simulator :


Herunterladen ppt "Von Claudia Koller und Bernhard Findeiß"

Ähnliche Präsentationen


Google-Anzeigen