AMPL
# 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). 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.

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).. 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

AMPL 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.

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

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.

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.

Una versión estudiantil libre con funcionalidad limitada y una versión completa presentada para cursos académicos también está disponible..

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. Esta versión requiere de conexión a internet para poder funcionar y posee algunos solvers incluidos.

