- Antes de preocuparse por las conexiones al software de modelado, primero desarrolle y pruebe a fondo el solucionador. Asegúrese de que tenga alguna función de canje que haga que un usuario lo prefiera a los solucionadores existentes.
- Determine si su solucionador puede actuar como una “caja negra” (el modelo entra, sale la solución) o si algunas características requieren “ganchos” en el software de modelado (a veces llamadas devoluciones de llamada).
- Si su solucionador se ajusta a la descripción de la “caja negra”, diríjase a un paquete de modelado a la vez, descubra qué formatos de archivo admiten y cómo se comunican con los solucionadores. Creo que la mayoría de los paquetes de modelado comenzaron con, y probablemente todavía tienen, un mecanismo donde escriben el problema en un archivo (texto o binario) con una convención de nomenclatura específica, invocan al solucionador (presumiblemente pasando el nombre del archivo del modelo y tal vez el nombre espere el archivo de la solución), espere a que termine el proceso del solucionador y luego lea la solución (en un formato especificado por el paquete de modelado) de un archivo que escribe el solucionador.
- Si necesitas ganchos, eso es más complicado. Deberá ponerse en contacto con el proveedor del paquete de modelado y ver si tienen una API que expongan a los desarrolladores (o si están dispuestos a trabajar con los desarrolladores para unir el paquete de modelado al solucionador).
Cómo desarrollar solucionadores para software de optimización matemática, como GAMS y AMPL
Related Content
¿Cuál es la diferencia entre Facebook y WhatsApp?
¿Existe algún software que me permita crear un plano de planta 3D?
¿Cuáles son las aplicaciones imprescindibles para escritores?
AMPL : Para AMPL, hay un método muy bien establecido para conectar un solucionador. Esencialmente implica escribir código que lea la definición del modelo del archivo .nl que genera AMPL, resuelve los problemas y luego genera un archivo .sol que AMPL vuelve a leer. La biblioteca AMPL también proporciona rutinas de diferenciación automática numérica para ayudar en problemas no lineales.
Conectando su solucionador a AMPL
GAMS : No estoy seguro de cuál es el estado actual de las cosas, pero la ruta para conectar un solucionador solía ser a través de GAMSlinks (que parece no mantenerse).
https://projects.coin-or.org/GAM …
ps hay un proyecto llamado NLPy que permite escribir rápidamente un “solucionador” en Python (es decir, la biblioteca proporciona funciones para leer archivos .nl y escribir archivos .sol; usted escribe la lógica del solucionador en Python). Lo usé en la escuela de posgrado para manipular modelos AMPL dentro de Python. Parece que no se mantiene activamente, por lo que su kilometraje puede variar.
Github: optimizadores / nlpy
Documentos: documentación de NLPy
Suponiendo que ya conoce la codificación y el desarrollo básico de la GUI, consulte este muy buen libro:
https://www.amazon.com/Model-Bui …
O:
More Interesting
¿Qué hace el programador de aplicaciones?
¿Cuál es el mejor software de edición de fotos para Linux?
¿Qué aplicaciones se incluyeron con Windows 1.0 fuera de la caja?
¿Qué software de gestión de proyectos utiliza para organizar su equipo?
¿Cuáles son las diferencias entre desarrollar productos de hardware y productos de software?
¿Cuál es el mejor programa de recuperación de datos hasta ahora?
¿Cuál es la mejor aplicación de diario de viaje?
¿Cuál es la mejor aplicación técnica para ingenieros mecánicos?
¿Qué es el software de camuflaje?
Cómo crear una aplicación como Pandora
¿Es realmente útil monitorear la actividad informática de los empleados?
¿Cuáles son las principales aplicaciones que debes tener en tu móvil instalado?