Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Turingmaschinen Von Claudia Koller und Bernhard Findeiß.

Ähnliche Präsentationen


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

1 Turingmaschinen Von Claudia Koller und Bernhard Findeiß

2 Wer war eigentlich Alan Turing ? Was ist eine Turingmaschine ? Wie funktioniert sie ? Wozu benötigt man sie ? Überblick über den heutigen Vortrag:

3 Das Leben von Alan Turing Geboren am 26. Juni in London Starb am 7. Juni 1954 in Manchester unter ungeklärten Umständen Studierte Mathematik und Wissenschaften u.a. in Cambridge und Princeton Während des Zweiten Weltkriegs arbeitete er für die britische Armee Nach dem Krieg (von ) am „National Physical Laboratory“ in Teddington tätig. Entwarf dort das Konzept der „Automatic Computing Engine“ (ACE) Ab 1948 stellvertretender Direktor des „Computing Laboratory“ in Manchester. Entwarf dort die „Manchester Automatic Digital Machine“ (MADAM) Wurde 1952 wegen homosexueller Neigungen verhaftet Musste sich anschliessend einer erzwungenen Hormontherapie unterziehen Ein Jahr nach deren Ende, am 7. Juni. 1954, beging er Selbstmord

4 Einige seiner Leistungen: erdachte die Turingmaschine knackte im 2. Weltkrieg den Code der Enigma erfand den Algorithmus (!) führte als erster den Begriff „künstliche Intelligenz“ ein (wurde aber erst 1969 veröffentlicht!) schrieb den Turing-Test Er hat die Erfindung des Computer in den 1940er und '50er - Jahren kaum beeinflusst Wird heute jedoch als Pionier der Computertechnik angesehen Sein Prinzip des Algorithmus ist immer noch in jedem Computer zu finden

5 Grund: Das Hilbertsche Entscheidungsproblem David Hilbert präsentierte 1900 eine Liste ungelöster Probleme Aufgabe: Eine Methode finden, mit der man feststellen kann, ob ein mathematisches Problem erfüllbar ist oder nicht Lösung erst 1936 von Alonzo Church (  Berechenbarkeit): Hilberts Problem ist unlösbar! Auf das gleiche Ergebnis kam 6 Monate später Alan Turing Die Turingmaschine Wieso dachte sich Turing dieses Konzept überhaupt aus? Was war der Anlass dazu ?

6 Diese Maschine muss algoritmisch sein, d.h. mechanisch ausführbar und ohne Zuhilfenahme intelligenter Einsicht Dazu muss man einen Rechenvorgang in kleinste Schritte zerlegen  detailiertes Modell für Berechnungsvorgänge Das sich daraus ergebende Gedankenmodell bezeichnet man als Turingmaschine. Eine Turingmaschine kann man sich wie eine Schreibmaschine vorstellen Der genaue Aufbau ist nicht so wichtig, da keine echte TM existiert Sie ist eher eine Methode mathematischen Denkens Es gibt aber Simulationen z.B. unter Java. Am Ende des Vortrags werden wir eine davon vorführen! Seine Idee war nun, dies mit Hilfe einer ideellen Maschine zu tun

7 Funktionsweise einer Turingmaschine einem (potentiell unendlich langen) in Zellen unterteiltem Band, das pro Feld genau ein Zeichen aufnehmen kann einem Schreib-Lesekopf: Kann Zeichen aus einem vorgegebenem Zeichenvorrat schreiben und löschen. Kann ausserdem nach rechts und nach links auf dem Band wandern (eine Zelle pro Schritt) einem inneren Zustand Eine Turingmaschine ist eine ziemlich einfache Maschine. Sie besteht im Prinzip nur aus folgenden Teilen:

8 Die Turingmaschine kann je nach Zustand und Inhalt des Bandes verschiedene Aktionen ausführen: ein neues Zeichen schreiben den Schreib-Lesekopf um eine Position nach rechts oder links schieben den internen Zustand verändern (entspricht bei der Schreibmaschine z.B. dem Drücken der Umschalttaste) Daraus ergibt sich folgendes Befehlsformat: ([zu schreibendes Zeichen],[nächster Zustand],[Bewegung d. Kopfes]) Jeder moderne Rechner ist im Prinzip eine Turingmaschine! (dazu später noch mehr) Wenn man mehrere dieser Befehle zu einer Tabelle zusammenfasst, kann man ein Programm für die Maschine entwickeln.

9 Beispiel für ein Programm: Addition zweier hintereinander stehender Zahlen Das eigentliche Programm sieht ungefähr so aus: Anschreiben der beiden zu addierenden Zahlen auf das Band: Zeichenvorrat: { 0; 1 }

10 Noch 1 mal Das war‘s. Jetzt kommt die erste Noch 2 mal Die 1 in eine 0 umändern, Zustand 2 einnehmen, Lesekopf nach rechts Wir beginnen ganz links und im Zustand S1  die 0 bleibt, der Zustand S1 ebenso, der Lesekopf geht nach rechts

11 Die 1 bleibt, kein Zustandswechsel, Lesekopf nach rechts Statt der 0 eine 1 schreiben, Zustand 3 einnehmen, Lesekopf nach rechts

12 Zustand 3 = Ende Resultat: Die linke Anfangszahl wurde um eins nach rechts geschoben  entspricht a + b

13 Ein weiteres Beispiel: die Kopiermaschine Frage: Wie kann ich eine gegebene Zeichenkette mit Hilfe der Turingmaschine kopieren? Es gib mehrere Lösungsansätze: Man kann die Anzahl der Einsen abzählen und anschließend weiter rechts auf dem Band anschreiben Problem dabei: Die Maschine benötigt genauso viele Zustände wie Einser auf dem Band stehen. Dies ist allerdings nicht sehr elegant bei langen Zeichenketten.

14 Es gibt aber noch eine bessere Methode: Man schiebt eine Null als Index durch die gesamte Kette und schreibt bei jedem Schiebevorgang eine Eins rechts neben die ursprüngliche Kette So entsteht allmählich eine Kopie rechts neben der Ausgangskette Das zugehörige Programm sieht in etwa so aus:

15 Ein weiteres Beispiel: die Kopiermaschine Register NRegister P Lücke S S1 N P S2 N P S N P S2 N P N P S3 N P S4 N P S5 N P S6 N P S6 N P S7 N P S2 NP S3 NP S3 NP S3 NP S4 NP S4 NP S5 NP S6 NP S7 NP S2 NP S3 NP S3 NP S3 NP S4 NP S4 NP S4 NP S5 NP S6 NP S7 NP S8 NP

16 Zusammengesetzte Programme Man kann sich viel Arbeit sparen, wenn man komplizierte Programme nicht direkt entwickelt sondern aus einfacheren aufbaut Beispiel: Die Multiplikation Anstatt ein Programmzu entwickeln, das direkt multipliziert (also a  b berechnet), kann man auch die Kopiermaschine verwenden: Man kopiert b einfach a-mal, und kommt so aufs gleiche Ergebnis Wenn man mehrere verschiedene Turingmaschinen kombiniert kann man so auch komplizierte Ausdrücke auswerten Beispiel: Mit den Verfahren zur Addition, Multiplikation und Kopieren kann man bereits einen polynomialen Ausdruck auswerten

17 Für den Anfänger scheinen zuerst selbst einfache Aufgaben unlösbar Mit etwas Übung jedoch lernt man wie man mit nur wenigen Grundverfahren die Möglichkeiten der Turingmaschine explosionsartig erweitern kann Man kann sich nun theoretisch vorstellen kleinere Turingmaschinen so zu kombinieren dass man damit jede beliebige Aufgabe lösen kann Solch eine (theoretische) Maschine nennt man die universelle Turingmaschine Problem dabei: Viele kleine Turingmaschinen führen keine sinnvollen Aufgaben aus  man muss mit Sorgfalt wählen, welche man kombiniert

18 Die universelle Turingmaschine Jede Turingmaschine lässt sich durch eine endliche Kette von Nullen und Einsen auf einem Band darstellen, da sie durch ihre Anweisungstabelle eindeutig definiert ist diese Tabelle endlich sein muss, da sowohl die Zahl der Zustände als auch die Zahl der Zeichen auf dem Band endlich ist Turing zeigte nun: Durch die universelle Turingmaschine lässt sich jede (beliebige) andere Turingmaschine simulieren. Dies funktioniert wie folgt:

19 Man zerlegt man die kleinere Maschine in zwei Abschnitte: ihre Beschreibung, die man auf der linken Seite anschreibt die Bandinschrift, die diese Maschine bearbeiten soll, auf der rechten Seite Die universelle Turingmaschine bearbeitet die Aufgabe nun wie folgt: Sie springt immer zwischen der Beschreibung und der Bandinschrift hin und her  sie ist immer auf dem Laufenden über den aktuellen Zustand  sie bearbeitet die Bandinschrift genau so, wie die kleinere Maschine es alleine täte Dadurch ist gezeigt: Die universelle Turingmaschine hat die kleinere Maschine simuliert

20 Diese erfolgreiche Simulation beruht allein darauf, dass jede Turingmaschine sich vollständig durch endlich viele Zeichen beschreiben lässt. Im Prinzip kann man jeden Digitalrechener so beschreiben, modernste Systeme: Er hat eine endliche (wenn auch sehr große) Anzahl innerer Zustände Seine Reaktion auf eine Eingabe ist durch endlich viele Anweisungen festgelegt Macht man das Speicherband nun groß genug kann man jeden beliebigen Recher als universelle Turingmaschine verwenden

21 Dies eröffnet interessante Möglichkeiten. Man stelle sich vor: Man verwendet einen Mikrocomputer als universale TM und gibt anschließend die Beschreibung eines Grossrechners ein  Der Mikrocomputer wird sich wie ein Grossrechner verhalten Durch diese Eigenschaft kann man einen weiteren Schluß ziehen: Jeder Digitalrechner kann die gleiche Klasse mathematischer Funktionen berechnen: die Klasse aller Funktionen die auf einer Turingmaschine berechenbar sind

22 Wozu allerdings dient dieser Beweis? Er soll Turings Definition der Berechenbarkeit stützen: Eine mathematische Funktion ist berechenbar, wenn sie sich auf einer Turing- maschine berechnen läßt Er fand auch überzeugende Beweise, die seine These untermauern (  2.Teil) Wieso jedoch war er so versessen darauf, den Begriff der Berechenbarkeit exakt zu definieren? Die Antwort liefert ein Blick in die Geschichtsbücher:

23 Mathematische Strenge im heutigen Sinn ist eine relativ neue Entwicklung Der erste Versuch, mathematische Aussagen auf Aussagen der formalen Logik zurückzuführen wurde 1879 von Gottlob Frege unternommen („Begriffsschrift“) Das Hilbertsche Entscheidungsproblem ist demnach von direkter Bedeutung für die Mathematik: Falls man Freges Programm vollständig durchführen kann und eine Methode finden könnte, um Wahr- oder Falschheit einer Aussage der formalen zu beweisen, dann kann man diesen Beweis auf alle mathematischen Aussagen ausdehnen

24 Damit ließen sich auch Probleme lösen, mit denen man vorher Schwierigkeiten hatte, wie z.B. Pierre de Fermats „letztem Theorem“ Allerdings zeigte sich bald, daß dies unmöglich ist: Bertrand Russell fand 1901 ein unauflösbares Paradox in der Mengenlehre Kurt Gödel fand einen Widerspruch in der Annahme von Hilberts Problem Sie konnten jedoch Freges Werk in modifizierter Form retten, indem sie das Russelsche Paradox durch einen Kunstgriff, die sogenannte „Typentheorie“ umgingen


Herunterladen ppt "Turingmaschinen Von Claudia Koller und Bernhard Findeiß."

Ähnliche Präsentationen


Google-Anzeigen