Assignment Chef icon Assignment Chef
All German tutorials

Programming lesson

Optimierung mit Xpress: Einführung in die Modellierung und Lösung von Standort- und Produktionsproblemen

Lerne, wie man Optimierungsprobleme mit Xpress modelliert und löst. Von Standortplanung bis Produktionsplanung – dieser Leitfaden zeigt dir Schritt für Schritt, wie du lineare und quadratische Programme erstellst.

Xpress Optimierung Facility Location Problem lineare Programmierung quadratisches Programm stückweise lineare Approximation Produktionsplanung ISYE 6669 Hausaufgaben Optimierungsmodellierung Manhattan-Distanz L1-Norm Xpress Tutorial Operations Research Supply Chain Optimierung DEC Produktionsplanung Linearisierung von Absolutbeträgen MPvar Xpress

Einführung in die Optimierung mit Xpress

In diesem Tutorial lernst du, wie du mit der Modellierungssprache Xpress Optimierungsprobleme lösen kannst. Xpress ist ein leistungsstarkes Werkzeug, das in vielen Bereichen wie Logistik, Finanzen und Produktionsplanung eingesetzt wird. Wir werden uns auf zwei klassische Probleme konzentrieren: das Facility-Location-Problem und die Produktionsplanung bei einem Computerhersteller. Diese Beispiele sind nicht nur für deine Hausaufgaben relevant, sondern auch für reale Anwendungen, wie sie etwa in der Lieferkettenoptimierung oder bei der Standortwahl für neue Filialen vorkommen.

Grundlagen der Modellierung

Bevor wir in die Tiefe gehen, wiederholen wir die Grundlagen. Ein Optimierungsproblem besteht aus einer Zielfunktion, die es zu minimieren oder maximieren gilt, und Nebenbedingungen, die die Lösung einschränken. Variablen repräsentieren Entscheidungen, z.B. die Koordinaten eines neuen Standorts oder die Produktionsmenge eines Produkts. In Xpress werden Variablen mit mpvar deklariert. Standardmäßig sind sie nichtnegativ, was für viele praktische Probleme sinnvoll ist. Wenn du freie Variablen benötigst, musst du is free angeben.

Das Facility-Location-Problem

Stell dir vor, du möchtest zwei neue Einrichtungen A und B so platzieren, dass die Summe der Manhattan-Distanzen (L1-Distanzen) zwischen A und B, A und C, A und D, B und D sowie B und E minimiert wird. Die bestehenden Einrichtungen C, D und E haben feste Koordinaten. Zudem müssen A und B innerhalb eines Rechtecks liegen (x: 0-900, y: 0-1500). Dieses Problem ähnelt der Standortplanung von Lagern oder Verteilzentren, wie es aktuell bei der Expansion von Lieferdiensten wie Amazon oder Flink relevant ist.

Modell mit Absolutbeträgen

Die Zielfunktion lautet: min |x_A - x_B| + |y_A - y_B| + |x_A - 300| + |y_A - 1200| + |x_A - 0| + |y_A - 600| + |x_B - 0| + |y_B - 600| + |x_B - 600| + |y_B - 0|. Die Nebenbedingungen sind die Box-Constraints: 0 ≤ x_A, x_B ≤ 900 und 0 ≤ y_A, y_B ≤ 1500.

Lineare Reformulierung

Um die Absolutbeträge zu linearisieren, führen wir Hilfsvariablen ein. Für jeden Term |a - b| ersetzen wir ihn durch u + v mit den Nebenbedingungen u ≥ a - b und v ≥ b - a, wobei u, v ≥ 0. Dies ist eine Standardtechnik, die in vielen Optimierungssoftwares wie Xpress automatisch angewendet wird, aber das Verständnis hilft dir, komplexere Probleme zu modellieren.

Implementierung in Xpress

Der bereitgestellte Code hw1prob1Fac.mos zeigt die Umsetzung. Nach dem Ausführen erhältst du die optimalen Koordinaten. Überprüfe, ob die beiden neuen Einrichtungen überlappen. Bei der Variante mit Abstandsrestriktionen (A zu C ≤ 500, B zu E ≤ 700) modifizierst du die Nebenbedingungen entsprechend.

Quadratische Programme und stückweise lineare Approximation

Ein weiteres wichtiges Thema ist die Approximation nichtlinearer Funktionen. Betrachte das Problem: min f(x) = (x1 - 1.5)^2 + (x2 - 0.8)^2 unter der Nebenbedingung |x1| + |x2| ≤ 1 (L1-Einheitskugel). Dies ist ein quadratisches Programm mit linearen Nebenbedingungen. Da quadratische Programme manchmal schwer zu lösen sind, approximieren wir die quadratische Zielfunktion durch eine stückweise lineare Funktion, die von unten stützt. Dazu wählst du 10 zulässige Punkte, berechnest den Funktionswert und erstellst lineare Ungleichungen, die die quadratische Funktion von unten beschreiben. Der resultierende lineare Programmansatz liefert eine untere Schranke für das Optimum.

Implementierung der Approximation

Generiere 10 Punkte auf dem Rand der L1-Kugel, z.B. (0.2, 0.8), (0.5, 0.5) usw. Für jeden Punkt x^i definierst du eine lineare Funktion, die f(x^i) entspricht und f(x) für alle x unterschreitet. Die Hülle dieser Funktionen ist die stückweise lineare Approximation. In Xpress implementierst du dies als LP mit zusätzlichen Variablen und Nebenbedingungen. Vergleiche die Lösung mit der des ursprünglichen QP – die Differenz zeigt die Approximationsgüte.

Produktionsplanung bei DEC

Ein klassisches Beispiel aus der Industrie ist die Produktionsplanung von Digital Equipment Corporation (DEC) im Jahr 1988. DEC führte neue Computersysteme ein: GP-1, GP-2, GP-3, WS-1 und WS-2. Die Herausforderungen waren begrenzte CPU- und Speicherressourcen sowie Nachfragebeschränkungen. Ziel war die Maximierung des Umsatzes unter Berücksichtigung bereits erhaltener Aufträge.

Lineares Programm für die Produktionsplanung

Die Entscheidungsvariablen x1 bis x5 stehen für die Produktionsmengen (in Tausend) der fünf Systeme. Die Zielfunktion maximiert den Gesamterlös: max 60x1 + 40x2 + 30x3 + 30x4 + 15x5 (in Tausend Dollar). Die Nebenbedingungen umfassen die CPU-Verfügbarkeit (x1+x2+x3+x4+x5 ≤ 7), die Speicherverfügbarkeit (4x1+2x2+2x3+2x4+1x5 ≤ 8), sowie Nachfrageobergrenzen: x1 ≤ 1.8, x3 ≤ 0.3, x1+x2+x3 ≤ 3.8, x4+x5 ≤ 3.2. Zudem müssen Mindestmengen erfüllt werden: x2 ≥ 0.5, x4 ≥ 0.5, x5 ≥ 0.4.

Dieses Modell ist ein typisches Beispiel für ein lineares Programm, das in der Praxis zur Produktions- und Absatzplanung eingesetzt wird. Ähnliche Modelle finden sich heute in der Halbleiterindustrie oder bei der Planung von Elektrofahrzeugproduktionen.

Fazit und Ausblick

Mit Xpress kannst du eine Vielzahl von Optimierungsproblemen effizient lösen. Die vorgestellten Techniken – Linearisierung von Absolutbeträgen, stückweise lineare Approximation und Produktionsplanung – sind grundlegend für weiterführende Kurse wie ISYE 6669. Vertiefe dein Wissen, indem du die bereitgestellten Code-Vorlagen anpasst und eigene Erweiterungen testest. Optimierung ist ein Schlüsselwerkzeug in Data Science, maschinellem Lernen und Operations Research – und mit Xpress hast du ein mächtiges Werkzeug an der Hand.