Antwort

10

Eine gute Antwort hängt davon ab, was Sie mit "konvex" und "allgemeiner" meinen. Wenn Sie große oder herausfordernde lineare oder konvex-quadratische Optimierungsprobleme lösen wollen (besonders mit einer diskreten Komponente), dann ist es schwer zu schlagen die wichtigsten kommerziellen Löser, gurobi, cplex und Dash, wenn Geld ein großes Problem für Sie ist. Sie haben alle saubere JNI-Schnittstellen und sind auf den meisten gängigen Plattformen verfügbar. Es gibt eine interessante Java-basierte Modellierungsumgebung namens optimj, die es Ihnen ermöglicht, sich in mehrere Optimierer einzuklinken, aber es erfordert eine Lizenz für sich selbst und für alle Solver, die Sie bekommen (aber es gibt einige kostenlose Solver).

Das Projekt coin-or hat mehrere Optimierer und ein Projekt für JNI-Schnittstelle. Es ist völlig kostenlos (EPL Lizenz), aber wird mehr Arbeit für die Einrichtung und wahrscheinlich nicht die gleiche Leistung geben.

1

Sie möchten vielleicht JScience betrachten, sieht es ziemlich komplett aus. (Mathematische Strukturen, lineare Algebra lösen, etc.)

+0

Vielen Dank für Ihre Antwort Leider stoppt JScience kurz vor der eigentlichen y Implementierung von Optimierungsalgorithmen. –

+0

lol ............. –

0

Blick in AMPL. Die Basisversion ist kostenlos, kostet aber bei größeren Problemen Geld. Du zahlst nicht für die Sprache; Sie zahlen für Löser. Es ist auch möglich, den Code hochzuladen und auf seinen Servern laufen zu lassen.

+1

Wie ist AMPL eine gute Lösung für eine Java-Umgebung. –

5

Es gibt ein lineares Optimierungstool namens lpsolve. Es ist in C geschrieben (ich denke), aber kommt mit einem Java/JNI-Wrapper (API ist nicht sehr OO, aber es macht den Job). Es ist ziemlich einfach zu bedienen und ich habe es im letzten Jahr ziemlich glücklich und stabil in einem Live-System laufen lassen.

1

OptaPlanner (Java, OpenSource, ASL) kann große Probleme behandeln und verfügt nicht über Einschränkungen des Einschränkungstyps (z. B. linear vs konvex).

+0

Diese Konzepte gewinnen in den letzten Tagen an Fahrt. Es wäre toll zu wissen, ob es in diesem Bereich in Java neue Bibliotheken oder APIs gibt. – Gana

+0

Ja, es gibt Choco, Jacop, Jsprit usw. OptaPlanner ist mit Abstand der am meisten heruntergeladene afaik (ich bin aber voreingenommen). Die kürzlich veröffentlichte Version 7.0 zielt auf Java 8 & 9 (Lamba's usw.) ab. –

2

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

0

IPOPT ein interface for Java hat. Sie können auch in der Lage sein, sich anzupassen Die APMonitor-Modellierungssprache für Java.Ich entwickle diese Plattform, also werde ich 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 enthält Löser wie IPOPT, APOPT , BPOPT und andere, die mit großen Systemen umgehen können