Lp_solve es un programa que resuelve problemas de programación lineal entera mixta (MLP).
Fue desarrollado originalmente por Michel Berkelaar en Eindhoven University of Technology. Jeroen Dirks hizo que la transición de la versión básica 1.5 a la versión completa 2.0 fuera posible. Él contribuyó la interfaz de procedimiento, un built-in lector MPS, y muchas correcciones y mejoras en el código.
lp_solve es una biblioteca que consta de un conjunto de rutinas, llamadas API que se puede llamar desde casi cualquier lenguaje de programación para resolver problemas MILP.
Hay varias formas de pasar los datos a la biblioteca:
· A través de la API.
· A través de los archivos de entrada.
· A través de un IDE.
El API es un conjunto de rutinas que se pueden llamar desde un lenguaje de programación para construir el modelo en la memoria, resolver y devolver los resultados. Hay muchas rutinas de la API para realizar muchas tareas posibles y establecer varias opciones.
A través de los archivos de entrada, soporta varios tipos de archivos de entrada. El formato común conocido como MPS es un apoyo de la mayoría de resolver, pero no es muy legible para los seres humanos.
Otro formato es el formato lp que es más legible. lp_solve tiene la capacidad única de utilizar rutinas escritas por el usuario para introducir el modelo.
A través de un IDE gracias a Henri Gourvest, ahora hay también un programa llamado IDE LPSolve; IDE que utiliza la API para proporcionar una aplicación de Windows para resolver los modelos. Con este programa usted no tiene que saber nada de la API o de lenguajes de programación. Usted sólo puede proporcionar el modelo para el programa que va a resolver y le dará el resultado.
Como ya se dijo, lp_solve puede ser llamado desde muchos lenguajes de programación. Entre ellos se encuentran en C, C + +, Pascal, Delphi, Java, VB, C #, VB.NET, Excel.
Ofrece diferentes métodos de escala para hacer el modelo numérico más estable; tiene la capacidad de aumentar las restricciones, hacer el modelo más pequeño y más rápido para resolver.
Tiene una rutina base para determinar un punto de partida y permite el reinicio después de hacer cambios en el modelo y continúa desde la última solución encontrada.
lp_solve es un solver libre de programación que resuelve los problemas basándome en el método simplex modificado y el método Branch-and-bound para los enteros. Además este solver contiene código fuente completo, ejemplos y manuales.
lp_solve resuelve problemas de programcion lineal, (mixto) enteros / binarios, semi-continuo y conjuntos ordenados especiales (SOS) modelos.
A través del algoritmo Branch-and-bound, se puede manejar variables de tipo entero, las variables semi-continuo y los conjuntos ordenados especiales .