Vorlesung 01: Graphisches Lösen

Grundlagen Operations Research

Organisatorisches

Herzlich willkommen!

Grundlagen Operations Research

  • Prof. Dr. Knut Haase, Simon Rienks, Fiona Sauerbier und Dr. Tobias Vlćek
  • Institut für Logistik, Verkehr und Produktion
  • University of Hamburg Business School
  • Ein forschungsorientiertes Modul mit starkem Praxisbezug

Aufbau der Veranstaltung

  1. Vorlesung (2 SWS): die zwölf Themen des Kurses
  2. Übungen (1 SWS): Übungsvideos + Julia-Aufgaben, alle zwei Wochen
  3. Besprechungen (1 SWS): Fragen & Aufgabenvorstellung (bis 2 Bonuspunkte)
  4. Klausurtrainer (freiwillig): Übungsaufgaben in OpenOlat (bis 6 Bonuspunkte)

Details finden Sie im Syllabus und in den häufigen Fragen.

Warum sich der Aufwand lohnt

Die Klausur: 90 Minuten, 90 Punkte, dazu bis zu 8 Bonuspunkte. Auswertung eines früheren Wintersemesters:

  • Klausurtrainer ≥ 4 Punkte, keine Besprechungs-Bonuspunkte: im Schnitt +12 Punkte in der Klausur.
  • Klausurtrainer ≥ 4 Punkte und ≥ 2 Besprechungs-Bonuspunkte: im Schnitt +18 Punkte.

Bonuspunkte zählen erst ab einer bestandenen Klausur (mind. 4,0).

Inhalte der Veranstaltung

  1. Lineare Optimierung
  2. Graphentheoretische Grundlagen
  3. Das klassische Transportproblem
  4. Ganzzahlige Optimierung: Branch & Bound
  5. Netzplantechnik
  6. Optimierung bei mehrfacher Zielsetzung
  7. Modellierung

Software: Julia statt GAMS

WichtigNeu: Wir modellieren mit Julia

In dieser Veranstaltung lösen wir Optimierungsprobleme mit Julia, dem Paket JuMP und dem Solver HiGHS. Julia ersetzt GAMS vollständig und ist klausurrelevant.

OpenOlat

Noch nie mit OpenOlat gearbeitet?

Wir laden Sie erst in den Kurs ein, nachdem Sie sich einmal angemeldet haben, bitte zeitnah:

openolat.uni-hamburg.de

Praxisrelevanz

Crowd Management in Mekka

Planung der Pilgerströme

  • Zeitpläne und Routen für die Pilgerströme zur Haddsch
  • Modell: Path Assignment and Timetabling

Metro-Zufluss in Doha

Gesteuerter Metro-Zufluss

  • Einlasssteuerung nach Großveranstaltungen
  • Ergebnis: zulässige Einlassraten je Stunde

Polizei-Distriktplanung

Zuschnitt von Polizeibezirken

  • Optimaler Zuschnitt der Bezirke um die Wachen
  • Ziele: kurze Wege, ausgeglichene Auslastung

Brauerei-Produktionsplanung

Von der Forschung in die Lehre

Losgrößen- & Ressourcenplanung (Brauerei): Mickein u. a. (2022)

Lehrgangsplanung: Haase u. a. (1999)

Anwendungsfelder des OR

Internationalisierung

Gesellschaften

  • GOR: Gesellschaft für OR
  • EURO: European OR Societies
  • INFORMS: OR & Management Sciences
  • IFORS: International Federation

Zeitschriften (Auswahl)

  • European Journal of OR
  • Management Science
  • Operations Research
  • OR Spectrum

Auszeichnungen

  • 2021: Best Paper Award VHB
  • 2021: EURO Excellence in Practice Award (Finalist, 2. Platz)
  • 2015: INFORMS Franz Edelman Award (Finalist)

Lineare Optimierung

Lineares Optimierungsproblem

Ein LOP besitzt eine lineare Zielfunktion und ausschließlich lineare Nebenbedingungen.

HinweisAllgemeine Form

maximiere F=c1X1+c2X2++cJXJu.d.N.ai1X1++aiJXJbiiXj0j \begin{aligned} \text{maximiere } \; & F = c_1 X_1 + c_2 X_2 + \dots + c_J X_J \\ \text{u.d.N.} \quad & a_{i1} X_1 + \dots + a_{iJ} X_J \le b_i \quad \forall i \\ & X_j \ge 0 \quad \forall j \end{aligned}

XjX_j Entscheidungsvariable, cjc_j Zielkoeffizient, aij,bia_{ij}, b_i Parameter.

Eine Tour, zwei Angebote

Beispiel aus der Logistik

Ein Frachtführer bedient die Relation Hamburg–Kiel. Für eine Fahrt stehen noch 5 Palettenstellplätze zur Verfügung; die Zuladung darf 9 Tonnen nicht überschreiten. Über eine Frachtbörse erhält er zwei Auftragsangebote.

WichtigFragestellung

Wie viele Paletten je Angebot maximieren seine Erlöse (FF)?

Die Daten

Auftrag Stückerlös Paletten Tonnen
1 20 1 1
2 30 1 3
LKW-Kapazität 5 9

Gesucht: die erlösmaximale Übernahme an Aufträgen.

Warum grafisch lösen?

TippIdee

Bei zwei Entscheidungsvariablen können wir jede zulässige Lösung als Punkt in der Ebene zeichnen. Die Zielfunktion wird zu einer Geraden, die wir so weit wie möglich in Richtung besserer Werte verschieben.

Das gibt uns ein Gefühl dafür, warum die optimale Lösung an einer Ecke des zulässigen Bereichs liegt, bevor wir später rechnerisch (Simplex) vorgehen.

Zielfunktion

Entscheidungsvariablen

  • X1X_1: Abnahmemenge gemäß Auftrag 1
  • X2X_2: Abnahmemenge gemäß Auftrag 2
  • FF: Erlöse in EUR

maximiere F(X1,X2)=20X1+30X2 \text{maximiere } F(X_1, X_2) = 20\,X_1 + 30\,X_2

Zielfunktionsgerade für F=60F = 60

Wir geben einen Zielwert vor, z. B. F=60F = 60:

60=20X1+30X2 60 = 20\,X_1 + 30\,X_2 X2=223X1 \Rightarrow\; X_2 = 2 - \tfrac{2}{3}\,X_1

  • X1=0X2=2X_1 = 0 \Rightarrow X_2 = 2
  • X2=0X1=3X_2 = 0 \Rightarrow X_1 = 3

Jeder Punkt liefert denselben Erlös.

Zielgerade verschieben

Erhöhen wir den Zielwert auf F=90F = 90:

90=20X1+30X2 90 = 20\,X_1 + 30\,X_2 X2=323X1 \Rightarrow\; X_2 = 3 - \tfrac{2}{3}\,X_1

  • X1=0X2=3X_1 = 0 \Rightarrow X_2 = 3
  • X2=0X1=4,5X_2 = 0 \Rightarrow X_1 = 4{,}5

Die Gerade wandert parallel nach rechts oben.

Nebenbedingung: Paletten

Je Abnahmemenge eine Palette, höchstens 5:

X1+X25 X_1 + X_2 \le 5

Grenzgerade X2=5X1X_2 = 5 - X_1:

  • X1=0X2=5X_1 = 0 \Rightarrow X_2 = 5
  • X2=0X1=5X_2 = 0 \Rightarrow X_1 = 5
  • zulässig: auf oder unterhalb

Nebenbedingung: Ladegewicht

Auftrag 1 wiegt 1 t, Auftrag 2 wiegt 3 t, höchstens 9 t:

X1+3X29 X_1 + 3\,X_2 \le 9

Grenzgerade X2=313X1X_2 = 3 - \tfrac{1}{3}\,X_1:

  • X1=0X2=3X_1 = 0 \Rightarrow X_2 = 3
  • X2=0X1=9X_2 = 0 \Rightarrow X_1 = 9

Der zulässige Bereich

Beide Restriktionen gleichzeitig erfüllt (und X1,X20X_1, X_2 \ge 0):

X1+X25X1+3X29 \begin{aligned} X_1 + X_2 &\le 5 \\ X_1 + 3\,X_2 &\le 9 \end{aligned}

Die Schnittmenge bildet den konvexen Lösungsraum.

Frage: Wo in dieser Fläche liegt der beste Punkt?

Optimum grafisch bestimmen

  • Zielgerade parallel verschieben, solange sie den Bereich berührt
  • F=6090F = 60 \to 90: die Gerade wandert nach außen
  • F=120F = 120: nur der Eckpunkt (3,2)(3, 2) bleibt

Die optimale Lösung

X1*=3X2*=2F*=203+302=120 \begin{aligned} X_1^* &= 3 \\ X_2^* &= 2 \\ F^* &= 20\cdot 3 + 30\cdot 2 \\ &= 120 \end{aligned}

WichtigErgebnis

Der maximale Erlös beträgt 120 EUR.

Überprüfung der Lösung

Optimalwerte X1*=3X_1^* = 3, X2*=2X_2^* = 2:

Paletten:3+2=55Gewicht:3+32=99 \begin{aligned} \text{Paletten:} \quad & 3 + 2 = 5 \le 5 \;\checkmark \\ \text{Gewicht:} \quad & 3 + 3\cdot 2 = 9 \le 9 \;\checkmark \end{aligned}

Beide Restriktionen sind mit Gleichheit erfüllt. Das Optimum liegt im Schnittpunkt der beiden Grenzgeraden.

Optimum an einer Ecke

WichtigEckpunktsatz (anschaulich)

Besitzt ein lineares Optimierungsproblem eine optimale Lösung, so wird sie stets in mindestens einem Eckpunkt des konvexen Lösungsraums angenommen.

  • Die Zielgerade wird verschoben, bis sie den Bereich zuletzt in einer Ecke (oder entlang einer Kante) berührt.
  • Klassische Verfahren suchen daher systematisch Eckpunkte ab \Rightarrow Grundidee des Simplex-Algorithmus (Vorlesung 02).

Kurz gefragt

Frage: Und bei einer Minimierung?

Dieselbe Idee: die Zielgerade wandert in die andere Richtung, bis sie den Bereich zuletzt berührt: wieder ein Eckpunkt.

Exkurs: Ganzzahligkeit

Sinnvoll sind nur ganzzahlige Palettenmengen. Eigentlich müsste zusätzlich X1,X2X_1, X_2 \in \mathbb{Z} gefordert werden.

Das Optimum ist der Schnittpunkt der beiden bindenden Nebenbedingungen:

X1+X2=5X1+3X2=9}2X2=4X2=2,X1=3 \left. \begin{aligned} X_1 + X_2 &= 5 \\ X_1 + 3\,X_2 &= 9 \end{aligned} \right\} \;\Rightarrow\; 2\,X_2 = 4 \;\Rightarrow\; X_2 = 2,\; X_1 = 3

Dass dieser Schnittpunkt zufällig ganzzahlig ist, ist ein Glücksfall. Im Allgemeinen ist Ganzzahligkeit nicht garantiert (→ Vorlesung 08).

Formalisierung als LOP

maximiere F(X1,X2)=20X1+30X2u.d.N.X1+X25X1+3X29X1,X20 \begin{aligned} \text{maximiere } \; & F(X_1, X_2) = 20\,X_1 + 30\,X_2 \\ \text{u.d.N.} \quad & X_1 + X_2 \le 5 \\ & X_1 + 3\,X_2 \le 9 \\ & X_1, X_2 \ge 0 \end{aligned}

HinweisFreie Variablen

Darf eine Variable auch negativ sein, ersetzt man sie durch Xj=Xj+XjX_j = X_j^{+} - X_j^{-} mit Xj+,Xj0X_j^{+}, X_j^{-} \ge 0.

Zum Gleichungssystem

Frage: Wie wird aus einer Ungleichung eine Gleichung?

Wir ergänzen Schlupfvariablen Y1,Y20Y_1, Y_2 \ge 0:

  • X1+X25X1+X2+Y1=5X_1 + X_2 \le 5 \;\Rightarrow\; X_1 + X_2 + Y_1 = 5
  • X1+3X29X1+3X2+Y2=9X_1 + 3X_2 \le 9 \;\Rightarrow\; X_1 + 3X_2 + Y_2 = 9
  • Zielfunktion: 20X130X2+F=0-20\,X_1 - 30\,X_2 + F = 0

Eine Schlupfvariable erfasst den nicht genutzten Rest einer Restriktion.

LOP und Gleichungssystem

Lineares Optimierungsproblem

max20X1+30X2X1+X25X1+3X29X1,X20 \begin{aligned} \max \; & 20 X_1 + 30 X_2 \\ & X_1 + X_2 \le 5 \\ & X_1 + 3 X_2 \le 9 \\ & X_1, X_2 \ge 0 \end{aligned}

Gleichungssystem

X1+X2+Y1=5X1+3X2+Y2=920X130X2+F=0 \begin{aligned} X_1 + X_2 + Y_1 &= 5 \\ X_1 + 3 X_2 + Y_2 &= 9 \\ -20 X_1 - 30 X_2 + F &= 0 \end{aligned}

Das Gleichungssystem ist die Grundlage des Simplex-Algorithmus (Vorlesung 02).

Lösung mit Julia

Modellierung mit JuMP

Dasselbe Problem, gelöst mit Julia, JuMP und HiGHS:

using JuMP, HiGHS

modell = Model(HiGHS.Optimizer)
set_silent(modell)

@variable(modell, X1 >= 0)   # Abnahmemenge Auftrag 1
@variable(modell, X2 >= 0)   # Abnahmemenge Auftrag 2

@objective(modell, Max, 20X1 + 30X2)     # Umsatzerlöse in EUR

@constraint(modell, Paletten, X1 + X2 <= 5)     # max. 5 Paletten
@constraint(modell, Gewicht,  X1 + 3X2 <= 9)    # max. 9 Tonnen

optimize!(modell)
println("F* = ", objective_value(modell),
        " mit X1 = ", value(X1), ", X2 = ", value(X2))
F* = 120.0 mit X1 = 3.0, X2 = 2.0

Ergebnis

Die Zelle liefert die bereits grafisch bestimmte Lösung:

WichtigOptimale Lösung

F*=120,X1*=3,X2*=2 F^* = 120, \quad X_1^* = 3, \quad X_2^* = 2

So können Sie Ihre Handrechnungen jederzeit überprüfen, mehr dazu im Abschnitt Julia.

Zusammenfassung

Das Wichtigste auf einen Blick

  • Ein LOP hat eine lineare Zielfunktion und lineare Nebenbedingungen.
  • Bei zwei Variablen lösen wir grafisch; das Optimum liegt an einer Ecke.
  • Schlupfvariablen ergeben das Gleichungssystem: Basis für den Simplex.
  • Mit Julia/JuMP lösen wir dasselbe Modell rechnerisch.

Literatur

Literaturverzeichnis

Desrosiers, Jacques, Arielle Lasry, Daniel McInnis, Marius M Solomon, und Francois Soumis. 2000. „Air Transat uses ALTITUDE to manage its aircraft routing, crew pairing, and work assignment“. Interfaces 30 (2): 41–53.
Domschke, Wolfgang, Andreas Drexl, Robert Klein, und Armin Scholl. 2015. Einführung in Operations Research. 9. Aufl. Springer Gabler. https://doi.org/10.1007/978-3-662-48216-2.
Haase, Knut, Habib Zain Al Abideen, Salim Al-Bosta, u. a. 2016. „Improving pilgrim safety during the hajj: an analytical and operational research approach“. Interfaces 46 (1): 74–90.
Haase, Knut, Jörg Latteier, und Andreas Schirmer. 1999. „Course planning at Lufthansa technical training: Constructing more profitable schedules“. Interfaces 29 (5): 95–109.
Jütte, Silke, Marc Albers, Ulrich W Thonemann, und Knut Haase. 2011. „Optimizing railway crew scheduling at DB Schenker“. Interfaces 41 (2): 109–22.
Mickein, Markus, Matthes Koch, und Knut Haase. 2022. „A Decision Support System for Brewery Production Planning at Feldschlösschen“. INFORMS Journal on Applied Analytics 52 (2): 158–72.
Thomas, Bex George, Srinivas Bollapragada, Kunter Akbay, u. a. 2013. „Automated bed assignments in a complex and dynamic hospital environment“. Interfaces 43 (5): 435–48.
Trick, Michael A, Hakan Yildiz, und Tallys Yunes. 2012. „Scheduling major league baseball umpires and the traveling umpire problem“. Interfaces 42 (3): 232–44.
Vlćek, Tobias, Knut Haase, Malte Fliedner, und Tobias Cors. 2024. „Police service district planning“. OR Spectrum, 1–33.
Vlćek, Tobias, Knut Haase, Matthes Koch, Lena Dolz, Anneke Weygandt, und Jan Pape. 2023. „Controlling Passenger Flows into Metro Systems to Mitigate Overcrowding during large-scale Events. Working Paper.
Westphal, Stephan. 2014. „Scheduling the German basketball league“. Interfaces 44 (5): 498–508.