TU BRAUNSCHWEIG
| Carl Friedrich Gauß Faculty | Department of Computer Science
Informatikzentrum

Mathematische Methoden der Algorithmik

SemesterWinter 2018/2019 [ Other terms: · Winter 17/18 · Winter 16/17 · Winter 15/16 · Winter 14/15 · Winter 13/14 · Winter 12/13 · Winter 11/12 · Winter 10/11 · Winter 09/10 · Winter 08/09 ]
ProgrammesMaster Wirtschaftsinformatik, Master Informations-Systemtechnik, Master Informatik
IBR Group(s)ALG (Prof. Fekete)
TypeVorlesung/Übung
Lecturer
PhotoProf. Dr. Sándor P. Fekete
Abteilungsleiter
s.fekete[[at]]tu-bs.de
+49 531 3913111
Room 335
Assistant
PhotoDominik Krupke
Wissenschaftlicher Mitarbeiter
krupke[[at]]ibr.cs.tu-bs.de
+49 531 3913116
Room 315
Hiwi
PhotoAlexander Hill
Studentische Hilfskraft
Algorithmen und Datenstrukturen
ahill[[at]]ibr.cs.tu-bs.de
Credits5
Hours2+1+1
Time & Place Lecture: Tuesday, 15:00-16:30, PK 2.1,
Big Tutorial: Monday, 15:00-16:30 (biweekly), SN 19.7
Small Tutorial: Tuesday, 9:45-11:15 (biweekly), IZ 160
Start Expected starting dates:
First lecture: 23. October 2018
First big tutorial: 29. October 2018
First small tutorial: 20. November 2018
Prerequisitesnone
Certificates

Studienleistung: 50 percent of the homework.

''Prüfungsleistung'': Mündliche Prüfung oder Klausur.

Content

The topic is linear and integer programming. Besides the theoretical basics, the students learn to model problems as such programs and how to solve them:

  1. Linear optimization
  2. Simplex algorithm
  3. Duality
  4. Integer optimization
Schedule
[ Subscribe Calendar | Download Calendar ]
DateDescription
23.10.2018, 15:00 Uhr1. Vorlesung (SN19.7)
29.10.2018, 15:00 Uhr1. Große Übung: Modell.+Lösen von LPs/IPs mit SW (SN19.7)
30.10.2018, 15:00 Uhr2. Vorlesung (SN19.7)
06.11.2018, 15:00 Uhr3. Vorlesung (SN19.7)
12.11.2018, 15:00 Uhr2. Große Übung: Branch and Bound (SN19.7)
13.11.2018, 15:00 Uhr4. Vorlesung (SN19.7)
20.11.2018, 09:45 Uhr1. Kleine Übung (160)
20.11.2018, 15:00 Uhr5. Vorlesung (PK2.1)
26.11.2018, 15:00 Uhr3. Große Übung: Lineare Algebra mit NumPy (SN19.7)
27.11.2018, 15:00 Uhr6. Vorlesung (PK2.1)
04.12.2018, 09:45 Uhr2. Kleine Übung (160)
04.12.2018, 15:00 Uhr7. Vorlesung (PK2.1)
10.12.2018, 15:00 Uhr4. Große Übung: Alles dualisieren (SN19.7)
11.12.2018, 15:00 Uhr8. Vorlesung (PK2.1)
18.12.2018, 09:45 Uhr3. Kleine Übung (160)
07.01.2019, 15:00 Uhr5. Große Übung (Faellt aus: Krupke @ALENEX, USA) (SN19.7)
08.01.2019, 15:00 Uhr10. Vorlesung (PK2.1)
15.01.2019, 09:45 Uhr4. Kleine Übung (160)
15.01.2019, 15:00 Uhr11. Vorlesung (PK2.1)
21.01.2019, 15:00 Uhr6. Große Übung (SN19.7)
22.01.2019, 15:00 Uhr12. Vorlesung (PK2.1)
29.01.2019, 09:45 Uhr5. Kleine Übung (160)
29.01.2019, 15:00 Uhr13. Vorlesung (PK2.1)
References
  1. Matousek and Gärtner: Understanding and Using Linear Programming (Springer). Dieses Buch ist die von uns empfohlene Begleitliteratur zur Vorlesung.
  2. Ein Skript aus dem Wintersemester 2008/09 (Dieses Skript stimmt an einigen Stellen nicht mehr vollständig mit der Vorlesung überein.)
  3. A. Schrijver: Theory of Linear and Integer Programming, Wiley-Interscience Series in Discrete Mathematics and Optimization, John Wiley & Sons, 1998 (s-tlip-98, BibTeX)
  4. V. Chvátal: Linear Programming, Series of Books in the Mathematical Sciences, W.H. Freeman, 1983 (c-lp-83, BibTeX)
  5. Einführung in die Mathematische Optimierung - Burkard und Zimmermann Freier Zugang im Uni-Netzwerk.
  6. B. Korte and J. Vygen: Combinatorial Optimization: Theory and Algorithms, Algorithms and Combinatorics, Springer, 2005 (kv-cota-05, BibTeX)
  7. Dieses Buch ist aber eher als Nachschlagewerk zu betrachten. Für den Einstieg sind obige Bücher vermutlich besser geeignet.
  8. Viele der umfassenden Einstiegswerke für Informatiker enthalten ein Kapitel zu Linear Programming. z.B. Introduction to Algorithms - Cormen et al.

Aktuelles

  • Es besteht vermutlich die Möglichkeit die große und die kleine Übung in den selben Slot zu verlegen um Konflikte mit anderen Vorlesungen zu vermeiden. Die erste große Übung wird noch nach Plan stattfinden. In dieser wird diese Option diskutiert werden.
  • Die große und kleine Übung werden nicht verlegt sondern in ihren ursprünglichen Slots bleiben.
  • Bei der Angabe des Raumes der kleinen Übung ist ein Fehler unterlaufen. Die kleinen Übungen finden im IZ160 und nicht im IZ161 statt.
  • Der Raum für die Vorlesung wird vom SN19.7 auf den PK2.1 verlegt. Der Raum für die große Übung bleibt der SN19.7

Übung

Habt ihr euch schon mal gefragt wie eigentlich die Gruppeneinteilungen für das SEP optimiert werden? Wir werden gleich zu Begin eine Einführung in die Modelierung und Lösung von 'Alltagsproblemen' mittels Linear und Integer Programming geben ohne konkret zu verstehen, wie der Lösungsvorgang selbst funktioniert (das werden wir im Laufe der Vorlesung lernen). Wir werden die Linear Algebra Grundlagen praktisch mit Python Numpy auffrischen. Mit den Grundlagen werdet ihr dann in der zweiten Hälfte einen einfachen Linear Programming Solver selber programmieren. Die Übungen und Hausaufgaben werden also nicht nur den theoretischen Inhalt der Vorlesungen vertiefen, sondern euch auch der praktischen Anwendung näher bringen. Übungen und Hausaufgaben wurden in Zusammenarbeit mit einem Studenten der die Vorlesung letztes Mal gehört hat (und natürlich eigener Erfahrung) überarbeitet um die Verständlichkeit und Struktur zu verbessern. Wir hoffen so euch die best mögliche Lernerfahrung in Theorie und Praxis zu geben. Egal ob ihr eher an Theorie (Mathematische Optimierung) oder Praxis (Operations Research) interessiert seid, wir haben beides.

    Hausaufgaben

    Es wird fünf Hausaufgaben mit jeweils zwei Wochen Bearbeitungszeit geben. Es müssen am Ende mindestens 50% der Punkte erreicht worden sein, wobei es aber unerheblich ist ob ihr 50% oder 100% habt. Dies erlaubt euch auch mal Aufgaben auszulassen, falls ihr gerade zu viel um die Ohren habt. Es ist jedoch sehr zu empfehlen, alle Aufgaben vor der Prüfung verstanden zu haben.

    Mailingliste

    Es gibt eine Mailingliste zu dieser Vorlesung, in der ihr euch eintragen solltet wenn ihr über die Vorlesung informiert werden wollt. Ihr könnt euch jederzeit wieder austragen, falls ihr euch umentscheidet. Bei Problemen bitte an Dominik Krupke wenden.

    Hinweise zu LP-Lösern

    Im Laufe des Kurses werden einige Aufgaben zu CPLEX (eventuell nutzen wir eine Open Source Alternative) gestellt. Jedoch kann man diese Aufgaben mit jedem oben genannten LP-Löser bearbeiten. Ein kurzer Einsteiger-Guide ist das CPLEX1x1. Ein guter Startpunkt ist dieses Beispiel. Die offizielle Dokumentation findet ihr hier. Darüber hinaus gibt es eine kurze Einführung in ZIMPL, SoPlex und SCIP.

    IBM ILOG CPLEX (cplex) ist kommerziell, die SCIP Optimization Suite (scip, soplex, zimpl) ist freie Software und kann kostenfrei auf diversen Betriebssystemen installiert werden. Insbesondere ist dort das ZIMPL User Guide verfügbar.

    Um nur mal schnell in LP- und IP-Solver reinzuschnuppern muss man nicht gleich ein komplexes Program installieren. Es gibt auch einen Javascript Port des GLPK. Dieser wird aber nicht annährend die Leistungsfähigkeit von richtigen Solvern haben.


    last changed 2019-01-09, 04:21 by Dominik Krupke
    printemailtop