Theoretische Informatik: Grundlagen mit Übungsaufgaben und Lösungen [Reprint 2015 ed.] 9783486593884, 9783486258080

Das Lehrbuch enthält die wesentlichen Grundzüge der Theoretischen Informatik. Es gibt eine verständliche Einführung in d

180 36 6MB

German Pages 239 [240] Year 2001

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

Theoretische Informatik: Grundlagen mit Übungsaufgaben und Lösungen [Reprint 2015 ed.]
 9783486593884, 9783486258080

Table of contents :
Vorwort
1 Einleitung – Wesen der Theoretischen Informatik
1.1 Aufgaben
2 Berechenbarkeitstheorie
2.1 Einführung zum Berechenbarkeitsbegriff
2.2 Arten von Nichtberechenbarkeit
2.3 Die Turingmaschine
2.3.1 Begriff und Arbeitsweise einer Turingmaschine
2.3.2 Modifizierte Definitionen von Turingmaschinen
2.4 Aufzählbarkeit, Entscheidbarkeit und Berechenbarkeit
2.5 Nichtdeterministische Turingmaschinen
2.6 Markow- und Post-Algorithmen
2.6.1 Vergleich: Markow- und Post-Algorithmus
2.7 Rekursive Funktionen
2.7.1 Primitiv rekursive Funktionen
2.7.2 Die Ackermann-Funktion
2.7.3 µ-rekursive Funktionen
2.8 Der Hauptsatz der Algorithmentheorie
2.9 Registermaschinen
2.10 Nichtentscheidbarkeit und Nichtberechenbarkeit
2.10.1 Nichtentscheidbare Probleme und der Satz von Rice
2.10.2 Die Fleißiger-Biber-Funktion
2.11 Zur Universalität von Turingmaschinen
2.12 Theorie der rekursiven Funktionen - Einführung
2.13 Aufgaben
3 Abstrakte Automaten
3.1 Der Begriff des abstrakten Automaten und Automatenarten
3.2 Die Arbeitsweise von Mealy-Automaten
3.3 Endliche Akzeptoren und Potenzmengenkonstruktion
3.4 Reguläre Mengen und Hauptsatz von Kleene
3.4.1 Verfahren von Gluschkow
3.5 Das Pumping-Lemma für reguläre Sprachen
3.6 Der Satz von Nerode
3.7 Minimierung endlicher Automaten
3.8 Anwendungen für endliche Automaten
3.9 Deterministische und nichtdeterministische Push-Down-Automaten
3.10 Linear-beschränkte Automaten
3.11 Hierarchie der Automatentypen
3.12 Aufgaben
4 Formale Sprachen
4.1 Sprachen und Grammatiken
4.2 Grammatiken zur Erzeugung formaler Sprachen
4.3 Chomsky-Normalform kontextfreier Grammatiken, Pumping-Lemma
4.4 Chomsky-Hierarchie formaler Sprachen
4.5 Sprachklassen und Automatentypen
4.6 Abgeschlossenheitseigenschaften von Sprachklassen
4.7 Deterministisch-kontextfreie Sprachen
4.8 Wortprobleme bei Sprachklassen. Der CYK-Algorithmus
4.9 Hierarchie von Sprachfamilien und Automatentypen
4.10 Aufgaben
5 Komplexitätstheorie
5.1 Einführung und Komplexitätsschranken
5.2 Zeit- und Bandkomplexität bei Turingmaschinen
5.3 Komplexität bei Mehrband-Turingmaschinen und bei RAM’s
5.4 Die Klassen P und NP. NP-Vollständigkeit
5.5 Der Satz von Cook
5.6 NP-vollständige Probleme 3SAT und CLIQUE
5.7 Probleme jenseits von NP
5.8 Einordnung der Klassen P, NP und PSPACE in die Chomsky-Hierarchie
5.9 Aufgaben
6 Zusammenfassung und Schlussfolgerungen
7 Lösungsvorschläge
Literatur
Index

Citation preview

Theoretische Informatik Grundlagen mit Übungsaufgaben und Lösungen von Dr. rer. nat. Renate Winter Martin-Luther-Universität Halle

Oldenbourg Verlag München Wien

Für Henry und

Vincent

Die Deutsche Bibliothek - CIP-Einheitsaufnahme Winter, Renate: Theoretische Informatik : Grundlagen mit Übungsaufgaben und Lösungen / von Renate Winter. - München ; Wien : Oldenbourg, 2002 ISBN 3-486-25808-7

© 2002 Oldenbourg Wissenschaftsverlag GmbH Rosenheimer Straße 145, D-81671 München Telefon: (089) 45051-0 www.oldenbourg-verlag.de Das Werk einschließlich aller Abbildungen ist urheberrechtlich geschützt. Jede Verwertung außerhalb der Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Bearbeitung in elektronischen Systemen. Lektorat: Irmela Wedler Herstellung: Rainer Hartl Umschlagkonzeption: Kraxenberger Kommunikationshaus, München Gedruckt auf säure- und chlorfreiem Papier Gesamtherstellung: Druckhaus „Thomas Müntzer" GmbH, Bad Langensalza

Vorwort Das vorliegende Buch ist aus einem Skript zur Vorlesung Theoretische Informatik I an der Martin-Luther-Universität Halle-Wittenberg entstanden, welche ich dort seit 1993 vor Informatikstudenten und Mathematikstudenten mit Nebenfach Informatik im vierten Semester halte. Um den Inhalt des Buches ohne zusätzlichen Vorlesungsbesuch gut verstehen zu können, sind die Begriffe, Aussagen und Algorithmen ausführlich erklärt. Insbesondere werden die Beweise in exakten Einzelschritten dargelegt, damit ein gutes Verstehen garantiert ist. Zum Test und zur Vertiefung des Verständnisses ist am Ende eines jeden Kapitels eine Reihe von Übungsaufgaben angefügt, die in gleicher oder ähnlicher Weise den Studenten während ihres Vorlesungsbesuchs zur Übung vorgelegt wurden. Zur eigenen Kontrollmöglichkeit des Lesers enthält jede Übungsaufgabe eine ausführliche Lösung. Ziel des Buches ist das Kennenlernen der Grundlagen der Theoretischen Informatik, der grundsätzlichen Begriffe, Sätze, Methoden und Beweistechniken in der Theoretischen Informatik und damit ein Eindringen in die grundlegenden Konzepte dieser Wissenschaftsdisziplin. Ausgehend vom intuitiven Berechenbarkeitsbegriff wird eine klare formale Unterscheidung zwischen Berechenbarem und Nichtberechenbarem gegeben. Damit wird beweisbar, welche Aufgaben in der Praxis niemals einem Computer übertragen werden können. Hauptinhalt der Vorlesung wie auch des Buches ist der hierarchische Zusammenhang von Sprachklassen, die durch verschiedene Typen von Automaten erkannt werden einerseits und der entsprechende Zusammenhang von Sprachklassen, die durch bestimmte Grammatik-Typen erzeugbar sind andererseits. Alle aufgeführten Inklusionen bzw. Äquivalenzen bzgl. formaler Sprachen und Automatentypen (ChomskyHierarchie) werden im Einzelnen ausführlich bewiesen und an Beispielen erklärt. Einen Schwerpunkt im Hinblick auf Programmiersprachen bilden die kontextfreien Sprachen mit ihren Keller-Automaten. Mit einer Einführung in die Kompexitätstheorie basierend auf dem Turingmaschinenmodell werden berechenbare Probleme hinsichtlich ihres Laufzeit- und Speicherplatzbedarfs in effizient und nicht effizient lösbare Probleme klassifiziert.

VI

Vorwort

Das Buch wendet sich sowohl an Informatik-Studenten im Grundstudium als Einstieg in die Theoretische Informatik wie auch an alle, die in irgendeiner Form informatikinteressiert sind bzw. auf solchem Gebiet arbeiten. Ein Praktiker am Computer sollte nach Möglichkeit irgendwann einmal verstanden haben, dass nicht jede Aufgabe per Rechner zu lösen ist und dass für gute Software effiziente Algorithmen wünschenswert sind, die es wiederum nur für prinzipiell effizient lösbare Problemstellungen gibt. Ferner ist die Aneignung einer abstrakt mathematischen Denkweise mit formal logischen Schlüssen auch für Nichtmathematiker interessant und von Vorteil. Die Grundlagen der Informatik in Gestalt formaler Modelle unterliegen nicht den rasanten Veränderungen im praktisch-technischen Informatik-Bereich, sodass das vorliegende Buch auch in absehbarer Zukunft gültiges Basiswissen vermittelt. Außer einigen wenigen Grundbegriffen und Methoden der Analysis, linearen Algebra, Mengenlehre und Logik sind zum Verstehen des Inhalts keine größeren mathematischen Voraussetzungen notwendig. Nach Durcharbeiten des Buches sollte der Leser soweit mit Basiswissen und formalen Methoden der Theoretischen Informatik vertraut sein, dass ihm ein tieferer Einstieg in Spezialgebiete der Theoretischen Informatik wie zum Beispiel Komplexitätstheorie, Parallelrechnerstrukturen aus theoretischer Sicht, Endliche Automaten auf unendlichen Wörtern oder Fraktaltheorie problemlos möglich ist. Im Zusammenhang mit der Erstellung des Buches möchte ich meinen aufmerksamen, interessierten Studenten, die in den Übungen durch kritische Diskussionen zur Abrundung des Inhalts beitrugen, vielmals danken. Besonders bedanke ich mich bei Herrn Andreas Beckmann und Herrn Clemens Ladisch für die exakte Ausarbeitung der Lösungen zu den Übungsaufgaben. Mein Dank gilt Susann Kramer, Robby Schönfeld und Oliver Zlotowski für das Schreiben des MpX-Files einschliesslich der Grafiken und Tabellen. Besonders danke ich Herrn Zlotowski für die Erstellung der Druckvorlage, die Fehlerkorrektur und viele wertvolle Ideen zur Verbesserung des Buches an verschiedenen Stellen. Beim Oldenbourg Verlag und speziell der Lektorin, Frau Irmela Wedler, bedanke ich mich vielmals für die sehr gute Zusammenarbeit. Nemsdorf - Halle Renate Winter

Inhaltsverzeichnis Vorwort

V

1 1.1

Einleitung - Wesen der Theoretischen Informatik Aufgaben

1 2

2 2.1 2.2 2.3 2.3.1 2.3.2 2.4 2.5 2.6 2.6.1 2.7 2.7.1 2.7.2 2.7.3 2.8 2.9 2.10 2.10.1 2.10.2 2.11 2.12 2.13

Berechenbarkeitstheorie Einführung zum Berechenbarkeitsbegriff Arten von Nichtberechenbarkeit Die Turingmaschine Begriff und Arbeitsweise einer Turingmaschine Modifizierte Definitionen von Turingmaschinen Aufzählbarkeit, Entscheidbarkeit und Berechenbarkeit Nichtdeterministische Turingmaschinen Markow- und Post-Algorithmen Vergleich: Markow-und Post-Algorithmus Rekursive Funktionen Primitiv rekursive Funktionen Die Ackermann-Funktion μ-rekursive Funktionen Der Hauptsatz der Algorithmentheorie Registermaschinen Nichtentscheidbarkeit und Nichtberechenbarkeit Nichtentscheidbare Probleme und der Satz von Rice Die Fleißiger-Biber-Funktion Zur Universalität von Turingmaschinen Theorie der rekursiven Funktionen - Einführung Aufgaben

3 3 4 6 6 9 11 18 21 23 25 25 29 35 38 47 52 52 59 61 63 66

3 3.1 3.2 3.3 3.4 3.4.1

Abstrakte Automaten Der Begriff des abstrakten Automaten und Automatenarten Die Arbeitsweise von Mealy-Automaten Endliche Akzeptoren und Potenzmengenkonstruktion Reguläre Mengen und Hauptsatz von Kleene Verfahren von Gluschkow

71 71 72 74 80 88

VIII

INHALTSVERZEICHNIS

3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12

Das Pumping-Lemma für reguläre Sprachen 91 Der Satz von Nerode 95 Minimierung endlicher Automaten 97 Anwendungen für endliche Automaten 102 Deterministische und nichtdeterministische Push-Down-Automaten . . 103 Linear-beschränkte Automaten 107 Hierarchie der Automatentypen 108 Aufgaben 111

4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10

Formale Sprachen 117 Sprachen und Grammatiken 117 Grammatiken zur Erzeugung formaler Sprachen 121 Chomsky-Normalform kontextfreier Grammatiken, Pumping-Lemma . 122 Chomsky-Hierarchie formaler Sprachen 126 Sprachklassen und Automatentypen 132 Abgeschlossenheitseigenschaften von Sprachklassen 141 Deterministisch-kontextfreie Sprachen 144 Wortprobleme bei Sprachklassen. Der CYK-Algorithmus 149 Hierarchie von Sprachfamilien und Automatentypen 152 Aufgaben 153

5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8

157 157 158 161 163 166 169 172

5.9

Komplexitätstheorie Einführung und Komplexitätsschranken Zeit- und Bandkomplexität bei Turingmaschinen Komplexität bei Mehrband-Turingmaschinen und bei RAM's Die Klassen V und MV. AfP-Vollständigkeit Der Satz von Cook ^ - v o l l s t ä n d i g e Probleme 3SAT und CLIQUE Probleme jenseits von MV Einordnung der Klassen V, MV und VSVACÍ in die ChomskyHierarchie Aufgaben

6

Zusammenfassung und Schlussfolgerungen

177

7

Lösungsvorschläge

181

174 175

Literatur

227

Index

229

1

Einleitung - Wesen der Theoretischen Informatik

Die Theoretische Informatik beschäftigt sich mit Abstraktionen und Modellbildungen im Zusammenhang mit Problemen, die in irgendeiner Weise eine Verbindung mit Computern herstellen. Die Theoretische Informatik ist älter als andere Teilgebiete der Informatik, d.h. viele grundlegende Ergebnisse wurden schon vor dem ersten Computer entdeckt. Sie ist daher als wissenschaftliche Disziplin weiter ausgebaut als beispielsweise die Gebiete der Technischen oder Praktischen Informatik. Die Ergebnisse der Theoretischen Informatik sind schwerer zugänglich, da sie auf ein größeres und tieferes Fundament bauen. In einigen Fällen sind die Anwendungen von Ergebnissen der Theoretischen Informatik nicht so deutlich erkennbar, wie Ergebnisse aus anderen Bereichen der Informatik, sodass manche abstrakten Untersuchungen auf den ersten Blick nutzlos erscheinen und ihr Sinn aus praktischer Sicht erst später deutlich wird. So entwickelten in den 30er Jahren - lange vor dem Bau des ersten Computers - Mathematiker wie Turing, Post und Kleene ein Konzept der programmierbaren Rechenmaschinen durch die Präzisierung des Algorithmenbegriffs. Die Vorgehensweise in der Theoretischen Informatik ist ähnlich der, die in der Mathematik Anwendung findet. Definitionen, Sätze und Beweise sind die Grundbausteine. Teilgebiete der Theoretischen Informatik Im Teilgebiet Automatentheorie wird beispielsweise danach gefragt, welche einfachen mathematischen Modelle dem Computer zugrunde liegen. So ist ein nützliches Werkzeug zum Entwurf von Schaltkreisen die Theorie der endlichen Automaten. Die Berechenbarkeitstheorie untersucht, wie man das Berechenbare vom Unberechenbaren abgrenzen kann, indem man Probleme benennt, die ein Computer unter keinen Umständen lösen kann. Ziel ist es zu beweisen, dass es bestimmte für die Praxis wünschenswerte Algorithmen nicht gibt, sodass die Suche nach solchen Algorithmen eingestellt werden kann und dafür nach bestmöglichen Auswegen gesucht wird.

2

1 Einleitung - Wesen der Theoretischen Informatik

Das Teilgebiet der Formalen Sprachen untersucht den strukturellen Aufbau von Programmiersprachen. So hat zum Beispiel der Begriff der kontextfreien Grammatiken und der zugehörigen Kellerautomaten viel zur Spezifikation von Programmiersprachen und Compilern beigetragen. Die Komplexitätstheorie untersucht den rechnerischen Aufwand, der zur Lösung eines Problems benötigt wird. Unter den Gesichtspunkten des Laufzeitverhaltens und des Speicherplatzbedarfes von Algorithmen klassifiziert man Probleme in effizient lösbar oder schwer lösbar. Die Theoretische Informatik musste in Teilgebieten wie etwa der Komplexitätstheorie für Parallelrechner oder der Kryptologie die Forschung stark intensivieren, um mit der rasanten Entwicklung anderer Teilgebiete der Informatik Schritt halten zu können.

1.1

Aufgaben

Aufgabe 1.1

η Man beweise durch vollständige Induktion: Σ l'3 i=o

9 =

f n \ ( Σ 4 ) \¿=o /

Aufgabe 1.2 Gegeben seien die Mengen A = { 1 , 2 , 3 } und Β = { 2 , 7 , 8 , 9 } . Geben Sie Vereinigung, Durchschnitt, Differenz und Kreuzprodukt von A und Β an. Geben Sie die Potenzmenge von A an. Aufgabe 1.3 Beweisen Sie, dass die Menge aller geordneten Paare ganzer Zahlen abzählbar unendlich ist. Aufgabe 1.4 1. Ein Palindrom ist eine Zeichenkette über einem Alphabet Σ , die vorwärts und rückwärts gelesen gleich lautet. 2. Ein Palindrom über Σ wird wie folgt definiert: a) ε ist ein Palindrom. b) Ist α ein Symbol aus Σ, so ist es ein Palindrom. c) Ist α ein Symbol aus Σ und χ ein Palindrom, so ist αχα ein Palindrom. Beweisen Sie, dass beide Definitionen äquivalent sind. Aufgabe 1.5 Es seien Σ ein Alphabet und L i , L2, L3 Ç Σ*. Beweisen bzw. widerlegen Sie ( L i U L 2 ) • L3 = L i · La U L2 • L3 und ( L i Π L2) · L 3 = L i · L 3 Π L Unkenntnis der Gesetze, unzureichende Daten über große komplexe Syteme. Gesamtverlauf der Evolution. Es existiert noch keine einheitliche Theorie über die Entwicklung neuer Gene und neuer Arten, sowie über das Zusammenspiel zwischen Ökologie und Evolution.

2.2 Arten von Nichtberechenbarkeit

5

> Spontan veränderliche Eigenschaften des Systems. Radioaktiver Zerfall. Die getroffenen Vorhersagen betreffen eine bestimmte Menge eines radioaktiven Materials und die Wahrscheinlichkeit für den Zerfall (Halbwertszeit). Es können aber keine Zerfallsvorhersagen über ein einzelnes Atom getroffen werden. > Zeitliche oder räumliche Überschreitung der Rechenkapazität unter Verwendung bekannter Lösungsverfahren. Problem des Handelsreisenden (Traveling Salesman Problem). Das Problem ist wohl definiert und logisch lösbar, es ist aber kein korrektes, effizientes Verfahren bekannt. > Zeitliche oder räumliche Überschreitung der praktisch vorhandenen Rechenkapazität. Zu einer gegebenen Zahl η sollen η Striche untereinander gedruckt werden. Dies überschreitet die physikalischen Grenzen realer Drucker, obwohl ein optimales Lösungsverfahren bekannt ist. t> Nichtberechenbarkeit bisher unbekannt. Es ist die (3η + 1) -Funktion wie folgt zu berechnen: w h i l e ( η !=1) { i f ( η gerade) η=η/2; else η=3 *η+1; } Es ist nicht bekannt, ob der Funktionswert für jedes η existert. > Beweisbar nichtberechenbare Probleme. Allein mit Zirkel und Lineal soll ein Winkel in drei gleiche Teile zerlegt werden. Das Problem ist wohl definiert, aber nicht lösbar. Dies ist ein Beispiel dafür, dass wir zeigen können, dass selbst bei uneingeschränkter Rechenzeit kein Algorithmus dieses Problem löst. > Nichtentscheidbare Probleme, d.h. es gibt keinen Algorithmus, der nach endlicher Zeit wahr oder falsch entscheidet. Äquivalenzproblem. Ein Unternehmen besitze eine Vielzahl von Programmen, die jahrelang fehlerfrei auf den alten Rechnern gelaufen sind. Die Programmierer haben gerade neue Programme für die gleichen Aufgaben auf den neuen Rechnern geschrieben. Wie kann das Unternehmen sicher sein, dass die neuen Programme ebenso zuverlässig laufen, wie die alten? Gesucht ist ein Algorithmus, der jeweils ein altes und ein neues Programm vergleicht, um festzustellen, ob sie die gleiche Lösung berechnen.

6

2 Berechenbarkeitstheorie Halteproblem. Es soll durch den Computer herausgefunden werden, ob ein beliebiges eingegebenes Programm Ρ mit einer zugehörigen Dateneingabe D terminiert. Hilbert- Entscheidungsproblem. Von jeder beliebigen mathematischen Aussage ist zu bestimmen, ob sie wahr oder falsch ist. Der Nachweis der Nichtexistenz eines solchen Algorithmus wurde durch Gödel's Unvollständigkeitssatz (1931) erbracht. Problem Diophantische Gleichungen. Für eine beliebige Gleichung soll bestimmt werden, ob sie eine ganzzahlige Lösung hat. Selbst bei der Beschränkung auf Polynome erhalten wir ein unentscheidbares Problem.

2.3

Die Turingmaschine

2.3.1

Begriff und Arbeitsweise einer Turingmaschine

Die Turingmaschine wurde 1936 von dem britischen Mathematiker (1912-1954) als Modell des „menschlichen Rechners" entworfen.

A L A N TURING

Mit der Turingmaschine werden die algorithmischen Prozesse bis an die Grenze des Möglichen in einfache Operationen zerlegt. Dadurch wird die logische Struktur stark vereinfacht und in eine für theoretische Untersuchungen geeignete Standardform gebracht. Die Turingmaschine kann die Funktionen Lesen, Schreiben, Band verschieben und Merken (Speichern) ausführen. Die Turingmaschine besitzt ein unendliches, in gleichgroße Zellen unterteiltes Band, über dem sich ein Schreib-ZLesekopf befindet, der sich gegebenenfalls nach rechts oder links zu einer jeweils benachbarten Zelle bewegen kann. Die Turingmaschine verfügt über endlich viele Zeichen (Symbole), darunter das Leerzeichen (Lindenbaum: • ) . Die Arbeitweise der Turingmaschine ist eindeutig durch ihr Programm, einer endlichen Befehlsfolge, festgelegt. Definition 2.1 (Turingmaschine) Die Turingmaschine sei durch Τ = [Σ, Q, f , g, h, qo, ÇE] mit 1. Σ φ 0 einem endlichen Alphabet mit • € Σ, 2. Q φ 0 einer endlichen Zustandsmenge mit qo € Q dem Anfangszustand und qE £ Q dem Endzustand, 3.

einer Zustandsüberführungsfunktion,

7

2.3 Die Turìngmaschine 4. g : Q χ Σ —> Σ einer Schreibfunktion und 5. h: Q χ Σ —> {—1,0,1} einer Transportfunktion definiert. Bemerkung 2.1 Die Funktionen / , g und h können zur Überfuhrungsfunktion i : Q x E - > Q x E x {-1,0,1} zusammengefasst werden. Arbeitsweise der 1\iringmaschine

Befindet sich die Turìngmaschine im Zustand q und liest dabei auf dem Band das Symbol x, so gibt 1. f(q, χ) an, in welchen Zustand die Turìngmaschine übergeht, 2. g(q, x) an, welches Symbol sie an die Stelle von χ schreibt und 3. h(q,x) an, ob im nächsten Takt dieselbe Zelle oder die linke bzw. die rechte Nachbarzelle betrachtet wird. Definition 2.2 (Konfiguration) Kt = [ßt,n(t),q(t)] heißt Konfìguration der Turìngmaschine Τ = [Σ, Q, / , g, h, qo, qE\ im Takt t € Ν mit 1. ßt : Ζ —> Σ die Bandbelegung im Takt t, 2. n(t) G Ζ die Nummer der Zelle, an der der Kopf im Takt t steht und 3. q(t) der Zustand der Turìngmaschine im Takt t. Definition 2.3 (Folgekonfiguration) Kt+1 heißt unmittelbare Folgekonfiguration (Schreibweise: Kt (= Kt+1) von Kt mit

2. n(t + 1) =n(t) + 3.

h{q(t),ßt{n(t)))und

q(t+l)=f(q(t),ßt(n(t))).

Bemerkung 2.2 Wegen vorhersehbarer Folgekonfiguration einer gegebenen Turìngmaschine bei gegebenem Eingabewort spricht man von deterministischer Turìngmaschine (DTM). Später werden auch nichtdeterministische Turingmaschinen (NTM) betrachtet.

8

2 Berechenbarkeitstheorie

Beispiel 2.1 Gegeben sei folgende Turingmaschine Τ = durch das Programm in Tabelle 2.1.

[{a,b,D},{q0,q1,qE},f,g,h,q0,qE]

Tabelle 2.1: Programm der Turingmaschine.

Q

Σ

/

9

9o

a

h

a

+1

Qo

b

a

+1

9o



a

0

QE

h

Σ

/

9

a

9o

a

+1

9i

b

9o

a

+1

9i



QE



0

Q

h

Die Turingmaschine angewendet auf die Eingabe abbaa liefert die Konfigurationsfolge: κ2 Κ3 ¡ζ5 qo abbaa f= a q\ bbaa |= aa qo baa |= aaa q\ aa |= aaaa qo a |= , κ6 K7 ρ aaaaa q\ p= aaaaa qE Bemerkung 2.3 Die Rechenzeit der Turingmaschine ist gleich der Anzahl der Takte, die benötigt werden, um in den Endzustand zu gelangen. Die Rechenzeit ist abhängig von der Länge des Eingabewortes. Im Folgenden wollen wir uns mit der Problematik beschäftigen, wann eine sogenannte Wortfunktion Turing-berechenbar ist. Definition 2.4 (Wortfunktion) Seien Αχ, A 2 , . . . , A n , Β Ç (Σ \ {•})*. Eine n-stellige Wortfunktion φ: Αι χ Αι χ ... χ Αη —> Β heißt von der Turingmaschine Τ = [Σ, Q, f , g, h, qo, qE] berechnet, wenn gilt: 1. [pi,... ,Ρη] Ε Ό φ genau dann, wenn die Turingmaschine Τ auf die Konfiguration qo pi • ... • pn anwendbar ist und 2. für [pi,... ,p„] e ϋ φ gilt: streichen wir auf dem Band der auf die Konfiguration qo pi • . . . üp n folgenden Endkonfiguration alle Lindenbaum-Symbole, so ergibt sich φ(ρ\,... ,Pn)·

9

2.3 Die Turingmaschine Bemerkung 2.4 Im betrachteten Beispiel 2.1 wird die Wortfunktion: _ fa|p|+1 Ì alpl

bl gerade |p| ungerade

berechnet. |p| ist hierbei die Länge des Eingabewortes p. Definition 2.5 (Turing-Berechenbarkeit) Eine Wortfunktion ψ heißt Turing-berechenbar, wenn es eine Turingmaschine gibt, die die Wortfunktion φ berechnet. Definition 2.6 Eine n-stellige Wortfunktion ψ heißt von einer Turingmaschine Τ normiert berechnet, wenn die Turingmaschine die Wortfunktion berechnet und qoPiO ... Opn h qE2

f>4

(1)

J Ì . . . . E I

f>3

C3

C2

(2)

C3

Co)

J

(1) Rechtsbewegung von 62 63 64 (2) Linksbewegung von αϊ α 2 und ci C2 C3 (3) Rechtsbewegung von b 1

Abbildung 2.1: Simulation der Arbeitsweise einer 3-Band-Turingmaschine durch eine 1-BandTuringmaschine.

Befinden sich schließlich alle k aktuellen Bandinschriften in den k Spuren im zentralen Feld, kann die Inschrift gemäß nächstem Befehl von T[k) geändert werden. • Bemerkung 2.6 Weitere, berechnungsäquivalente Turingmaschinenmodelle sind: > Turingmaschinen mit mehrdimensionalem Speicher, > Turingmaschinen mit getrenntem Ein- und Ausgabeband und > Turingmaschinen mit k Bändern und hi Köpfen auf Band i, 1 < i < k und hi Ε Ν.

2.4

Aufzählbarkeit, Entscheidbarkeit und Berechenbarkeit

Es gibt viele Möglichkeiten, in Algorithmen Ein- bzw. Ausgaben zu berücksichtigen. In diesem Sinne werden im folgenden drei Grundtypen von Algorithmen betrachtet: > Ein Aufzählungsverfahren δα für eine Menge M Ç (Σ*)71 startet ohne Eingabe und liefert schrittweise die n-Tupel χ ο , χ ι , χ ? , • • • der Menge M in beliebiger Reihenfolge, wobei Wiederholungen einzelner Wörter möglich sind. Es bleibt offen, ob das Verfahren abbricht, δ α zählt M auf. M heißt im intuitiven Sinn aufzählbar, falls ein Verfahren δ α existiert. > Ein Entscheidungsverfahren öe für eine Menge M Ç (Σ*) η startet mit einer Eingabe χ Ε (Σ*)". Nach endlich vielen Schritten stoppt das Verfahren und liefert die Ausgabe „Ja", falls χ € M und die Ausgabe „Nein" für χ 0 Μ. ö e entscheidet M. M heißt im intuitiven Sinn entscheidbar, falls ein Verfahren S e existiert.

12

2 Berechenbarkeitstheorie

> Ein Berechnungsverfahren 5\¡ für eine partielle Funktion φ : (Σ*) η —>• Σ startet mit einer Eingabe χ 6 (Σ*)". Das Verfahren stoppt genau dann, wenn χ 6 Ό φ gilt und liefert in diesem Fall die Ausgabe ψ{χ). S(, berechnet die Funktion φ. Die partielle Funktion φ ist intuitiv berechenbar, falls ein Verfahren δ ¡, existiert. Bemerkung 2.7 Zur Präzisierung der Begriffe nutzen wir das Modell der Turingmaschine. In den Definitionen 2.4 und 2.5 wurde bereits der Begriff der Turing-Berechbarkeit spezifiziert. Eine Menge M Ç (Σ*)71 heißt durch eine Turingmaschine aufgezählt, falls das Ergebnis der Bearbeitung eines Wortes über dem Alphabet Σ stets ein Wort aus der Menge M ist und alle Wörter aus der Menge M auf diese Weise erzeugbar sind. Definition 2.8 (Aufzählbarkeit) Eine Menge M Ç (Σ*) η heißt durch eine Turingmaschine auf zählbar (oder rekursiv aufzählbar), wenn gilt: 1. M = 0 oder 2. es gibt eine Turing-berechenbare Funktion φ: Σ* —> M mit