Busco a un de código abierto implementación de un método de hacer la optimización restringida para la función multivariable no lineal en Java.optimización con restricciones para la función no lineal multivariable en Java
Respuesta
Existen varias implementaciones de Java de código abierto que pueden hacer esto, por ejemplo:
- OptaPlanner (licencia Apache, 100% Java, un montón de ejemplos y documentación)
- JACOP
- choco
- ...
IPOPT es el solucionador más robusto que conozco.
Tiene un Java interface aunque no tengo idea de lo bueno que es, solo uso la API de C++.
Mi experiencia con IPOPT es que es el solucionador de código abierto más eficaz que he usado para problemas convexos grandes y dispersos. Desafortunadamente, la biblioteca no es segura para subprocesos y es propensa a segfault o peor, daña la memoria y causa que la JVM segfault más tarde si haces algo ligeramente incorrecto, que es casi imposible de depurar de Java. Al final, decidí que era mejor aislar cualquier código usando IPOPT en un proceso separado, escrito en C++. – Owen
@Owen Interesante. He utilizado la API de Java de manera muy extensa desde entonces, y funcionó de manera confiable; sin segfaults, sin corrupción de memoria, sin pérdida de memoria. Sin embargo, estoy de acuerdo: si es posible para usted, simplemente colóquelo en un proceso separado y evite por completo las dificultades de interfaz. – Ali
Puede que tengas razón. Terminé rastreando mi corrupción de memoria al hecho de que el finalizador de 'Ipopt' estaba siendo llamado en un hilo diferente (como suelen ser los finalizadores). Entonces, supongo que todo puede volver al hecho de que Ipopt no es seguro para subprocesos, [que está documentado] (https://projects.coin-or.org/Ipopt/ticket/167). – Owen
Puede echar un vistazo a Choco, un marco para la programación de restricciones implementado en java.
Hace poco porté el optimizador libre de derivadas COBYLA2 de Michael Powells para funciones objetivas no lineales y restricciones para Java. Encontrarás el código fuente here.
- 1. Optimización con restricciones
- 2. Bibliotecas de optimización no lineal secuenciales en C++ WITH constraints
- 3. Usar outer() con una función multivariable
- 4. Optimización de SciPy para sistemas con restricciones limitadas
- 5. Optimización de algoritmo de búsqueda lineal
- 6. R equivalente al fmincon de MATLAB para la optimización restringida?
- 7. Restricciones genéricas en la función
- 8. Perceptron único - Función de evaluación no lineal
- 9. Regresión lineal ponderada en Java
- 10. Error estándar en la regresión no lineal
- 11. no lineal para el bucle
- 12. Desconectando la optimización para una función específica en gcc 4.2.2
- 13. Optimización con Mathematica: use BinCounts en la función objetivo
- 14. Biblioteca de programación no lineal en C++
- 15. Volumen no lineal para HTMLMediaElement
- 16. optimización no lineal restringida en Microsoft Solver foundation vs Matlab fmincon
- 17. Rendimiento Z3 con aritmética no lineal
- 18. Optimización de Java: variable local o llamada de función
- 19. ¿Qué es la programación lineal?
- 20. Java: declarando variables con múltiples "restricciones" genéricas en ellos
- 21. UIScrollview setContentOffset con animación no lineal?
- 22. Java: optimización del tipo SAM
- 23. Uso de la función de mapa con una función multivariada
- 24. Colecciones con varias restricciones (tiempo y tamaño) en Java
- 25. Textura lineal/no lineal Asignación de un Quad distorsionado
- 26. optimización restringida en R
- 27. Regresión Lineal con Python numpy
- 28. optimización de la función de llamadas en Haskell
- 29. Restricciones no de confianza
- 30. Restricciones en la mezcla
¿Has mirado Apache Commons Math? Parece que recuerdo algunas utilidades de optimización no lineales ... –
¿Podría dar un ejemplo del tipo de problema que está tratando de resolver? –
¿El problema que desea resolver tiene variables discretas o variables continuas? – willem