source software significa sea que open libre codigo abierto mathematical-optimization linear-programming cplex gurobi convex-optimization

mathematical-optimization - software - que significa que linux sea de codigo abierto



biblioteca de optimización matemática para Java: ¿recomendaciones gratuitas o de código abierto? (7)

¿Alguien sabe de una biblioteca que realiza optimización matemática (programación lineal, optimización convexa o tipos más generales de problemas)? Estoy buscando algo como MATLAB, pero con la capacidad de manejar problemas más grandes. ¿Debo escribir mis propias implementaciones o comprar uno de esos productos comerciales (CPLEX y similares)?


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


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.


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.


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 vencer al 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. Existe un interesante entorno de modelado basado en Java llamado optimj , que le permite conectar varios optimizadores, pero requiere una licencia para sí mismo y para los solucionadores que obtenga (pero hay algunos solucionadores gratuitos).

El proyecto coin-or tiene varios optimizadores y tiene un proyecto para la interfaz JNI. Es totalmente gratuito (licencia EPL ), pero requerirá más trabajo para configurarlo y probablemente no le proporcione el mismo rendimiento.


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


IPOPT tiene una interfaz para Java . También es posible que pueda adaptar el lenguaje de modelado 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 API de Python y una interfaz MATLAB e incluye solucionadores como IPOPT, APOPT, BPOPT y otros que pueden manejar sistemas a gran escala.


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