¿Cuáles son los solucionadores de programación matemática que hay en el mercado?

Desde su formación hasta su desarrollo, la investigación de operaciones ha acumulado una gran cantidad de teorías y métodos que han jugado un papel cada vez más importante en diversos campos como la defensa nacional, la energía, la manufactura, el transporte, las finanzas y las comunicaciones. Muchos problemas prácticos que encontramos en la producción y la vida pueden modelarse matemáticamente a través de los métodos de optimización involucrados en la investigación de operaciones y expresarse como problemas matemáticos Para resolver estos problemas matemáticos, surgieron los solucionadores.

El solucionador de optimización utiliza principalmente el método de programación matemática en forma de software industrial para optimizar y resolver problemas complejos a gran escala. Es la herramienta central para resolver varios problemas de programación matemática y tiene un valor y una importancia importantes en la producción y la vida real. En el campo industrial, el solucionador, como motor central de la cadena industrial y la optimización de la cadena de suministro, puede proporcionar una toma de decisiones inteligente para escenarios de aplicaciones complejas, ayudar a las empresas a optimizar la toma de decisiones y lograr una reducción de costos y un aumento de la eficiencia.

En la actualidad, los principales solucionadores de optimización del mercado se dividen principalmente en dos categorías: solucionadores comerciales (como Gurobi, IBM Cplex, etc.) y solucionadores de código abierto (como SCIP, etc.). Además, algunos software informáticos comerciales como Matlab, e incluso las tablas de Excel de uso común, contienen herramientas de resolución que pueden resolver algunos problemas de programación matemática a pequeña escala, pero todavía existe una cierta brecha en la resolución de eficiencia en comparación con los solucionadores comerciales.

Además de los solucionadores mencionados anteriormente, ¿qué solucionadores de optimización están disponibles actualmente en el mercado? ¿Cuáles son las ventajas técnicas de cada uno y qué tipos de modelos de programación matemática pueden admitir? A continuación, clasifiquemos y resumamos los solucionadores de optimización nacionales y extranjeros más comunes en el mercado.

Solucionador comercial PART1

1,Gurobí

Gurobi es una nueva generación de solucionadores a gran escala desarrollados por la empresa estadounidense Gurobi Optimization. En Decision Tree for Optimization Software ( http://plato.asu.edu/bench.html ), el sitio web de evaluación de solucionadores profesionales más famoso del mundo , Gurobi muestra una solución más rápida y precisa. Gurobi tiene más de 2600 usuarios globales y se usa ampliamente en finanzas, logística, manufactura, aviación, petróleo y petroquímica, servicios comerciales y otros campos.

Ventajas técnicas:

(1) Puede resolver problemas lineales a gran escala, problemas cuadráticos y problemas mixtos lineales y cuadráticos de enteros

(2) Admite la optimización cuadrática de objetivos no convexos y restricciones no convexas

(3) Admite la optimización multiobjetivo

(4) Admite restricciones generalizadas y restricciones lógicas, incluidas SUM, MAX, MIN, AND, OR, etc.

(5) Admite restricciones de funciones generalizadas, incluidos polinomios de alto orden, exponenciales, funciones trigonométricas, etc.

(6) La escala del problema solo está limitada por la capacidad de memoria de la computadora, y no hay límite para el número de variables y restricciones.

(7) Adopte la última tecnología de optimización y aproveche al máximo las ventajas de los procesadores multinúcleo. Soporta computación paralela

(8) Proporciona una interfaz conveniente y liviana, admite C ++, Java, Python, .Net, Matlab y R, y consume menos memoria

(9) Admite múltiples plataformas, incluidas Windows, Linux, Mac OS X

Modelos compatibles:

(1) Problemas lineales enteros continuos y mixtos

(2) Problemas cuadráticos continuos y enteros mixtos objetivos convexos o restringidos

(3) Problemas cuadráticos continuos y enteros mixtos objetivos no convexos o restringidos

(4) Problemas no lineales con funciones logarítmicas, exponenciales, trigonométricas, objetivos o restricciones polinomiales de alto orden y cualquier forma de restricciones por partes

(5) Problemas no lineales con valor absoluto, valor máximo, valor mínimo, Y lógico, o no objetivo o restricciones

Idiomas de interfaz admitidos:  C++, Java, Python, .Net, Matlab y R

Última versión: 9.5

Sitio web oficial: http://www.gurobi.com/ (China: http://www.gurobi.cn/ )

2, Optimizador IBM CPLEX

CPLEX tiene una larga historia. La versión original se desarrolló en 1988. Fue adquirida por ILOG en 1997 y adoptada por IBM en 2009. Ahora se ha convertido en el sistema de optimización de decisiones de IBM IBM ILOG CPLEX Optimization Studio (COS para abreviar). Como componente clave del sistema COS, CPLEX Optimizer proporciona un solucionador de programación matemática flexible de alto rendimiento para problemas de programación lineal, programación entera mixta, programación cuadrática y programación con restricciones cuadráticas. Estos solucionadores incluyen algoritmos paralelos distribuidos para la programación de enteros mixtos, lo que permite el uso de múltiples computadoras para resolver problemas difíciles.

ventajas:

(1) Algoritmo robusto

CPLEX Optimizer ya resuelve modelos de optimización con millones de restricciones y variables

(2) Interfaz de estudio de optimización de CPLEX

Cree e implemente aplicaciones optimizadas utilizando interfaces como ILOG Concert Technology y CPLEX Callable Library.

(3) Prueba comparativa de rendimiento de IBM ILOG CPLEX Optimizer

(4) reinicio automático rápido

Modifique el programa lineal y vuelva a resolverlo en una fracción del tiempo de la solución original. Partiendo de una serie de soluciones anteriores, la programación entera mixta se puede modificar y resolver.

Modelos compatibles:

Se utiliza especialmente para resolver cuatro problemas básicos, como la programación lineal a gran escala (LP), la programación cuadrática (QP), la programación cuadrática restringida (QCQP), la programación de cono de segundo orden (SOCP) y la programación entera mixta correspondiente ( MIP ) problema.

Idiomas de interfaz admitidos:  API C, C++, Java, C# o Python

Última versión: 22.1

Sitio web oficial: https://www.ibm.com/cn-zh/analytics/cplex-optimizer

3, FICO Express

El solucionador XPress es un solucionador de optimización comercial, y XPress incluye el solucionador no lineal general Xpress NonLinear, el algoritmo de programación lineal sucesiva (SLP, método de primer orden) y Artelys Knitro (método de segundo orden).

Lanzado en 1983, XPress fue el primer solucionador comercial de LP y MIP que se ejecutó en una PC. En 1992, se lanzó la versión XPress de computación paralela y se expandió a computación distribuida cinco años después. Adquirido por FICO en 2008. Xpress fue el primer solucionador de MIP en cruzar el umbral de mil millones de variables de decisión con la introducción de la indexación de 64 bits en 2010. Desde 2014, XPress cuenta con la primera implementación comercial del método símplex dual paralelo.

XPress incluye su lenguaje de modelado Xpress Mosel y el entorno de desarrollo integrado Xpress Workbench. Mosel incluye capacidades de computación distribuida para resolver múltiples escenarios de un problema de optimización en paralelo. La incertidumbre en los datos de entrada se puede tratar mediante métodos de optimización robustos.

ventajas:

(1) Puede resolver problemas LP y MIP con decenas de millones de variables de decisión, así como problemas generales no lineales con millones de variables de decisión. Los coeficientes de problemas distintos de cero en cientos de millones son comunes en el uso de implementación de XPress.

(2) Admite el procesamiento paralelo de subprocesos múltiples listo para usar, utilizando múltiples núcleos de CPU para resolver de manera rápida y eficiente los problemas más difíciles de los clientes.

(3) Proporcionar un conjunto integral de soluciones de problemas no lineales de alto rendimiento, lo que permite a las empresas resolver de forma rápida y precisa problemas no lineales generales más complejos. Xpress Nonlinear puede resolver millones de problemas de variables de decisión en negocios reales en cuestión de minutos de tiempo de ejecución real. Además, XPress Nonlinear puede resolver problemas de optimización de caja negra, permitiéndole incrustar y modelar procesos externos como coeficientes en forma de funciones de llamada.

Modelos compatibles:

Programación lineal (LP), programación lineal de enteros mixtos (MILP), programación cuadrática (QP), programación cuadrática con restricciones cuadráticas (QCQP), programación de cono de segundo orden (SOCP), programación no lineal de enteros mixtos (MINLP), programación cuadrática de enteros mixtos ( MIQP), Programación cuadrática restringida cuadrática de enteros mixtos (MIQCQP), Programación de cono de segundo orden de enteros mixtos (MISOCP), Programación no lineal general (NLP), Programación no lineal de enteros mixtos general (MINLP), Programación restringida (CP)

Idiomas de interfaz admitidos: .NET, Java, C, C++, VB, Python, Matlab, Solver API, Mosel API, BCL

Última versión: 8.5

Sitio web oficial: https://www.fico.com/en/products/fico-xpress-optimization

4, MOISÉS

MOSEK es un solucionador de programación matemática desarrollado por la empresa danesa MOSEK ApS. También es reconocido como uno de los solucionadores más rápidos para resolver problemas de programación cuadrática, programación de cono de segundo orden y programación definida semipositiva. Es ampliamente utilizado en finanzas, seguros, campo de energía, etc.

ventajas:

(1) Proporcionar un servidor de optimización para la optimización remota.

(2) Hacer pleno uso de las características de hardware de los procesadores multinúcleo para computación paralela;

(3) La escala del problema que se puede resolver solo está limitada por la capacidad de memoria de la computadora;

(4) La implementación del método de punto interior líder en el mundo para resolver problemas de programación lineal, de cono de segundo orden y cuadrática;

(5) Proporcionar interfaces de programación basadas en Matrix y Fusion, incluidos C, C++, Python, Java, C#, MATLAB y R;

(6) admitir múltiples entornos de modelado, incluidas herramientas comerciales como AMPL, GAMS y CVX, y herramientas de código abierto como CVXPY y JuMP;

(7) Admite múltiples sistemas operativos, incluidos Windows, Linux y MacOS;

Modelos compatibles:

Programación lineal (LP), programación convexa restringida cuadráticamente (QCQP), programación de cono de segundo orden (CQP, SOCP), programación semidefinida positiva (SDP), programación convexa generalmente separable (SCP) y programación entera mixta (MIP).

Idiomas de interfaz admitidos: C, C++, Java, MATLAB, .NET, Python y R

Última versión: 10.0.25

Sitio web oficial: https://www.mosek.com/

5, BARÓN

BARON (Ranch And Reduce Optimization Navigator) es un optimizador no lineal general que puede resolver problemas de optimización no convexa al óptimo global. Las variables de decisión pueden ser continuas, enteras o una combinación de ambas. BARON se ha utilizado en aplicaciones en la industria de procesos químicos, productos farmacéuticos, producción de energía, diseño de ingeniería y gestión de activos. BARON está disponible bajo los lenguajes de modelado AIMMS, AMPL y GAMS en varias plataformas. El desarrollo de algoritmos y software BARON ha sido reconocido con el premio INFORMS Computing Society Award 2004 y el premio Beale-Orchard-Hays 2006 a la excelencia en programación matemática computacional de la Mathematical Optimization Society.

ventajas:

(1) Rama y límite avanzados para la optimización global, que combina la propagación de restricciones, el análisis de intervalos y la dualidad.

(2) Optimización global de problemas que pueden tener muchas soluciones óptimas localmente.

Modelos compatibles:

Programación lineal (LP), programación no lineal general (NLP), programación entera mixta (MIP), programación no lineal entera mixta general (MINLP)

Compatibilidad con idiomas de interfaz: se admiten todas las principales interfaces, incluidas Python, Julia, MATLAB, AIMMS, AMPL, GAMS, etc.

Última versión: 22.9.30

Sitio web oficial: https://www.minlp.com/baron-solver

6, jerga

LINGO es la abreviatura de Linear Interactive and General Optimizer, es decir, "solucionador de optimización lineal y general interactivo", que es un paquete de software especialmente utilizado para resolver problemas de optimización lanzado por Lindo System Inc. de los Estados Unidos. Se caracteriza por un lenguaje de modelado incorporado, que proporciona muchas funciones comunes para que los usuarios las llamen al crear un modelo de optimización, y proporciona una interfaz con otros archivos de datos (como texto, EXCEL, base de datos, etc.), que es fácil para ingresar, resolver y analizar la optimización a gran escala.

ventajas:

(1) Expresión modelo conveniente

El lenguaje de modelado incorporado le permite expresar modelos de una manera comprensible e intuitiva, lo que facilita la creación de modelos y el mantenimiento.

(2) Opciones de datos convenientes

Le permite intercambiar datos directamente con bases de datos y programas de hojas de cálculo para construir modelos y generar informes.

(3) Numerosas funciones integradas

Viene con una gran cantidad de funciones, incluida una gran cantidad de matemáticas, finanzas, recopilación, densidad de probabilidad, interfaz, informe y otras funciones.

(4) Opciones de datos convenientes

Capacidad para administrar sus datos directamente en una variedad de formatos convenientes.

(5) Capacidad del programa de hoja de cálculo

La capacidad de vincularse directamente a un programa de hoja de cálculo le permite aprovechar al máximo el poder y la flexibilidad del entorno del programa de hoja de cálculo.

(6) capacidad de base de datos

Utiliza la tecnología ODBC para permitirle acceder a la información y los datos de la colección en cualquier aplicación de base de datos común de Windows.

(7) Potente solucionador

Con un conjunto completo de solucionadores integrados y rápidos para muchos tipos de problemas de programación matemática, ni siquiera necesita especificar o iniciar un solucionador específico, LINGO leerá su ecuación y seleccionará automáticamente el solucionador apropiado.

(8) Modelos interactivos o creación de aplicaciones llave en mano

Para desarrollar modelos interactivos, LINGO proporciona un entorno de modelado completo para construir, resolver y analizar sus modelos. Para crear soluciones llave en mano, LINGO proporciona interfaces DLL y OLE llamables que pueden llamarse desde programas escritos por los propios usuarios. LINGO también se puede llamar directamente desde macros de Excel o aplicaciones de bases de datos.

(9) Documentación detallada y ayuda

LINGO proporciona todas las herramientas que necesita para ponerse en marcha rápidamente. Obtiene un manual de usuario de LINGO, que describe los comandos y funciones del programa en detalle. Además, la versión avanzada viene con un manual de modelado de optimización con LINGO más grande, que es un libro de texto completo que analiza todos los principales problemas de optimización lineal, clasificación de enteros y no lineal. LINGO también viene con muchos ejemplos del mundo real que se pueden modificar y ampliar.

Modelos compatibles:

Programación lineal, no lineal (convexa y no convexa/global), cuadrática, con restricciones cuadráticas, cono de segundo orden, semidefinida, estocástica y entera.

Idiomas de interfaz admitidos:  C/C++, FORTRAN, Java, C#.NET,VB.NET, ASP.NET, Visual Basic, Delphi, Excel.

Última versión: 20.0

Sitio web oficial: https://www.lindo.com/index.php/products/lingo-and-optimization-modeling

7, número de abeto COPT

Cardinal Optimizer COPT (Cardinal Optimizer) es un conjunto de solución de programación matemática eficiente desarrollado de forma independiente por Cardinal para problemas de optimización a gran escala.También es el componente central que respalda la plataforma de cadena de suministro de extremo a extremo de Cardinal. COPT es actualmente una programación matemática de rendimiento integral capaz de resolver programación entera mixta a gran escala, programación lineal (método simplex y método de punto interior), programación de cono de segundo orden, programación semidefinida, programación cuadrática convexa y programación restringida cuadrática convexa. solver proporciona más opciones para que las empresas satisfagan las necesidades de resolución de alto rendimiento.

ventajas:

(1) Derechos de propiedad intelectual independientes nacionales

En los campos de la comunicación, la energía, el ejército, la red eléctrica, la aviación y otros campos, con el fin de garantizar la seguridad de los datos nacionales importantes, los solucionadores de optimización y las plataformas de algoritmos de optimización de investigación operativa con derechos de propiedad intelectual independientes no solo tienen un gran valor comercial, pero también tienen un valor social inconmensurable.

(2) Potente rendimiento de la solución

En junio de 2022, se lanzó el solucionador COPT versión 5.0. El rendimiento de la programación lineal COPT ha superado a las tres marcas líderes mundiales, y el rendimiento de la programación entera también se ha clasificado entre los mejores. El módulo SDP de programación semidefinida recientemente agregado tiene una sólida base técnica ventajas

(3) Aceleración de soluciones personalizadas

Para los problemas a gran escala de los clientes, el método y los parámetros se ajustan y, en comparación con otros solucionadores, la velocidad de solución mejora entre un 10% y un 50% en diversos grados.

(4) Soluciones de aterrizaje

Los solucionadores lineales y enteros COPT se han aplicado en muchos proyectos importantes del país y las empresas, y tienen escenarios de aterrizaje ricos. También puede personalizar soluciones para diferentes industrias y proporcionar servicios personalizados para los clientes de acuerdo con sus necesidades y condiciones reales.

Modelos compatibles:

Programación lineal, programación entera mixta, programación de cono de segundo orden, programación semidefinida, programación cuadrática convexa (restringida)

Idiomas de interfaz compatibles: C, C++, C#, Python, Julia, Java, AMPL, GAMS, Pyomo, PuLP, CVXPY, etc.

Última versión: 5.0

Sitio web oficial: https://www.shanshu.ai/solver

8. Ali MindOPT

MindOpt es un conjunto de soluciones de programación matemática con programación lineal y otras funciones desarrolladas de forma independiente por el Laboratorio de Inteligencia de Decisiones de la Academia DAMO de Alibaba. A través de la solución rápida y estable de programación lineal a gran escala, proporciona a los clientes capacidades de solución y modelado de enlace completo desde los datos hasta la toma de decisiones. En la actualidad, se ha aplicado a muchos negocios de Alibaba, como la computación en la nube. A través de la programación y optimización de los recursos informáticos elásticos, puede ahorrar cientos de millones de yuanes en costos para Alibaba Cloud cada año.

ventajas:

(1) Solución óptima de alta velocidad: el solucionador tiene un funcionamiento rápido y una excelente calidad de solución;

(2) Amplios tipos de aplicaciones: la escala de problemas que se pueden resolver es grande y los tipos de problemas aplicables son amplios;

(3) Método de autorización flexible: el solucionador se puede ejecutar localmente a través de la autorización en la nube de la cuenta de Ali.

Modelos admitidos: la programación lineal, la programación cuadrática convexa y la programación lineal entera mixta están actualmente disponibles para pruebas públicas.

Idioma de la interfaz de soporte: actualmente admite llamadas de línea de comando y API de C, C ++, Python y Java.

Última versión: 0.21.0

Sitio web oficial: https://solver.damo.alibaba.com/htmlpages/page#/

9. Huawei Tianchou AI solucionador OPTV

El solucionador de IA OptVerse combina la investigación de operaciones con la IA, supera el límite de optimización de la industria, encuentra soluciones óptimas para modelos lineales y enteros, describe problemas de forma general, calcula soluciones óptimas de manera eficiente y ayuda a las empresas a tomar decisiones cuantitativas y afinar las operaciones de optimización, mejorar la utilización de los recursos y la eficiencia operativa, y mejorar la toma de decisiones y la competitividad.

El solucionador OptVerse AI ha respaldado con éxito las aplicaciones de simulación de 13 escenarios, incluida la capacidad de suministro de Huawei y el análisis de redundancia.El ciclo de planificación se ha acortado de semanas a días, lo que garantiza operaciones eficientes y continuas.

ventajas:

(1) Herramienta de modelado eficiente: basada en el algoritmo de modelado gráfico, aprovechando al máximo la escasez y el poder de cómputo paralelo, la eficiencia del modelado se puede aumentar hasta 30 veces;

(2) Eficiente, estable y de alta calidad: velocidad de solución rápida, alto grado de excelencia y rendimiento estable Ha resuelto con éxito modelos matemáticos de escala ultra grande de variables/restricciones de miles de millones de niveles en los problemas internos de la cadena de suministro de Huawei;

(3) Optimización del aprendizaje adaptativo: la integración de capacidades de inteligencia artificial de vanguardia, el ajuste de parámetros y la selección de estrategias de solución se pueden realizar de manera adaptativa de acuerdo con las características del problema, logrando un aumento máximo del 30 % en la eficiencia de la solución;

(4) Compatibilidad nativa con soluciones de aceleración distribuida: basándose en una potente potencia informática en la nube, admite aceleración paralela distribuida a gran escala;

(5) Soporte de toma de decisiones de proceso completo para todos los escenarios de la industria: soporte para proporcionar a los usuarios capacidades de optimización de toma de decisiones de proceso completo en combinación con la plataforma ModelArts;

(6) Fácil de usar, rápido para comenzar: Admite API RESTful de servicio en la nube, interfaz SDK C ++ / python incorporada para notebook ModelArts y otros métodos de desarrollo y llamadas.

Modelos compatibles: programación lineal entera mixta (MIP), programación lineal (LP)

Idioma de la interfaz de soporte: API RESTful del servicio en la nube, interfaz SDK C ++ / python incorporada para el portátil ModelArts, etc.

Última versión: 0.2.6

Sitio web oficial: https://www.huaweicloud.com/product/modelarts/optverse.html

Solucionador de código abierto PART2

1, SCIP

SCIP es actualmente uno de los solucionadores no comerciales más rápidos para la programación de enteros mixtos (MIP) y la programación no lineal de enteros mixtos (MINLP). SCIP es también un marco para la programación de enteros restringidos, branch and bind, y branch pricing [CCZ1]  , desarrollado principalmente por el Instituto ZIB en Alemania. A diferencia de la mayoría de los solucionadores comerciales, SCIP le permite al usuario un control completo sobre el proceso de solución y le permite acceder a información detallada dentro del solucionador. [JJD2]

ventajas:

(1) Uno de los solucionadores no comerciales más rápidos para la programación de enteros mixtos

(2) Sucursal de soporte y precio

Modelos admitidos: programación entera mixta (no lineal)

Idioma de la interfaz de soporte: C, C ++, Java, Python, Matlab, etc.

Última versión: 8.0.2

Sitio web oficial: https://scipopt.org/

2. Conjunto de proyectos de código abierto Coin-OR CLP/CBC/CGL/SYMPHONY, etc.

Aquí presentamos principalmente el proyecto de código abierto COIN-OR.

COIN-OR (Infraestructura computacional para la investigación de operaciones) es una fundación bien conocida para la investigación de operaciones y los círculos de optimización para mantener proyectos y software básico de código abierto. Es una organización de bienestar público que mantiene casi todos los solucionadores de optimización de código abierto en el mercado, incluidos cbc, clp, ipopt, Docenas de solucionadores y lenguajes de modelado como pyomo, y hacen posible la interacción entre ellos. Se puede decir que COIN-OR ocupa una posición fundamental en los solucionadores de código abierto. Actualmente, todos los proyectos están alojados en GitHub ( https://github.com/coin-or ), solo algunas infraestructuras heredadas (sitio web, wiki, lista de correo) todavía están alojadas en los servidores de la Universidad de Clemson.

Muchos solucionadores de código abierto y herramientas de modelado mantenidos por el proyecto COIN-OR todavía son utilizados por miles de organizaciones en todo el mundo. Vale la pena señalar que los tres solucionadores Cbc, Clp e Ipopt siguen siendo líderes en sus respectivos campos (programación lineal , programación entera mixta y programación no lineal).

Sitio web oficial: https://www.coin-or.org/

3, LP_resolver

LP_solve es un solucionador de programación lineal de enteros mixtos (MILP) de un proyecto de código abierto bajo sourceforge. Es un solucionador de programación lineal (enteros) gratuito basado en el método simplex modificado y el método de ramificación y acotación. Puede resolver problemas lineales puros (mixtos) ) modelos enteros/binarios, semicontinuos y conjuntos especiales ordenados (SOS).

Modelos admitidos: modelos lineales puros, enteros/binarios (mixtos), semicontinuos y conjuntos especiales ordenados (SOS)

Idioma de la interfaz de soporte: C/C++, Java, Delphi, Free Pascal, VB, VBScript, http://VB.NET , C#.NET

Última versión: 5.5.2.11

Sitio web oficial: https://lpsolve.sourceforge.net/5.5/

4, GLPK

GLPK (Kit de programación lineal GNU, herramienta de programación lineal GNU) es un proyecto bajo GNU, que se utiliza para establecer problemas MIP de programación lineal a gran escala LP y de programación entera mixta, y optimizar y resolver el modelo. Dado que es un proyecto bajo GNU, no hay restricciones de versión comercial y no comercial, y puede usarse libremente.

Última versión: 4.60

Sitio web oficial: https://www.gnu.org/software/glpk/glpk.html

5. Herramientas OR de Google

OR-Tools es una herramienta de optimización de código abierto propiedad de Google. Admite programación lineal y programación entera, y puede resolver fácilmente problemas como enrutamiento, empaque de contenedores, flujos de red, asignación y programación.

ventajas:

(1) Es multiplataforma. El algoritmo central de OR-Tools está escrito en C++, lo que lo hace multiplataforma. Además, también se puede utilizar para el proceso de compilación de Python, Java o C#.

(2) Es un conjunto de herramientas de optimización para diferentes problemas. OR-Tools integra varios algoritmos de optimización avanzados. Los solucionadores que contiene se dividen principalmente en cuatro solucionadores básicos: programación de restricciones, programación lineal y entera, planificación de trayectorias de vehículos y algoritmos de teoría de gráficos. De acuerdo con el tipo de problema de optimización, proporciona diferentes clases correspondientes e interfaces. Por ejemplo: para el problema de programación lineal más simple, puede usar Linear Solver para resolverlo.

(3) Código abierto y abierto. OR-Tools es de uso gratuito y de código abierto. Además, OR-Tools también es compatible con solucionadores de terceros, que se pueden conectar a solucionadores comerciales como CPLEX y solucionadores de código abierto como SCIP.

Modelos soportados: programación lineal, programación entera, programación con restricciones, programación entera mixta, etc.

Idioma de la interfaz de soporte: java, c ++, c #, python

Última versión: 9.4

Sitio web oficial: https://developers.google.cn/optimization

6. Solucionador de enteros mixtos CMIP de la Academia de Ciencias de China

El ganador del famoso Premio de Matemáticas Chen Shiingshen, el ganador del Premio de Computación Científica Feng Kang y el investigador Dai Yuhong de la Academia de Matemáticas y Ciencias de Sistemas de la Academia de Ciencias de China dirigieron al equipo de CMIP para desarrollar de forma independiente el primer proyecto internacional de mi país. Programación entera de nivel después de 30 meses desde 2015. El solucionador CMIP, y la versión se determinó como CMIP 1.0 en marzo de 2018.

El número total de códigos CMIP ha superado las 50.000 líneas, cubriendo varios módulos funcionales como preprocesamiento de solucionador existente internacional, heurística, planos de corte, ramas, selección de nodos y propagación regional, y tiene una buena capacidad para resolver la capacidad de programación entera a gran escala.

ventajas:

El solucionador de programación de enteros CMIP utiliza una técnica de plano de corte compacto de coeficiente generalizado (GCSC). La tecnología del plano de corte fue propuesta de forma independiente por el equipo de CMIP y tiene cierto efecto de mejora en los problemas generales de programación de enteros, especialmente en los problemas de diseño de redes. Mediante la comparación de pruebas de la biblioteca de prueba de programación de enteros estándar reconocida internacionalmente MIPLIB2010, el rendimiento del solucionador CMIP ha superado al solucionador tradicional GLPK (Rusia 2000, el solucionador de programación de enteros en Google Optimization Tools) y LPSOLVE (Finlandia 2004, el software de modelado avanzado de GAMS). system Llámelo para resolver problemas de programación entera).

7. Solucionador de optimización de hojas

El proyecto LEAVES de código abierto está dirigido principalmente de forma conjunta por el Laboratorio Internacional de Optimización Paralela de la Universidad de Finanzas y Economía de Shanghái y Shanshu Technology y se centra principalmente en la discusión de algunos de los últimos algoritmos de primer y segundo orden a gran escala. En 2017, se lanzó el código fuente de la primera versión del solucionador de programación lineal, incluido un algoritmo completo para resolver la programación lineal con el método de punto interior, que es relativamente raro en los solucionadores de código abierto, y el código básicamente puede pasar el problema de Netlib. establecer prueba. Incluyendo el proceso completo de Presolve, descomposición LU, CrossOver y otros solucionadores comerciales. En la actualidad, las variables de solución están limitadas a menos de 500.000, y los resultados de las pruebas en Netlib no se quedan atrás de Gurobi.

PART3 otra integración de software

1,MATLAB

MATLAB es una aplicación que contiene una gran biblioteca de funciones matemáticas, cada una de las cuales se puede llamar desde scripts escritos en JavaScript. MATLAB proporciona una variedad de solucionadores de programación matemática para diferentes problemas, que son aplicables a problemas de pequeña escala.

Los usuarios pueden llamar a funciones matemáticas arbitrarias desde MATLAB en tiempo de ejecución usando una construcción simple llamada clase Solver escrita en JavaScript. La clase de solucionador para MATLAB puede llamar a herramientas externas de MATLAB a través de su API y vincular potentes funciones matemáticas directamente en una simulación en ejecución.

Sitio web oficial: https://ww2.mathworks.cn/

2,SAS

SAS es un paquete de software estadístico desarrollado por el Instituto SAS para la gestión de datos, análisis avanzado, análisis multivariado, inteligencia comercial, investigación criminal y análisis predictivo. SAS es un paquete de software que extrae, altera, administra y recupera datos de varias fuentes y realiza análisis estadísticos sobre ellos. SAS contiene módulos de programación lineal general, programación entera mixta y programación no lineal. SAS proporciona a los usuarios no técnicos una interfaz gráfica de usuario de apuntar y hacer clic y opciones más avanzadas a través del lenguaje SAS.

Sitio web oficial: https://www.sas.com/en_us/home.html

3, SCIPy

SciPy es una biblioteca de algoritmos Python de código abierto y un conjunto de herramientas matemáticas. Scipy es una biblioteca informática científica basada en Numpy, utilizada en matemáticas, ciencias, ingeniería y otros campos, muchos de los cuales tienen algunos modelos físicos y de abstracción de alto nivel que requieren el uso de Scipy. SciPy incluye módulos para optimización, álgebra lineal, integración, interpolación, funciones especiales, transformadas rápidas de Fourier, procesamiento de señales e imágenes, resolución de ecuaciones diferenciales ordinarias y otros cálculos comúnmente utilizados en ciencia e ingeniería.

Scipy, la principal biblioteca de código abierto en la pila ecológica de computación científica de Python, proporciona una gran cantidad de solucionadores de optimización numérica, especialmente el módulo de optimización, que proporciona una interfaz de solucionador de optimización numérica unificada minimizar (). Aunque es conveniente de usar, es también adecuado para no matemáticos Cuando el personal profesional lo usa por primera vez, es difícil elegir el almacenamiento, especialmente más de una docena de métodos son llamados uniformemente por la misma interfaz, y las restricciones de uso, ventajas y desventajas de cada método son difíciles para captar.

Sitio web oficial: https://scipy.org/

4, sobresalir

La hoja de cálculo de Excel en la suite ofimática que se usa todos los días también contiene una herramienta llamada "solucionador" que puede resolver problemas de programación lineal con tamaños de problema pequeños. Excel no cargará la herramienta de resolución de forma predeterminada, y los usuarios que la necesiten deben realizar operaciones simples para lograrlo: 1. Seleccione "Archivo", haga clic en "Opciones" 2. Haga clic en "Complementos" en la ventana emergente de Excel y seleccione "Complemento de Excel", haga clic en "Ir"; 3. En el cuadro de diálogo del complemento emergente, marque "Planning Solver" y haga clic en "Aceptar"; 4. Vea y use la herramienta de solución agregada en la pestaña de datos.


Hay muchos solucionadores de optimización en el país y en el extranjero. Este artículo solo hace una clasificación parcial. Si hay errores u omisiones, deje un mensaje para corregirlos.

Declaración de fuente de contenido: este artículo está organizado por [ML OR Intelligent Decision-making]. Parte del contenido proviene del sitio web oficial y del intercambio de redes. Si hay alguna infracción de contenido, comuníquese para eliminarlo.

(Concéntrese en ML O toma de decisiones inteligente. Comparta más productos secos, bienvenido a comunicarse ~)

Acho que você gosta

Origin blog.csdn.net/mlorworld/article/details/127518910
Recomendado
Clasificación