Vorlesung 01: Grafisches Lösen

Grundlagen Operations Research

Prof. Dr. Knut Haase

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, jederzeit verfügbar
  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

Neu: 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

Screenshot des OpenOlat-Kurses Grundlagen Operations Research: links das Kursmenü mit Neuigkeiten, Organisation, Übungsvideos, Klausurtrainer und Materialien, rechts die Willkommensnachricht an die Studierenden.

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

Collage der Planungsergebnisse für den Hadsch: Lagepläne mit farbig markierten Fußwegen und ausgedruckte Zeitpläne auf Englisch und Arabisch, die einem Camp die Route zur Dschamarat-Brücke und gestaffelte Abmarschzeiten für Gruppen von höchstens 250 Pilgern zuweisen.

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

Metro-Zufluss in Doha

Gesteuerter Metro-Zufluss

Zulässige Einlassrate in die Metro (Personen pro Minute) für jede Stunde des Tages als Balken: Nach Mitternacht fällt sie von rund 35 auf null gegen 4 bis 5 Uhr, steigt ab 6 Uhr bis zur Spitze von rund 120 gegen 14 Uhr und liegt abends noch bei etwa 60 bis 90.

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

Polizei-Distriktplanung

Zuschnitt von Polizeibezirken

Karte eines Stadtgebiets aus Sechseckzellen, eingefärbt nach gut einem Dutzend Polizeibezirken; die Zellen mit den Wachen sind hervorgehoben. Jeder Bezirk ist zusammenhängend und liegt kompakt um seine Wache.

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

Brauerei-Produktionsplanung

Von der Forschung in die Lehre

Prozessschema einer Brauerei mit den Stufen Sudhaus, Lagertank, Filtration, Drucktank, Abfüllung und Lager; darunter die Ressourcen je Stufe, etwa drei Filtrationslinien, vier Abfülllinien sowie Lager- und Drucktanks als Puffer dazwischen.

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

Kreisdiagramm des Trainingszyklus der Software MINT TMS mit sechs Phasen von der Bedarfsermittlung über Entwurf, Entwicklung und Durchführung des Trainings bis zu Anwendung und Evaluation; daneben Screenshots der Planungssoftware auf Desktop, Tablet und Smartphone.

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 Modelle

Lineares Optimierungsproblem

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

Allgemeine Form

maximiere F=c1X1+c2X2+…+cJXJu.d.N.ai1X1+…+aiJXJ≤bi∀iXj≥0∀j \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.

Fragestellung

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.

Gleich ausprobieren

Auf der nächsten Folie beladen Sie den LKW selbst, am Handy über den QR-Code. Wie viel Erlös holen Sie heraus?

Sie sind dran

Warum grafisch lösen?

Im Spiel haben Sie Paletten ausprobiert. Jetzt lösen wir dasselbe Problem grafisch.

Idee

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

Zielfunktionsgerade für F = 60 im X₁-X₂-Diagramm, von (0, 2) nach (3, 0); jeder Punkt auf ihr bringt denselben Erlös von 60 EUR.

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

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

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

Jeder Punkt liefert denselben Erlös.

Zielgerade verschieben

Zwei parallele Zielfunktionsgeraden: F = 60 und weiter rechts oben F = 90 von (0, 3) nach (4,5; 0). Ein höherer Zielwert verschiebt die Gerade parallel nach außen.

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

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

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

Die Gerade wandert parallel nach rechts oben.

Nebenbedingung: Paletten

Grenzgerade der Palettenrestriktion X₁ + X₂ = 5 im X₁-X₂-Diagramm, von (0, 5) nach (5, 0); zulässig sind alle Punkte auf oder unterhalb der Geraden.

Je Abnahmemenge eine Palette, höchstens 5:

X1+X2≤5 X_1 + X_2 \le 5

Grenzgerade X2=5−X1X_2 = 5 - X_1:

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

Nebenbedingung: Ladegewicht

Zur Grenzgeraden der Paletten kommt gestrichelt die des Ladegewichts hinzu, X₁ + 3X₂ = 9 von (0, 3) nach (9, 0); beide Geraden schneiden sich im Punkt (3, 2).

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

X1+3X2≤9 X_1 + 3\,X_2 \le 9

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

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

Der zulässige Bereich

Beide Grenzgeraden im X₁-X₂-Diagramm; getönt ist die Fläche, die unter beiden liegt: der zulässige Bereich, ein Viereck mit den Ecken (0, 0), (0, 3), (3, 2) und (5, 0).

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

X1+X2≤5X1+3X2≤9 \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

Zulässiger Bereich mit der Zielfunktionsgeraden für F = 60 von (0, 2) nach (3, 0); sie verläuft mitten durch den Bereich, der Erlös lässt sich also noch steigern.

Gerade parallel schieben, solange sie den Bereich berührt.

Derselbe Bereich mit einer zweiten, parallelen Zielfunktionsgeraden für F = 90 weiter außen; auch sie verläuft noch durch den zulässigen Bereich.

F=60→90F = 60 \to 90: die Gerade wandert nach außen.

Derselbe Bereich mit drei parallelen Zielfunktionsgeraden für F = 60, 90 und 120; die äußerste berührt ihn nur noch im markierten Eckpunkt (3, 2).

F=120F = 120: nur der Eckpunkt (3,2)(3, 2) bleibt.

Die optimale Lösung

Zulässiger Bereich mit der Zielfunktionsgeraden für F = 120 allein; sie berührt ihn nur im Eckpunkt (3, 2), dem Schnittpunkt der beiden Grenzgeraden. Dort liegt das Optimum.

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

Ergebnis

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=5≤5✓Gewicht:3+3⋅2=9≤9✓ \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

Eckpunktsatz (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,X2∈ℤX_1, X_2 \in \mathbb{Z} gefordert werden.

Das Optimum ist der Schnittpunkt der beiden bindenden Nebenbedingungen:

X1+X2=5X1+3X2=9}⇒2X2=4⇒X2=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+X2≤5X1+3X2≤9X1,X2≥0 \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}

Freie Variablen

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

Zum Gleichungssystem

Frage: Wie wird aus einer Ungleichung eine Gleichung?

Wir ergänzen Schlupfvariablen Y1,Y2≥0Y_1, Y_2 \ge 0:

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

Eine Schlupfvariable erfasst den nicht genutzten Rest einer Restriktion.

Und bei ≥\ge?

Dann wird YY abgezogen (Überschuss): X1+X2≥2⇒X1+X2−Y3=2X_1 + X_2 \ge 2 \;\Rightarrow\; X_1 + X_2 - Y_3 = 2.

LOP und Gleichungssystem

Lineares Optimierungsproblem

max⁡20X1+30X2X1+X2≤5X1+3X2≤9X1,X2≥0 \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=9−20X1−30X2+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:

Optimale 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 François Soumis. 2000. „Air Transat Uses ALTITUDE to Manage Its Aircraft Routing, Crew Pairing, and Work Assignment“. Interfaces 30 (2): 41–53. https://doi.org/10.1287/inte.30.2.41.11673.
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. https://doi.org/10.1287/inte.2015.0833.
Haase, Knut, Jörg Latteier, und Andreas Schirmer. 1999. „Course Planning at Lufthansa Technical Training: Constructing More Profitable Schedules“. Interfaces 29 (5): 95–109. https://doi.org/10.1287/inte.29.5.95.

Literaturverzeichnis (2/3)

Jütte, Silke, Marc Albers, Ulrich W. Thonemann, und Knut Haase. 2011. „Optimizing Railway Crew Scheduling at DB Schenker“. Interfaces 41 (2): 109–22. https://doi.org/10.1287/inte.1100.0549.
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. https://doi.org/10.1287/inte.2021.1101.
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. https://doi.org/10.1287/inte.2013.0701.
Trick, Michael A., Hakan Yildiz, und Tallys Yunes. 2012. „Scheduling Major League Baseball Umpires and the Traveling Umpire Problem“. Interfaces 42 (3): 232–44. https://doi.org/10.1287/inte.1100.0514.

Literaturverzeichnis (3/3)

Vlćek, Tobias, Knut Haase, Malte Fliedner, und Tobias Cors. 2024. „Police Service District Planning“. OR Spectrum 46 (4): 1029–61. https://doi.org/10.1007/s00291-024-00745-3.
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. https://doi.org/10.1287/inte.2014.0764.