programación lineal entera es la ciencia de modelar un problema que ni minimiza o maximiza una función objetivo lineal , bajo una serie de restricciones expresadas como desigualdades lineales . Cuando resuelto completamente , la solución al programa lineal entero garantiza la solución óptima al problema . Sin embargo , la complejidad de las escalas problema exponencialmente con el tamaño del problema . Por lo tanto , puede tomar un largo tiempo para llegar a la solución final. Alternativamente , el problema puede ser resuelto parcialmente y diferentes heurística puede ser explorada para obtener una solución sub - óptima en un tiempo más corto . Cosas que necesitará
solucionador de programación lineal de computadora con suficiente memoria y capacidad de procesamiento
Ver Más instrucciones
formulación y resolución de programas lineales
1
Decida si el problema es un problema de " maximización " o un problema de " minimización " . Un problema de maximización trata de encontrar una solución tal que se maximiza la función objetivo . Un problema de minimización trata de encontrar una solución en la que se reduce al mínimo la función objetivo . Por ejemplo , el problema de encontrar el camino más corto entre dos puntos es un problema de minimización . Por otra parte , el problema de llevar el número máximo guijarros de diferentes tamaños en una botella es un problema de maximización .
2
Decidir las variables necesarias para la formulación . Elegir el conjunto adecuado de variables es necesario reducir al mínimo la complejidad del problema , y, correspondientemente, llegar a la solución más rápido . Por lo general , cada entidad cuyo valor afecta a la solución final es una variable.
3
Modelo de la función objetivo . La función objetivo se modela como una suma de productos de variables y su impacto en la solución final. Por ejemplo , si el problema es reducir al mínimo la distancia entre dos nodos en un gráfico , cada conexión entre dos nodos será una variable que toma un valor de 0 o 1 , y su contribución a la función objetivo será la distancia entre los nodos . En este caso , la variable puede ser llamado "X (i, j ) , " donde " i" y " j" son dos nodos en el gráfico , y la distancia entre los dos nodos se pueden " V (i, j ) . " X (i, j ) será 1 si la conexión es parte de la ruta final entre los dos nodos. Por lo tanto , la función objetivo será minimizar la suma de V (i, j ) * X (i, j ), donde la suma se extiende a todas las conexiones.
4
Configure las restricciones. Las restricciones deben capturar todas las restricciones impuestas por el problema. Para el ejemplo del camino más corto , existen las siguientes limitaciones :
X ( i, j ) puede ser 0 o 1 . Por lo tanto , X ( i, j ) debe ser mayor que o igual a 0 , y X ( i, j ) debe ser menor o igual a 1 .
Si se elige conexión X ( i, j ) , exactamente una conexión desde el nodo " j" a algún otro nodo distinto de " i" debe ser elegido. Por lo tanto , X ( i, j ) debe ser mayor que o igual a la suma de todas las variables de tipo X ( j , k ) , donde " k " no es igual a " i ".
Una conexión desde el nodo de inicio debe ser seleccionado. Por lo tanto , la suma de X ( n, k ) debe ser 1 , donde "n " es el nodo de inicio . Del mismo modo , suma de X ( k , m ) debe ser 1 , donde " m" es el nodo de finalización .
5
Modelo el problema , ya sea en el sistema de programación matemática ( MPS ) formato , o el Lineal formato de programación ( LP) .
6
o comprar un solver comercial como FICO o CLPEX , o descargar un programa de solución libre como GLPK . Tenga en cuenta los solucionadores libres son mucho más lentos que los solucionadores comerciales y pueden no ser adecuados para la solución de grandes problemas.
7
Si el solucionador no converge a la solución definitiva en un plazo razonable , trate de heurística . Una heurística podría ser la eliminación de las restricciones enteras sobre las variables y las variables aproximadas al entero más cercano para obtener una solución sub - óptima.