Frage

Kennt jemand solch eine Bibliothek, die mathematische Optimierung (lineare Programmierung, konvexe Optimierung oder allgemeinere Art von Problemen) führt? Ich bin auf der Suche nach so etwas wie MATLAB, aber mit der Fähigkeit, größere Probleme zu behandeln. Muss ich meine eigene Implementierungen zu schreiben, oder kaufen Sie eines dieser Handelsprodukte (CPLEX und dergleichen)?

War es hilfreich?

Lösung

Eine gute Antwort hängt davon ab, was Sie unter „konvex“ und „allgemeinen“ Wenn Sie große oder anspruchsvollen linearen oder konvex-quadratischen Optimierungsprobleme (vor allem mit einer diskreten Komponente zu ihnen) versuchen zu lösen, dann ist es schwer, die wichtigsten kommerziellen Solvern zu schlagen, gurobi , cplex und Dash es sei denn Geld ist ein großes Problem für Sie. Sie alle haben saubere JNI-Schnittstellen und sind auf den meisten wichtigen Plattformen.

Die münzen oder Projekt hat mehrere Optimierer und ein Projekt für JNI-Schnittstelle verfügen. Es ist völlig kostenlos ( EPL Lizenz), aber mehr Arbeit, um Set-up und wahrscheinlich nicht geben Ihnen die gleiche Leistung.

Andere Tipps

Es gibt eine lineare Optimierung Tool namens lpsolve . Es ist in C geschrieben (glaube ich), aber kommt mit einem Java / JNI-Wrapper (API nicht sehr OO ist, aber es macht den Job). Es ist ziemlich einfach zu bedienen und ich habe es ganz glücklich und stabil für das letzte Jahr in einem Live-System hat ausgeführt wird.

Sie können versuchen, JOptimizer , Open Source und für allgemeine konvexe Optimierungsprobleme (lineare Programmierung, quadratische Programmierung, qcqp , Kegel-Programmierung, semidefinite Programmierung, etc.

OptaPlanner (Java, Open Source, ASL) können große Probleme umgehen und haben keine Einschränkungen Einschränkungsart (wie lineare vs konvex).

Sie können wollen, betrachten JScience , es sieht ziemlich vollständig. (Mathematische Strukturen, Lineare Algebra Lösung, etc.)

IPOPT hat eine Schnittstelle für Java . Sie können auch in der Lage sein, die APMonitor Modellierungssprache für Java anzupassen. Ich entwickle diese Plattform so ich werde froh sein, mit jemandem zu arbeiten, wenn sie eine neue Schnittstelle zu Java erstellen möchten. Es hat bereits eine Python API und MATLAB-Schnittstelle und umfasst Lösern wie IPOPT, APOPT , BPOPT, und andere, die großen Systeme verarbeiten können.

Schauen Sie in AMPL . Die Basic Edition ist kostenlos, aber es kostet Geld für größere Probleme. Sie müssen nicht für die Sprache zahlen; Sie zahlen für Solver. Es ist auch möglich, Ihren Code zu laden und haben es auf ihren Servern laufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top