In meinem letzten Beitrag ging es um die Problemstellung bei Zuordnungsszenarien. Heute möchte ich Ihnen dazu ein konkretes Beispiel vorstellen, wie ich es erst vor kurzem umgesetzt habe

Mathematische Optimierung als Lösungsansatz

Unser Kunde musste ein Zuordnungsproblem lösen und bat uns, ihn dabei zu unterstützen. Wie Sie aus meinem letzten Beitrag wissen, ist die Lösung von komplexen Zuordnungsproblemen nicht ganz einfach – wird aber schnell überschaubar und leicht zu implementieren, wenn man mit einer passenden Methodik vorgeht und die richtigen Produkte zur Hand hat. In der Regel lassen sich unsere Kunden im ersten Schritt über generell mögliche Techniken und deren Vor- und Nachteile informieren. Im speziellen Fall aber hatte sich unser Kunde bereits vorab für ILOG CPLEX entschieden, um seine auf c# basierende Systemlandschaft zu optimieren. Dies lässt sich dank einer mitgelieferten c#-API direkt in seine Landschaft integrieren und bietet dabei gleichzeitig eine hohe Performance.

Unser Vorgehen

Auf Empfehlung der IBM wandte sich das Unternehmen an uns als IBM Premium Business Partner, um für die Durchführung der Implementierung Unterstützung zu erhalten. In einem Kickoff-Workshop besprachen wir die genauen Anforderungen und konnten dann umgehend mit der Umsetzung beginnen. Bereits nach wenigen Arbeitstagen war das mathematische Modell soweit entwickelt, dass es in wenigen Sekunden komplizierteste Fälle der Aufgabenstellung lösen konnte. Diese Lösung fügt sich durch die mitgelieferte c#-API nahtlos in die Projektumgebung ein, sodass für den Anwender nicht ersichtlich ist, dass „unter der Haube“ mehrere Technologien miteinander verbunden sind. Er sieht, dass die Anwendung in kürzester Zeit Vorschläge für die jeweils mathematisch beste Lösung liefert, welche Produkte – Sie erinnern sich an mein Beispiel mit den Navigationsgeräten – aus welchem in welches Land geliefert werden sollten. Dem Anwender wird somit eine komplexe Technologie geliefert, die aber für ihn einfach zu bedienen ist.

Neben der reinen Optimierung der Problemstellung bietet CPLEX die Möglichkeit, sowohl die Eingangswerte als auch die errechnete Lösung auf Validität zu überprüfen. Außerdem ist es möglich, durch Performancetests und daraus resultierendes Tuning sicherzustellen, dass auch Lasttests mühelos bestanden werden und das Modell somit zukunftssicher ist.

Der Mehrwert: Höhere Gewinne, größeres Knowhow

Eine Eigenschaft der mathematischen Optimierung liegt darin, dass die mathematisch beste Lösung nicht immer intuitiv nachvollziehbar ist. Schließlich werden keine einzelnen Schritte nacheinander abgearbeitet wie in einem selbst geschriebenen Algorithmus, sondern die Fragestellungen ganzheitlich betrachtet. Oft steht man deswegen gerade am Anfang vor der Lösung und fragt sich: „Wie kommt CPLEX jetzt darauf?“ „Wieso hat CPLEX das so gelöst?“ „Müsste die Lösung nicht anders aussehen?“
Doch die Auseinandersetzung damit lohnt sich: Belohnt wird man mit einer Lösung, die nachweislich die mathematisch Beste ist, und auf die man ohne die Hilfe von mathematischer Optimierung möglicherweise nie gekommen wäre. Das bedeutet: Höhere Gewinne bei geringerem Aufwand! Durch die Automatisierung können außerdem mehrere Aufgaben parallel erledigen werden.

Da ein Großteil der Implementierung direkt beim Kunden durchgeführt wurde, konnte ich die Unternehmensangehörigen gleichzeitig Schritt für Schritt auf die neue Technologie vorbereiten. Mit meiner Anwesenheit vor Ort hatten die Mitarbeiter ständig einen Ansprechpartner, der ihnen die Hintergründe der mathematischen Optimierung verständlich erklären konnte. Wir konnten zusammen sowohl auf die Hintergründe des Modells eingehen als auch nachvollziehbar darstellen, wie CPLEX zu den entsprechenden Lösungen kam. Gerade am Anfang ist dies wichtig, um Vertrauen für die Umsetzung zu gewinnen und damit die Akzeptanz für die neue Technologie zu verbessern.
Haben Sie weitere Fragen dazu? Haben Sie ähnliche Anforderungen, sowohl in ihrem eigenen Umfeld als auch als Lösungsanbieter für Ihre Kunden? Ich freue mich auf Ihre Kommentare.