2009-07-30 17 views
14

Estoy buscando opciones para un marco de programación (optimización) lineal y no lineal.¿Microsoft Solver Foundation se ajusta a mis necesidades?

Los requisitos son: problemas de programación no lineal con aproximadamente lineal

  1. y Apoyo. 100-1000 variables y hasta alrededor de 1000 restricciones (supongo que es bastante simple). Los problemas no lineales tienen restricciones que implican la multiplicación o división de múltiples variables, nada más complicado que eso.

  2. se integra bien con entornos MS (SQL Server, MS Access, .NET, Excel)

  3. Es bueno tener sería el apoyo a ad hoc de la definición del problema (es decir, una especie de lenguaje de script o el apoyo a la definición y resolver el problema en una interfaz de Excel)

  4. Utilizaría Excel solo, pero también necesito la posibilidad de interactuar programáticamente con el solucionador (entorno .NET) para los problemas más grandes.

Para el acceso mediante programación que tenía la intención de desarrollar una interfaz de abstracción para el solucionador (para que pudiéramos cambiar solucionadores si alguna vez es necesario). Luego tropecé con MS Solver Foundation (http://code.msdn.microsoft.com/solverfoundation) que ya tiene esta interfaz. Me pregunto si se ajusta a la ley con respecto a nuestros otros requisitos y qué opinión tienen los usuarios de la misma.

Respuesta

4

Bueno, resulta que Microsoft Solver Foundation no es compatible con la programación no lineal. A partir de enero de 2010, el equipo official word en esto es que lo están considerando, pero que no está en sus planes inmediatos.

Así que me he establecido en AMPL como interfaz de lenguaje de modelado y KNITRO para el algoritmo de solución. KNITRO se ve bien porque, aparentemente, consta de tres algoritmos en uno (2 variantes del Interior Point Method y 1 de Active Set method). Vea también la página de Wikipedia para KNITRO.

que se establecieron en AMPL y KNITRO después de probar las versiones de evaluación de ambos en un portal web excelente aparentemente financiada por la Fundación Nacional de Ciencia de Estados Unidos y Departamento de Energía de EE.UU. en los EE.UU. Argonne National Laboratory llamada NEOS. NEOS proporciona una interfaz web para cargar su modelo matemático utilizando AMPL o GAMS (y para algunos solucionadores, algunos otros) y luego obtener sus resultados a través de una página web de resultados y por correo electrónico. Supuestamente, existe una interfaz de correo electrónico para enviar problemas, pero no tuve éxito en hacerlo funcionar.

Ahora, todo esto cuesta dinero. KNITRO y AMPL son productos comerciales. Al final, la solución costará aproximadamente $ 8000 US.No es barato. Si está buscando soluciones gratuitas, creo que las opciones están prácticamente limitadas a IPOPT para el solucionador (que también probé con NEOS y descubrí que funcionaba bien, pero no pude seleccionarlo por otras razones no técnicas) y renunciando a la interfaz AMPL. Puede configurar su problema a través de la API de IPOPT. Sin embargo, a diferencia de la API de Micrsoft Solver Foundation, la interfaz de IPOPT es un poco más complicada y, lo más desafiante, requiere que su aplicación de llamadas implemente devoluciones de llamada que calculen los primeros (y posiblemente los segundos) derivados de las ecuaciones no lineales de su modelo. Las interfaces de lenguaje de modelado (como AMPL) se encargan de esto porque pueden calcular derivadas simbólicas de todas las ecuaciones escritas en su idioma.

+6

a partir de ahora [estados de la página principal] (http://code.msdn.microsoft.com/solverfoundation) __ "Solver Foundation 3.0 proporciona nuevas capacidades para compilar y resolver soluciones no lineales modelos. "__ – bobobobo

+1

Solver Foundation ha sido descontinuado como producto independiente hace aproximadamente un año: http://nathanbrixius.wordpress.com/2012/05/25/no-more-standalone-releases-of-microsoft-solver-foundation / – vitaut

2

De acuerdo con sus requisitos enumerados, parece que Microsoft Solver Foundation cumple con todos sus requisitos y más. Lea la "¿Qué es la Fundación Solver?" documento en el sitio de Solver Foundation. Menciona la programación lineal, la programación no lineal, Develop in .NET, puede usar en Excel, Solver Foundation también viene con un complemento de Microsoft Office Excel para proporcionar un entorno de modelado completo en una interfaz familiar.

+2

Intenté Microsoft Solver Foundation pero no admite problemas no lineales. – Emmanuel

+4

A partir de noviembre de 2010 Solver Foundation 3.0 es compatible con los modelos no lineales – bobobobo

3

He intentado Solver Foundation en un problema que probé (sin éxito) para resolver en el pasado, y se resquebrajó en 2 días, incluido el aprendizaje de Solver API. El rendimiento del solucionador es excelente, y la API de SFS (Solver Foundation Services) es AWESOME.

1

La biblioteca GLPK basada en GNU es una gran opción gratuita. Lancé 1000s y 1000s de problemas en la columna sin preocupaciones. Se necesitan algunos formatos diferentes de definición de problemas, pero fue más fácil para mí usarlo a través de la API C o C++. Las mejoras en los motores detrás de esto ocurren todo el tiempo. Creo que algunas envolturas también están disponibles (es decir, Perl, Python).

Cuestiones relacionadas