Lehre

Übersicht über alle Veranstaltungen

Theoretische Informatik

Die theoretische Informatik befasst sich mit den mathematischen Grundlagen der Informatik. Die zentralen Themen der Vorlesung sind formale Sprachen, Berechenbarkeit und Komplexitätstheorie.

Formale Sprachen sind das Thema der Vorlesung. Sie dienen der mathematisch präzisen Formulierung der auftretenden Probleme und Fragestellungen. Im Themengebiet formale Sprachen wird untersucht, wie sich formale Sprachen beschreiben und auch erkennen lassen. Dazu werden Grammatiken eingeführt und verschiedene Automatenmodelle zum Erkennen von formalen Sprachen eingeführt. Ein Beispiel für formale Sprachen sind Programmiersprachen. Es wird gezeigt, wie sich einerseits gültige Programme beschreiben lassen und auch andererseits, wie entschieden werden kann, ob ein Quelltext ein gültiges Programm ist.

Im Gebiet der Berechenbarkeit wird der Begriff des Algorithmus mathematisch präzise definiert. Es werden verschiedene Möglichkeiten aufgezeigt, allgemeine Berechnungsmodelle zu definieren. Des weiteren wird untersucht, inwiefern Problemstellungen algorithmisch lösbar sind.

In der Komplexitätstheorie wird untersucht, wie effizient oder schnell sich Probleme durch Algorithmen lösen lassen. es wird der begriff der Laufzeit eines Algorithmus definiert und Probleme auf ihre Schwierigkeit hin untersucht.

Petrinetze

Mit der zunehmenden Tendenz zu parallelen Berechnungen gewinnt auch die Frage nach der formalen Beschreibung und Analyse des Verhaltens von nichtsequentiellen Systemen an Bedeutung. Petrinetze bieten hierbei eine gute graphischen Anschaulichkeit: Die Stellen (passive Komponenten) werden als Kreise, die Transitionen (aktive Komponenten) als Rechtecke und die Flussrelation als Pfeile zwischen diesen dargestellt. In der Vorlesung werden die Platz-Transitionssysteme von C.A. Petri und ihre äquivalente Beschreibung als Verktoradditionssysteme und das automatentheoretische Pendant vorgestellt. Entscheidungsfragen wie Erreichbarkeit und Unbeschränktheit werden untersucht.

Team-Projekt

In diesem Programmierprojekt soll nun eine Software zur Verarbeitung und Visualisierung formaler Sprachen erstellt werden, wobei der Fokus auf den regulären Sprachen liegen soll.

Die Verarbeitung betrifft das Eingeben und Speichern von Sprachbeschreibungen (z.B. als Automat), das Uberführen von einer Beschreibung in eine andere (z.B. Automat hin zu regulärem Ausdruck), sowie das Anwenden elementarer Operationen, wie das Schneiden zweier Sprachen. [read more ...]

Spezielle Kapitel

Ein Überblick über weite Teile der Theoretischen Informatik durch Behandlung der Zusammenhänge zwischen den Formalen Sprachen, Berechenbarkeit und Komplexitätstheorie.

 

Literatur

- K.-J. Lange: Complexity and Structure in Formal Language Theory. Fundamenta Informaticae, 25(3) 327-352, 1996. Structures '93, 4070 (1993), 224-238.

Berechenbarkeit

Aufbauend auf den in der Vorlesung "Theoretische Informatik" gelegten Grundlagen werden Eigenschaften des Berechenbarkeitsbegriffes behandelt. Die behandelten Inhalte sind:

Literatur

H. Rogers: Theory of Recursive Functions and Effective Computability. McGraw-Hill, 1967.

J. Hopcroft, J. Ullmann: Introduction to Automata Theory, Languages and Computation. Addison-Wesley, 1975.

Datenkompression

Fast jeder, der einen Computer verwendet, benutzt bewusst oder unbewusst Komprimierungsverfahren: Bewusst etwa zur Archivierung von Dateien um deren Speicherbedarf zu senken, unbewusst durch Verwendung von Standarddateiformaten, die vordefinierterweise Datenkompression vorsehen. Diese Veranstaltung bietet eine Einführung in die Grundlagen der Datenkompression und der häufig verwendeten Algorithmen. [read more ...]

Formale Sprachen

Ein Grundelement der Theorie Formaler Sprachen ist die endliche Beschreibung potentiell unendlicher Mengen von Wörtern, sogenannten formalen Sprachen. Diese treten als formale Beschreibung von Problemen, Funktionen oder sonstiger Objekte auf. [read more ...]

Algorithmische Geometrie

Obwohl einfache Schnittprobleme, z.B. zwischen Geraden in der Ebene, vom mathematischen Standpunkt aus nicht interessant sind, treten jedoch beim Schnitt von tausenden von Geraden Effizienzprobleme auf, zu deren Behandlung spezielle Algorithmen erforderlich sind. [read more ...]

Komplexitätstheorie

Die Veranstaltung gibt einen Einblick in die klassische Komplexitätstheorie. Die aus der Informatik 3 bekannten Begriffe des Ressourcenverbrauchs und der Reduktion werden nochmal motiviert, wiederholt und vertieft. [read more ...]

Model Checking

This course deals about a verification technique called model checking (MC). In MC, one is interested in gaining absolute certainty in properties holding for some systems. Systems can be hard or software and have to be modeled in order to treat them. Properties which are tested for are formulated in temporal logic.

A MC algorithm tests if a model satisfies some temporal logic formular. These algorethims are the main topic of this course.