GTI Mitschrift

Download GTI Mitschrift

Post on 24-Jun-2015

577 views

Category:

Documents

6 download

Embed Size (px)

TRANSCRIPT

Grundlagen der Theoretischen Informatikmitgeschrieben von Martin LendersDieses Dokument vom 6. Juli 2009 steht unter einer Creative Commons BY-NC-ND 3.0 Deutschland Lizenz f r die Seite http://page.mi.fu-berlin.de/mlenders/mitschriften/gti/ u

Inhaltsverzeichnis1 Turing-Maschine, Berechenbarkeit, Entscheidbarkeit 1.1 Denition der Turing-Maschine . . . . . . . . . . . . . . 1.2 Churchsche These . . . . . . . . . . . . . . . . . . . . . 1.3 Registermaschinen . . . . . . . . . . . . . . . . . . . . . 1.4 Formale Sprachen . . . . . . . . . . . . . . . . . . . . . . 1.4.1 Multiplikation von Wrtern . . . . . . . . . . . . o 1.4.2 Multiplikation von Sprachen . . . . . . . . . . . . 1.4.3 Potenz von Wrtern und von Sprachen . . . . . . o 1.5 Konguration (Momentaufnahme einer Turingmaschine) 1.6 Turingmaschine mit mehreren Bndern . . . . . . . . . . a 1.7 Die universelle Turingmaschine . . . . . . . . . . . . . . 1.8 Unentscheidbarkeit . . . . . . . . . . . . . . . . . . . . . 1.8.1 Universelle Sprache und Diagonalsprache . . . . 1.8.2 Das Halteproblem . . . . . . . . . . . . . . . . . 1.8.3 Reduzierbarkeit von Problemen . . . . . . . . . . 1.8.4 Das Postsche Korrespondenzproblem (PKP) . . 1.8.5 Andere unentscheidbare Probleme . . . . . . . . 1.8.6 Satz von RICE (1953) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 7 7 8 8 8 8 9 10 10 10 12 13 13 16 16 17 17 18 20 22 22 23 25 26 27 29 30 31 31 32 32 33 34 35 35 35 36 37 38 40 41 42 43 44 44

2 Regulre Sprachen und endliche Automaten a 2.1 Deterministische endliche Automaten . . . . . . . . . . . . . . 2.2 Regulre Ausdr cke . . . . . . . . . . . . . . . . . . . . . . . a u 2.3 Nichtdeterministische endliche Automaten . . . . . . . . . . . 2.4 NEA mit -Ubergngen . . . . . . . . . . . . . . . . . . . . . a 2.4.1 Elimination von -Ubergngen . . . . . . . . . . . . . a 2.5 Minimierung deterministischer endlicher Automaten . . . . . 2.5.1 Algorithmus zur Bestimmung des Minimalautomaten: 2.5.2 Satz von Nerode . . . . . . . . . . . . . . . . . . . . . 2.6 Das Pumping-Lemma f r regulre Sprachen . . . . . . . . . . u a 2.7 Abschlusseigenschaften regulrer Sprachen . . . . . . . . . . . a 2.8 Zusammenfassung: regulre Sprachen . . . . . . . . . . . . . . a 3 Grammatiken 3.1 Denition von Grammatiken . . . . . . . . . . . 3.2 Die Chomsky-Hierarchie . . . . . . . . . . . . . . 3.3 Typ-0-Sprachen (rekursiv aufzhlbare Sprachen) a 3.4 Typ-3-Sprachen (regulre Sprachen) . . . . . . . a 3.5 Typ-1-Sprachen (kontextsensitive Sprachen) . . . 4 Kontextfreie Sprachen (Typ-2-Sprachen) 4.1 Tiefenstruktur von Sprachen . . . . . . . . . . . 4.2 Dyck-Sprache . . . . . . . . . . . . . . . . . . . . 4.3 Kontextfreie Grammtiken als Gleichungssysteme 4.4 Eindeutigkeit . . . . . . . . . . . . . . . . . . . . 4.5 Chomsky-Normalform . . . . . . . . . . . . . . . 4.6 Algorithus von CYK . . . . . . . . . . . . . . . 4.7 (Erweiterte) Backus-Naur-Form (E)BNF . . . . . 4.8 Pumping-Lemma f r kontextfreie Sprachen . . . u 4.9 Abschlusseigenschaften kontextfreier Sprachen . . 4.10 Entscheidungsprobleme kontextfreier Sprachen . 4.11 Kellerautomaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

Inhaltsverzeichnis

4.12 Abschlusseigenschaften kontextfreier Sprachen gegen ber regulren Sprachen u a 4.13 Deterministische kontextfreie Sprachen . . . . . . . . . . . . . . . . . . . . . . 4.14 Deterministische Zweiwege-Kellerautomaten . . . . . . . . . . . . . . . . . . . 4.14.1 Teilwortproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

48 48 48 49

4

1 Turing-Maschine, Berechenbarkeit, Entscheidbarkeit1.1 Denition der Turing-MaschineSteuerung

Zustand (Programmzhler)

(q, a)

Programm

Schreib/Lesekopf

(q , a , b)1X

B

B

B

0

B

B

B

Zweiseitiges, unendliches Band

Eine Turingmaschine wird beschrieben durch: Ein Eingabealphabet ein Bandalphabet ein Leerzeichen B \ eine endliche Menge Q von Zustnden a eine Uberf hrungsfunktion : Q Q {1, 0, 1} u ein Anfangszustand q0 Q (eventuell) eine Menge von akzeptierenden Zustnden F Q a ist das Programm der TM (q, a) = (q , a , b) bedeutet: Wenn die Maschine im Zustand q ist und unter dem Kopf das Symbol a steht, dann wird a durch a auf dem Band ersetzt (a = a ist mglich), das Band wird um b verschoben und die o Maschine geht in den Zustand q Die Eingabe ist eine Folge von Symbolen aus (ein Wort uber ). Sie steht am Anfang auf dem Band; der Kopf steht uber dem ersten Symbol. Der Zustand ist q0 . Beispiel: = {0, 1}, = {0, 1, B, X} Erkenne die Eingabe der Form: 0 1 , f r n 1 u 01, 0011, 000111, ... (richtig) 001, 1100, 0100101, ... (falsch) rechts und links von der Eingabe stehen unendlich viele B-Symbole Phase 1: laufe einmal von links nach rechts uber das Band und uberpr fe, ob dort eine Folge von 0en u gefolgt von eine Folge von 1en steht. Phase 2: Fahre abwechselnd nach links und nach rechts und ersetze jeweils 0 und eine 1 durch X. Akzeptiere, wenn am Ende alles durch X erstzt ist und kene 0, 1 ubrig bleibt n n

5

KAPITEL 1. TURING-MASCHINE, BERECHENBARKEIT, ENTSCHEIDBARKEIT

q0 q1 q2 q3 q4

0 (q0 , 0, 1) (q , 0, 0) (q3 , X, 1) (q3 , 0, 1) (q4 , 0, 1)

1 (q1 , 1, 1) (q1 , 1, 1) (q2 , 1, 1) (q2 , X, 1) (q , 1, 1)

B (q , B, 0) (q2 , B, 1) (q4 , B, 1) (q4 , B, 1) (q+ , B, 0)

X egal egal (q2 , X, 1) (q3 , X, 1) (q4 , X, 1)

Kommentar fahre nach rechts uber Nullen fahre nach rechts uber Einsen fahre nach links und suche 0, ersetze sie durch X fahre nach rechts und suche 1, ersetze sie durch X fahre nach rechts und suche 1; akzeptiere wenn keine 1 mehr vorhanden ist.

q q+

(q , 0, 0) (q+ , 0, 0)

(q , 1, 0) (q+ , 1, 0)

(q , B, 0) (q+ , B, 0)

(q , X, 0) (q+ , X, 0)

Die Maschine hlt, wenn sie in einen Zustand q uber einen Symbol a mit (q, a) = (q, a, 0) steht. a Q = {q0 , q1 , q2 , q3 , q4 , q+ , q } q0 = q0 F = {q+ } Die T. M. akzeptiert die Eingabe, wenn sie in einem Zustand aus F hlt. a

1.2 Churchsche TheseDas was von einer Turing-Maschine berechnet werden kann, entspricht dem, was man intuitiv unter algorith misch berechenbar versteht. Beispiel: Addition zweier Binrzahlen a Eingabe: bin(x)#bin(y)$ (bin(x) := Binrdarstellung einer positiven Zahl, f hrende Nullen sind egal) a u Ausgabe: bin(x + y)#bin(y)$ Programmiertechniken: Verwenden mehrerer Spuren: Jedes Feld des Bandes wird als aus mehreren Unterfeldern bestehend betrachtet. X 1 X 0 X 1

0

1

formal: = 1 2 3 . . . k , i . . . Bandalphabet f r die i-te Spur. u z. B.: { , x} {0, 1, B, . . .} Speichern von Variablen mit endlichen Wertebereich als Teil des Zustandes. formal: Q = Q0 V , V . . . Wertebereich der Variablen. 1. Wandere nach rechts zur 1. unmarkierten Zier a. s := a (merken) Markiere diese Zier auf dem Band. 2. Wandere nach links zur 1. unmarkierten Zier b von x Ersetze b durch b + s + u, u := Ubertrag. (Markiere diese Zier) 3. Gehe zu 1 solange noch Ziern ubrig sind. 4. Lsche alle Markierungen o s qu , Zustand (Programmzeile) q mit Werten s, u der Variablen, Haltezustand: h s {0, 1} u {0, 1} Eingabealphabet: = {0, 1, #, $} Bandalphabet: = {B, 0, 1}

6

1.3. REGISTERMASCHINEN

0 qu 0 ru s0 u ti u ui 0 u0 0 u1 , u0 0 1 u1 1 0 vu 0 wu 0 xu 0 y0 0 y1 z p

0 0 qu , 0, + 0 ru , 0, + t0 , u 0, t0 , u 0, 0 q0 , + 0, 0 q0 , + 1, 0 q1 , + 0, 0 vu , 0, + 0 ru , 0, +

1 0 q0 , 1, + 0 ru , 1, + t1 , u 1, t1 , u 1, 0 q0 , + 1, 0 q0 , + 0, 0 q1 , + 1, 0 vu , 1, + 0 ru , 1, +

0 0 qu , + 0, s0 , u 0, ui , 0 0,

1 0 qu , + 1, s0 , u 1, ui , 0 1,

# 0 ru , #, + u0 , #, u ui , #, u

$ s0 , $, u

B

Schritt 1

0 vu , + 0, x0 , u 0, 0 y0 , 0, 0 y1 , 0,

0 vu , + 1, x0 , u 1, 0 y0 , 1, 0 y1 , 1,

0 wu , #, + 0 yu , #,

0 v0 , + 0, 0 v0 , 1.+ 1 v0 , 0.+

2

3 z, B, + z, 1, +

z, 0, + p, 0, p, 1,

z, 1, +

z, #, + p, #,

p, $, h, B, +

4

Unterprogrammtechnik

1.3 Registermaschinen

Simulation eines RAM-Speichers auf einer TM: ##x1 #y1 ##x2 #y2 ##...###[Programmcode] xi ... Adresse, yi ... Inhalt auf Adresse xi

1.4 Formale Sprachen . . . endliches Alphabet (Vorrat an Zeichen) . . . alle Wrter endlicher Lnge l, die man mit den Buchstaben aus bilden kann. o a w = a 1 a 2 a 3 . . . al , a i l = |w| Lnge des Wortes l 0 a ist das leere Wort || = 0 Denition: Eine formale Sprache L ist eine Teilmenge von Beispiel: L = {0n 1n |n 1} L= L = {}

7

KAPITEL 1. TURING-MASCHINE, BERECHENBARKEIT, ENTSCHEIDBARKEIT

1.4.1 Multiplikation von Wrtern ou v = uv (Buchstaben von u und v nebeneinander geschrieben)

Rechenregeln: 1. u (v w) = (u v) w 2. u : u = u = u Beispiel: u = abra v = kadabra u v = abrakadabra v = kad u

1.4.2 Multiplikation von SprachenL1 L2 = {uv|u L1 , v L2 } Rechenregeln: 1. L1 (L2 L3 ) = (L1 L2 ) L3 2. L = u = u 3. L {} = L Beispiel: L1 = {a,ab} L2 = {a,ba} L1 L2 = {aa,aba,abba}

1.4.3 Potenz von Wrtern und von Sprachen oui = u u u . . . uimal

u =u u0 = Li = L L . . . L = {u1 u2 . . . ui |u1 L, u2 L, . . . , ui L}imal

1

L1 = L

L0 = {}

L := L0 L1 L2 . . . = Menge der Wrter, die man aus bel. vielen ( 0) Bestandteilen L zusammen multiplizieren kann. o

1.5 Konguration (Momentaufnahme einer Turingmaschine)

Denition: Eine Konguration einer Turingmaschine ist ein Wort aus Q , das nicht mit B anfngt oder a aufhrt (ein Wort Q \ (B( Q) ( Q) B)). o Das Wort xqy mit x, y und q Q beschreibt den Zustand der Turingmaschine wo xy auf dem Band steht und der Kopf uber dem ersten Zeichen von y steht F r zwei Kongurationen k1 und k2 schreibt man u k1 k2 wenn die Turingmaschine in einem Schrittvon k1 nach k2 ubergeht. (Nachfolgerrelation zwischen Kongurationen.) k1 k2 bedeutet, dass auf k1 nach beliebig vielen Schritten ( 0) die Konguration k2 folgt.

8

1.6. TURINGMASCHINE MIT MEHREREN BANDERN

1.6 Turingmaschine mit mehreren Bndern a Eine Turingmaschine mit k Bndern hat k Schreib-/Lesekpfe. a o Das erste Band ist das Eingabeband. Die ubrigen Bnder sind zu Beginn leer. a Die Ubergangsfunktion : Q k Q k {1, 0, +1}k Beispiel: binre Addition von 2 n-Bit Zahlen geht mit 2 Bndern in O(n) Schritten ( konst. (n)) (mit einem a a Band in O(n2 ) Schritten).

Zuerst wird bin(y) auf das 2. Band kopiert, und dann bitweise von rechts nach links addiert. Satz: Eine k-Band-Turingmaschine die nach T Schritten hlt kann durch eine 1-Band-Turinmaschine simuliert a werden, die in hchstens const.T 2 Schritten hlt. o a Beweis: Simulation der k Bnder auf k Spuren eines einzigen Bandes. Die Kopfposition der Bnder ist af der a a jeweiligen Spur vermerkt.

1 = ( {X, })k {L} L markiert die Position links neben der linkesten Position die die simulierte Turingmaschine auf allen Bndern besucht hat. In einer konstanten Anzahl von Fahrten uber das gesamte Band (ausgehend a von L) kann die Turingmaschine die Bandnderungen auf den k Bndern simulieren. a a Die simulierte Maschine kann in T Schritten hchstens T Schritte nach links und rechts gehen. o Die Lnge des uberstrichenen Bandinhalts in jedem Simulationsschritt ist 2T + 1 a Ein Simulationsschritt geht in const.T Schritten T -mal T 2 2 n-Bit Binrzahlen knnen auf einem k-Band-TM in n log n const.log n Schritten multipliziert a o werden (Martin Fhrer 2008, bestehender Rekord vorher const.nlog n log log n (Arnold Sch nu o hage 1970)) log n := min{i| log2 log2 log2 . . . log2 n 1}-mal

22

. . .

2

i-mal

Die Umkehrfunktion von log ist 2

=2i

Denition: Die von einer Turingmaschine M mit einer Teilmenge F Q von akzeptierenden Zustnden akzepa tierte Sprache L(M ) ist die Menge der Wrtern bei deren Eingabe die Maschine einen akzeptierenden o Zustand erreicht (und dann anhlt). a L(M ) = x q0 x yqz, mit y, z und q F

M hlt in q F a x L(M ) Eingabe x M hlt in q F a / x L(M ) / M terminiert nicht x L(M ) / 9

KAPITEL 1. TURING-MASCHINE, BERECHENBARKEIT, ENTSCHEIDBARKEIT

Denition: Eine Sprache L heit rekursiv aufzhlbar (semi-entscheidbar, engl. recursiv enumerable) wenn es a eine Turingmaschine M mit L = L(M ) gibt. L heit entscheidbar (rekursiv), wenn es eine Turingmaschine M gibt, die auf allen Eingaben hlt und a mit L = L(M ) Unterscheide: abzhlbare (denumerable) Mengen: endlich oder gleichmchtig mit N a a Turingmaschine die etwas berechnet: x steht auf dem Eingabeband. Wenn die Maschine hlt, steht ein Wort y auf dem Ausgabeband (bzw. auf dem einzigen Band). a Die von der Turingmaschine berechnete (partielle) Funktion fM ist deniert auf der Menge A = {x |M hlt bei Eingabe um x} a fM : A mit A Eine partielle Funktion f : A mit A oder eine totale Funktion f : heit berechenbar, wenn es eine Turingmasc...