Articulo de referencia

Lista de software de optimización

Dada una transformación entre valores de entrada y salida, descrita por una función matemática , la optimización consiste en generar y seleccionar la mejor solución entre un con...

Dada una transformación entre valores de entrada y salida, descrita por una función matemática , la optimización consiste en generar y seleccionar la mejor solución entre un conjunto de alternativas disponibles, eligiendo sistemáticamente valores de entrada dentro de un conjunto permitido, calculando la salida de la función y registrando los mejores valores de salida encontrados durante el proceso. Muchos problemas del mundo real pueden modelarse de esta manera. Por ejemplo, las entradas podrían ser parámetros de diseño para un motor y la salida, el consumo de energía. En otro caso de optimización, las entradas podrían ser decisiones empresariales y la salida, el beneficio obtenido.

Un problema de optimización (en este caso, un problema de minimización) puede representarse de la siguiente manera:

Dado: una función f  : A{\displaystyle \to }R de algún conjunto A a los números reales
Buscar: un elemento x 0 en A tal que f ( x 0 ) ≤ f ( x ) para todo x en A .

En la optimización continua, A es un subconjunto del espacio euclidiano R n , a menudo especificado por un conjunto de restricciones , igualdades o desigualdades que los miembros de A deben satisfacer. En la optimización combinatoria, A es un subconjunto de un espacio discreto, como cadenas binarias, permutaciones o conjuntos de números enteros.

El uso de software de optimización requiere que la función f esté definida en un lenguaje de programación adecuado y conectada al software de optimización durante la compilación o la ejecución. El software de optimización proporcionará los valores de entrada en A , y el módulo de software que implementa f proporcionará el valor calculado f ( x ) y, en algunos casos, información adicional sobre la función, como derivadas.

De esta forma, se obtiene una clara separación de responsabilidades: se pueden probar fácilmente diferentes módulos de software de optimización en la misma función f , o se puede utilizar un software de optimización determinado para diferentes funciones f .

Las siguientes tablas ofrecen una lista de software de optimización destacado, organizado según el tipo de licencia y modelo de negocio.

Software libre y de código abierto

Aplicaciones

Bibliotecas de software

Software propietario

  • AIMMS : sistema de modelado de optimización, que incluye herramientas para la creación de interfaces gráficas de usuario (GUI).
  • ALGLIB : biblioteca de optimización cuadrática y no lineal con restricciones, con doble licencia (GPL/comercial) e interfaces para C++ y C#.
  • Altair HyperStudy : diseño de experimentos y optimización de diseños multidisciplinarios.
  • AMPL : lenguaje de modelado para optimización lineal, de enteros mixtos y no lineal a gran escala.
  • ANTÍGONA : un solucionador MINLP de optimización global determinista .
  • APMonitor : lenguaje de modelado y conjunto de herramientas de optimización para ecuaciones a gran escala, no lineales, de enteros mixtos, diferenciales y algebraicas, con interfaces para MATLAB, Python y Julia.
  • Artelys Knitro : optimización no lineal a gran escala para programación continua y de enteros mixtos.
  • ASTOS – Software de optimización de trayectorias aeroespaciales para lanzamientos, reentradas y problemas aeroespaciales generales.
  • BARON : optimización de problemas algebraicos no lineales y problemas no lineales de enteros mixtos.
  • COMSOL Multiphysics : un software multiplataforma para análisis de elementos finitos , resolución de problemas y simulación multifísica .
  • CPLEX : solucionador para programación lineal y cuadrática con variables continuas o enteras (MIP).
  • FEATool Multiphysics – Caja de herramientas con interfaz gráfica de usuario para análisis de elementos finitos en MATLAB.
  • FICO Xpress : solucionador para programación lineal y cuadrática con variables continuas o enteras (MIP).
  • FortMP – programación lineal y cuadrática.
  • FortSP – programación estocástica.
  • GAMS – Sistema General de Modelado Algebraico.
  • Gurobi Optimizer : solucionador para programación lineal y cuadrática con variables continuas o enteras (MIP).
  • HEEDS MDO : optimización de diseño multidisciplinar mediante SHERPA, un algoritmo de optimización híbrido y adaptativo.
  • Bibliotecas numéricas IMSL : algoritmos de optimización QP y LP lineales, cuadráticos, no lineales y dispersos implementados en lenguajes de programación estándar como C, Java, C# .NET, Fortran y Python.
  • IOSO – (Optimización indirecta basada en la autoorganización) es una tecnología de optimización no lineal, multidimensional y multiobjetivo.
  • Kimeme : una plataforma abierta para la optimización multiobjetivo y la optimización del diseño multidisciplinario.
  • LINDO ( Optimizador lineal, interactivo y discreto) es un paquete de software para programación lineal, programación entera, programación no lineal , programación estocástica y optimización global. El complemento de Excel "¡Lo mejor!" realiza optimización lineal, entera y no lineal utilizando LINDO.
  • LIONsolver : un software integrado para minería de datos , análisis , modelado, aprendizaje y optimización inteligente , y un enfoque de inteligencia empresarial reactiva .
  • modeFRONTIER es una plataforma de integración para la optimización multiobjetivo y multidisciplinar, que proporciona un acoplamiento perfecto con herramientas de ingeniería de terceros, permite la automatización del proceso de simulación de diseño y facilita la toma de decisiones analíticas.
  • Maple : optimización lineal, cuadrática y no lineal, continua y entera. Con y sin restricciones. Optimización global con caja de herramientas complementaria.
  • MATLAB : problemas lineales, enteros, cuadráticos y no lineales con Optimization Toolbox ; problemas de optimización con múltiples máximos, múltiples mínimos y funciones no diferenciables; estimación y optimización de parámetros de modelos.
  • MIDACO es una herramienta de software ligera para la optimización de uno o varios objetivos basada en computación evolutiva . Está escrita en C/C++ y Fortran, con interfaces para Excel, VBA, Java, Python, Matlab, Octave, R, C# y Julia.
  • Mathematica : optimización multivariable a gran escala, con y sin restricciones, lineal, cuadrática y no lineal, continua y entera.
  • ModelCenter : un entorno gráfico para la integración, la automatización y la optimización del diseño.
  • MOSEK : optimización no lineal, continua y entera, lineal, cuadrática, cónica y convexa.
  • NAG : funciones lineales, cuadráticas, no lineales, sumas de cuadrados de funciones lineales o no lineales; lineales, lineales dispersas, no lineales, con o sin restricciones; optimizaciones locales y globales; problemas continuos o enteros.
  • NMath : programación lineal, cuadrática y no lineal.
  • Octeract Engine : un solucionador MINLP de optimización global determinista . Se prevé la incorporación de funciones adicionales.
  • OptimJ : lenguaje de modelado basado en Java. La edición Premium incluye compatibilidad con los solucionadores Mosek y CPLEX.
  • Plataforma Optimus : una plataforma de integración de procesos y optimización del diseño desarrollada por Noesis Solutions.
  • optiSLang : software para análisis de sensibilidad, optimización y evaluación de robustez basados ​​en CAE.
  • OptiStruct : tecnología CAE para la síntesis de diseño conceptual y la optimización estructural.
  • OptQuest : complemento de optimización basado en metaheurísticas para la optimización basada en simulación, en combinación con software de simulación de eventos discretos.
  • PottersWheel : estimación de parámetros en ecuaciones diferenciales ordinarias (caja de herramientas de MATLAB, gratuita para uso académico).
  • pSeven : plataforma de software para la automatización de la simulación y el análisis de ingeniería, la optimización multidisciplinaria y la minería de datos, desarrollada por DATADVANCE .
  • SAS : un conjunto de software desarrollado por SAS Institute para análisis avanzados (estadística, pronósticos, aprendizaje automático, optimización, etc.), inteligencia empresarial, inteligencia del cliente, gestión de datos, gestión de riesgos y mucho más.
  • SmartDO – optimización de diseño global multidisciplinar, especializada en ingeniería asistida por computadora (CAE), utilizando enfoques de búsqueda global directa.
  • SNOPT – problemas de optimización a gran escala.
  • El Unscrambler : software para la formulación de productos y la optimización de procesos.
  • TOMLAB admite optimización global, programación entera, todo tipo de mínimos cuadrados, programación lineal, cuadrática y sin restricciones para MATLAB . TOMLAB admite solucionadores como CPLEX , SNOPT , KNITRO y MIDACO .
  • VisSim : un lenguaje visual de diagramas de bloques para la simulación y optimización de sistemas dinámicos .
  • WORHP : un solucionador disperso a gran escala para la optimización no lineal continua.

Software gratuito/de uso gratuito para fines académicos.

  • AIMMS
  • AMPL
  • APMonitor : gratuito tanto para uso académico como comercial, con integraciones para Python y MATLAB .
  • ASTOS
  • CPLEX
  • Couenne : un solucionador de código abierto para la optimización global determinista de problemas MINLP, con licencia bajo la Licencia Pública de Eclipse.
  • FICO Xpress
  • Biblioteca Galahad
  • Gekko
  • Gurobi Optimizer : gratuito para usuarios académicos.
  • LIONsolver
  • MIDACO : un paquete de software para optimización numérica basado en computación evolutiva .
  • MINTO : solucionador de programación entera mediante el algoritmo de ramificación y acotación; software gratuito para uso personal.
  • MOSEK : un software de optimización a gran escala. Resuelve problemas de optimización lineal, cuadrática, cónica y convexa, así como problemas de optimización continua y entera.
  • OptimJ : lenguaje de modelado basado en Java; la edición gratuita incluye compatibilidad con los formatos de archivo lp_solve, GLPK y LP o MPS .
  • PottersWheel : estimación de parámetros en ecuaciones diferenciales ordinarias (caja de herramientas gratuita de MATLAB para uso académico).
  • Pyomo : conjunto de paquetes de software en Python para la formulación de modelos de optimización.
  • TRABAJO

Véase también

Referencias

  1. Hall, Julian (21 de septiembre de 2020). HiGHS: Software de código abierto de alto rendimiento para optimización lineal (PDF) . Edimburgo, Reino Unido: Universidad de Edimburgo . Consultado el 27 de febrero de 2022 . Presentación.
  2. "Proyectos" . COIN-OR: Infraestructura Computacional para la Investigación Operativa . 8 de octubre de 2014. Consultado el 10 de marzo de 2021 .