Wahlpflichtvorlesung

Effiziente Algorithmen und Komplexitätstheorie

Sommersemester 2007

Thomas Jansen


[Termine] [Zusammenfassung] [Übungen] [Folien] [Skript] [Diskussionsforum]


Termine

Vorlesungsbeginn 02.04.2007
Übungsbeginn 03.04.2007


Wann? Wo? Wer?
Vorlesung mo 10.15—11.45 O-H 14, HS E 23 Thomas Jansen
Vorlesung do 12.15—13.45 O-H 14, HS E 23 Thomas Jansen
Übung di 10.00—11.30 O-H 16, E 07 Dirk Sudholt
Übung mi 10.15—11.45 O-H 14, 304 Carsten Witt
Übung mi 12.15—13.45 GB IV, 126 Cengizhan Yücel
Übung mi 14.15—15.45 GB IV, 126 Cengizhan Yücel


Zusammenfassung

Es gibt kaum einen Bereich der Informatik, der ohne Algorithmen auskommt. Auch im Grundstudium der Informatik sind sie fest verankert: in DAP 2 werden viele grundlegende Algorithmen vorgestellt, davon viele effiziente Algorithmen. In GTI bzw. TIfAI werden Grenzen der Möglichkeit, solche effizienten Algorithmen zu entwickeln, ausgelotet. Obwohl das Thema schon seit vielen Jahren intensiv behandelt wird, ist es immer noch sehr aktuell.

Es gibt viele Gründe, sich für diese Vorlesung zu interessieren. Neben den offensichtlichen Vorteilen, welche die Kenntnis effizienter Algorithmen und vor allem Entwurfstechniken für effiziente Algorithmen mit sich bringt, kann man anführen, dass die Algorithmik, ein Teilgebiet der theoretischen Informatik, wegen ihrer immensen praktischen Bedeutung mit gutem Recht als eines der praktischsten Teilgebiete der theoretischen Informatik bezeichnet werden kann. Sie darum das Potenzial, manchem, der Theorie eher skeptisch begegnet, einen gelungenen Einstieg in ein großes und spannendes Forschungsgebiet zu bieten.

Man kann Algorithmen auf verschiedene Arten systematisieren und darstellen. Wir werden hier eine Dreiteilung vornehmen. Im ersten Teil der Vorlesung werden wir uns mit effizienten Algorithmen im engeren Sinn beschäftigen und diskutieren Probleme, für die es deterministische Algorithmen gibt, die auch im Worst Case eine optimale Lösung in Polynomialzeit berechnen. Lässt sich ein Problem nicht so lösen, findet man häufig trotzdem im Worst Case in polynomieller Zeit Lösungen, die zwar nicht optimal sind, die aber eine optimale Lösung mit garantierter Mindestgüte approximieren. Solche Approximationsalgorithmen, sowohl deterministische als auch randomisierte, sind Gegenstand des zweitens Teils der Vorlesung. Findet man weder optimale Lösungen noch gute Approximationen in zufriedenstellender Zeit, kann man versuchen, heuristische Algorithmen zur Problemlösung einzusetzen. Vor allem mit randomisierten Suchheuristiken werden wir uns darum im dritten Teil der Vorlesung auseinandersetzen. In diesem Teil besprechen wir auch das Simplex-Verfahren, dass trotz exponentieller Worst-Case-Rechenzeit das Problem der linearen Programmierung in der Praxis oft schnell optimal löst. In der restlichen Zeit nehmen wir uns die Freiheit, ausgewählte Themen zu betrachten, die spannend und praktisch relevant sind, die zur Allgemeinbildung in der Informatik gehören und in anderen Vorlesungen vielleicht keine Erwähnung gefunden haben.

Zur Vorlesung wird ein Skript erscheinen, das allerdings nicht als Grundlage zum eigenständigen Studium und Ersatz für die Vorlesung gedacht ist. Es enthält kaum Beispiele, Bilder und anschauliche Erklärungen, diese werden in der Vorlesung präsentiert, man findet sie in den Folien, die vorlesungsbegleitend verfügbar gemacht werden. Zusammen mit diesen Folien erlaubt es das konzentrierte Zuhören, ohne mitschreiben zu müssen.


Übungen

Vorlesungsbegleitend finden Übungen statt, die regelmäße aktive Teilnahme an einer Übungsgruppe wird dringend empfohlen. In den Übungen können Fragen zur Vorlesung diskutiert werden, außerdem gibt es regelmäßig Übungsaufgaben, die zu Hause gelöst und deren Lösungen in den Übungsgruppen präsentiert werden sollen. Informationen zur Organisation und dem Ablauf der Übungen sowie der Ausgabe der Übungsblätter findet man auf dem ersten Übungsblatt.

  • Blatt 1 (Ausgabe am 02.04.2007, keine Abgabe, Besprechung am 03./04.04.2007)
  • Blatt 2 (Ausgabe am 02.04.2007, Abgabe am 05.04.2007, Besprechung am 10./11.04.2007)
  • Blatt 3 (Ausgabe am 05.04.2007, Abgabe am 16.04.2007, Besprechung am 17./18.04.2007)
  • Blatt 4 (Ausgabe am 16.04.2007, Abgabe am 23.04.2007, Besprechung am 24./25.04.2007)
  • Blatt 5 (Ausgabe am 23.04.2007, Abgabe am 30.04.2007, Besprechung am 02.05.2007)
  • Blatt 6 (Ausgabe am 30.04.2007, Abgabe am 07.05.2007, Besprechung am 08./09.05.2007)
  • Blatt 7 (Ausgabe am 07.05.2007, Abgabe am 14.05.2007, Besprechung am 15./16.05.2007)
  • Blatt 8 (Ausgabe am 14.05.2007, Abgabe am 21.05.2007, Besprechung am 22./23.05.2007)
  • Blatt 9 (Ausgabe am 21.05.2007, Abgabe am 24.05.2007, Besprechung am 29./30.05.2007)
  • Blatt 10 (Ausgabe am 24.05.2007, Abgabe am 04.06.2007, Besprechung am 05./06.06.2007)
  • Blatt 11 (Ausgabe am 04.06.2007, Abgabe am 11.06.2007, Besprechung am 12./13.06.2007)
  • Blatt 12 (Ausgabe am 11.06.2007, Abgabe am 18.06.2007, Besprechung am 19./20.06.2007)
  • Blatt 13 (Ausgabe am 18.06.2007, Abgabe am 25.06.2007, Besprechung am 26./27.06.2007)
  • Blatt 14 (Ausgabe am 25.06.2007, Abgabe am 02.07.2007, Besprechung am 03./04.07.2007)
  • Blatt 15 (Ausgabe am 02.07.2007, Abgabe am 09.07.2007, Besprechung am 10./11.07.2007)


Folien

Hier gibt es die die in der Vorlesung verwendeten Folien zum Nachschlagen. Sie sind als Skriptergänzung zu verstehen und sollen dazu einladen, in der Vorlesung weniger zu schreiben und mehr zu hören. Die großen Fassungen enthalten alle schrittweisen Einblendungen, die anderen Fassungen sind zum Ausdruck geeignet. Korrigierte Fassungen gibt es immer nach den Vorlesungen, das Datum der letzten Aktualisierung ist vermerkt.

Auf besonderen Wunsch gibt es die Folien auch noch jeweils in zwei "kleineren" Versionen, nämlich mit zwei bzw. vier logischen Seiten auf einer physikalischen Seite. Die Dateien werden mit einem kleinen Script erstellt, das hoffentlich meistens funktioniert. Ihr findet sie direkt im Folienverzeichnis, die Dateinamen sind hoffentlich selbsterklärend.

  1. 02.04.2007 (0,41MB) (lang (1,87MB)) (Version vom 02.04.2007)
  2. 05.04.2007 (0,33MB) (lang (2,98MB)) (Version vom 05.04.2007)
  3. 12.04.2007 (0,48MB) (lang (0,76MB)) (Version vom 12.04.2007)
  4. 16.04.2007 (0,53MB) (lang (4,88MB)) (Version vom 17.04.2007)
  5. 19.04.2007 (0,52MB) (lang (4,76MB)) (Version vom 22.04.2007)
  6. 23.04.2007 (0,53MB) (lang (3,95MB)) (Version vom 23.04.2007)
  7. 26.04.2007 (0,48MB) (lang (4,22MB)) (Version vom 26.04.2007)
  8. 30.04.2007 (0,45MB) (lang (5,30MB)) (Version vom 30.04.2007)
  9. 03.05.2007 (0,38MB) (lang (3,12MB)) (Version vom 04.05.2007)
  10. 07.05.2007 (0,42MB) (lang (2,36MB)) (Version vom 07.05.2007)
  11. 10.05.2007 (0,42MB) (lang (4,37MB)) (Version vom 10.05.2007)
  12. 14.05.2007 (0,64MB) (lang (4,54MB)) (Version vom 14.05.2007)
  13. 21.05.2007 (0,50MB) (lang (3,41MB)) (Version vom 21.05.2007)
  14. 24.05.2007 (0,61MB) (lang (4,59MB)) (Version vom 24.05.2007)
  15. 31.05.2007 (0,75MB) (lang (4,56MB)) (Version vom 31.05.2007)
  16. 04.06.2007 (0,78MB) (lang (6,65MB)) (Version vom 04.06.2007)
  17. 11.06.2007 (0,79MB) (lang (6,52MB)) (Version vom 11.06.2007)
  18. 14.06.2007 (0,21MB) (lang (1,55MB)) (Version vom 26.06.2007)
  19. 18.06.2007 (0,64MB) (lang (4,21MB)) (Version vom 18.06.2007)
  20. 21.06.2007 (0,57MB) (lang (4,71MB)) (Version vom 21.06.2007)
  21. 25.06.2007 (0,33MB) (lang (2,23MB)) (Version vom 25.06.2007)
  22. 28.06.2007 (0,71MB) (lang (5,39MB)) (Version vom 28.06.2007)
  23. 02.07.2007 (0,56MB) (lang (4,76MB)) (Version vom 02.07.2007)
  24. 05.07.2007 (0,32MB) (lang (2,43MB)) (Version vom 05.07.2007)
  25. 09.07.2007 (0,31MB) (lang (1,22MB)) (Version vom 12.07.2007)
  26. 12.07.2007 (0,19MB) (lang (0,76MB)) (Version vom 12.07.2007)


Skript

Ein Skript zur Vorlesung entstand vorlesungsbegleitend. Es gibt hier jetzt nur noch die Gesamtfassung, die alle aktuellen Fassungen enthält, sie datiert auf dem 6.11.2007.


oben

last change: 6.11.2007