Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Michael Kortenjan 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie.

Ähnliche Präsentationen


Präsentation zum Thema: "Michael Kortenjan 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie."—  Präsentation transkript:

1 Michael Kortenjan 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie Wintersemester 2005 / Vorlesung

2 Michael Kortenjan 2 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Turingmaschinen

3 Michael Kortenjan 3 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Turingmaschinen Arbeitet auf unbeschränktem Band Eingabe steht zu Beginn am Anfang des Bands Auf dem Rest des Bandes steht t (Blank) Position auf dem Band wird durch Lesekopf beschrieben

4 Michael Kortenjan 4 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Turingmaschinen

5 Michael Kortenjan 5 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Beispiel einer Turingmaschine Teste, ob ein Wort in der folgenden Sprache liegt: L = {w#w | w 2 {0, 1} } Vorgehensweise: -Von links nach rechts über das Wort laufen -Erstes Zeichen links merken und markieren -Erstes Zeichen rechts von # vergleichen und markieren -Für alle Zeichen wiederholen bis erreicht -Links dürfen dann nur noch Blanks folgen -Falls Zeichen an einer Stelle nicht übereinstimmen ablehnen, sonst am Ende akzeptieren

6 Michael Kortenjan 6 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Beispiel einer Turingmaschine # t … x # t … x # x t … x x # x t … x x x x x x # x x x x x x t …accept

7 Michael Kortenjan 7 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Turingmaschinen Eine (deterministische 1-Band) Turingmaschine (DTM) wird beschrieben durch ein 7-Tupel M = (Q,  q 0, q accept, q reject ). Dabei sind Q,  endliche, nichtleere Mengen und es gilt: F µ Q,  µ , q 0 2 Q t 2  n  ist das Blanksymbol. Q ist die Zustandsmenge,  ist das Eingabealphabet,  das Bandalphabet. q 0 2 Q ist der Startzustand. q accept 2 Q ist der akzeptierende Endzustand q reject 2 Q ist der ablehnende Endzustand  : Q £  ! Q £  £ {L, R} ist die (partielle) Übergangsfunktion. Sie ist für kein Argument aus {q accept, q reject } £  definiert.

8 Michael Kortenjan 8 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Arbeitsweise einer Turingmaschine Inintial: - Eingabe steht links auf dem Band - Der Rest des Bands ist leer - Kopf befindet sich ganz links Berechnungen finden entsprechend der Übergangsfunktion statt Wenn der Kopf sich am linken Ende befindet und nach links bewegen soll, bleibt er an seiner Position Wenn q accept oder q reject erreicht wird, ist die Bearbeitung beendet

9 Michael Kortenjan 9 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Konfiguration Momentaufnahme einer TM Bei Bandinschrift uv (dabei beginnt u am linken des Bandes und hinter v  stehen nur Blanks), Zustand q, Kopf auf erstem Zeichen von v Konfiguration C = uqv

10 Michael Kortenjan 10 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Aufeinanderfolgende Konfigurationen Gegeben: Konfigurationen C 1, C 2 Wir sagen: Konfiguration C 1 führt zu C 2, falls die TM von C 1 in einem Schritt zu C 2 übergehen kann. Formal: Seien a, b, c 2 , u, v 2  * und Zustände q i, q j gegeben Wir sagen uaq i bv führt zu uq j acv, falls  (q i, b) = (q j, c, L) und uaq i bv führt zu uacq j v falls  (q i, b) = (q j, c, R)

11 Michael Kortenjan 11 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Konfigurationen Startkonfiguration: q 0 w, wobei w die Eingabe ist Akzeptierende Konfiguration: Konfigurationen mit Zustand q accept Ablehnende Konfiguration: Konfigurationen mit Zustand q reject Haltende Konfiguration: akzeptierende oder ablehnende Konfigurationen

12 Michael Kortenjan 12 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Akzeptanz von Turingmaschinen Eine Turingmaschine M akzeptiert eine Eingabe w, falls es eine Folge von Konfigurationen C 1, C 2, …, C k gibt, so dass 1.C 1 ist die Startkonfiguration von M bei Eingabe w 2.C i führt zu C i C k ist eine akzeptierende Konfiguration Die von M akzeptierten Worte bilden die von M akzeptierte Sprache L(M) Eine Turingmaschine entscheidet eine Sprache, wenn jede Eingabe in einer haltende Konfiguration C k resultiert

13 Michael Kortenjan 13 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Rekursive und rekursiv aufzählbare Sprachen Eine Sprache L heißt rekursiv aufzählbar, falls es eine Turingmaschine M gibt, die L akzeptiert Eine Sprache L heißt rekursiv oder entscheidbar, falls es eine Turingmaschine M gibt, die L entscheidet

14 Michael Kortenjan 14 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Beispiel für eine Turingmaschine Gesucht: Turingmaschine, die L = {0 2 n | n ¸ 0} entscheidet Arbeitsweise: 1.Gehe von links nach rechts über die Eingabe und ersetze jede zweite 0 durch x 2.Wenn nur eine 0 auf dem Band ist, akzeptiere 3.Falls die Anzahl der 0en ungerade ist, lehne ab 4.Bewege den Kopf zurück an das linke Ende

15 Michael Kortenjan 15 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Beispiel Definition der Turingmaschine: Q = {q 1, q 2, q 3, q 4, q 5, q accept, q reject }  = {0}  = {0, x, t} Startzustand q 1 Akzeptierender Endzustand q accept Ablehnender Endzustand q reject Übergangsfunktion 

16 Michael Kortenjan 16 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Beispiel Darstellung von  als Diagramm

17 Michael Kortenjan 17 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Beispiel Darstellung von  als Tabelle  0xt q1q1 (q 2, t, R)(q reject, x, R)(q reject, t, R) q2q2 (q 3, x, R)(q 2, x, R)(q accept, t, R) q3q3 (q 4, 0, R)(q 3, x, R)(q 5, t, L) q4q4 (q 3, x, R)(q 4, x, R)(q reject, t, R) q5q5 (q 5, 0, L)(q 5, x, L)(q 2, t, R)

18 Michael Kortenjan 18 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 Startkonfiguration: q tt q1q1

19 Michael Kortenjan 19 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 Konfiguration: tq t000tt q2q2

20 Michael Kortenjan 20 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 Konfiguration: txq 3 00 tx00tt q3q3

21 Michael Kortenjan 21 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 Konfiguration: tx0q 4 0 tx00tt q4q4

22 Michael Kortenjan 22 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 Konfiguration: tx0xq 3 t tx0xtt q3q3

23 Michael Kortenjan 23 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 tx0xtt q5q5

24 Michael Kortenjan 24 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 tx0xtt q5q5

25 Michael Kortenjan 25 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 tx0xtt q5q5

26 Michael Kortenjan 26 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 tx0xtt q5q5

27 Michael Kortenjan 27 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 tx0xtt q2q2

28 Michael Kortenjan 28 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 tx0xtt q2q2

29 Michael Kortenjan 29 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 txxxtt q3q3

30 Michael Kortenjan 30 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 txxxtt q3q3

31 Michael Kortenjan 31 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 txxxtt q5q5

32 Michael Kortenjan 32 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 txxxtt q5q5

33 Michael Kortenjan 33 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 txxxtt q5q5

34 Michael Kortenjan 34 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 txxxtt q5q5

35 Michael Kortenjan 35 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 txxxtt q2q2

36 Michael Kortenjan 36 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 txxxtt q2q2

37 Michael Kortenjan 37 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 txxxtt q2q2

38 Michael Kortenjan 38 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 txxxtt q2q2

39 Michael Kortenjan 39 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Abarbeitung eines Beispielworts Beispiel für das Wort: 0000 Endkonfiguration: txxxtq accept txxxtt q accept

40 Michael Kortenjan 40 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Mehrband Turingmaschinen Eine Mehrband oder k-Band Turingmaschine (k-Band DTM) hat k Bänder mit je einem Kopf. Die Übergangsfunktion ist dann von der Form  : Q £  k ! Q £  k £ {L, R, S } k. Zu Beginn steht die Eingabe auf Band 1, sonst stehen überall Blanks. Die Arbeitsweise ist analog zu 1-Band-DTMs definiert.

41 Michael Kortenjan 41 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Äquivalenz von 1-Band und Mehrband Turingmaschinen Satz: Zu jeder Mehrband Turingmaschine gibt es eine äquivalente 1-Band Turingmaschine Beweis: Idee: Simuliere Mehrband DTM M auf 1-Band DTM S

42 Michael Kortenjan 42 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Beweis Fortsetzung Schreibe k Bänder hintereinander auf ein Band Sei #  zusätzliches Symbol Verwende # um Bänder zu trennen Für 2  füge   zum Alphabet hinzu Der Punkt repräsentiert die aktuelle Position des Kopfes auf dem Band

43 Michael Kortenjan 43 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Beweis Fortsetzung Bei Eingabe w = w 1, …, w n : 1. S bildet Startkonfiguration von M ab: 2. Simulation eines Schrittes: Gehe von links nach rechts über das Band und suche die Markierungen # und finde die Zeichen unter den virtuellen Köpfen Gehe von links nach rechts über das Band und führe die Änderungen entsprechend der Übergangsfunktion von M durch 3. Falls ein virtueller Kopf rechts auf ein # bewegt wird, schreibe ein t und bewege alle folgenden Zeichen eine Position nach rechts

44 Michael Kortenjan 44 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Äquivalenz von 1-Band und Mehrband Turingmaschinen Korollar: Eine Sprache L ist genau dann rekursiv aufzählbar, wenn es eine Mehrband Turingmaschine gibt, die L akzeptiert

45 Michael Kortenjan 45 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Heinz Nixdorf Institut & Institut für Informatik Universität Paderborn Fürstenallee Paderborn Tel.: / Fax: / Wir danken für Ihre Aufmerksamkeit!


Herunterladen ppt "Michael Kortenjan 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie."

Ähnliche Präsentationen


Google-Anzeigen