AMPL

Lenguage de programación algebraica

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

editar

AMPL soporta una amplia gama de tipos de problema, entre ellos:

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

editar

AMPL 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
  1. Fourer, Robert; Brian W. Kernighan (2002). AMPL: A Modeling Language for Mathematical Programming. Duxbury Press. ISBN 978-0-534-38809-6. 
  2. a b «NEOS Server for Optimization». Consultado el 11 de agosto de 2015. 
  3. 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. 
  4. AMPL page at AMPL Optimization Inc.
  5. «Try AMPL!». Consultado el 11 de agosto de 2015. 
  6. «AMPL Downloads». Archivado desde el original el 26 de mayo de 2015. Consultado el 11 de agosto de 2015. 

Enlaces externos

editar