Eine Pricing-Heuristik mit <0,2 % Optimalitätslücke und bis zu 37 Mio. × Beschleunigung gegenüber dem Stand der Technik
Der Breakpoint Heuristic Algorithm: löst kapazitiertes Pricing, wo jede exakte Methode ins Zeitlimit läuft, skaliert auf 1’000’000 Nachfrageszenarien bei sechs Preisen in unter 8 Minuten, schlägt LAG (kapazitierter Spezialist) um 79× und CoBiT (Mixed-Logit-Spezialist) um bis zu 37 Mio. ×
Exakte Algorithmen sind schön in Druckform und unhandlich in der Produktion. Reale Pricing-Teams brauchen Antworten in Sekunden auf Instanzen mit Kapazitäts-Constraints, und eine Qualitätsgarantie, die sie in einem Meeting verteidigen können.
Unser Breakpoint Heuristic Algorithm trifft beides. Publiziert in Computers & Operations Research, löst er das kapazitierte und unkapazitierte CPP mit durchschnittlich unter 0,2 % Lücke, und schlägt jede publizierte Heuristik dieser Problemklasse in Geschwindigkeit und Qualität.
Die Herausforderung
Das kapazitierte choice-basierte Pricing-Problem (CPP), Pricing unter Discrete-Choice-Nachfrage, wenn Produkte endliche Kapazität haben, ist deutlich schwerer als sein unkapazitierter Cousin. Kapazität zerstört die totale Unimodularität des Per-Kunden-Knapsacks und zwingt das Modell zurück in MILP-Form: Die Lagrange-Heuristik von Paneque et al. (2022) reisst bei 50 Draws und 4 Preisen das Zeitlimit, und exaktes MILP schafft nur Spielzeuginstanzen. Keine der bestehenden Heuristiken funktioniert über Modellklassen hinweg.
Praktiker brauchen eine einzige, robuste Heuristik, die über Modellklassen hinweg performt, auf hochdimensionale Instanzen skaliert und eine belastbare Antwort liefert, wie nahe sie am wahren Optimum sind.
Unser Vorgehen
Wir haben unseren Breakpoint Exact Algorithm in ein heuristisches Regime erweitert: Der BHA zählt Breakpoints entlang eines Koordinatenabstiegs-Pfads auf, akzeptiert schnelle Züge, wenn sie die Zielfunktion verbessern, und umgeht die kombinatorische Explosion exakter Methoden auf Mehrpreis-Instanzen.
Kapazität wird durch eine exogene Prioritätswarteschlange behandelt, ein sauberer, modellagnostischer Trick, der das innere Subproblem linear hält und die gesamte unkapazitierte Maschinerie wiederverwendbar macht, ohne die äussere Aufzählungslogik zu berühren.
Wir haben den BHA mit Iterated Local Search kombiniert, um lokalen Optima zu entkommen; die resultierende ILS-Variante trifft alle bekannten Optima der Mixed-Logit-Benchmarks und findet höhere Umsatzlösungen als der exakte BEA, wenn die exakte Methode ins Zeitlimit läuft.
Auf der exakten Seite haben wir neue gültige Ungleichungen für die QCQP-L-Formulierung entwickelt, die unsere Branch-and-Benders-Dekomposition beschleunigen; der BHA dient zudem als erstklassiger Warmstarter für sie (Gesamtbeschleunigungen bis 54 % bei 10 % Lücke, je nach Dimension).
Das Ergebnis
Deliverable: der Breakpoint Heuristic Algorithm und seine Iterated-Local-Search-Erweiterung, eine schnelle und skalierbare Heuristik für das kapazitierte und unkapazitierte choice-basierte Pricing-Problem unter jedem DCM mit linear-in-Preis-Nutzen. Auf dem Parkplatz-Pricing-Benchmark mit Kapazitäten liefert der BHA eine durchschnittliche Optimalitätslücke unter 0,2 % über alle abgeschlossenen Instanzen und skaliert auf 1’000’000 Nachfrageszenarien bei sechs Preisen in 439 Sekunden (~7,3 Minuten) im unkapazitierten Fall.
Gegenüber LAG (Paneque et al. 2022), der bisherigen kapazitierten CPP-Heuristik, ist der BHA in jeder getesteten Instanzklasse mindestens 79× schneller. Gegenüber CoBiT (Marandi und Lurkin 2023), dem bisherigen Stand der Technik für ML-spezifisches Pricing, erreicht der BHA bis zu 37-Millionen-fache Beschleunigung (Tabelle 12, R = 100’000), und die ILS-Erweiterung trifft jedes bekannte Optimum. Wir haben zudem neue gültige Ungleichungen für die räumliche Branch-and-Benders-Dekomposition aus unserem OR-Spectrum-Paper hergeleitet, mit dem BHA als erstklassigem Warmstarter — kombinierter Effekt bis zu 54 % Beschleunigung bei 10 % Optimalitätslücke. Open Access publiziert in Computers & Operations Research, 2026.
Technischer Deep Dive
Das Modell hinter dem Ergebnis.
Das Modell
Kapazitäts-Constraints im choice-basierten Pricing brechen alles, was den unkapazitierten Fall traktabel machte. Der Per-Kunden-Knapsack ist nicht mehr total unimodular, also ist die QCQP-L-Relaxierung nicht mehr ganzzahlig, das Problem fällt in ein echt kombinatorisches MILP zurück. Schlimmer: Wenn ein Produkt seine Kapazität erschöpft, hängt die optimale Wahl jedes Kunden von der jedes anderen Kunden ab, was bedeutet, dass der inkrementelle Update-Trick des BEA fehlschlägt: Die Zielfunktion kann erst nach Zuweisung jedes Kunden durch die Prioritätswarteschlange ausgewertet werden. Der BHA ist darauf gebaut: Behalte die Breakpoint-Aufzählung des BEA, aber nutze sie nur entlang einer Preisdimension nach der anderen, mit voller Auswertung der Zielfunktion an jedem Schritt.
Kapazitierte CPP-Variablen und Prioritätswarteschlangen-Constraint. Kunden werden in einer exogenen Reihenfolge verarbeitet (Ticket-Warteschlange, Ankunftszeit, Segment-Priorität, was die Anwendung verlangt). Die neue binäre y_inr zeigt an, ob Alternative i noch verfügbar ist, wenn Kunde n ankommt; die Constraint-Familie (f_inr, g_inr im Paper) sagt, dass y_inr in dem Moment auf 0 kippt, in dem die kumulierten Auswahlen von Alternative i ihre Kapazität c_i erreichen. Würde man die Prioritätswarteschlange durch eine globale Kapazitätsungleichung ersetzen, könnte der Solver Kunden endogen umpriorisieren, unrealistisch und die Umsatzvolatilität unterschätzend.
Was Kapazität kostet. Da ω jetzt wirklich binär ist, muss die Bilinearität p_i ω_inr mit Big-M-Hilfsvariablen linearisiert werden (das ursprüngliche MILP von Paneque et al.). Die QCQP-L-Reformulierung, die unsere unkapazitierte Arbeit getragen hat, gilt nicht mehr: Die LP-Relaxierung ist nicht ganzzahlig, also können wir ω nicht relaxieren. Übersetzung: Die gesamte algorithmische Kette aus pricing1 (räumliches B&B, B&BD, McCormick-Hüllen) kollabiert, und der einzige verbleibende exakte Ansatz ist das MILP, das empirisch bei R ≥ 50 ins Zeitlimit läuft.
Komplexität des kapazitierten BEA. Wir haben den BEA erweitert, indem wir sein inkrementelles Zielfunktions-Update durch einen Prioritätswarteschlangen-Allokations-Pass an den Blättern des Aufzählungsbaums ersetzt haben. Diese Korrektur erhält die Korrektheit, fügt aber pro Rekursionsebene einen NRJ-Faktor hinzu (wir müssen an jedem Breakpoint alle J Alternativen betrachten, nicht nur eine). Asymptotisch: immer noch polynomial in N und R, immer noch exponentiell in J, aber die Konstante davor ist signifikant schlechter als die unkapazitierte O(J!(NR)^J log NR)-Schranke.
Breakpoint Heuristic Algorithm: Koordinatenaufstieg über den Preisvektor, wobei jeder Schritt einen Ein-Preis-BEA löst (die Dimension, in der der BEA günstig ist, nur NR Breakpoints, kein Permutationsbaum). In Iteration t fixieren wir alle Preise ausser j(t), zählen die höchstens NR + 2 Kandidatenpreise für diese Koordinate unter dem aktuellen Warteschlangen-Status auf, werten die volle kapazitierte Zielfunktion an jedem Kandidaten aus und nehmen den besten. Wir zyklen die Dimensionen durch, bis J aufeinanderfolgende Koordinatenpässe keine Verbesserung bringen.
Effektive BHA-Komplexität. K ist die Anzahl äusserer Zyklen (empirisch 5–20 auf Benchmark-Instanzen), J die Koordinatenpässe pro Zyklus, NR die Breakpoint-Anzahl pro Koordinate, NRJ die Kosten einer Prioritätswarteschlangen-Auswertung. Der exponentielle-in-J-Term, der den exakten BEA-cap zerquetscht, ist weg, ersetzt durch eine quadratische-in-(NR)-Kosten, weshalb der BHA auf Instanzen skaliert, an die die exakte Methode nicht herankommt. Der Preis: kein Optimalitätszertifikat.
Iterated-Local-Search-Umschlag. Statt die Inkumbenten-Lösung nach jeder BHA-Terminierung zu mutieren (Lehrbuch-ILS), erweitern wir die Schrittweite und lassen die Liniensuche erneut laufen. Das ist der Perturbations-Operator: Wenn die lokale Suche die Klein-Schritt-Nachbarschaft erschöpft, springen wir in eine gröbere, erkunden erneut und akzeptieren bei Verbesserung. Wir machen weiter, bis δ Δ_max übersteigt. Empirisch schliesst das die verbleibende Lücke auf Benchmark-Instanzen, ILS trifft jedes bekannte Optimum dort, wo BHA ~0,04 % liegen lässt.
Heuristik-geführte exakte Methode. Wir geben die BHA-Lösung in unsere (unkapazitierte) räumliche Branch-and-Benders-Dekomposition als starke Anfangs-Unterschranke ein, und leiten daraus neue gültige Ungleichungen für die QCQP-L-Formulierung ab. Kombinierter Effekt auf die B&BD-Laufzeit, um 10 % Optimalitätslücke zu erreichen: bis 54 % Speed-up bei J = 4 (das Regime, in dem exakte Methoden noch möglich sind). Heuristik und exakte Methode helfen sich jetzt gegenseitig.
Vier algorithmische Beiträge in einem Paper: der kapazitierte BEA, der BHA, die ILS-Erweiterung und das BHA-geführte B&BD mit neuen gültigen Ungleichungen. Der BHA ist der Schlussstein, der Algorithmus, der in die Produktion geht, weil er auf realistisch-skalierten Instanzen, an die die exakten Methoden nicht herankommen, in traktabler Zeit nahezu optimale Lösungen liefert. Die ILS-Schicht ist die Option, die man einschaltet, wenn die Lösungsqualität wichtiger als die Laufzeit ist. Die gültigen Ungleichungen und die heuristische Steuerung sind, wie das exakte B&BD jetzt mit spezialisierten Mixed-Logit-Algorithmen (CoBiT, LAG) auf deren Heimat konkurriert, und gewinnt, mit Faktoren von 10⁴ – 10⁷.
Benchmark
Test 2 aus dem Paper: kapazitiertes Parking-Pricing auf der Ibeas-et-al.-(2014)-Fallstudie, N = 50 Kunden, Kapazitäten (20, 20) für J = 2 und (15, 15, 15, 15) für J = 4. Alle Zeiten in Sekunden. MILP und BEA sind exakt (Lücke = 0); CMA-ES ist eine generelle Evolutionsstrategie-Baseline; BHA und ILS sind unsere. Auf jeder abgeschlossenen Instanz liefert der BHA denselben Umsatz wie die exakten Methoden bis auf 0,2 %, der ILS trifft das exakte Optimum exakt.
| R | J | MILP | BEA (kapazitiert) | CMA-ES | BHA (unser) | ILS (unser) |
|---|---|---|---|---|---|---|
| 2 | 2 | 5 | 0,5 | 0,6 | 0,2 | 1,2 |
| 10 | 2 | 173 | 12 | 2,3 | 0,6 | 21 |
| 25 | 2 | 3 224 | 174 | 8 | 3,6 | 129 |
| 50 | 2 | > 5 h | 1 291 | 18 | 8 | 558 |
| 100 | 2 | > 25 h | 9 914 | 132 | 51 | 2 793 |
| 250 | 2 | > 45 h | > 45 h | 1 084 | 435 | 16 357 |
| 10 | 4 | > 10 h | > 10 h | 23 | 6 | 517 |
| 100 | 4 | > 45 h | > 45 h | 1 693 | 828 | 34 963 |
Das MILP gibt bei R = 50 auf (5-Stunden-Limit erreicht, Umsatzlücke > 8 % vs. wahres Optimum). Der BEA trägt das exakte Banner weiter, er löst R = 100, J = 2 in 2,75 Stunden, aber er ist bereits zwei Grössenordnungen langsamer als der BHA, der dieselbe Instanz in 51 Sekunden abschliesst. Bei R = 250 läuft selbst der BEA ins Zeitlimit, während der BHA in 7 Minuten terminiert. Die Vier-Preis-Geschichte ist schärfer: Jede exakte Methode versagt bei R = 10, J = 4, aber der BHA liefert über den gesamten R = 10..200-Bereich nahezu optimale Lösungen. CMA-ES ist ein nützlicher Sanity-Check, eine respektierte Metaheuristik, aber 2–10× langsamer als der BHA und liefert konsistent 2–3 % weniger Umsatz. Über diesen Test hinaus: Tabelle 6 im Paper zeigt, dass der BHA J = 6, R = 1 000 000 in 439 Sekunden (unter 8 Minuten) löst; Tabelle 12 zeigt, dass der BHA das Mixed-Logit-spezifische CoBiT mit Speed-up-Faktoren von 3,5 × 10⁴ bis 3,7 × 10⁶ überholt.
Aus den Unterlagen




Techniken
- Koordinatenaufstieg-Breakpoint-Suche
- Iterated Local Search (adaptive Schrittweite)
- Prioritätswarteschlangen-Kapazitätsbehandlung
- Gültige Ungleichungen für QCQP-L
- Heuristische Steuerung für räumliches B&BD
Stack
- Python
- Gurobi 13
- Julia (CoBiT-Vergleich)
- C++-Inner-Loops
Ein Problem wie dieses?