Skip to main content
Top

2018 | Book

Theoretische Informatik

Eine umfassende Einführung

Authors: Lutz Priese, Prof. Dr. Katrin Erk

Publisher: Springer Berlin Heidelberg

insite
SEARCH

About this book

Die Theoretische Informatik untersucht die der Informatik zugrundeliegenden Konzepte, Modelle und Vorgehensweisen. Es ist ein Fachgebiet, das durch seine formalen Definitionen und vielen Beweise Parallelen zur Mathematik aufweist. Dieses Buch führt umfassend in die Theoretische Informatik ein. Dabei legen die Autoren besonderen Wert auf Verständlichkeit und gute Lesbarkeit. Zu Beginn stellen sie die mathematischen Konzepte mit ihren Begriffen und Notationen vor. In den folgenden drei Hauptabschnitten führt das Buch in die Theorie der formalen Sprachen und in die Theorie der Berechenbarkeit ein und gibt einen Überblick über die Komplexitätstheorie. Mit ihren verschiedenen Sprachklassen, Grammatiken und den Automaten werden die formalen Sprachen einerseits eingesetzt, um Compiler zu bauen und andererseits um Programme zu analysieren. Bei der Anwendung der Theorie der Berechenbarkeit werden Modelle eines Computers wie etwa die Registermaschine betrachtet. Weil sie einfacher aufgebaut sind als ein konkreter Computer, kann an ihnen untersucht werden, ob ein Problem überhaupt mit einem Computer gelöst werden kann. Auch alternative Rechenmodelle wie Zwei-Register-Maschinen, Tag-Systeme, Wang-Maschinen, Rödding-Netze, Splicing und reversible Rechnungen kommen in einem eigenen umfangreichen Kapitel zur Sprache. Abschließend wird die Komplexitätstheorie betrachtet, anhand derer sich herausfinden lässt, wie viel Rechenzeit für die Lösung eines Problems aufgewendet werden muss.

Das Buch basiert auf Vorlesungen, die die Autoren für Studierende der Informatik im Grundstudium an den Universitäten Paderborn und Koblenz gehalten haben. Sämtliche Beweise werden in dem Buch detailliert ausgeführt. Und gerade die besonders schwierigen werden nicht abgekürzt, sondern umso eingehender betrachtet. Damit bietet dieses Buch zugleich eine Einführung in die Technik des Beweisens. Mit der ausführlichen Behandlung aller Beweise eignet sich das Lehrbuch besonders für Einsteiger in das Gebiet der Theoretischen Informatik. Aber auch Dozenten profitieren insbesondere von der Vorstellung alternativer Berechnungsmodelle.

Table of Contents

Frontmatter
Kapitel 1. Einleitung
Zusammenfassung
Die Theoretische Informatik untersucht grundlegende Konzepte, Modelle und Vorgehensweisen, die allen Bereichen der Informatik zugrunde liegen. Sie liegt nahe bei der Mathematik: Ihre Gegenstände werden formal definiert, und es werden viele Beweise geführt. Damit liefert sie eine formale Ausdrucksweise, die überall in der Informatik dann verwendet wird, wenn man etwas exakt beschreiben will.
Lutz Priese, Katrin Erk
Kapitel 2. Begriffe und Notationen
Zusammenfassung
In diesem und dem nächsten Kapitel versuchen wir, alle mathematischen Konzepte, die in diesem Buch benutzt werden, kurz vorzustellen. Tatsächlich kann eine Einführung in die Theoretische Informatik mit erstaunlich wenigen mathematischen Sachverhalten auskommen. Trotzdem können wir in diesem Kapitel nicht über eine knappe Beschreibung hinausgehen.
Lutz Priese, Katrin Erk
Kapitel 3. Eine kurze Einführung in die Aussagenlogik
Zusammenfassung
Im letzten Kapitel haben wir zwei Arten von Aussagen unterschieden, Aussagen ohne Quantoren über einzelne Objekte (wie die Zahl 5) und Aussagen mit Quantoren über Mengen von Objekten (wie die Menge der natürlichen Zahlen). In diesem Kapitel soll es um Formeln gehen, die Aussagen der ersteren Art beschreiben, sogenannte aussagenlogische Formeln.
Lutz Priese, Katrin Erk

Formale Sprachen

Frontmatter
Kapitel 4. Grammatiken und formale Sprachen
Zusammenfassung
Angenommen, wir wollen ein Programm schreiben, das C-Programme darauf testet, ob sie syntaktisch korrekt sind. Dann muss unser Programm folgendes leisten:
Lutz Priese, Katrin Erk
Kapitel 5. Reguläre Sprachen und endliche Automaten
Zusammenfassung
Rechtslineare Grammatiken sind der einfachste Grammatiktypus, den wir kennengelernt haben. Sie erzeugen gerade die sogenannten Typ-3- oder regulären Sprachen. Bei jeder Regelanwendung entsteht höchstens eine Variable, und zwar am rechten Ende des Wortes.
Lutz Priese, Katrin Erk
Kapitel 6. Kontextfreie Sprachen
Zusammenfassung
Kontextfreie Sprachen werden von kontextfreien Grammatiken erzeugt. Dabei wird mit einer Grammatikregel jeweils eine Variable durch ein Wort ersetzt, gleichgültig in welchem Kontext die Variable steht. Im Gegensatz zu rechtslinearen Grammatiken sind kontextfreie Grammatiken zu innerer Rekursion fähig.
Lutz Priese, Katrin Erk
Kapitel 7. Turing-Maschinen
Zusammenfassung
Endliche Automaten besitzen nur einen einzigen Speicher, der endlich viele verschiedene Informationen speichern kann: Er nimmt jeweils einen Zustand aus einer endlichen Menge K an. Nun sind in der Praxis alle Speicher endlich, und die Menge K kann natürlich beliebig groß werden. Trotzdem haben wir gesehen, dass durch die Beschränkung auf nur diesen einen endlichen Speicher die Berechnungsmöglichkeiten des endlichen Automaten sehr begrenzt sind.
Lutz Priese, Katrin Erk
Kapitel 8. Die Sprachklassen und
Zusammenfassung
Typische kontextsensitive Sprachkonstrukte sind anbncn oder ww, Strukturen, bei denen Zusammenhänge über weite Entfernungen aufrecht erhalten werden müssen. Ein häufig verwendeter Trick in kontextsensitiven Grammatiken sind denn auch „Läufervariablen“, die über das aktuelle Wort laufen und so Information von einem Ende des Wortes zum anderen tragen.
Lutz Priese, Katrin Erk
Kapitel 9. Abschlusseigenschaften von Sprachklassen
Zusammenfassung
In den Kapiteln zu den einzelnen Sprachklassen haben wir schon Abgeschlossenheit oder Nicht-Abgeschlossenheit gegen verschiedene Operationen gezeigt. In diesem Kapitel fassen wir die schon gezeigten Abschlusseigenschaften der Sprachklassen zusammen und zeigen noch einige weitere Abschlüsse.
Lutz Priese, Katrin Erk

Berechenbarkeit

Frontmatter
Kapitel 10. Einleitung
Zusammenfassung
In den vergangenen Kapiteln wurden zunehmend komplexere Klassen von formalen Sprachen vorgestellt. Zu diesen Sprachklassen gehörten immer komplexere Typen von erkennenden Automaten, angefangen von endlichen Automaten über determinierte und indeterminierte Push-Down-Automaten bis zu Turing-Maschinen mit begrenztem Band (linear beschränkten Automaten) oder ohne solche Beschränkung.
Lutz Priese, Katrin Erk
Kapitel 11. Registermaschinen
Zusammenfassung
In diesem und den folgenden Kapiteln versuchen wir, den Begriff der „berechenbaren Funktionen“ besser zu verstehen, indem wir verschiedene abstrakte Modelle des „Berechenbaren“ betrachten. Mit den Turing-Maschinen haben wir schon ein klassisches Modell eingeführt, das aber von Rechnern, wie wir sie kennen, relativ weit entfernt ist. Das drückt sich auch in den Algorithmen aus. Ein gutes Beispiel für einen TM-Algorithmus, der sich so nicht auf andere Berechnungsmodelle übertragen lässt, ist die Addition zweier Unärzahlen in Beispiel 7.2.1: Es wird ein Strich am Ende gelöscht und zwischen die zwei Eingabezahlen geschrieben, und fertig ist die Addition.
Lutz Priese, Katrin Erk
Kapitel 12. Rekursive Funktionen
Zusammenfassung
Sowohl Turing- als auch Registermaschinen sind, wie ihr Name schon sagt, Modelle von Maschinen. Sie nähern sich der Frage danach, was berechenbar ist, von der Seite der berechnenden Automaten. Die Programme, die auf diesen Maschinentypen laufen, müssen speziell auf das jeweilige Modell zugeschnitten sein; das macht sie als allgemeine Problemlösungsstrategien manchmal wenig tauglich.
Lutz Priese, Katrin Erk
Kapitel 13. Unentscheidbare Probleme
Zusammenfassung
In diesem Kapitel geht es um unentscheidbare Probleme. Den Begriff des Problems haben wir in Kap. 2 informell definiert als die Frage, ob eine bestimmte Eigenschaft E auf ein Objekt o aus einer Grundmenge O zutrifft. Wir haben auch angesprochen, dass man ein abzählbares Problem P oft mit einer Sprache LP identifiziert: LP umfasst genau die Objekte o aus O, die die Eigenschaft E haben.
Lutz Priese, Katrin Erk
Kapitel 14. Alternative Berechnungsmodelle
Zusammenfassung
In den vergangenen Kapiteln haben wir verschiedene Berechnungsmodelle kennengelernt, abstrakte Maschinen oder Funktionsmengen, Modelle, die jeweils eine Sichtweise darstellten auf das Notieren und automatisierte Ausführen von Algorithmen. Wir haben uns beschäftigt mit Grammatiken für formale Sprachen, mit verschiedenen Automaten vom endlichen Automaten bis hin zur Turing-Maschine, mit Registermaschinen, die sich unterscheiden danach, welche Befehlssätze sie für ihre Programme zulassen, und mit rekursiven Funktionen.
Lutz Priese, Katrin Erk
Kapitel 15. Komplexität
Zusammenfassung
In der Komplexitätstheorie stellt man sich die Frage nach Zeit- und Platzbedarf von Algorithmen. Gesucht sind mehr oder weniger genaue Abschätzungen, die in Abhängigkeit von der Größe der Eingabe vorhersagen, wieviel Ressourcen die Berechnung verbrauchen wird. Man kann Algorithmen mit ähnlichem Aufwand zu Klassen gruppieren, die sich bezüglich Laufzeit oder Platzbedarf ähnlich verhalten.
Lutz Priese, Katrin Erk
Backmatter
Metadata
Title
Theoretische Informatik
Authors
Lutz Priese
Prof. Dr. Katrin Erk
Copyright Year
2018
Publisher
Springer Berlin Heidelberg
Electronic ISBN
978-3-662-57409-6
Print ISBN
978-3-662-57408-9
DOI
https://doi.org/10.1007/978-3-662-57409-6

Premium Partner