Komplexität von Algorithmen. Mathematik für Anwendungen Band 4

wissen. Mathematics for Applcations edited by Uwe Schöning, University of Ulm. This series .... aus diesem Grund sollten Sie nicht an erster Stelle in die Lösung.
1MB Größe 33 Downloads 1337 Ansichten
Arne Meier • Heribert Vollmer

Komplexität von Algorithmen

Mathematik für Anwendungen herausgegeben von Uwe Schöning, Universität Ulm Diese Textbuchreihe soll zeigen, dass Mathematik mehr ist als nur eine Zusammenstellung von Theoremen und Definitionen – tatsächlich eröffnet die Mathematik die Möglichkeit, anwendungsnah Probleme der realen Welt zu lösen. Gedacht als Grundlage für Vorlesungen und Seminare in den Ingenieurwissenschaften und der Informatik, zielt jeder Band darauf ab, ein bestimmtes Thema kompakt und didaktisch durchdacht zu erfassen und dabei den Balanceakt zwischen formal-korrekter und informal-verständlicher Darstellung zu vollbringen. Nicht nur Studierende, sondern auch Praktiker aus der Industrie sowie Lehrer und Schüler in mathematischen Fächern werden diese Reihe zu schätzen wissen. Mathematics for Applcations edited by Uwe Schöning, University of Ulm This series of textbooks is designed to demonstrate how mathematics is more than just a collection of theorems and definitions – it is a powerful means to solve real-world problems! Intended for use in lecture courses and seminars in any field of engineering or computer science, each volume aims for a compact and didactically sound presentation of its subject matter, balancing the demands of formal correctness with the need for general accessibility. Not only students, but also those working in technical professions, teachers of high school mathematics and even their students should find these books valuable.

Alle Rechte vorbehalten Dieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen, Verfilmungen und die Einspeicherung und Verarbeitung auf DVDs, CD-ROMs, CDs, Videos, in weiteren elektronischen Systemen sowie für Internet-Plattformen.

© Lehmanns Media, Berlin 2015 Helmholtzstraße 2-9 10587 Berlin Umschlag: Milberg Marketing / Arne Meier / Bernhard J. Bönisch Druck und Bindung: docupoint GmbH - Barleben ISBN 978-3-86541-761-9

www.lehmanns.de

Inhaltsverzeichnis

I.

Komplexit¨ atsmaße

1. Wie 1.1. 1.2. 1.3. 1.4. 1.5. 1.6.

aus Raum Zeit wird und umgekehrt Welche Probleme wollen wir l¨ osen? . . . . . . . Eine Universalmaschine . . . . . . . . . . . . . Viele B¨ ander bringen nicht viel mehr als zwei . Nichtdeterminismus . . . . . . . . . . . . . . . Beziehungen zwischen den Komplexit¨atsklassen Die Hierarchies¨ atze . . . . . . . . . . . . . . . .

5 . . . . . .

7 9 11 18 23 26 32

2. Sind Turingmaschinen ein realistisches Modell? 2.1. Computerprogramme auf Turingmaschinen . . . . . . . . . . . . . . . .

49 50

3. Effizienz – Warum P einfach besser als EXP ist 3.1. Polynomialzeit – die Klasse P . . . . . . . . . . . . . . . . . . . . . . . . 3.2. NP – the class of dashed hopes and idle dreams . . . . . . . . . . . . . . 3.3. Die gr¨ oßte Frage der Informatik: Das P-NP-Problem . . . . . . . . . . .

57 57 63 68

II. NP-Vollst¨ andigkeit

75

4. Der 4.1. 4.2. 4.3.

77 77 79 81

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

Weg zur Vollst¨ andigkeit Reduzierbarkeit – aus Problem A wird Problem B . . . . . . . . . . . . Vollst¨ andigkeit – das (vorerst) letzte Wort . . . . . . . . . . . . . . . . . Der Satz von Cook und Levin – der Anfang ist gemacht . . . . . . . . .

5. Ein Bausatz von NP-vollst¨ andigen Problemen 93 5.1. Graphenprobleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.2. Numerische Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 5.3. Mahaney’s Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

iv

Inhaltsverzeichnis

5.4. Rezepte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

III. Approximierbarkeit

125

6. Optimierung – ein Lichtblick 127 6.1. Optimierungsprobleme – bis wohin geht’s? . . . . . . . . . . . . . . . . . 128 6.2. Approximationsalgorithmen . . . . . . . . . . . . . . . . . . . . . . . . . 134 7. Beispiele von Approximierbarkeit 7.1. Das Problem des Handlungsreisenden MinTSP 7.2. Das Partitionierungsproblem . . . . . . . . . . 7.3. Das Erf¨ ullbarkeitsproblem . . . . . . . . . . . . 7.4. Optimierungsklassen . . . . . . . . . . . . . . .

IV. Anhang

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

141 142 150 152 154

165

Graphen

167

Aussagenlogik

169

Klausuren

175

Abk¨ urzungen

191

Liste von behandelten Problemen

193

Index

201

Vorwort Das vorliegende Lehrbuch ist im Laufe der Jahre aus dem Skript zur Vorlesung Komplexit¨ at von Algorithmen an der Leibniz Universit¨at Hannover entstanden. Das erste Mal wurde sie im Sommersemester 2002 von Heribert Vollmer gehalten und auch konzipiert. Die Vorlesungsinhalte von damals sind den heutigen noch sehr ¨ahnlich. ¨ Lediglich die Ubungsinhalte haben einen gr¨ oßeren Wandel durchlaufen. 2002 war die Vorlesung lediglich f¨ ur die Informatiker ein Wahlfach und keine Pflichtauflage wie heute. Dazu gab es zu der Zeit noch keinen Studiengang Technische Informatik, f¨ ur welchen diese Vorlesung heute ebenso eine Pflichtveranstaltung ist. Unser Hintergedanke bei diesem Buch ist seine Eigenst¨andigkeit. Sie werden schrittweise in die Grundlagen eingef¨ uhrt und bieten daher einen leichten Einstieg in den Bereich der Komplexit¨atstheorie und Algorithmik. Insbesondere erkl¨ aren wir Ihnen die Beweggr¨ unde und Hintergrundinformation zu den einzelnen Begriffen. Die Kapitel dieses Buches beginnen mit einer Liste von sogenannten Lernzielen, die Sie schon zu Beginn darauf einstellen sollen, welche Konzepte und Techniken Sie im Folgenden erlernen werden. An einigen Stellen tauchen im Seitenrand Fragen und Bemerkungen auf, u ¨ber welche Sie sich Gedanken machen sollten, w¨ahrend Sie am Stoff ¨ arbeiten. Es tauchen auch immer wieder Ubungsaufgaben auf, die Sie an der jeweiligen Stelle direkt bearbeiten k¨onnen. Ein hochgestelltes L signalisiert hierbei, dass eine zugeh¨ orige L¨osung am Ende vorhanden ist. Zudem zeigen ?-Symbole den Schwierigkeitsgrad der Aufgabe an; drei Sterne signalisieren Ihnen hierbei eine hohe Schwierigkeit. Am Ende finden Sie dann jeweils eine sehr kurze Zusammenfassung der Resultate und Definitionen, die aufgetaucht sind. Anschließend gibt es noch eine kurze Folge von Behauptungen, welche Sie in richtig und falsch klassifizieren sollen. Des Weiteren finden Sie eine Liste von Literaturstellen, welche die jeweiligen Konzepte auch darstellen. Schließlich kommt ein Bereich, in dem Sie die L¨osungen

2

Inhaltsverzeichnis

zu ausgew¨ ahlten Aufgaben, sowie den Kurzfragen in diesem Kapitel finden.

Millennium Falcon™

H¨ aufig werden Vorlesungen im Bereich der Theoretischen Informatik von den Studenten als schwierig oder langweilig empfunden. Das liegt meistens daran, dass in diesen F¨achern st¨arker auf Verst¨ andnis als auf behaltene Wissensmenge gepr¨ uft wird. Ein gutes mathematisches Verst¨andnis spielt im zuk¨ unftigen Arbeitsleben eine deutlich wichtigere Rolle als das Auswendiglernen von irgendwelchen formalisierten Standards (die vermutlich sogar in kurzer Zeit u ¨berholt sind). Genau diese Vorgehensweise sollen Sie verinnerlichen. Hierbei verh¨ alt es sich im Prinzip genau wie beim Erlernen einer Programmiersprache oder eines -konzeptes: dies geht nicht u ¨ber das Studieren von Quellcode bzw. Musterl¨osungen, sondern nur dadurch, dass man selber programmiert – das bedeutet f¨ ur uns Beweise f¨ uhrt oder Konzepte durch Anwendung vertieft. Genau aus diesem Grund sollten Sie nicht an erster Stelle in die L¨osung der zugeh¨ origen Aufgabe schauen, sondern zun¨achst – auch mal etwas l¨ anger – u ¨ber die Aufgabe nachdenken. Hierbei ist es oft auch mal hilfreich, Pausen einzulegen und nicht nach kurzer Zeit bereits aufzugeben. Im Ganzen k¨ onnen Sie dieses Lehrbuch als eine Universit¨atsvorlesung sehen, welche w¨ ochentlich 90 Minuten gehalten wird und 90 ¨ Minuten f¨ ur Ubungen vorsieht. Am Ende bieten wir Ihnen sogar die M¨ oglichkeit eine Klausur zu schreiben und anschließend selber zu korrigieren und zu bewerten. Eine Bescheinigung bekommen Sie allerdings daf¨ ur von uns nat¨ urlich nicht. Kommen wir nun ein wenig zu dem Inhalt, der Sie erwartet. Wie wir wissen, schafft der Millennium Falcon™ den Kessel-Flug in weniger als 12 parsec. Ein klein wenig Recherche bringt zu Tage, dass 1 parsec ungef¨ ahr 3,262 Lichtjahren entspricht1 . Jedoch bin zumindest ich mir nicht genau bewusst, wie gut das ist und ob das u ¨berhaupt Sinn macht2 , wohingegen Obi-Wan Kenobi™ sich beeindruckt zeigt (und er entweder blufft oder echte Bewunderung zeigt). Dies beschreibt ganz gut, womit wir uns in dem Lehrbuch besch¨aftigen wollen. Wir m¨ ochten Zeit- und Platzbedarf von Maschinen-Berech1 http://what-if.xkcd.com/73/ 2 http://scifi.about.com/od/starwarsglossaryandfaq/a/

Star-Wars-Faq_Why-Did-Han-Solo-Say-He-Made-The-Kessel-Run -In-12-Parsecs.htm

Inhaltsverzeichnis

3

nungen greifbarer machen. Hierzu m¨ ussen wir zu Beginn jedoch das formale Ger¨ ust bauen (also uns auf ein Konzept und eine Notation einigen, die uns sinnvoll erscheint). Dies ist sehr wichtig, da wir uns ohne eine gemeinsame Sprache nicht zielgerichtet verst¨ andigen k¨onnen. Dies ist wiederum eines der globalen Lernziele dieses Lehrbuches: die Formalisierung von Begriffen. Damit Sie in einem Team gut arbeiten k¨onnen, m¨ ussen sie sich auf die gemeinsamen Termini einigen. Dazu m¨ ussen Sie erst einmal lernen, wie dieses Formalisieren genau funktioniert. Durch ein formales Grundger¨ ust sind Sie in der Lage, Algorithmen zu entwerfen und diese anschließend zu bewerten. Ein weiterer wichtiger Punkt ist das Verinnerlichen von Beweisvorhaben oder -rezepten. Ein Beweis ist im Prinzip nichts anderes als ein Algorithmus. Er verl¨ auft in einer sehr geradlinigen Struktur und verfolgt ein spezielles Schema (abh¨ angig davon, welche Art von Beweis Sie f¨ uhren wollen). Verdeutlichen Sie sich immer wieder, wenn Sie einen Beweis lesen oder f¨ uhren, dann trainieren Sie auch Ihr algorithmisches Denken. Dieses wird Ihnen sehr hilfreich sein, um Probleme, zum Beispiel sp¨ ater im Berufsleben zu l¨ osen und auch Software zu entwickeln. Idealerweise sollten Sie die Kapitel nicht nur einmal lesen. Bei einer guten Herangehensweise u ¨berfliegen Sie zun¨achst das Kapitel, um es anschließend durchzuarbeiten. Schließlich m¨ ochten wir Sie bitten, etwaige Fehler, die Sie w¨ahrend des Lesens feststellen, uns via eMail [email protected]. de mitzuteilen. Vielen Dank daf¨ ur! Dar¨ uber hinaus m¨ochten wir uns noch bei folgenden Personen f¨ ur Verbesserungsvorschl¨age und f¨ ur das Nennen von Fehlern bedanken: Jan Eberhardt, Martin L¨ uck, Fabian M¨ uller, Uwe Sch¨ oning, Bernhard Thieme. 18. M¨ arz 2015

Arne Meier und Heribert Vollmer

Teil I.

Komplexit¨ atsmaße

Kapitel 1

Wie aus Raum Zeit wird und umgekehrt Lernziele dieses Kapitels 1

Sie wissen, was Alphabete, W¨ orter und Sprachen sind.

2

Sie verstehen das Konzept von Turingmaschinen.

3

Sie k¨ onnen zeigen, dass ein gegebenes Problem von einer Turingmaschine entschieden wird.

4

Sie k¨ onnen mit der O-Notation umgehen.

5

Sie verstehen den Unterschied zwischen deterministischen und nichtdeterministischen Maschinen.

6

Sie wissen, was Zeit- und Raum-Bedarf (Speicher-Bedarf) bedeutet.

7

Sie kennen die Komplexit¨ atsklassen TIME und SPACE.

8

Sie kennen die wichtigsten Beziehungen zwischen den Komplexit¨ atsklassen.

9

Sie k¨ onnen weitere Beziehungen ableiten und beweisen.

Ziel dieses Kapitels ist es, einen Begriff f¨ ur die Komplexit¨at eines Computerprogramms zu finden. Betrachten wir das folgende Beispiel, welches diese Sichtweise etwas mehr illustriert. Anton gef¨allt die Programmiersprache Scheme sehr gut. In seinen Programmen

8

Was fallen Ihnen noch f¨ ur Maße ein?

Kapitel 1. Wie aus Raum Zeit wird und umgekehrt

achtet er immer darauf, m¨oglichst wenige Klammern zu verwenden – und das ist bei Scheme wahrlich keine einfache Aufgabe. Sein Komplexit¨ atsmaß ist nun die Anzahl der (¨offnenden) Klammern. Dieses Maß dr¨ uckt jedoch nicht wirklich aus, wie schwierig oder wie gut das Programm ist. Es ist lediglich ein schwacher Fingerzeig f¨ ur die L¨ ange eines Programms. Eine andere M¨oglichkeit w¨are, die Anzahl von sogenannten λ-Ausdr¨ ucken zu betrachten. Dies ist ein spezielles Konzept, welches mit der Verwendung von Unterfunktionen zusammenh¨ angt. Aus deren Anzahl kann man ableiten, wie stark verschachtelt das Programm ist. Die beiden erw¨ahnten Maße messen die Schwierigkeit des Computerprogramms, haben jedoch nichts mit der Effizienz deren Ausf¨ uhrung zu tun. Daf¨ ur sind eher Maße wie Zeit- und Speicherbedarf sinnvoll. Betrachten wir nun zuerst den Speicherbedarf eines Programms, also die Anzahl der benutzten Variablen und die Gr¨oße der gespeicherten Werte. Abh¨ angig vom System ist die Gr¨oßendarstellung innerhalb des Systems gleich. Die kleinste Speicherzelle hat konstante Gr¨ oße und ist daher auf dem gleichen System auch immer gleich groß. Dies ist ein Wert, der jedoch von System zu System variieren kann und von der Repr¨ asentation dieser Werte im Rechner abh¨angt. ¨ ¨ Ahnliche Uberlegungen kann man auch f¨ ur den Zeitbedarf anstellen. Wenn das Programm auf Antons Rechner der Firma I schnell l¨ auft, kann es auf Bertas Rechner der Firma A viel langsamer oder auch schneller sein. Deshalb m¨ ochten wir, wie schon im Vorwort erw¨ahnt, eine sinnvolle Definition von Zeit- und Speicher-Bedarf eines Computerprogramms finden. Es soll ein Begriff sein, welcher maschinenunabh¨ angig ist. Dies ist ein wichtiger Aspekt, da wir nicht schon bald wieder einen neuen Begriff definieren wollen, wenn es ein Computer-Update oder einen Betriebssystemwechsel gibt. Wichtig ist auch, dass Programme auf unterschiedlichen Rechnern vergleichbar sein sollen. Hierzu sind also einige Begriffe zu pr¨azisieren: • Was ist ein algorithmisches Problem? • Was ist ein Algorithmus oder Computer? • Was bedeuten Zeit- und Speicherbedarf genau?

1.1. Welche Probleme wollen wir l¨ osen?

9

1.1. Welche Probleme wollen wir l¨ osen? Ein algorithmisches Problem P wird dadurch charakterisiert, dass man u ufen m¨ ochte, ob Objekte gewisse Eigenschaften besit¨berpr¨ zen. Diese Eigenschaften k¨ onnen sehr vielf¨ altig sein. Im Folgenden gehen wir davon aus, dass Sie wissen, was Graphen und aussagenlogische Formeln sind. Sollte dies nicht der Fall sein, so werfen Sie einfach einen Blick in den Anhang dieses Buches. Dort werden die Grundlagen zu beiden Themen ausf¨ uhrlich erl¨ autert. Wenden wir uns nun einem ersten solchen Problem P zu. Uns liegt ein ungerichteter Graph G = (V, E) vor und wir fragen uns nun, ob es in diesem Graphen einen vollst¨ andigen Teilgraphen (jeder Knoten ist mit jedem anderen hier verbunden) der Gr¨ oße k gibt. Formal k¨onnen wir das Problem so beschreiben: Problemname: CLIQUE Eingabe: Ungerichteter Graph G = (V, E) und nat¨ urliche Zahl k Frage: Gibt es einen vollst¨ andigen Teilgraphen mit k Knoten? Das Problem heißt CLIQUE, da man u ¨blicherweise vollst¨andige Teilgraphen Cliquen nennt. Eine Spur mathematischer ist die folgende Mengenschreibweise und wird von uns hier im Buch prim¨ar verwendet: ( ) G ist ein ungerichteter Graph, der als Teil CLIQUE = hG, ki graph den vollst¨ andigen Graphen mit k Knoten enth¨ alt Hier treten außerdem komische, spitze Klammern h·i auf. Momentan k¨ onnen Sie diese erstmal ignorieren. Auf Seite 59 werden wir uns diesen Klammern wieder zuwenden und genauer ihren Sinn erl¨ autern. Wie Sie momentan sehen, ist die Menge CLIQUE nun die Menge jener Paare von ungerichteten Graphen und nat¨ urlichen Zahlen k, die einen vollst¨ andigen Graphen mit k Knoten enthalten. Das heißt, das Vorhandensein von Cliquen der Gr¨ oße k ist eben jene oben angesprochene Eigenschaft, welche unser Objekt (der ungerichtete Graph) besitzen soll. Diese Art von algorithmischen Problemen werden auch Entscheidungsprobleme genannt, da die zugeh¨orige Frage nur mit ja oder nein beantwortet wird. Ein anderes Objekt im obigen Sinne k¨ onnte eine aussagenlogische Formel ϕ = (x ∨ y) ∧ ¬x sein. Hier fragen wir uns nat¨ urlich, ob diese

10

Kapitel 1. Wie aus Raum Zeit wird und umgekehrt

Formel erf¨ ullbar ist. Das zugeh¨orige Problem lautet (ein letztes Mal in der vorherigen Schreibweise): Problemname: SAT Eingabe: Aussagenlogische Formel ϕ Frage: Ist ϕ erf¨ ullbar? Die Mengenschreibweise lautet hierzu: SAT = {hϕi | ϕ ist aussagenlogische, erf¨ ullbare Formel} . Hier sind wiederum nur jene Formeln ein Teil der Menge SAT, welche erf¨ ullbar sind. Also wird wieder eine Ja/Nein-Frage in Bezug auf eine gegebene Formel beantwortet. Nun m¨ ochten wir solche algorithmischen Probleme durch Computerprogramme oder Algorithmen l¨osen. Dazu m¨ ussen wir die Eingaben dieser Probleme in den Computer beziehungsweise den Algorithmus eingeben“. In den obigen Beispielen m¨ ussen also die Graphen ” und Formeln so beschrieben oder kodiert werden, dass wir diese u ¨ber eine Tastatur eingeben k¨onnen. Unser Programm soll nach der Eingabe entscheiden, ob unser Graph oder unsere Formel den geforderten Eigenschaften des algorithmischen Problems gen¨ ugt. Dazu wenden wir uns jetzt den dazu notwendigen Beschreibungen oder Kodierungen formal zu. Anf¨anglich werden wir uns mit Sprachen besch¨ aftigen. Informell gesprochen umfasst dieser Term lediglich eine Menge von Elementen mit einer Gemeinsamkeit, wie zum Beispiel die gerade Wortl¨ ange. Prinzipiell ist es sogar m¨oglich, jede nat¨ urliche Sprache – wie Deutsch oder Englisch – u ¨ber diesen Terminus zu formalisieren. Ein Alphabet ist eine endliche, nichtleere Menge. Die Elemente eines Alphabets heißen auch Zeichen oder Symbole. Beispiel 1. {0, 1}, {a, b, c, . . . , z, A, . . . , Z}

J

Ist M eine Menge, so bezeichnet |M | die Anzahl der Elemente von M . Sei Σ ein Alphabet. Ein Wort u ¨ber Σ ist eine Folge von Symbolen aus Σ. Ein Wort entsteht also durch Hintereinanderschreiben (Konkatenation) von Symbolen aus Σ. Beispiel 2. w = abbab ist ein Wort u ¨ber dem Alphabet {a, b}.

J

1.2. Eine Universalmaschine

11

Ein Spezialfall ist das leere Wort. Wir bezeichnen es mit ε. Die Menge aller W¨ orter u ¨ber dem Alphabet Σ bezeichnen wir mit Σ∗ . Beispiel 3. F¨ ur Σ = {a, b} ist Σ∗ = {ε, a, b, aa, ab, ba, bb, aaa, aab, aba, . . .}. J Eine Sprache u ortern u ¨ber Σ, also eine ¨ber Σ ist eine Menge von W¨ Teilmenge von Σ∗ . Beispiel 4. Die Menge der deutschen W¨ orter ist eine Sprache u ¨ber {a, b, c, . . . , z, A, . . . , Z, ¨ a, ¨ o, u ¨, . . . , ß}. Die Menge aller C-Programme ist eine Sprache u ¨ber {a, b, c, . . . , z, A, . . . , Z, {, }, (, ), [, ], +, ∗, −, /, =, ., , }. Beachten Sie, dass hierbei noch keine Aussage u ¨ber die genaue Syntax getroffen wurde. J Eine wichtige Operation auf W¨ ortern ist die Konkatenation bzw. das Hintereinanderschreiben. Die zugeh¨ orige Schreibweise hierf¨ ur ist u ◦ v oder kurz uv f¨ ur Konkatenation die der W¨orter u und v. Beispiel 5. Ist u = ab und v = bab, so ist u ◦ v = abbab.

J

Die L¨ ange eines Wortes w ist die Anzahl der Symbole in w. Schreibweise: |w| Beispiel 6. |aba| = 3, |ε| = 0, |u ◦ v| = |u| + |v|

J

F¨ ur ein Wort w und n ∈ N ist wn die Konkatenation wn = w | ◦ w ◦{z· · · ◦ w} . nmal

Wir definieren: w0 = ε. Es ist |wn | = n · |w|. Schreibweise: Σ+ = Σ∗ \ {ε}.

1.2. Eine Universalmaschine Nun wissen wir, wie man ein algorithmisches Problem mathematisch darstellt. Im folgenden Schritt m¨ ochten wir uns Gedanken machen,

12

Alan Turing

Kapitel 1. Wie aus Raum Zeit wird und umgekehrt

wie wir einen Algorithmus oder Computer modellieren. Stellen wir uns zun¨ achst die Frage, wie ein Mensch ein algorithmisches Problem mit Papier und Stift l¨ osen w¨ urde. Der britische Mathematiker und Logiker Alan M. Turing hat da¨ zu im Jahre 1936 folgende Uberlegungen angestellt. Er verglich die Vorgehensweise eines Menschen mit der einer Maschine, die in jedem Zeitpunkt ihrer Arbeit endlich viele Situationen unterscheiden oder sich merken kann, anders formuliert: sich in einem von endlich vielen Zust¨ anden befindet. Der Mensch/die Maschine hat vor sich ein Blatt Papier liegen, auf dem er/sie arbeitet. Das Papier ist in einzelne Bereiche unterteilt, in die etwas geschrieben werden kann. Wir wollen die Bereiche Zellen nennen. In eine Zelle passt“ also so” zusagen genau ein Symbol aus einem festgelegten Zeichenvorrat. Der Einfachheit halber stellen wir uns die Zellen aneinandergereiht vor, wie an einem Band aufgef¨adelt. Wir sprechen daher nicht von einem Papier, sondern von dem Band als Medium zum Zwischenspeichern von Rechenergebnissen. (Man darf bei dem Begriff Band“, engl.: ” tape, sicher auch an Magnet-B¨ander denken, die in fr¨ uheren Jahren den u ¨blichen Massenspeicher von EDV-Ger¨aten bildeten.) Die Maschine sieht ( scannt“) zu einem Zeitpunkt genau eine Bandzel” le und kann das dort gespeicherte Symbol lesen. Abh¨angig von der momentanen Situation/dem momentanen Zustand und dem gelesenen Symbol f¨ uhrt die Maschine nun einen Befehl aus, der daraus besteht, dass sich der Zustand ¨andern darf, dass das gelesene Symbol durch ein anderes u ¨berschrieben oder gel¨oscht werden darf, und dass die Maschine ihre Aufmerksamkeit nun auf eine benachbarte Zelle richtet, also eine Position nach links oder eine Position nach rechts. Wir setzen voraus, dass der Maschine soviele Bandzellen als Speicher zur Verf¨ ugung stehen, wie sie ben¨otigt. Sind alle Zellen beschrieben und werden weitere ben¨otigt, werden sie zur Verf¨ ugung gestellt. Man sagt auch: Die Bandgr¨oße ist nicht von vornherein beschr¨ ankt, sondern potentiell unendlich“ – nicht tats¨achlich unend” lich, da die Maschine zu jedem Zeitpunkt nur eine endliche Anzahl Zellen verwendet. Eine Turingmaschine (TM) ist ein zun¨achst sehr abstrakt wirkendes Konzept. Man kann jedoch zeigen, dass dieser Typ von Maschine von seiner Berechungskraft ¨aquivalent ist zu heutigen real existierenden Computern. (Wir werden dies in Kapitel 2 genauer tun.) Der große Vorteil von Turingmaschinen ist, dass sie ein erstaunlich einfaches Konzept bilden, das f¨ ur mathematische Untersuchungen der