Proseminar Effiziente Algorithmen

Dozent: Prof. Dr. Christian Scheideler

Zeit und Ort: Donnerstag, 11:15-12:45, über BBB

Inhalt

Ziel des Proseminars ist es, zu lernen, wie die in der Vorlesung "Datenstrukturen und Algorithmen" vorgestellten Methoden verwendet und erweitert werden können, um algorithmische Probleme, die im renommierten International Collegiate Programming Contest (ICPC) erschienen sind, lösen zu können. Dazu wird es wöchentliche Treffen geben, in denen jeweils eine bestimmte Klasse von Problemen behandelt wird. Weiterhin werden einige dieser Probleme pro Treffen als Hausaufgabe aufgegeben, die von studentischen Teams bestehend aus bis zu 3 Leuten gelöst werden müssen. Jedes Team muss am Ende des Kurses einen der ICPC Wettbewerbe aufarbeiten und die Lösungen in einem Treffen präsentieren. Dabei reicht es, wenn ein Team bestehend aus k Mitgliedern 2k der Probleme eines ICPC Wettbewerbs auswählt.

Schein

Einen Schein bekommt, wer regelmäßig am Proseminar teilnimmt, mindestens 60% der Probleme korrekt gelöst hat, und am Ende mindestens 50% der Punkte für die Lösung und Präsentation der ausgewählten ICPC Probleme bekommen hat. Die Endnote ergibt sich über die finale Punktzahl. Dabei gibt es für jede korrekt gelöste Hausaufgabe 1 Punkt und für jede korrekte und gut vorgestellte Lösung eines ICPC-Problems in der Präsentationsphase 2 Punkte. Für jedes ICPC-Problem ist die Wertung wie folgt:

  • 0 Punkte: Problem ist nicht gelöst worden.
  • 1 Punkt: Lösungsweg ist richtig, aber die Präsentation war schwer nachzuvollziehen oder die Implementierung ist nicht akzeptiert worden.
  • 2 Punkte: Lösungsweg ist richtig, die Präsentation war gut nachzuvollziehen, und die Implementierung ist akzeptiert worden.

Übersicht über die Themen

ICPC Wettbewerbe

Einige Beispiele sind:

Alle Wettbewerbe können auf der Webseite https://icpcarchive.ecs.baylor.edu gefunden werden. Klickt man auf einen Wettbewerb, wird auch mitgeteilt, wie schwer die Probleme sind, so dass das helfen sollte, einen geeigneten Wettbewerb auszuwählen.

Übungsaufgaben

  • Aufgabe 1 (Abgabe 5.11.): 201 Squares
  • Aufgabe 2 (Abgabe 12.11.): 443 Humble Numbers
  • Aufgabe 3 (Abgabe 19.11.): 10132 File Fragmentation
  • Aufgabe 4 (Abgabe 26.11.): 855 Lunch in Grid City
  • Aufgabe 5 (Abgabe 3.12.): 701 The Archeologist's Dilemma oder 12024 Hats
  • Aufgabe 6 (Abgabe 10.12.): 10110 Light, More Light
  • Aufgabe 7 (Abgabe 17.12.): 125 Numbering Paths
  • Aufgabe 8 (Abgabe 6.1.): 318 Domino Effect
  • Aufgabe 9 (Abgabe 21.1.): 10003 Cutting Sticks

Die Probleme können unter http://www.cs.uleth.ca/%7Echeng/contest/hints.html nachgeschlagen und über http://uva.onlinejudge.org/index.php eingereicht werden. Die Programme müssen zusammen mit der Bestätigung des Servers, dass sie akzeptiert worden sind, und den Namen der Gruppenmitglieder bis spätestens zum angegebenen Abgabetag um 10:00 Uhr per Email an den Dozenten geschickt werden (der Zeitstempel der Email zählt).

Hilfsmittel