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

Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

  • Upload
    serena

  • View
    33

  • Download
    0

Embed Size (px)

DESCRIPTION

Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie. Wintersemester 2005 / 2006 15.11.05 8. Vorlesung. Turingmaschinen. Turingmaschinen. Arbeitet auf unbeschränktem Band Eingabe steht zu Beginn am Anfang des Bands Auf dem Rest des Bandes steht t (Blank) - PowerPoint PPT Presentation

Citation preview

Page 1: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 1

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Wintersemester 2005 / 2006

15.11.05

8. Vorlesung

Page 2: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 2

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Turingmaschinen

Page 3: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 3

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätTuringmaschinen

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

Page 4: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 4

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätTuringmaschinen

Page 5: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 5

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätBeispiel 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

Page 6: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 6

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätBeispiel einer Turingmaschine

0 1 1 0 0 0 # 0 1 1 0 0 0 t …

x 1 1 0 0 0 # 0 1 1 0 0 0 t …

x 1 1 0 0 0 # x 1 1 0 0 0 t …

x 1 1 0 0 0 # x 1 1 0 0 0 t …

x x 1 0 0 0 # x 1 1 0 0 0 t …

x x x x x x # x x x x x x t …accept

Page 7: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 7

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätTuringmaschinen

Eine (deterministische 1-Band) Turingmaschine (DTM) wird beschrieben durch ein 7-Tupel M = (Q, q0, qaccept, qreject).

Dabei sind Q, endliche, nichtleere Mengen und es gilt: F µ Q, µ , q0 2 Q

t 2 n ist das Blanksymbol.

Q ist die Zustandsmenge, ist das Eingabealphabet, das Bandalphabet.

q0 2 Q ist der Startzustand.qaccept 2 Q ist der akzeptierende Endzustandqreject 2 Q ist der ablehnende Endzustand

: Q £ ! Q £ £ {L, R} ist die (partielle) Übergangsfunktion. Sie ist für kein Argument aus {qaccept, qreject} £ definiert.

Page 8: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 8

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätArbeitsweise 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 qaccept oder qreject erreicht wird, ist die Bearbeitung beendet

Page 9: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 9

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätKonfiguration

Momentaufnahme einer TM

Bei Bandinschrift uv (dabei beginnt u am linken des Bandes und hinter vstehen nur Blanks),

Zustand q,

Kopf auf erstem Zeichen von v

Konfiguration C = uqv

Page 10: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 10

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAufeinanderfolgende Konfigurationen

Gegeben: Konfigurationen C1, C2

Wir sagen: Konfiguration C1 führt zu C2, falls die TM von C1 in einem Schritt zu C2 übergehen kann.

Formal:

Seien a, b, c 2 , u, v 2 * und Zustände qi , qj gegeben

Wir sagen uaqibv führt zu uqjacv, falls

(qi, b) = (qj , c, L) und

uaqi bv führt zu uacqj v falls (qi , b) = (qj , c, R)

Page 11: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 11

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätKonfigurationen

Startkonfiguration: q0w, wobei w die Eingabe ist

Akzeptierende Konfiguration: Konfigurationen mit Zustand qaccept

Ablehnende Konfiguration: Konfigurationen mit Zustand qreject

Haltende Konfiguration: akzeptierende oder ablehnende Konfigurationen

Page 12: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 12

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAkzeptanz von Turingmaschinen

Eine Turingmaschine M akzeptiert eine Eingabe w, falls es eine Folge von Konfigurationen C1, C2, …, Ck gibt, so dass

1. C1 ist die Startkonfiguration von M bei Eingabe w

2. Ci führt zu Ci + 1

3. Ck 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 Ck resultiert

Page 13: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 13

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätRekursive 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

Page 14: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 14

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätBeispiel für eine Turingmaschine

Gesucht: Turingmaschine, die

L = {02n | 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

Page 15: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 15

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätBeispiel

Definition der Turingmaschine:

Q = {q1, q2, q3, q4, q5, qaccept, qreject}

= {0}

= {0, x, t}Startzustand q1

Akzeptierender Endzustand qaccept

Ablehnender Endzustand qreject

Übergangsfunktion

Page 16: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 16

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätBeispiel

Darstellung von als Diagramm

Page 17: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 17

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätBeispiel

Darstellung von als Tabelle

0 x t

q1 (q2, t, R) (qreject, x, R) (qreject, t, R)

q2 (q3, x, R) (q2, x, R) (qaccept, t, R)

q3 (q4, 0, R) (q3, x, R) (q5, t, L)

q4 (q3, x, R) (q4, x, R) (qreject, t, R)

q5 (q5, 0, L) (q5, x, L) (q2, t, R)

Page 18: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 18

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

Startkonfiguration:

q10000

0 0 0 0 t t

q1

Page 19: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 19

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

Konfiguration:

tq2000

t 0 0 0 t t

q2

Page 20: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 20

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

Konfiguration:

txq300

t x 0 0 t t

q3

Page 21: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 21

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

Konfiguration:

tx0q40

t x 0 0 t t

q4

Page 22: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 22

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

Konfiguration:

tx0xq3t

t x 0 x t t

q3

Page 23: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 23

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x 0 x t t

q5

Page 24: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 24

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x 0 x t t

q5

Page 25: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 25

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x 0 x t t

q5

Page 26: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 26

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x 0 x t t

q5

Page 27: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 27

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x 0 x t t

q2

Page 28: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 28

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x 0 x t t

q2

Page 29: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 29

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x x x t t

q3

Page 30: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 30

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x x x t t

q3

Page 31: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 31

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x x x t t

q5

Page 32: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 32

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x x x t t

q5

Page 33: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 33

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x x x t t

q5

Page 34: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 34

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x x x t t

q5

Page 35: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 35

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x x x t t

q2

Page 36: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 36

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x x x t t

q2

Page 37: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 37

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x x x t t

q2

Page 38: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 38

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

t x x x t t

q2

Page 39: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 39

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätAbarbeitung eines Beispielworts

Beispiel für das

Wort: 0000

Endkonfiguration:

txxxtqaccept

t x x x t t

qaccept

Page 40: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 40

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätMehrband 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.

Page 41: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 41

HEINZ NIXDORF INSTITUTUniversitä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

Page 42: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 42

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätBeweis 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

Page 43: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 43

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und KomplexitätBeweis Fortsetzung

Bei Eingabe w = w1, … , wn: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

Page 44: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 44

HEINZ NIXDORF INSTITUTUniversitä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

Page 45: Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Michael Kortenjan 45

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Heinz Nixdorf Institut& Institut für InformatikUniversität PaderbornFürstenallee 1133102 Paderborn

Tel.: 0 52 51/60 64 52Fax: 0 52 51/60 64 82E-Mail: [email protected]://www.upb.de/cs/ag-madh

Wir danken für Ihre Aufmerksamkeit!Wir danken für Ihre Aufmerksamkeit!