AMPL
AMPL (A Mathematical Programming Language) es un lenguaje de modelado algebraico (AML) para describir y solucionar problemas de gran complejidad de programación matemática de gran escala (p. ej., problemas de programación de la producción a grande escala).[1] Fue desarrollado por Robert Fourer, David Gay, y Brian Kernighan en los Laboratorios Bell. AMPL soporta docenas de solvers, tanto de código abierto como software comercial, incluyendo CBC, CPLEX, FortMP, Gurobi, MINOS, IPOPT, SNOPT, KNITRO, y LGO.
AMPL | ||
---|---|---|
Desarrollador(es) | ||
AMPL Optimization LLC http://www.ampl.com | ||
Información general | ||
Extensiones comunes | .mod .dat .run | |
Paradigma | multi-paradigma: declarativo, imperativo | |
Apareció en | 1985 | |
Última versión estable | 20201010 (10 de enero de 2020 (4 años)) | |
Influido por | AWK, C | |
Ha influido a | Coopr | |
Sistema operativo | Multiplataforma: Linux, OS X, algunos basados en Unix, Windows | |
Licencia | Software propietario (traductor), Software libre y de código abierto (Librería de solvers de AMPL) | |
Una característica ventajosa de AMPL es la semejanza de su sintaxis a la notación matemática de problemas de optimización. Esto permite una definición muy concisa y legible de problemas en el ámbito de optimización. Actualmente el servidor NEOS acepta problemas escritos AMPL (anteriormente ubicado en el Laboratorio Nacional Argonne, actualmente establecido en la Universidad de Wisconsin, Madison).[2] De acuerdo con las estadísticas del servidor NEOS, AMPL es el formato más popular para representar problemas de programación matemática resueltos en el servidor.
Características
editarAMPL soporta una amplia gama de tipos de problema, entre ellos:
- Programación lineal.
- Programación cuadrática.
- Programación no lineal.
- Programación entera mixta.
- Programación cuadrática entera mixta con o sin restricciones cuadráticas convexas.
- Programación no lineal entera mixta.
- Programación de cono de segundo orden.
- Optimización global.
- Problemas de programación semidefinida con desigualdades matriciales bilineales.
- Problemas de teoría de la complementariedad (MPECs) en variables discretas o continuas.
- Programación de restricciones.[3]
AMPL Invoca un solver en un proceso separado, lo cual tiene estas ventajas:
- El usuario puede interrumpir el proceso de solución en cualquier momento.
- Los errores del solver no afectan el intérprete.
- La versión de AMPL de 32-bits puede ser utilizada con solvers de 64-bits y viceversa.
La interacción con el solver es llevada a cabo a través de una interfaz "nl" bien definida.
Disponibilidad
editarAMPL está disponible para muchos sistemas operativos populares tanto de 32-bits cómo de 64-bits, incluyendo Linux, Mac OS X, algunos Unix y Windows.[4]
El traductor es software propietario mantenido por AMPL Optimization LLC. También existen varios servicios en línea que proporcionan modelación y solucionando gratis utilizando el lenguaje AMPL.[2][5]
Una versión estudiantil libre con funcionalidad limitada y una versión completa presentada para cursos académicos también está disponible.[6]
AMPL puede ser utilizado desde Microsoft Excel a través del complemento SolverStudio y Open Solver.
La librería de solvers de AMPL (ASL por sus siglas en inglés), la cual permite leer archivos [nl] y proporciona diferenciación automática, es de código abierto y es utilizada en muchos solvers para implementar la conexión con AMPL.
En 2021 AMPL publicó una versión completa ilimitada con una licencia especial para uso académico, personal y comercial denominada AMPL Community Edition Archivado el 28 de julio de 2022 en Wayback Machine.. Esta versión requiere de conexión a internet para poder funcionar y posee algunos solvers incluidos.
Referencias
editar- ↑ Fourer, Robert; Brian W. Kernighan (2002). AMPL: A Modeling Language for Mathematical Programming. Duxbury Press. ISBN 978-0-534-38809-6.
- ↑ a b «NEOS Server for Optimization». Consultado el 11 de agosto de 2015.
- ↑ Fourer, Robert; Gay, David M. (2002). «Extending an Algebraic Modeling Language to Support Constraint Programming». INFORMS Journal on Computing 14 (4): 322-344. doi:10.1287/ijoc.14.4.322.2825.
- ↑ AMPL page at AMPL Optimization Inc.
- ↑ «Try AMPL!». Consultado el 11 de agosto de 2015.
- ↑ «AMPL Downloads». Archivado desde el original el 26 de mayo de 2015. Consultado el 11 de agosto de 2015.
Enlaces externos
editar- Página web oficial
- Página del Prof. Fourer casa en Northwestern Universidad