Dada una transformación entre valores de entrada y de salida, descrita por una función matemática , la optimización trata de generar y seleccionar la mejor solución de un conjunto de alternativas disponibles, eligiendo sistemáticamente valores de entrada 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 se pueden modelar de esta manera. Por ejemplo, las entradas podrían ser parámetros de diseño para un motor, la salida podría ser el consumo de energía. Para otra optimización, las entradas podrían ser opciones comerciales y la salida podría ser la ganancia obtenida.
Un problema de optimización , (en este caso un problema de minimización), se puede representar de la siguiente manera:
- Dado: una función f : A 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 se defina en un lenguaje de programación adecuado y se conecte en tiempo de compilación o ejecución al software de optimización. El software de optimización entregará valores de entrada en A , el módulo de software que realiza f entregará el valor calculado f ( x ) y, en algunos casos, información adicional sobre la función como derivadas.
De esta manera se obtiene una clara separación de preocupaciones: 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 proporcionan una lista de software de optimización notables organizados según licencia y tipo de modelo de negocio.
Software libre y de código abierto
Aplicaciones
Bibliotecas de software
Software propietario
- AIMMS – sistema de modelado de optimización, incluyendo facilidades de creación de GUI.
- ALGLIB – biblioteca de optimización cuadrática y no lineal restringida con licencia dual (GPL/comercial) con interfaces C++ y C#.
- Altair HyperStudy – diseño de experimentos y optimización de diseño multidisciplinario.
- AMPL – lenguaje de modelado para optimización lineal, entera mixta y no lineal a gran escala.
- ANTIGONE – un solucionador MINLP de optimización global determinista .
- APMonitor : lenguaje de modelado y suite de optimización para ecuaciones enteras, diferenciales y algebraicas mixtas no lineales de gran escala con interfaces a MATLAB, Python y Julia.
- Artelys Knitro : optimización no lineal a gran escala para programación continua y entera mixta.
- ASTOS – Software de optimización de trayectorias aeroespaciales para lanzamiento, reingreso y problemas aeroespaciales genéricos.
- BARON – optimización de problemas algebraicos no lineales y no lineales enteros mixtos.
- COMSOL Multiphysics : un software de análisis, resolución y simulación multifísica de elementos finitos multiplataforma .
- CPLEX – solucionador para programación lineal y cuadrática con variables continuas o enteras (MIP).
- FEATool Multiphysics – Caja de herramientas GUI de FEA para 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 de modelado algebraico general.
- Gurobi Optimizer – solucionador para programación lineal y cuadrática con variables continuas o enteras (MIP).
- HEEDS MDO : optimización de diseño multidisciplinario utilizando 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 C, Java, C# .NET, Fortran y Python.
- IOSO – (Optimización indirecta sobre la base de la autoorganización) una tecnología de optimización no lineal multidimensional y multiobjetivo.
- Kimeme : una plataforma abierta para la optimización de múltiples objetivos 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 "What's Best!" 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 – una plataforma de integración para optimización multiobjetivo y multidisciplinaria, 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 adicional.
- MATLAB – problemas lineales, enteros, cuadráticos y no lineales con Optimization Toolbox ; problemas de optimización de máximos múltiples, mínimos múltiples y no suaves; estimación y optimización de parámetros del modelo.
- MIDACO es una herramienta de software liviana para optimización de uno o varios objetivos basada en computación evolutiva . Escrita en C/C++ y Fortran con pasarelas a Excel, VBA, Java, Python, Matlab, Octave, R, C# y Julia.
- Mathematica : optimización multivariada a gran escala, restringida y sin restricciones, lineal, cuadrática y no lineal, continua y entera.
- ModelCenter : un entorno gráfico para la integración, automatización y optimización del diseño.
- MOSEK – optimización lineal, cuadrática, cónica y convexa, no lineal, continua y entera.
- NAG – lineal, cuadrático, no lineal, sumas de cuadrados de funciones lineales o no lineales; lineal, lineal dispersa, no lineal, con restricciones 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 . Existen planes para incorporar 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 de diseño desarrollada por Noesis Solutions.
- optiSLang : soluciones de software para análisis de sensibilidad, optimización y evaluación de robustez basados en CAE.
- OptiY : un entorno de diseño que ofrece estrategias de optimización modernas y algoritmos probabilísticos de última generación para incertidumbre, confiabilidad, robustez, análisis de sensibilidad, minería de datos y metamodelado.
- OptiStruct : tecnología CAE galardonada para la síntesis de diseño conceptual y la optimización estructural.
- OptQuest : complemento de optimización basado en metaheurísticas para optimización basada en simulación junto con software de simulación de eventos discretos.
- PottersWheel – estimación de parámetros en ecuaciones diferenciales ordinarias (caja de herramientas MATLAB, gratuita para uso académico).
- pSeven – plataforma de software para la automatización de simulación y análisis de ingeniería, optimización multidisciplinaria y minería de datos, desarrollada por DATADVANCE .
- SAS : una suite de software desarrollada por SAS Institute para análisis avanzados (estadísticas, pronósticos, aprendizaje automático, optimización, etc.), inteligencia empresarial, inteligencia de clientes, gestión de datos, gestión de riesgos y mucho más.
- SmartDO – optimización de diseño global multidisciplinario, especializado en ingeniería asistida por computadora (CAE), utilizando enfoques de búsqueda global directa.
- SNOPT – problemas de optimización a gran escala.
- The Unscrambler : software de formulación de productos y 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 de diagrama de bloques visual para simulación y optimización de sistemas dinámicos .
- WORHP : un solucionador disperso a gran escala para optimización no lineal continua.
Freeware/gratuito para uso académico
- OBJETIVOS
- AMPL
- APMonitor : gratuito para uso académico y comercial, con integraciones con Python y MATLAB .
- ASTOS
- CPLEX
- Couenne : un solucionador de código abierto para la optimización global determinista de MINLP con licencia pública Eclipse.
- FICO Xpress
- Biblioteca Galahad
- Gekko
- Gurobi Optimizer : gratuito para usuarios académicos
- Solucionador de leones
- MIDACO – un paquete de software para optimización numérica basado en computación evolutiva .
- MINTO – solucionador de programación entera que utiliza 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, no lineal, continua y entera.
- OptimJ – lenguaje de modelado basado en Java; la edición gratuita incluye soporte para formatos de archivos lp_solve, GLPK y LP o MPS .
- PottersWheel – estimación de parámetros en ecuaciones diferenciales ordinarias (caja de herramientas MATLAB gratuita para uso académico).
- Pyomo : colección de paquetes de software Python para formular modelos de optimización.
- Paquete Fortran UFO para optimización numérica
- ADORACIÓN
Véase también
- Comparación de software de optimización
- Lista de sistemas de álgebra computacional
- Lista de lenguajes de programación con restricciones
- Lista de bibliotecas numéricas
- Lista de algoritmos de optimización
- Lista de solucionadores SMT
Referencias
- ^ 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.
- ^ "Proyectos". COIN-OR: Infraestructura computacional para la investigación de operaciones . 8 de octubre de 2014. Consultado el 10 de marzo de 2021 .
- ^ Vanaret, Charlie; Leyffer, Sven (5 de septiembre de 2024). Uno, un solucionador de última generación para unificar la optimización no convexa con restricciones no lineales. Laboratorio Nacional Argonne e Instituto Zuse de Berlín. Presentación.