
Theoretische Informatik für Dummies
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
Reviews / Votes
"...das Buch wendet sich an Studienanfänger ..., [Der Autor] versucht, theoretische Informatik 'formelfrei' zu besprechen und viele Formeln noch einmal umgangssprachlich zu erklären. ... Didaktisch gut aufgebaut. Jeder der drei Teile wird mit einem kurzen Absatz eingeleitet; ein nichtkonsekutives Durcharbeiten des Buches ist somit leicht möglich. ..."(EKZ 28. Oktober 2019)
More details
Other editions
Additional editions

Person
Content
Über den Autor 7
Einleitung 17
Was ist theoretische Informatik? 17
Über dieses Buch 18
Wie dieses Buch aufgebaut ist 18
Symbole in diesem Buch 20
Wie Sie dieses Buch lesen sollten 20
Teil I Endliche Automaten 21
Kapitel 1 Deterministische Endliche Automaten (DFAs) 23
Einführung 23
Erste Beispiele 24
Grundlegende Definitionen 27
Symbole und Wörter 27
Die Definition eines DFAs 28
Reguläre Sprachen 30
Die erweiterte Übergangsfunktion 30
Beispiele regulärer Sprachen 31
Das Pumping Lemma 34
Minimalautomaten 38
Der Satz von Myhill und Nerode 45
DFAs mit Ausgabe (Moore- und Mealy-Automaten) 50
Aufgaben zu DFAs 54
Kapitel 2 Nichtdeterministische Endliche Automaten (NFAs) 57
Nichtdeterminismus 57
Definition eines NFA 58
Der Satz von Rabin-Scott 60
NFAs mit ¿¿¿¿-Übergängen 64
Abschlusseigenschaften regulärer Sprachen 67
Reguläre Ausdrücke 70
Stochastische Automaten und Markov-Ketten 75
Hidden Markov Models 80
Aufgaben zu NFAs 80
Kapitel 3 Kellerautomaten (PDAs) 83
Nichtdeterministische Kellerautomaten 83
Deterministische Kellerautomaten 89
Die Grenzen von PDAs 91
Aufgaben zu PDAs 92
Kapitel 4 Turing-Maschinen 93
Deterministische Turing-Maschinen 93
Turing-Berechenbarkeit 102
Mehrband-Turing-Maschinen 105
Registermaschinen 109
Nichtdeterministische Turing-Maschinen 110
Linear beschränkte Turing-Maschinen 112
Universelle Turing-Maschine (UTM) 113
Die Grenzen von Turing-Maschinen 115
Aufgaben zu Turing-Maschinen 120
Teil II Formale Sprachen 123
Kapitel 5 Grammatiken 125
Einführung 125
Ein erstes Beispiel 126
Syntaxbäume 127
Definition einer Grammatik 128
Die von einer Grammatik erzeugte Sprache 128
Wie man ¿¿¿¿-Regeln loswird 129
Das Wortproblem 131
Chomsky-Hierarchie 131
Aufgaben zu Grammatiken 133
Kapitel 6 Reguläre (Typ-3-)Sprachen 135
Beispiele für Typ-3-Sprachen 135
Das Wortproblem für Typ-3-Sprachen 136
Aufgaben zu Typ-3-Sprachen 139
Kapitel 7 Kontextfreie (Typ-2-)Sprachen 141
Erste Beispiele 141
Backus-Naur-Form (BNF) 142
Erweiterte Backus-Naur-Form (EBNF) 142
Chomsky-Normalform 144
Die Grenzen kontextfreier Sprachen 146
Ein äquivalentes Maschinenmodell 150
Deterministisch kontextfreie Sprachen 153
Das Wortproblem für kontextfreie Sprachen 154
Abschlusseigenschaften 156
Aufgaben zu kontextfreien Sprachen 157
Kapitel 8 Kontextsensitive und Phasen-Struktur-Sprachen 159
Ein erstes Beispiel 159
Das Wortproblem für Typ-1-Sprachen 160
Das Wortproblem für Typ-0-Sprachen 161
Äquivalente Maschinenmodelle 162
Typ-0-Sprachen 162
Typ-1-Sprachen 164
Teil III Harte Probleme 167
Kapitel 9 Zeitkomplexität von Algorithmen 169
Einführende Überlegungen 169
Zeit- und Speicherkomplexität von Algorithmen 171
Die O-Notation 175
Komplexitätsklassen von Sprachen 177
Aufgaben zur Komplexität von Algorithmen 179
Kapitel 10 Die Klassen P und NP 181
Die Klasse P 181
Die Klasse NP 182
Zertifikate 182
Das SAT-Problem 185
Reduktion 188
SAT, KNF-SAT und 3-SAT 190
Reduktion und Entscheidbarkeit 196
Aufgaben zu P und NP 197
Kapitel 11 NP-Vollständigkeit 199
Der Satz von Cook 199
Boolesche Schaltkreise und deterministische Turing-Maschinen 200
Boolesche Schaltkreise und nichtdeterministische Turing-Maschinen 206
Reduktion von CIRCUIT-SAT auf 3-SAT 208
Beispiele NP-vollständiger Sprachen 210
SUBSET-SUM-Problem 210
Hamilton-Kreise 213
Das Travelling-Salesman-Problem 219
Das Cliquen-Problem 221
Ist P = NP? 223
Quantencomputer 223
Die Klasse BQP 225
Aufgaben zur NP-Vollständigkeit 227
Teil IV Mathematische Grundlagen 229
Kapitel 12 Logische Grundlagen 231
Boolesche Variablen und boolesche Formeln 231
Aussagen und Beweise 233
Beweistechniken 234
Aufgaben zur Logik 238
Kapitel 13 Mengen und Relationen 239
Grundbegriffe 239
Mengenoperationen 241
Relationen 242
Äquivalenzrelationen 242
Ordnungsrelationen 244
Funktionen 245
Aufgaben zu Mengen und Relationen 247
Kapitel 14 Graphen und Bäume 249
Graphen und ihre Eigenschaften 249
Zusammenhängende Graphen 251
Darstellung von Graphen im Computer 253
Bäume 256
Tourenprobleme 258
Gewichtete Graphen 260
Näherungsweise Lösung des TSP 261
Aufgaben zu Graphen und Bäumen 265
Teil V Top-Ten-Teil 267
Kapitel 15 Top-Ten-Theoretiker 269
Charles Babbage (1791-1871) 269
Ada Lovelace (1815-1852) 270
Alonzo Church (1903-1995) 270
Alan Turing (1912-1954) 271
Claude Shannon (1916-2001) 272
Richard Feynman (1918-1988) 273
Noam Chomsky (geboren 1928) 274
Michael Rabin (geboren 1931) und Dana Scott (geboren 1932) 274
Stephen Cook (geboren 1939) 275
Peter W. Shor (geboren 1959) 275
Kapitel 16 Die Top-Ten-Bücher zum Weiterlesen 277
Teil I: Endliche Automaten 277
Teil II: Formale Sprachen 277
Teil III: Harte Probleme 278
Teil IV: Mathematische Grundlagen 278
Teil V: Top-Ten-Teil 278
Symbolverzeichnis 281
Stichwortverzeichnis 283
Einleitung
Was ist theoretische Informatik?
»It is unnecessary to design various new machines to do various computing processes. They can all be done with one digital computer, suitably programmed for each case.«
(Es ist nicht nötig, immer neue, verschiedene Maschinen für verschiedene Rechenprozesse zu entwerfen. Sie können alle von einem einzigen digitalen Computer bearbeitet werden, der für jeden Fall geeignet programmiert wird.)
Alan Turing, in »Computing Machinery and Intelligence«, Mind, 1950
Für uns heute, die wir gewohnt sind, Computer als allgegenwärtige und universelle Werkzeuge anzusehen, ohne die unsere Alltag fast undenkbar wäre, bedeuten diese Sätze nicht viel mehr als eine Selbstverständlichkeit. Aber als Alan Turing sie 1950 in der philosophischen Zeitschrift Mind veröffentlichte, dürften die meisten seiner Leser unter dem Wort »Computer« noch eine menschliche Person, die Rechenaufgaben mit Papier und Bleistift löst, verstanden haben. Natürlich gab es bereits mechanische und elektromechanische Rechenmaschinen auf dem Markt, aber dies waren Maschinen, die ausschließlich addieren, subtrahieren, multiplizieren oder dividieren konnten. Die Idee, dass es eine einzige Maschine für eine Vielzahl von Aufgaben geben könnte, war für die breite Öffentlichkeit neu. Und was sollte es bedeuten, diese Maschine geeignet zu »programmieren«?
Die theoretischen Grundlagen für seine Aussagen von 1950 hatte Turing bereits 1936 in einem bahnbrechenden Aufsatz gelegt, in dem er ein einfaches mathematisches Modell einer »Logic Computing Machine« entwarf und dann zeigte, dass so eine Maschine tatsächlich universell ist, also alle möglichen Aufgaben übernehmen kann, wenn man sie nur mit den richtigen Eingabedaten füttert. Gleichzeitig bewies er aber auch, dass auch der universelle Computer nicht alles und jedes berechnen kann, indem er Probleme angab, die mit einer solchen Maschine prinzipiell nicht gelöst werden können. Die Vision einer universellen Maschine hatten vor Turing schon andere gehabt, aber erst Turing konnte beweisen, dass es sie tatsächlich gibt, und zeigen, welche Konponenten sie benötigt. In den fünfziger Jahren gingen dann Turing und seine Kollegen in England und den USA daran, die Vision Wirklichkeit werden zu lassen.
Für mich verkörpert Alan Turings Aufsatz von 1936 »On Computable Numbers, with an Application to the Entscheidungsproblem« die Quintessenz der theoretischen Informatik: Mit Hilfe eines mathematischen Modells wird eine abstrakte Maschine beschrieben, die mächtig genug ist, um im Prinzip alle Aufgaben lösen zu können, die auch heutige Computer lösen können. Andererseits ist die Maschine so einfach gebaut, dass es möglich ist, sowohl ihre Universalität als auch ihre Beschränkungen mit mathematischen Mitteln zu beweisen. Die theoretische Informatik nutzt also mathematische Konzepte und Beweisverfahren, um allgemeingültige Aussagen über das Wesen und die Fähigkeiten von Computern und den von ihnen bearbeiteten Problemen treffen zu können. Deswegen besitzt die theoretische Informatik einen hohen Mathematisierungs- und Abstraktionsgrad, der auf viele abschreckend wirkt und sie nicht gerade zum Lieblingsfach angehender InformatikerInnen im Grundstudium werden lässt. Aber die Abstraktion ist kein Selbstzweck, sondern hat eine wichtige Konsequenz: Die Aussagen der theoretischen Informatik sind unabhängig von der verwendeten Hard- und Software, von CPU-Taktfrequenzen, Betriebssystemen und Programmiersprachen. Was man hier einmal bewiesen hat, das gilt (und hat durchaus auch Konsequenzen für den Alltag eines Informatikers).
Über dieses Buch
Machen wir uns nichts vor - die Wahrscheinlichkeit, dass Sie dieses Buch gekauft haben, um den Stoff einer Vorlesung in theoretischer Informatik an einer Hochschule oder Universität besser zu verstehen, ist relativ hoch. Genau dabei möchte Ihnen dieses Buch helfen, und zwar durch möglichst ausführliche Erklärungen, viele komplett ausgeführte Rechnungen und, wenn möglich, bildliche Darstellungen. Das bedeutet aber auch, dass dieses Buch nicht ohne einen gewissen mathematischen Formalismus auskommen kann. Die theoretische Informatik liegt nun einmal an der Schnittstelle zwischen Informatik und Mathematik und macht ausgiebig von den Methoden und Begriffen der Mathematik Gebrauch. Ich habe aber - vor allem zu Beginn - versucht, Ihnen den Einstieg in den Formalismus der theoretischen Informatik zu erleichtern, indem ich viele Formeln auch noch einmal in Umgangssprache erklärt habe. Natürlich wäre es auch möglich, die wesentlichen Konzepte der theoretischen Informatik »formelfrei« zu besprechen, aber ein solches Buch wird Ihnen nicht dabei helfen, Ihre Hausaufgaben und Klausuren in theoretischer Informatik zu bestehen. Ebensowenig ist es möglich, bei Stoffauswahl und -darstellung komplett neue, nie dagewesene Wege zu beschreiten. Ein solches Buch wäre vielleicht für Spezialisten interessant, die den Standard-Stoff ohnehin beherrschen, wäre aber für den durchschnittlichen Studenten so gut wie nutzlos. Machen Sie sich also - trotz des unkonventionellen Titels - auf ein relativ konventionelles Lehrbuch gefasst.
Ich habe meine Vorlesungen immer so gehalten, wie ich als Student mir eine Vorlesung gewünscht hätte, und ich habe versucht, beim Schreiben dieses Buches der gleichen Devise zu folgen: Ich wollte ein Buch schreiben, wie ich es mir für mich selbst beim Erlernen der Inhalte in diesem Buch gewünscht hätte. Dies mag eine Selbstverständlichkeit sein, aber ich möchte es hier trotzdem erwähnen, um zu zeigen, dass Lehren und Lernen sehr subjektive, vom Individuum abhängige Dinge sind und es den einen Königsweg nicht gibt.
Wie dieses Buch aufgebaut ist
Das Buch beginnt in Teil I mit der Automatentheorie. Ausgehend von sehr einfachen Automaten und ihren mathematischen Modellen fügen wir den Automaten nach und nach weitere Fähigkeiten hinzu, bis wir beim bis heute gültigen mathematischen Modell für unsere Computer angekommen sind, der Turing-Maschine. Die Beweise dafür, dass die Turing-Maschine einerseits wirklich eine universelle Maschine darstellt und andererseits trotzdem gewisse Einschränkungen bei dem besitzt, was sie berechnen kann, bilden einen ersten inhaltlichen Höhepunkt.
Nachdem es in Teil I unter anderem darum ging, formale Sprachen mithilfe von Automaten zu »erkennen« und sie durch die Art der erkennenden Automaten zu charakterisieren, geht es in Teil II um das »Erzeugen« formaler Sprachen mit Hilfe von Regelsätzen, so genannten Grammatiken. Der Nachweis, dass bestimmte Grammatiktypen bei der Erzeugung bzw. Akzeptanz von Sprachen äquivalent zu den in Teil I betrachteten Automatentypen sind, bildet das Leitmotiv in diesem Teil.
Teil I und Teil II handelten davon, was mit Computern prinzipiell möglich und was prinzipiell unmöglich ist - in Teil III fragen wir schließlich danach, wie schnell ein Problem auf dem Computer lösbar ist. In der Komplexitätstheorie wird die Schwierigkeit von Problemen grob in so genannte Komplexitätsklassen eingeteilt, und wir werden sehen, dass es bestimmte, besonders schwierige Probleme gibt, die mit dem Computer nicht effizient gelöst werden können. Der Nachweis, dass es einen harten Kern von besonders schwierigen Problemen gibt, auf die alle anderen schwierigen Probleme zurückgeführt werden können, bildet den Höhepunkt und Abschluss von Teil III und damit auch den Abschluss des klassischen Stoffs der Theoretischen Informatik, den man im Rahmen einer vierstündigen Vorlesung abdecken kann.
Ich gehe davon aus, dass die meisten meiner Leser bereits eine oder mehrere Anfängervorlesungen in Mathematik gehört haben, da die Theoretische Informatik zumeist im zweiten oder dritten Semester auf dem Lehrplan steht. Trotzdem finden es manche vielleicht nützlich, wenn sie für die Theoretische Informatik wichtige mathematische Grundbegriffe direkt hier im Buch nachschlagen können. In Teil IV habe ich diese Grundbegriffe kurz und knapp und zumeist ohne Beweis zusammen gestellt. Eine Ausnahme bildet die Graphentheorie, die ich etwas ausführlicher als unbedingt nötig dargestellt habe, weil sie zum einen nicht unbedingt zum Standard-Kanon der ersten Semester gehört, zum anderen relativ leicht zugänglich ist und nicht nur ein Hilfskonzept für die Theoretische Informatik darstellt, sondern auch eine Fülle von Anwendungsbeispielen und Problemen mit praktischer Relevanz bietet.
Kein Buch der »für Dummies« - Reihe ohne abschließenden Top-Ten-Teil. Anstatt hier noch einmal die wichtigsten Aussagen zu wiederholen (in gewisser Weise passiert dies auf den Schummelseiten zu Beginn), habe ich mich dazu entschlossen, hier noch kurz auf die Menschen hinter den wichtigsten Resultaten der Theoretischen Informatik einzugehen. Wie oben beschrieben, war das Jahr 1936 wie der Startschuss der Theoretischen Informatik, und bekanntermaßen waren die dreißiger Jahre des letzten Jahrhunderts auch sonst eine sehr bewegte Zeit. Dies spiegelt sich auch in den Lebensläufen der beteiligten Wissenschaftler wider,...
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.