c++ - turbo - ¿Cómo elegir un solucionador lineal de enteros?
resto de un numero c++ (5)
He usado lp_solve ( http://lpsolve.sourceforge.net/5.5/ ) en un par de ocasiones con éxito. Es maduro, tiene muchas funciones y está muy bien documentado, con muchos consejos útiles si tus habilidades de programación lineal están oxidadas. La programación lineal de enteros no es solo un complemento, pero se enfatiza fuertemente con este paquete.
Acabo de notar que dices que eres un "novato" en esto. Bueno, entonces recomiendo este paquete, ya que la documentación está llena de ejemplos y tutoriales suaves. Otros paquetes que he probado tienden a asumir mucho del usuario.
Soy novato en programación lineal de enteros. Planeo usar un solucionador de programación lineal de enteros para resolver mi problema de optimización combinatoria. Estoy más familiarizado con la programación orientada a objetos C ++ en un IDE. Ahora estoy usando NetBeans con Cygwin para escribir mis aplicaciones la mayor parte del tiempo.
¿Puedo preguntar si hay un solucionador de ILP de fácil uso para mí? ¿O depende del problema que quiero resolver? Estoy tratando de hacer algunos recursos de optimización de mapeo. Por favor, hágamelo saber si se requiere más información.
Muchas gracias, Cassie.
Mira en GLPK . Viene con algunos ejemplos y funciona con un subconjunto de AMPL, aunque IMHO funciona mejor cuando se adhiere a C / C ++ para la configuración del modelo. Hace frente a modelos bastante grandes también.
Para problemas grandes, puede consultar AMPL , que es un intérprete de optimización con muchas soluciones disponibles. Se ejecuta como un proceso separado ; C ++ se usaría para escribir los datos de entrada.
Entonces podrías probar varios de los más modernos solucionadores.
Si lo que desea es una programación de enteros mixtos lineales, apuntaría a Coin-OR (y específicamente al módulo CBC). Es software libre (como voz) Puede usarlo con un idioma específico o usar C ++.
Use C ++ si los datos requieren mucho preprocesamiento, o si desea poner sus manos en el solucionador (elegir puntos de pivote, generación de columnas, agregar cortes, etc.).
Use el lenguaje integrado si desea usar el solucionador como una caja negra (solo le interesa el resultado y el problema es fácil o lo suficientemente clásico como para resolverlo sin necesidad de ajustes).
Pero en las etiquetas mencionas algoritmos genéticos y algoritmos de gráficos. Tal vez debería comenzar por definir mejor su problema ... Para los gráficos que me gustan mucho Boost :: Graph
La programación lineal de Wikipedia cubre algunos algoritmos diferentes en los que puedes investigar para ver cuál funciona mejor para ti. ¿Eso ayuda o querías algo más específico?