9. rogramación lineal entera. Introducción Método de ramificación y poda rogramación lineal entera Un problema de programación entera es aquel en el que alguna o todas sus variables deben tomar valores enteros. Son más costosos de resolver que los problemas sin esta restricción Un modelo entero es igual que el modelo lineal correspondiente (relajación) pero con la restricción adicional de que las variables deben ser enteras La región factible del modelo entero está contenida dentro de la del modelo relajado. El valor óptimo de la relajación es una cota superior (prob. Max) del valor óptimo del modelo entero Francisco R. Villatoro 1
rogramación lineal entera Vale como solución los valores redondeados o truncados del problema relajado? osible solución: enumerar explícitamente todas las soluciones enteras de la región factible Algoritmo más utilizado: ramificación y acotación Enumera de forma implícita todas las soluciones de un modelo lineal entero y solucionando subproblemas se van eliminando conjuntos de soluciones posibles. rimero se soluciona el problema relajado y se obtiene una solución: x 1,x 2,...,x n. Si x i toma un valor no entero entre k y k+1 se consideran dos subproblemas añadiendo al problema original las restricciones x i <= k y x i >=k+1 x i k x i k+1 Francisco R. Villatoro 2
Un subproblema puede llegar a no tener sucesores por tres motivos: El problema no es factible El problema tiene una solución entera Si su valor de la función objetivo es mejor que el de cualquier otra solución entera ya obtenida se convierte en solución candidata Si su valor de la función objetivo es mejor que el de la solución candidata actual se descarta El problema tiene una solución no entera pero con un valor de la función objetivo peor que el de la solución candidata actual: se descarta. El algoritmo termina cuando se han resuelto o descartado todos los subproblemas posibles Este algoritmo se puede utilizar en problemas de programación entera mixta (solo algunas variables enteras) En problemas grandes puede ser muy eficiente gracias a la cota que permite eliminar un conjunto grande de soluciones factibles Francisco R. Villatoro 3
ara implementar el algoritmo en un ordenador hay que decidir: Qué variable se utiliza para ramificar Estrategia: utilizar la variable con mayor importancia económica para el problema Qué subproblema se resuelve antes rimero el mejor: se ramifica en un nodo, se resuelven todos sus subproblemas y se ramifica por el que tiene un mejor valor objetivo rimero en amplitud: se resuelve siempre el subproblema generado más recientemente Métodos heurísticos En ocasiones puede ser interesante terminar el algoritmo con una solución satisfactoria: próxima al valor objetivo óptimo del problema relajado (métodos heurísticos) Ejemplo: problema del viajante Método del vecino más cercano: se empieza en cualquier ciudad y se visita la ciudad más cercana hasta completar un circuito. NO SIEMRE ROORCIONA LA SOLUCIÓN ÓTIMA Existen métodos para evaluar los métodos heurísticos pero no los vamos a analizar: Garantías de funcionamientos (cota para el peor de los casos) Análisis probabilístico Análisis empírico Francisco R. Villatoro 4
roblemas de optimización combinatoria Cualquier problema de optimización con un número finito de soluciones factibles El algoritmo de ramificación y acotación suele ser el más eficaz para este tipo de problemas Ejemplos: Decidir sobre el orden en el que se realizan un número finito de trabajos roblema del viajero roblema de las ocho reinas Francisco R. Villatoro 5