Jump es un lenguaje de modelización de código abierto que permite a los usuarios expresar una amplia gama de problemas de optimización (lineales, mixtos-integrales, cuadráticos, cónicos-cuadráticos, semidefinidos y no lineal) en una sintaxis algebraica de alto nivel. Jump aprovecha las características avanzadas del lenguaje de programación Julia para ofrecer una funcionalidad única, al tiempo que consigue un rendimiento sobre herramientas de modelado comerciales para tareas estándar.
En este paper vienen puntos de referencia, se presetan los aspectos novedosos de la implementación, y discutiremos cómo Jump puede extenderse a nuevas clases de problemas y se compone de herramientas de vanguardia para la visualización y la interactividad.
Jump se creó, al modo clásico del código abierto, para satisfacer un deseo. Como estudiantes de posgrado, se quería un paquete de software que nos permitiera escribir y resolver problemas de optimización, especialmente problemas de optimización con restricciones como la programación lineal y los problemas de programación entera.
Querían que no sólo fuera fácil, sino también rápido y potente. En aquel momento, había que buscar un equilibrio entre la facilidad de uso, la velocidad y la flexibilidad. Por ejemplo, las bibliotecas de optimización en Python eran fáciles de usar pero introducían notables cuellos de botella en el rendimiento. El software comercial, como AMPL, era eficiente pero difícil de ampliar. Las interfaces de bajo nivel en C o C++ introducían complejidades que distraían la atención de la enseñanza y la investigación académica. No estaban satisfechos con estas compensaciones y empezaron a experimentar con un nuevo lenguaje de programación llamado Julia que prometía ofrecer lo mejor de ambos mundos.