TU BRAUNSCHWEIG
| Carl-Friedrich-Gauß-Fakultät | Informatik
Informatikzentrum

Mathematische Methoden der Algorithmik

SemesterWintersemester 2018/2019 [ Andere Semester: · 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 ]
Studieng.Master Wirtschaftsinformatik, Master Informations-Systemtechnik, Master Informatik
IBR Gruppe(n)ALG (Prof. Fekete)
ArtVorlesung/Übung
Dozent
PhotoProf. Dr. Sándor P. Fekete
Abteilungsleiter
s.fekete[[at]]tu-bs.de
+49 531 3913111
Raum 335
Assistent
PhotoDominik Krupke
Wissenschaftlicher Mitarbeiter
krupke[[at]]ibr.cs.tu-bs.de
+49 531 3913116
Raum 315
Hiwi
PhotoAlexander Hill
Studentische Hilfskraft
Algorithmen und Datenstrukturen
ahill[[at]]ibr.cs.tu-bs.de
LP5
SWS2+1+1
Ort & Zeit Vorlesung: Dienstag, 15:00-16:30, PK 2.1,
Große Übung: Montag, 15:00-16:30 (14 Tägig), SN 19.7
Kleine Übung: Dienstag, 9:45-11:15 (14 Tägig), IZ 160
Beginn Voraussichtliche Starttermine:
Erste Vorlesung: 23. Oktober 2018
Erste große Übung: 29. Oktober 2018
Erste kleine Übung: 20. November 2018
Voraussetzungenkeine
Scheinerwerb

Studienleistung: Erfolgreiche Bearbeitung von mindestens 50 Prozent der Hausaufgaben.

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

Inhalt

Thema ist lineare und ganzzahlige Optimierung. Die Studierenden erlernen, gegebene Probleme als solche Programme zu formulieren und zu lösen, sowie die theoretischen Aspekte dahinter:

  1. Lineare Optimierung
  2. Simplexalgorithmus
  3. Dualität
  4. Ganzzahlige Optimierung
Termin(e)
[ Kalender abonnieren | Kalender herunterladen ]
DatumBeschreibung
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, 15:00 Uhr9. Vorlesung (?: Fekete @ISAAC, Taiwan) (PK2.1)
18.12.2018, 09:45 Uhr3. Kleine Übung (160)
07.01.2019, 15:00 Uhr5. Große Übung (?: 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)
Literatur/Links
  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.


    aktualisiert am 10.12.2018, 16:45 von Dominik Krupke
    printemailtop