Sie haben gerade ein Optimierungsmodell programmiert, um die Produktion von Widgets Ihres Unternehmens zu optimieren. Ihre Firma hat einen wirklich guten Deal mit $ SOLVER1 bekommen, also benutzen Sie das.
In den nächsten zehn Jahren verbessern und erweitern Sie dieses Modell, wenn Ihre Chefs neue Anforderungen an Sie stellen. Am Ende dieser Zeit haben Sie möglicherweise Zehntausende von Zeilen mit Optimierungscode als Teil eines Systems, das für Ihre Unternehmensabläufe von entscheidender Bedeutung ist.
Das ursprüngliche Lizenzgeschäft Ihres Unternehmens ist abgelaufen, und die Hersteller von $ SOLVER1 haben die Lizenzgebühren massiv erhöht, so dass Sie jetzt mehrere Hunderttausend Lizenzkosten pro Jahr zahlen.
Währenddessen haben die Boffins einer Konkurrenzfirma gerade eine neue Version von $ SOLVER2 veröffentlicht. Es hat ausgefallene neue Algorithmen, die das Widget-Optimierungsproblem um 20% schneller lösen und bessere Lösungen als $ SOLVER1 finden können. Es kostet nicht mehr als $ SOLVER1 und die Leistung ist besser.
Inzwischen hat die Open-Source-Community $ FREESOLVER veröffentlicht. Es ist vielleicht nicht ganz so mächtig wie die Top-kommerziellen Optionen, aber es ist so gut wie $ SOLVER1 vor zehn Jahren war, und wenn Sie nicht $ 100k/Jahr für die Lizenzierung zahlen würden, könnten Sie eine Menge Server-Zeit mieten, um nachzuholen dafür.
... also, haben Sie Ihr Optimierungsmodell auf einer Plattform geschrieben, auf der Sie zu einem neuen Solver wechseln und diese Möglichkeiten nutzen können, ohne Code im Wert von zehn Jahren löschen zu müssen?
Es gibt große Vorteile, Solver schnell und einfach wechseln zu können. Ich kenne eine Firma, die drei verschiedene Löser für ihre Arbeit verwendet: Sie versuchen zwei verschiedene Open-Source-Löser, die beide in der Cloud laufen, und wenn keiner von ihnen eine adäquate Lösung finden kann, dann werfen sie ihn auf einen teuren Löser mit klügerem Algorithmen. Die Open-Source-Solver behandeln 90% ihrer Probleme, so dass sie für die letzten 10% nur den kommerziellen Solver verwenden müssen, was ihnen erhebliche Einsparungen bei ihren Lizenzkosten ermöglicht.
Eine Option, die ich bei meiner Arbeit diskutiert habe, ist die Verwendung eines kommerziellen Solvers für unternehmenskritische Arbeiten und Open-Source-Alternativen für Anwendungen wie Schulungen oder Prototypen im kleinen Maßstab, wo wir nicht dieselben Anforderungen haben. Auf diese Weise können wir die Anzahl gleichzeitiger Benutzer minimieren, die wir für den kommerziellen Solver lizenzieren müssen.
(Und ja, es ist immer noch ein Thema von Lock-in mit der Plattform, sondern Plattformen wie AMPL sind deutlich billiger als ein High-End-kommerziellen Solver.)
Vielen Dank für Ihre Antwort! Eigentlich muss ich Cplex benutzen, weil es obligatorisch ist. Ist AMPL so schwer zu lernen? – MysteryGuy
Auch wenn Sie CPLEX * now * verwenden müssen, ist es für die Zukunft wertvoll, zu wissen, wie man auf eine solver-unabhängige Weise schreibt. AMPL (und die anderen Modellierungssprachen wie OPL, MPL usw.) sind nicht schwer zu erlernen, und ihre Verwendung gibt Ihnen eine andere Perspektive auf Ihre Modellformulierung (en). – TimChippingtonDerrick