Respuesta

10

Una buena respuesta depende de lo que quiere decir con "convexo" y "más general" Si está tratando de resolver problemas de optimización lineales o convexos cuadráticos grandes o desafiantes (especialmente con un componente discreto), entonces es difícil de superar los principales solucionadores comerciales, gurobi, cplex y Dash a menos que el dinero sea un gran problema para usted. Todos ellos tienen interfaces JNI limpias y están disponibles en la mayoría de las plataformas principales. Hay un interesante entorno de modelado basado en Java llamado optimj, que le permite enganchar en varios optimizadores, pero requiere una licencia para sí mismo y para los solucionadores que obtenga (pero hay algunos solucionadores libres). El proyecto coin-or tiene varios optimizadores y tiene un proyecto para la interfaz JNI. Es totalmente gratuito (licencia EPL), pero le llevará más trabajo configurarlo y probablemente no le proporcione el mismo rendimiento.

1

Es posible que desee mirar JScience, se ve bastante completo. (Estructuras matemáticas, resolución de álgebra lineal, etc.)

+0

Gracias por su respuesta. Desafortunadamente, JScience se queda corto de reall y implementando algoritmos de optimización. –

+0

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

0

Mire en AMPL. La edición básica es gratuita, pero cuesta dinero para problemas más grandes. No pagas por el idioma; pagas por los solucionadores También es posible cargar su código y ejecutarlo en sus servidores.

+1

cómo es AMPL una buena solución para un entorno Java. –

5

Hay una herramienta de optimización lineal llamada lpsolve. Está escrito en C (creo) pero viene con un contenedor Java/JNI (API no es muy OO pero cumple su función). Es bastante fácil de usar y lo he estado ejecutando muy felizmente y de forma estable en un sistema en vivo durante el último año.

1

OptaPlanner (Java, código abierto, ASL) puede manejar problemas grandes y no tiene limitaciones de tipo de restricciones (como lineal frente a convexo).

+0

Estos conceptos están ganando mucha tracción en los últimos días. Sería genial saber si hay algún conjunto nuevo de bibliotecas o API en esta área en Java. – Gana

+0

Sí, está Choco, jacop, jsprit, etc. OptaPlanner es, con mucho, el afaik más descargado (aunque estoy predispuesto). La versión 7.0 lanzada recientemente apunta a Java 8 y 9 (lamba, etc.). –

2

Puede intentar JOptimizer, de código abierto y adecuado para los problemas generales convexas de optimización (programación lineal, programación cuadrática, qcqp, programación de cono, programación semidefinida, ect

0

IPOPT tiene una interface for Java. También puede ser capaz de adaptarse el lenguaje de modelado de APMonitor para Java. Desarrollo esta plataforma, así que estaré encantado de trabajar con alguien si desean crear una nueva interfaz para Java. Ya tiene una interfaz Python API y MATLAB e incluye solucionadores como IPOPT, APOPT , BPOPT y otros que pueden manejar sistemas a gran escala.

Cuestiones relacionadas