Theoretischen Informatik
für Studierende der Angewandten Informatik
Sommersemester 2007
Beate Bollig
Termine
|
Wann? |
Wo? |
Wer? |
| Vorlesung: |
Di 8:00 - 10:00 |
OH 14, E 23 |
Beate Bollig |
| Vorlesung: |
Do 10:00 - 12:00 |
OH 14, E 23 |
Beate Bollig |
| Übung: |
Mi 10:00 - 12:00 |
GB IV, SR 113 |
Timm Euler |
| Übung: |
Fr 10:00 - 12:00 |
GB IV, SR 126 |
Timm Euler |
| Übung: |
Fr 12:00 - 14:00 |
OH 14, SR 304 |
Robin Nunkesser |
Die erste Vorlesung findet am 3. April 2007 statt.
Der Übungsbetrieb beginnt in der zweiten Vorlesungswoche.
Die Einteilung in die Übungsgruppen findet Ihr
hier
.
Inhalt
Die Vorlesung „Theoretische Informatik für Studierende der Angewandten Informatik "
bietet eine Einführung in die theoretische Informatik unter besonderer Berücksichtigung
anwendungsbezogener Aspekte.
Zentrale Teilgebiete der theoretischen
Informatik werden behandelt: Komplexitätstheorie, Entscheidbarkeitstheorie,
Automatentheorie, Grammatiken, Syntaxanalyse und lineare Programmierung.
Zunächst wird diskutiert, wie sich die
algorithmische Komplexität eines Problems definieren lässt.
Darunter verstehen wir die Mindestressourcen (wie Rechenzeit), um ein Problem
zu lösen.
Es müssen
hier alle denkbaren Algorithmen für ein Problem betrachtet werden. Es zeigt
sich, dass eine derartige Theorie unabhängig vom verwendeten Rechnertyp und von
der verwendeten Programmiersprache möglich ist.
Für die meisten wichtigen Optimierungsprobleme
gibt es einen trivialen Algorithmus mit exponentieller Laufzeit. Er probiert
einfach alle möglichen Lösungen aus und wählt eine optimale Lösung.
Für sehr
viele dieser Probleme können wir zeigen, dass es entweder für sie alle
effiziente Algorithmen gibt oder für sie alle keine effizienten Algorithmen
gibt. Die Vermutung, dass die zweite Alternative wahr ist, beruht auf der
NP-ungleich-P-Hypothese. Diese Hypothese stammt aus der
NP-Vollständigkeitstheorie, dem wohl wichtigsten Teilgebiet der theoretischen
Informatik. Diese Theorie wird vorgestellt, wobei ein neuer Zugang gewählt
wird, in dem Randomisierung als Schlüsselkonzept aufgefasst wird.
In der Entscheidbarkeitstheorie wird untersucht,
welche Probleme algorithmisch nicht lösbar sind. Dazu gehören so wichtige
Probleme wie die Verifikation von Programmen und die Entscheidung, ob zwei
Grammatiksysteme dieselbe Programmiersprache beschreiben. Für die Praxis ergibt
sich die Konsequenz, nach Algorithmen für wichtige Spezialfälle zu suchen.
Endliche Automaten modellieren Schaltwerke,
Rechnerkomponenten und Rechner mit beschränktem Speicher ebenso wie
Cola-Automaten. Die Behandlung endlicher Automaten ist grundlegend für die
Synthese und Analyse von Rechnern, die Verifikation von Hardwarekomponenten,
den Entwurf von CAD-Werkzeugen und vieles andere.
Die Syntax von Programmiersprachen wird durch
Grammatiken beschrieben. Grammatiken sollten einerseits komfortabel sein, um
Programmkonstrukte elegant zu unterstützen. Andererseits ist es notwendig, dass
der Test der syntaktischen Korrektheit, die syntaktische Zerlegung und die Compilierung
effizient möglich sind. Dazu muss die Klasse der erlaubten Grammatiksysteme
genügend eingeschränkt sein. Es wird gezeigt, warum kontextfreie Grammatiken
und ihre Einschränkungen als Grundlage von Programmiersprachen geeignet sind.
In der theoretischen Informatik wird häufig von realen Problemen
abstrahiert, um beweisbare Aussage zu erhalten. Viele der Aussagen in
der Vorlesung sind negative Aussagen, etwa dass es für ein Problem
keinen Algorithmus gibt. Auch eine solche Aussage ist für die
Praxis relevant, da man sich die Zeit für die Suche nach
einem Algorithmus, den es nicht gibt, sparen kann. Andererseits sind
die Zwischenschritte, um zu solchen Aussagen zu kommen, an vielen
Stellen abstrakter als in früheren Vorlesungen, was eine der neuen
Schwierigkeiten beim Verständnis der Vorlesung ist.
Eine andere Schwierigkeit besteht darin, dass für die exakte
Formulierung von Aussagen formalere Schreibweisen erforderlich sind.
Insbesondere die Übungen sollen dabei helfen, im Umgang mit diesen
formalen Schreibweisen Routine zu bekommen.
Literatur zur Vorlesung
Die Vorlesung richtet sich im Wesentlichen nach den folgenden Büchern:
Blum, N. (2004).
Algorithmen und Datenstrukturen - eine anwendungsorientierte Einführung.
(Kapitel 8, insbesondere Kapitel 8.1 und Kapitel 8.2)
Oldenbourg.
Wegener, I. (2003).
Komplexitätstheorie - Grenzen der Effizienz von Algorithmen.
(Kapitel 2-6)
Springer Verlag.
Wegener, I. (1999).
Theoretische Informatik - eine algorithmenorientierte Einführung.
2. Auflage, Teubner Verlag.
Anmerkung: Die 1. Auflage unterscheidet sich nicht wesentlich
von der 2. Auflage.
Für Kapitel 5 der Vorlesung, Lineare Programmierung, siehe zum Thema
Randomisiertes Runden auch:
Hromkovic, J. (2004).
Randomisierte Algorithmen.
(Kapitel 7.3 und 7.4)
Teubner Verlag.
Das folgende Buch ergänzt den Vorlesungsinhalt, indem die wesentlichen Ideen
der Kapitel 2-4 der Vorlesung (Entscheidbarkeitstheorie, Endliche Automaten, Grammatiken und
Syntaxanalyse) und teilweise des Kapitels 1 (Komplexitätstheorie)
umgangssprachlich dargestellt werden:
Wegener, I. (1996).
Kompendium der Theoretischen Informatik - eine Ideensammlung.
Teubner Verlag.
In dem Bereich Grundlagen der Theoretischen Informatik existieren eine Vielzahl
weiterer guter Lehrbücher.
Ein gut geschriebenes Lehrbuch, in dem ähnlich
wie in der Vorlesung eine algorithmenorientierte Sichtweise verfolgt wird, ist das folgende:
Hromkovic, J. (2001).
Algorithmische Konzepte der Informatik -
Berechenbarkeit, Komplexitätstheorie, Algorithmik, Kryptographie.
Teubner Verlag.
Dieses Buch deckt jedoch nicht den ganzen Vorlesungsinhalt ab.
Einen gute Einführung in das Gebiet Automatentheorie und Formale Sprachen findet
sich auch in dem folgenden Buch.
Schöning, U. (1997).
Theoretische Informatik - kurzgefasst.
Spektrum Akademischer Verlag.
Weitere Literatur kann bei Bedarf bei der Dozentin
nachgefragt werden.
Inhalt der Vorlesung
Die Vorlesung folgt der TIfAI-Vorlesung SoSe 2006 von Detlef Sieling.
Die Folien der jeweils aktuellen Vorlesung sowie der
vergangenen Vorlesungen findet Ihr
hier
. Dort findet Ihr ebenfalls eine Liste der wichtigsten in der
Vorlesung benutzten Abkürzungen, sowie die Tests, die in der Vorlesung
gemacht worden sind.
- 03.4.2007: Überblick über die Vorlesung, Beispielproblem
Partition, Begriffe Problem und Sprache, Vergleich von
Entscheidungs- und Suchproblemen
- 05.4.2007: Registermaschinen, algorithmische Komplexität,
Turingmaschinen, Sonderrolle polynomieller Rechenzeiten
- 10.4.2007: Komplexitätsklasse P, Einführung randomisierter Algorithmen,
Beispielalgorithmen, Komplexitätsklassen bezüglich
randomisierter Algorithmen
- 12.4.2007: Fortsetzung Komplexitätsklassen für randomisierte Algorithmen,
Probability Amplification, Zusammenhang zwischen den
Komplexitätsklassen
- 17.4.2007: Fortsetzung Zusammenhänge zwischen den Komplexitätsklassen
für Entscheidungsprobleme, Nichtdeterminismus, Komplexitätsklasse NP
- 19.4.2007: Algorithmische Ähnlichkeit von Problemen, Turing-Reduktionen,
Entscheidungsvariante eines Problems versus Optimierungsvariante
- 24.4.2007: Fortsetzung Turing-Reduktionen zwischen verschiedenen Varianten
eines Problems und zwischen verwandten Problemen, Turing-Reduktionen
zwischen nicht verwandten Problemen
- 26.4.2007: Polynomielle Reduktionen als Spezialfall von Turing-Reduktionen,
NP-Vollständigkeit, verschiedene Sichtweisen auf die
Komplexitätsklasse NP, stereotype TMs
- 03.5.2007: Simulation von TMs durch stereotype TMs, Satz von Cook,
polynomielle Reduktion von 3SAT auf SSS
- 08.5.2007: Korrektheitsbeweis der polynomiellen Reduktion von 3SAT auf SSS,
NP-Vollständigkeitsbeweise für das Rucksackproblem,
Partition, Bin Packing, Sequencing with Intervals,
Teilgraphenisomorphie und Graphfärbbarkeit
- 10.5.2007: Entscheidbarkeitstheorie: Universelle Turigmaschine,
Turing-Berechenbarkeit, rekursive und rekusiv aufzählbare
Probleme, churche These, Halteproblem, Diagonalsprache,
universelle Sprache, spezielles Halteproblem
Satz von Rice
- 15.5.2007: Wiederholung Satz von Rice, Abschlusseigenschaften rekursiver und
rekursiv aufzählbarer Sprachen, postsches Korrespondenzproblem (PKP),
Reduktion von MPKP auf PKP, Reduktion des Halteproblems auf MPKP
- 22.5.2007: Korrektheit Reduktion des Halteproblems auf MPKP,
Einführung endliche Automaten
- 24.5.2007: Pumping-Lemma für reguläre Sprachen, Minimierung von DFAs
- 29.5.2007: Fortsetzung Minimierung DFAs, Satz von Nerode, Definition NFAs
- 31.5.2007: Beispiele NFAs, (verbesserte) Potenzmengenkonstruktion, Leerheits- und
Vollständigkeitsproblem für DFAs und NFAs
- 05.6.2007: Abschlusseigenschaften für DFAs und NFAs,
reguläre Ausdrücke
- 12.6.2007: Zusammenfassung reguläre Sprachen, Grammatiken, Chomsky-Hierarchie,
rekursiv aufzählbare Sprachen und Chomsky-0-Sprachen,
reguläre Sprachen und Chomsky-3-Sprachen
- 14.6.2007: kontextfreie Sprachen, Chomsky-Normalform,
- 19.6.2007: Cocke-Younger-Kasami-Algorithmus für das Wortproblem,
Pumping-Lemma für kontextfreie Sprachen, Ogdens Lemma
- 21.6.2007: Entfernen nutzloser Variablen, Leerheits- und Endlichkeitstest,
Abschlusseigenschaften und Unentscheidbarkeitsresultate
für kontextfreie Sprachen, Chomsky-1-Sprachen, Überblick
über Sprachklassen der Chomsky-Hierarchie
- 26.6.2007: Greibach-Normalform, nichtdeterministische Kellerautomaten (NPDAs)
mit verschiedenen Akzeptierungsmöglichkeiten,
NPDAs und kontextfreie Sprachen
- 28.6.2007: Wiederholung Tripelkonstruktion, Korrektheit Tripelkonstruktion,
LR(k)-Grammatiken und LR(k)-Parser
- 03.7.2007: Wiederholung LR(k)-Parser,
Einführung lineare Programmierung, geometrische Grundlagen
- 05.7.2007: Grundlagen der linearen Programmierung, Simplex-Algorithmus
- 10.7.2007: Fortsetzung Simplex-Algorithmus, Randomisiertes Runden
- 12.7.2007: Zusammenfassung, Lösungen der Selbsttests, Wunschkonzert
Übungen
Die aktuellen Übungsblätter werden jeweils bis zur Vorlesung am
Dienstag
hier
bereitgestellt.
Die Bearbeitungen können bis zur darauffolgenden
Woche (bis Montag 12:00 Uhr) abgegeben werden.
Prüfungen
Prüfungsgrundlage ist der Inhalt der TIfAI-Veranstaltung des Sommersemesters 2007.
Die Anmeldung für Prüfungstermine beginnt
vier Wochen vor dem jeweiligen Prüfungstermin um 10 Uhr bei mir persönlich.
Die PrüfungskandidatInnen bringen einen ausgefüllten und unterschriebenen
Anmeldebogen mit. Fernmündliche, sowie elektronische
Anmeldungen sind leider nicht möglich.
Die Prüfungstermine werden am ersten Tag des Anmeldezeitraums
bevorzugt an Hörerinnen und Hörer
meiner Veranstaltung vergeben. Bleiben Termine frei, werden diese am nächsten
Tag für alle freigegeben.
Geplante Prüfungstage in der vorlesungsfreien Zeit:
18.7.2007
21./22.8.2007
12.9.2007
10.10.2007
Danach werden im Abstand von 4-6 Wochen weitere Prüfungstermine angeboten.
Eine (unvollständige) Liste mit möglichen Prüfungsfragen hat
Detlef Sieling
hier
bereitgestellt.
28.8.2007 - Beate
Bollig