Deterministischer endlicher Automat A ohne Ausgabe (deterministischer endlicher Akzeptor)

Ähnliche Dokumente
Informatik III - WS07/08

Rekursiv aufzählbare Sprachen

Theoretische Grundlagen der Informatik

Die mathematische Seite

8. Turingmaschinen und kontextsensitive Sprachen

Formale Sprachen und endliche Automaten

Theorie der Informatik

Kapitel 7: Kellerautomaten und kontextfreie Sprachen

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.

LOOP-Programme: Syntaktische Komponenten

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

Ogden s Lemma: Der Beweis (1/5)

Definition 98 Eine Turingmaschine heißt linear beschränkt (kurz: LBA), falls für alle q Q gilt:

Berechenbarkeit. Script, Kapitel 2

Automaten und formale Sprachen Klausurvorbereitung

Turingmaschinen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Übersicht. 3 3 Kontextfreie Sprachen

1.5 Turing-Berechenbarkeit

Sprachen und Grammatiken

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Theoretische Informatik Testvorbereitung Moritz Resl

Kontextfreie Sprachen

Kontextsensitive und Typ 0 Sprachen Slide 2. Die Turingmaschine

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Kontextfreie Sprachen

1.5 Turing-Berechenbarkeit

10 Kellerautomaten. Kellerautomaten

Kurz-Skript zur Theoretischen Informatik I

11.1 Kontextsensitive und allgemeine Grammatiken

Berechenbarkeit. Script, Kapitel 2

Das Halteproblem für Turingmaschinen

Formale Grundlagen der Wirtschaftsinformatik

a b b a Vom DFA zur TM Formale Grundlagen der Informatik 1 Kapitel 9 Turing-Maschinen Der Lese-/Schreibkopf Bedeutung der TM

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Grundlagen der Theoretischen Informatik

ADS-EI 5.2 Struktur einer Turing-Maschine 120/451 ľernst W. Mayr

Nachklausur zur Vorlesung

Einführung in die Theoretische Informatik

Turing-Maschine. Berechenbarkeit und Komplexität Turing-Maschinen. Turing-Maschine. Beispiel

Kapitel 2: Formale Sprachen Gliederung

Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen.

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

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

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Grundlagen Theoretischer Informatik 2 WiSe 2011/12 in Trier. Henning Fernau Universität Trier

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Typ-0-Sprachen und Turingmaschinen

2.4 Kontextsensitive und Typ 0-Sprachen

Einfache Turing Maschine. Formale Spezifikation einer einfachen Turing Maschine. M = (Σ,Γ,#,Q,s,F, ) Σ

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014

5.2 Endliche Automaten

Sprachen und Automaten. Tino Hempel

Informatik III. Arne Vater Wintersemester 2006/ Vorlesung

Aufgabentypen: Spickerblatt: kontextfrei (Typ 2): zusätzlich: u ist eine!"# v 1

Wiederholung. Organisatorisches. VL-11: LOOP und WHILE Programme I. (Berechenbarkeit und Komplexität, WS 2017) Gerhard Woeginger

ALP I Turing-Maschine

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19

Theoretische Informatik 1

Klausur zur Vorlesung Informatik III Wintersemester 2007/2008

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER

kontextfreie Sprachen: Normalformen

Einführung in die Computerlinguistik

6.4 Entscheidbarkeit. nein sein müssen, ist klar. THEO 6.4 Entscheidbarkeit 205/307 c Ernst W. Mayr

{a i b i i 0} FORMALE SYSTEME. Kellerautomaten. (Nicht)Abschlusseigenschaften für Typ 2. Ein Berechnungsmodell für Typ-2-Sprachen

Automaten und formale Sprachen Notizen zu den Folien

LOOP-Programme: Syntaktische Komponenten

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19

Proseminar TI: Kellerautomaten. 1 Motivation. 2 Einführung. Vortrag: Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer.

Nichtdeterministischer Kellerautomat

Komplexitätstheorie WiSe 2011/12 in Trier. Henning Fernau Universität Trier

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Turing-Maschinen: Ein abstrakes Maschinenmodell

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Spracherkennung (Syntaxanalyse)

Kapitel 3: Grundlegende Ergebnisse aus der Komplexitätstheorie Gliederung

Abschluss gegen Substitution. Wiederholung. Beispiel. Abschluss gegen Substitution

2.2 Reguläre Sprachen Endliche Automaten

Definition 78 Ein NPDA = PDA (= Nichtdeterministischer Pushdown-Automat) besteht aus:

4 Kontextsensitive und Typ 0 Sprachen

Grundlagen der Theoretischen Informatik

Theoretische Informatik. Berechenbarkeit

Akzeptierende Turing-Maschine

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Tutorium 23 Grundbegriffe der Informatik (10. Sitzung)

Grundlagen der Theoretischen Informatik

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Transkript:

Deterministischer endlicher Automat A ohne Ausgabe (deterministischer endlicher Akzeptor) wobei A = (E, Z, f, z 0, F ) E Z f : Z E Z z 0 Z Eingabealphabet Zustandsmenge (Zustands )Überführungsfunktion Startzustand F Z Menge der Endzustände E, Z: endliche Mengen Akzeptanz einer Zeichenkette w E durch A: w wird genau dann akzeptiert, wenn der Automat unmittelbar vor der Verarbeitung von w im Startzustand z 0 ist und sich unmittelbar nach dem Verarbeiten von w in einen Endzustand befindet. (Es spielt dabei keine Rolle, ob der Automat zwischenzeitlich schon ein oder mehrmals in einem Endzustand war.) Nichtdeterministischer endlicher Automat A ohne Ausgabe (nichtdeterministischer endlicher Akzeptor) wobei A = (E, Z, f, Z 0, F ) E Z Eingabealphabet Zustandsmenge f : Z E PZ (Zustands )Überführungsfunktion (PZ: Potenzmenge von Z) Z 0 Z Menge der Startzustände F Z Menge der Endzustände E, Z: endliche Mengen Akzeptanz einer Zeichenkette w E durch A: Der Automat befinde sich anfangs in irgendeinem Startzustand z 0 Z 0. Genau dann, wenn es möglich ist, dass der Automat sich unmittelbar nach Verarbeitung von w in einem Endzustand befindet, akzeptiert er w. 81

Nichtdeterministischer endlicher Akzeptor A mit Epsilon Übergängen A = (E, Z, f, Z 0, F ) wobei E Z Eingabealphabet Zustandsmenge f : Z (E {ε}) PZ (Zustands )Überführungsfunktion Z 0 Z F Z Menge der Startzustände Menge der Endzustände E, Z: endliche Mengen Interpretation der Epsilon Übergänge: Falls f(z, ε) = Z 1 ist für z Z, Z 1 Z, so soll der Automat, falls er sich in einem bestimmten Takt im Zustand z befindet, spontan in irgendeinen Zustand z Z 1 übergehen können, ohne dass die Position des Lesekopfes auf dem Eingabeband geändert wird (es wird in einer solchen Situation kein Eingabesymbol gelesen bzw. verarbeitet). Es gilt für jede Sprache L E : es gibt einen deterministischen endlichen Akzeptor mit E als Eingabealphabet, der L akzeptiert es gibt einen nichtdeterministischen endlichen Akzeptor mit E als Eingabealphabet, der L akzeptiert es gibt einen nichtdeterministischen endlichen Akzeptor mit Epsilon Übergängen und mit E als Eingabealphabet, der L akzeptiert 82

Reguläre Ausdrücke (regular expressions) Die Menge der regulären Ausdrücke zur Charakterisierung der regulären Sprachen über einem endlichen Alphabet E ist rekursiv wie folgt definiert: (a) Rekursionsanfang, ε und jedes a E seien reguläre Ausdrücke. (b) Rekursionsschritt Falls α und β reguläre Ausdrücke sind, so seien auch (α β), (α β) und (α ) reguläre Ausdrücke. (c) Minimalbedingung Nur aufgrund von (a) und (b) sollen reguläre Ausdrücke zur Charakterisierung regulärer Sprachen über E erhalten werden können. Vorrangregeln, auf deren Grundlage Klammern eingespart werden können: Von den drei Operatoren soll am stärksten trennen, dann, dann, und ein äußeres Klammernpaar darf weggelassen werden. Außerdem wird der Operator auch manchmal als Punkt notiert oder ganz weggelassen. Beispiel: Der reguläre Ausdruck (a ((b (c )) d)) über dem Alphabet {a, b, c, d} kann somit auch folgendermaßen notiert werden: a bc d Parallel zur rekursiven Definition der regulären Ausdrücke wird, ebenfalls rekursiv, jedem solchen Ausdruck α eine Sprache L(α) über dem Alphabet E zugeordnet: (a) Rekursionsanfang Es seien L( ) := (die leere Sprache), L(ε) := {ε} (Einermenge leeres Wort) und für jedes a E sei L(a) := {a} (Einermenge von a, wobei a hier als Zeichenkette der Länge 1 interpretiert wird). (b) Rekursionsschritt Falls α und β reguläre Ausdrücke sind, so sei L(α β) := L(α) L(β) (Vereinigung von L(α)und L(β)), L(αβ) := L(α)L(β) (Verkettung bzw. Produkt der Sprachen L(α) und L(β)), L(α ) := (L(α)) (Menge aller endlichen Verkettungen von Zeichenketten aus L(α); Sternoperation, KLEENE sche Hülle). 83

Reguläre Ausdrücke in UNIX Notation Die UNIX Kommandos grep, fgrep, egrep (grep: globally search for regular expression and print), awk (awk: Aho/Weinberger/Kernighan) und lex benutzen reguläre Ausdrücke als Argumente, um Textzeilen in Dateien nach Zeichenketten zu durchsuchen, die bestimmte Muster haben (grep, fgrep, egrep), um darüberhinausgehend Textdateien zu formatieren und zu transformieren (awk) und um lexikalische Analysen von Programmtexten durchzuführen (lex). Dabei gilt für Textsuchmuster zunächst die Regel: Kein Suchmuster (d.h. regulärer Ausdruck) wirkt über eine Zeile hinaus. Beispiele: grep ^[0-9][0-9]*$ datei.txt Es werden alle Zeilen von datei.txt ausgegeben, die nur Dezimalziffern (mindestens eine) enthalten. Dabei kennzeichnen den Zeilenanfang und $ das Zeilenende. grep ^[ss] datei.txt Es werden alle Zeilen von datei.txt ausgegeben, die mit s oder mit S beginnen. grep a.c datei.txt Es werden alle Zeilen von datei.txt ausgegeben, die eine Teilzeichenkette der Länge drei haben mit erstem Zeichen a, beliebigem zweiten Zeichen und drittem Zeichen c. Der Punkt hat also eine wild card Funktion. egrep ab?c datei.txt Es werden alle Zeilen von datei.txt ausgegeben, die eine Teilzeichenkette der Gestalt ac oder abc enthalten. Das Fragezeichen stellt also das Vorkommen von b in Frage. egrep [0-9]+\.[0-9]* \.[0-9]+ datei.txt Es werden alle Zeilen von datei.txt ausgegeben, die eine dezimale Gleitpunktzahl x.y enthalten, wobei x aus mindestens einer Ziffer besteht und y leer sein kann, oder x ist leer und y besteht aus mindestens einer Ziffer. 84

Chomsky Hierarchie von Grammatiken (Noam Chomsky, *1928) Ausgangspunkt ist der Begriff der Grammatik G = (T, N, P, S) laut Folie 47. Definition: 1. Jede Grammatik ist vom Typ 0. 2. Eine Grammatik ist genau dann vom Typ 1 oder kontextsensitiv, wenn für alle Regeln u v aus P gilt: length(u) length(v) 3. Eine Grammatik ist genau dann vom Typ 2 oder kontextfrei, falls sie vom Typ 1 ist und zusätzlich für alle Regeln u v aus P gilt: u ist ein Metasymbol 4. Eine Grammatik ist genau dann vom Typ 3 oder regulär, falls sie vom Typ 2 ist und zusätzlich für alle Regeln u v aus P gilt: v = ε oder v ist ein einzelnes Terminalsymbol oder v ist ein Terminalsymbol gefolgt von einem Metasymbol. Eine solche Grammatik heißt auch rechtslinear. Eine Sprache L über dem Alphabet T, d.h. L T, heiße genau dann vom Typ 0 bzw. 1 bzw. 2 bzw. 3, falls es eine Typ 0 bzw. Typ 1 bzw. Typ 2 bzw. Typ 3 Grammatik G gibt, so dass L = L(G) ist. kontextsensitiv: Es sind Regeln der Gestalt u 1 Au 2 u 1 xu 2 mit A N erlaubt, und eine solche Regel besagt, dass A zwischen u 1 und u 2, also im Kontext von u 1 und u 2, durch x ersetzt werden darf. Bemerkungen: Bei Typ 1 Grammatiken soll bei Bedarf die Ableitungsregel S ε zugelassen sein, dann darf S aber nicht auf der rechten Seite einer Ableitungsregel vorkommen. Bei kontextfreien Grammatiken darf man beliebig Ableitungsregeln der Gestalt A ε mit A N verwenden, also auch S ε für das Startsymbol S, falls man ε L(G) haben möchte. 85

Pumping Lemma Zunächst kann man beweisen, dass für jede Sprache L E gilt: es gibt einen (deterministischen oder nichtdeterministischen) endlichen Akzeptor mit E als Eingabealphabet, der L akzeptiert es gibt einen regulären Ausdruck α über dem Alphabet E mit L = L(α) es gibt eine reguläre Grammatik G mit E als Terminalalphabet, so dass L = L(G) ist Um zeigen zu können, dass eine bestimmte Sprache nicht regulär ist, ist oft das Pumping Lemma hilfreich. Pumping Lemma: Wenn L eine reguläre Sprache ist, so gibt es eine natürliche Zahl n, so dass sich alle Wörter w L mit length(w) n zerlegen lassen in w = w 1 w 2 w 3, wobei length(w 2 ) 1, length(w 1 w 2 ) n und w 1 w i 2w 3 L gilt für alle i N. Mit Hilfe des Pumping Lemmas kann beispielsweise bewiesen werden, dass jede der drei folgenden Sprachen L 1, L 2 und L 3 nicht regulär ist: L 1 := {a n b n n 1} L 2 := {0 n n ist eine Quadratzahl} L 3 := {0 p p ist eine Primzahl} 86

Deterministischer endlicher Automat A mit Ausgabe (Mealy Automat) wobei A = (E, A, Z, f, g, z 0 ) E A Z f : Z E Z g : Z E A Eingabealphabet Ausgabealphabet Zustandsmenge Überführungsfunktion Ausgabefunktion z 0 Z E, A, Z: endliche Mengen Startzustand 87

Nichtdeterministischer endlicher Kellerautomat A (nondeterministic finite pushdown automaton) A = (E, Z, K, f, z 0, k 0, F ) wobei E Z K Eingabealphabet Zustandsmenge Menge der Kellersymbole f : Z (E {ε}) K P(Z K ) Überführungsfunktion z 0 Z k 0 K: F Z E, Z, K: endliche Mengen Startzustand Kellerstartsymbol Menge der Endzustände Arbeitsweise: Anfangs befindet sich der Automat im Startzustand z 0, im Keller befindet sich nur das Kellerstartsymbol k 0 und das Eingabewort befindet sich auf dem Eingabeband, wobei der Lesekopf unter dem ersten Symbol des Eingabewortes steht, falls dieses nicht leer ist. Der Automat arbeitet wieder getaktet (wie alle Automaten), und sein Verhalten in den folgenden Takten wird durch die Überführungsfunktion f bestimmt: Befindet sich der Automat gerade im Zustand z, ist k das oberste Kellersymbol und ist a das aktuelle Eingabesymbol, so wird ein Paar (z, w) (f(z, ε, k) f(z, a, k)) zufällig ausgewählt, und im Folgetakt befindet sich der Automat im Zustand z, das vorher oberste Kellersymbol ist durch die Zeichenkette w von Kellersymbolen ersetzt worden (so dass jetzt das erste Zeichen von w oberstes Kellersymbol ist). Dabei ist der Lesekopf des Eingabebandes nur dann um einen Schritt nach rechts gerückt worden, wenn (z, w) f(z, a, k) galt. Falls w die leere Zeichenkette war, so wurde also bzgl. des Kellers eine pop Operation durchgeführt. Ist ein (z, w) f(z, ε, k) gewählt worden, so dass also der Lesekopf des Eingabewortes sich in diesem Takt nicht weiter bewegt, so spricht man wieder von einem Epsilon Übergang. 88

Akzeptanz von Sprachen durch nichtdeterministische endliche Kellerautomaten Es gibt hier zwei Arten der Akzeptanz: Akzeptanz durch Endzustand: Ein Eingabewort wird hier genau dan akzeptiert, wenn sich der Automat unmittelbar nach Verarbeitung des Wortes in einem Endzustand befindet. Der Inhalt des Stacks zu diesem Zeitpunkt ist völlig irrelevant, so dass man durch Hinzufügen geeigneter Epsilon Übergänge auch erreichen könnte, dass sich im Keller nur noch das Kellerstartsymbol befindet oder dass der Keller leer ist. Akzeptanz durch leeren Keller: Ein Eingabewort wird hier genau dan akzeptiert, wenn der Stack des Automaten unmittelbar nach Verarbeitung des Wortes leer ist (zwischenzeitlich darf er natürlich nicht leer sein, weil dann ein Weiterarbeiten des Automaten nicht möglich wäre). Der Zustand des Automaten unmittelbar nach Verarbeitung des Wortes ist dabei irrelevant. Es gilt für eine beliebige Sprache L E : es gibt einen nichtdeterministischen Kellerautomaten (E, Z, K, f, z 0, k 0, F ) der L per Akzeptanz durch Endzustand akzeptiert es gibt einen nichtdeterministischen Kellerautomaten (E, Z, K, f, z 0, k 0, F ) der L per Akzeptanz durch leeren Keller akzeptiert Genau dann, wenn L auf eine dieser Arten akzeptiert wird, ist L eine kontextfreie Sprache über E. 89

Deterministischer endlicher Kellerautomat A Ein deterministischer Kellerautomat A = (E, Z, K, f, z 0, k 0, F ) ist ein spezieller nichtdeterministischer Kellerautomat, für den zusätzlich gilt: für alle (z, a, k) Z (E {ε}) K ist card(f(z, a, k)) 1 wenn f(z, a, k) ist für ein a E, so muss f(z, ε, k) = sein Die Sprache L E eines solchen Kellerautomaten bestehe aus genau denjenigen Zeichenketten, die von dem Automaten durch Akzeptanz durch Endzustand akzeptiert werden. Jede solche Sprache heiße deterministisch kontextfrei. Es gilt für jedes Alphabet E: Jede reguläre Sprache über E ist auch eine deterministisch kontextfreie Sprache über E. Jede deterministisch kontextfreie Sprache über E ist auch eine kontextfreie Sprache über E. 90

Deterministische Turing Maschine T Alan Turing (1911-1954) T = (Z, E, Γ, f, z 0,, F ) wobei Z E Γ Zustandsmenge Eingabealphabet Menge der Bandsymbole mit E Γ f : Z Γ Z Γ {L, R, N} Überführungsfunktion z 0 Z Startzustand Blank bzw. Trennsymbol mit Γ \ E F Z Z, Γ: endliche Mengen Menge der Endzustände Falls beispielsweise f(z, a) = (z, b, L) ist und die Turing Maschine sich im Takt t im Zustand z befindet sowie der Lese/Schreib Kopf auf dem Bandsymbol a steht, so geht sie in den Zustand z über, überschreibt a mit b und der Lese/Schreib Kopf rückt um eine Position nach links. Das ist dann die Ausgangssituation im Takt t+1. Akzeptanz eines Wortes w E durch T : Ausgangssituation: Die Turing Maschine befindet sich im Startzustand z 0, w befindet sich auf dem Band, beidseitig durch je mindestens ein Blank begrenzt, und der L/S Kopf befindet sich unmittelbar unter dem ersten Zeichen von w (oder, äquivalent dazu, unmittelbar links von w). Wie durch die Funktion f gegeben, nimmt die Maschine getaktet ihre Arbeit auf. Genau dann, wenn sie dabei (nach endlich vielen Takten) in einen Endzustand kommt, wird w akzeptiert, und die Maschine beendet ihre Arbeit. (Dabei muss w nicht unbedingt vollständig inspiziert worden sein.) Es gilt dann für jedes Alphabet E und jede Sprache L E : L ist vom Typ 0 es gibt eine (deterministische) Turingmaschine mit dem Eingabealphabet E, die genau die Zeichenketten aus L akzeptiert. (Analoges gilt für nichtdeterministische Turing Maschinen.) 91

Turing Berechenbarkeit Turing Maschinen können nicht nur als Akzeptoren benutzt werden, sondern sie sind auch einsetzbar zur Berechnung von Zeichenketten. Konfiguration bzw. Momentaufnahme einer deterministische Turing Maschine T : (γ 1, z, γ 2 ) Γ Z Γ wobei z der aktuelle Zustand ist, der L/S Kopf sich unter dem ersten Symbol von γ 2 befindet (bzw. unmittelbar rechts von γ 1, falls γ 2 = ε), γ 2 sich unmittelbar rechts an γ 1 anschließt und links von γ 1 und rechts von γ 2 auf dem Band nur Blank Symbole stehen. Anfangskonfiguration bzw. Startkonfiguration von T für ein Eingabewort w := e 1 e n E : (ε, z 0, w) bzw. (ε, z 0, e 1 e n ) Außer w stehen auf dem Band nur Blanks. Übergangsrelation in der Menge der Konfigurationen: es sei genau dann (α, z, β) (α, z, β ), wenn die Konfiguration (α, z, β) durch genau einen Rechenschritt (genau eine Anwendung von f) in die Konfiguration (α, z, β ) übergeführt wird erweiterte Übergangsrelation in der Menge der Konfigurationen: es sei genau dann (α, z, β) (α, z, β ), wenn es ein n N und Konfigurationen (α i, ζ i, β i ) mit 0 i n und (α, z, β) = (α 0, ζ 0, β 0 ), (α n, ζ n, β n ) = (α, z, β ) gibt, so dass gilt (α 0, ζ 0, β 0 ) (α 1, ζ 1, β 1 ) (α n, ζ n, β n ) Eine Berechnung mit dem Eingabewort w E ist eine Folge (ε, z 0, w) (α 1, z 1, β 1 ) (α 2, z 2, β 2 ) von Konfigurationen mit folgender Eigenschaft: Die Berechnung wird beim ersten Erreichen eines Endzustandes gestoppt; das Ergebnis steht dann auf dem Eingabeband ab der Position des L/S Kopfes nach rechts bis unmittelbar vor dem ersten Blank. Falls nie ein Endzustand erreicht wird, so wird kein Ergebnis berechnet (Realisierung einer partiellen Funktion f). 92

Turing Programm zur Addition zweier durch Strichfolgen gegebener positiver natürlicher Zahlen Ausgangsposition ( Standardlage ) des L/S Kopfes: unter dem ersten Zeichen des ersten Operanden (entspricht dem Startzustand z o ) Die zu verarbeitenden Zahlen seien durch genau ein Feld mit dem Inhalt # (# Γ \ E) voneinander und durch je mindestens ein Feld mit dem Inhalt von ihrer Umgebung getrennt. Endposition des L/S Kopfes: unter dem ersten Zeichen des Ergebnisses while (<Arbeitsfeld> = ) R; write( ) ; while (<Arbeitsfeld> = ) L; R; write( ) ; R; These von Church (1936) (Alonzo Church, 1903 1995) Genau die im intuitiven Sinne berechenbaren zahlentheoretischen Funktionen (bzw. Wortfunktionen) sind die Turing berechenbaren zahlentheoretischen Funktionen (bzw. Wortfunktionen). ( Turing berechenbar wird mit algorithmisch berechenbar gleichgesetzt) Mit Hilfe einer Gödelisierung kann jeder Wortfunktion eineindeutig und effektiv eine zahlentheoretische Funktion zugeordnet werden. Es sind dann entweder beide berechenbar oder beide nicht berechenbar. 93

Loop und While Berechenbarkeit Loop Programm: Es seien x 0, x 1, Variablen für natürliche Zahlen und c eine natürlichzahlige Konstante. Dann seien loop Programme wie folgt rekursiv definiert: (a) jede Wertzuweisung x i := x j + c bzw. x i := x j c sei ein loop Programm (i, j N) (b) falls P, P 1, P 2 bereits loop Programme sind, so seien auch und P 1 ; P 2 loop x i do P end loop Programme (i N) (c) Nur aufgrund von (a) und (b) sollen loop Programme erhalten werden können. Loop Berechenbarkeit: Eine Funktion f : N k N heiße genau dann loop berechenbar, wenn es ein loop Programm P gibt, das, gestartet mit den Werten n 1,, n k in den Variablen x 1,, x k (und 0 in den anderen Variablen), nach endlich vielen Schritten stoppt mit dem Wert f(n 1,, n k ) in der Variablen x 0. Dabei habe n m für den Fall m > n den Wert 0 und werde sonst durch die übliche Subtraktion interpretiert, während in loop x i do P end das Programm P genau so oft ausgeführt werden möge, wie es der Wert von x i beim Eintritt in diese Schleife angibt (unabhängig davon, ob der Wert von x i innerhalb der Schleife geändert wird oder nicht). 94

Definitionen: Für beliebige i, j, r N werde vereinbart x i := x j bedeute x i := x j + 0 x i := c bedeute x i := x j + c für eine sonst nicht benutzte Variable x j (die also den Wert 0 hat) if x i = 0 then P end bedeute x j := 1; loop x i do x j := 0 end; loop x j do P end wobei i j sei x r := x i + x j bedeute x r := x i ; loop x j do x r := x r + 1 end wobei r j sei x r := x i x j bedeute x r := 0; loop x j do x r := x r + x i end wobei r i und r j sei Es existieren loop Programme für die Berechnungen der Werte weiterer bekannter zahlentheoretischer Funktionen wie div, mod, ggt, kgv, min, max, Potenz mit natürlichzahliger Basis und natürlichzahligem Exponenten, Betrag der Differenz, Fakultätsfunktion, Anzahl der Primzahlen kleinergleich einer vorgegebenen Zahl, i te Primzahl für ein vorgegebenes i N usw. Nicht durch ein loop Programm lässt sich die Ackermann Funktion ack (Wilhelm Ackermann, 1896 1962) simulieren, wobei ack : N N N wie folgt rekursiv definiert ist: ack(m, n) := n + 1, falls m = 0 ack(m 1, 1), falls m > 0 und n = 0 ack(m 1, ack(m, n 1)) sonst (Beispielsweise ist ack(2, 2) = 7, ack(3, 6) = 509 und ack(4, 1) = 65533. Es hat ack(4, 2) schon mehr als 19000 Dezimalstellen.) Die übrigen Funktionen von Folie 42 sind loop berechenbar. 95

While Programm: (a) jedes loop Programm sei auch ein while Programm (b) falls P ein while Programme ist, so sei auch while x i 0 do P end ein while Programm (i N) (c) Nur aufgrund von (a) und (b) sollen while Programme erhalten werden können. Nachträglich könnte die loop Schleife wieder eliminiert werden, denn loop x i do P end kann simuliert werden durch x j := x i ; while x j 0 do x j := x j 1; P end mit i j, x j kommt nicht in P vor While Berechenbarkeit: Eine partielle Funktion f : N k N heiße genau dann while berechenbar, wenn es ein while Programm P gibt, das, gestartet mit den Werten n 1,, n k in den Variablen x 1,, x k (und 0 in den anderen Variablen), nach endlich vielen Schritten stoppt mit dem Wert f(n 1,, n k ) in der Variablen x 0, sofern f(n 1,, n k ) definiert ist; sonst soll P nicht stoppen. Damit ist jede loop berechenbare Funktion auch while berechenbar. Es gibt while berechenbare Funktionen, die nicht loop berechenbar sind, beispielsweise die Ackermann Funktion (s.o.). Es gilt: Eine partielle Funktion f : N k N ist genau dann while berechenbar, wenn es eine (deterministische oder nichtdeterministische) Turing Maschine gibt, die den Funktionswert f(x 1,, x k ) berechnet, falls er existiert, und die sonst bei der Eingabe von (x 1,, x k ) nicht anhält. 96