Problemas de Programación Lineal Entera En muchos problemas de programación lineal sólo tienen sentido aquellas soluciones de las regiones factibles en las que todas o algunas de las variables de decisión toman valores enteros. Este tipo de problemas se denominan en general Problemas de Programación Lineal Entera (PPLE). En concreto: • • •
Si todas las variables del problema son enteras se habla de PPLE Pura. Si sólo algunas son enteras y las restantes son continuas se habla de PPLE i!ta. Si toda todas s las las vari variab able les s ente entera ras s son son bina binari rias as ("#$ ("#$)) el prob proble lema ma se denomina PPLE %inaria.
En inge ingeni nier er&a &a los los prob proble lema mas s m's m's frec frecue uent ntes es son son los los PPLE PPLE i!t i!ta. a. Esto Estos s prob proble lema mas s prop propor orci cion onan an un marc marco o de mode modela lado do fle!i fle!ibl ble e y efic eficie ient nte e para para formular y resolver muchos problemas de ingenier&a. n PPLE i!ta general se formula en forma est'ndar como:
Método de bifurcación y acotación para un PPLE Mixta El mtodo de bifurcación y acotación (%*%+ de %ranch and %ound) resuelve un PPLE resolviendo una secuencia ordenada de PPLs que se obtienen rela,ando las restricciones de integralidad y a-adiendo restricciones adicionales. El nmero de restricciones adicionales crece a medida que el mtodo %*% progresa. Estas restricciones permiten separar la región factible en subregiones complementarias. El mtodo %*% establece inicialmente cotas inferior y superior del valor óptimo de la función ob,etivo. El mecanismo de bifurcación aumenta progresivamente el valor de la cota inferior y disminuye tambin progresivamente el valor de la cota superior. La diferencia entre estas cotas es una medida de la pro!imidad de la solución actual a la óptima+ si sta e!iste. /l minimi0ar+ se obtiene una cota inferior de la solución óptima rela,ando las restricciones de integralidad del PPLE inicial y resolviendo el PPL resultante. /dem's+ el valor de la función ob,etivo para cualquier solución del PPLE original es una cota superior de la solución óptima. 1e manera an'loga+ al ma!imi0ar+ la solución del PPL rela,ado es una cota superior para el óptimo y cualquier solución del PPLE original es una cota inferior de la solución óptima.
Pasos para da solución a un problema de PPLE Mixta: Paso 1: Iniciación
Se establece una cota superior (2) y una cota inferior (32) de la solución
óptima. Se resuelve el PPLE i!ta inicial rela,ando las restricciones de integralidad. Si el problema rela,ado es infactible+ el original tambin lo es y no hay solución. Si la solución obtenida satisface las condiciones de integralidad+ es óptima. En cualquier otro caso+ se actuali0a el valor de la cota correspondiente con el valor de la función ob,etivo resultante. Paso 2: Bifurcación
Empleando la variable (!4) que ha de ser entera y no lo es+ se generan mediante bifurcación dos problemas. Si el valor de la variable que ha de ser entera (!4) es (a.b)+ donde a y b son sus partes entera y fraccional respectivamente+ los problemas fruto de la bifurcación son los siguientes:
El primer problema es el PPLE rela,ado al que se la a-ade la restricción
(!4) 5 a El segundo es el PPLE rela,ado al que se le a-ade la restricción (! 4) 6 a7$ Estos problemas se colocan ordenadamente en una lista de problemas a procesar que son resueltos secuencialmente o en paralelo. 8bsrvese que la tcnica de bifurcación propuesta cubre completamente el espacio de soluciones.
Paso : !olución Se resuelve el siguiente problema en la lista de problemas a procesar.
Paso ": #cotación
Si la solución del problema actual satisface las condiciones de integralidad y el valor óptimo de su función ob,etivo es menor que la cota superior actual+ dicha cota se actuali0a al valor óptimo de la función ob,etivo del problema resuelto+ y el minimi0ador actual se almacena como el me,or candidato a minimi0ador del problema original. En caso de ma!imi0aciones+ la cota inferior actual se actuali0a al valor óptimo de la función ob,etivo del problema resuelto si ste es menor que dicha cota inferior.
Si+ por el contrario+ la solución obtenida no satisface las restricciones de integralidad y el valor de la correspondiente función ob,etivo est' entre las cotas inferior y superior+ se actuali0a el valor de la cota inferior al
valor de la función ob,etivo del problema resuelto y se procede a bifurcar de nuevo. En caso de ma!imi0aciones+ se actuali0a el valor de la cota superior al valor de la función ob,etivo del problema resuelto y se procede
a
bifurcar
de
nuevo.
Los problemas generados en el proceso de bifurcación se a-aden a la lista de problemas que han de resolverse.
Paso $: Poda
Poda por cotas: 9iene lugar si la solución no satisface las condiciones de integralidad y adem's el valor de la función ob,etivo del problema resuelto es mayor que la cota superior para minimi0aciones o menor que la cota inferior para ma!imi0aciones. En este caso no es posible obtener soluciones
mediante
bifurcaciones
adicionales
de
esa
rama.
Poda por infactibilidad: 9iene lugar si el problema es infactible. Poda por integralidad: 9iene lugar si la solución del problema actual cumple las restricciones de integralidad.
Paso %: &ptimalidad
Si la lista de problemas a procesar no est' vac&a+ se contina con el
paso . Si la lista de problemas a procesar est' vac&a+ el procedimiento concluye. ;oncluido el problema+ si e!iste un candidato a minimi0ador+ dicho candidato es el minimi0ador< en caso contrario+ el problema es infactible. El algoritmo de %*% devuelve la solución óptima o notifica la infactibilidad bien en el paso $ ó en el paso =. El proceso de bifurcación concluye por la poda de la rama correspondiente como consecuencia de una de las tres ra0ones siguientes:
$. La solución del problema rela,ado es mayor que la cota superior disponible en el caso de minimi0aciones+ o menor que la cota inferior 1isponible para el caso de ma!imi0aciones. >. El problema considerado es infactible. . La solución obtenida satisface las condiciones de integralidad. ;omo puede verse+ los pasos centrales del algoritmo %*% son la bifurcación+ la acotación y la poda. La diferencia entre un algoritmo %*% u otro radica en las diferentes estrategias que pueden llevarse a cabo a la hora de implementar tales pasos.
Estrategias de bifurcación y procesamiento ;ualquier variable que deba ser entera pero que no lo sea en la solución actual+ es una variable candidata para bifurcación. ;u'l escoger no es una cuestión trivial+ y su respuesta ha de basarse en la estructura del problema. Los problemas almacenados para ser procesados pueden tratarse mediante estrategias en profundidad+ en anchura o mi!tas. La siguiente figura ilustra las dos primeras alternativas. ?ormalmente el conocimiento tcnico del problema permite establecer el tipo de estrategia a utili0ar.
•
na estrategia de procesado en profundidad origina r'pidamente problemas
fuertemente
restringidos
que
producen buenas cotas
superiores e inferiores. 1e esta forma+ da lugar a problemas infactibles y+ por tanto+ a una deseable eliminación de ramas.
•
Por el contrario+ una estrategia en anchura permite tratar problemas muy
similares+
de
lo
que
pueden
desprenderse
venta,as
computacionales como es la reoptimi0ación eficiente del problema rela,ado actual partiendo de la solución del anterior.
Estrategias de acotación La acotación es normalmente llevada a cabo mediante la denominada relajación lineal + consistente en la obtención de la cota a partir de la resolución del PPL obtenido rela,ando las restricciones de integralidad del PPLE original. Sin embargo+ e!isten otras posibles rela,aciones del PPLE original+ como la relajación Lagrangiana en la que todo el con,unto de restricciones (/! 5 b en notación matricial) es eliminado y la función ob,etivo del problema a!imi0ar 0@c 9! es reempla0ada por a!imi0ar 0A@c 9! B (/! B b)+ donde 6" es un vector fi,o. Si !C es una solución óptima del problema original 0 5 0A+ por lo que resolviendo la rela,ación Lagrangiana el valor óptimo de 0A proporciona una cota v'lida para el problema original. Escogiendo adecuadamente el valor del vector dicha cota tiende a ser similar a la proporcionada por la solución de la rela,ación lineal+ pero con la venta,a de que sin las restricciones del problema la resolución de la rela,ación Lagrangiana puede llegar a ser mucho m's r'pida. En contrapartida+ la poda llevada a cabo tras la acotación mediante la rela,ación Lagrangiana no suele ser tan potente como la llevada a cabo tras la rela,ación lineal. En general+ dos son los factores deseables a la hora de escoger una u otra estrategia de acotación: (a) una r'pida resolución del problema rela,ado< y (b) la obtención de una buena cota. En general+ la rela,ación lineal suele ofrecer un buen compromiso entre ambos factores.
Estrategias de poda
;omo se ha comentado anteriormente+ la poda de la rama correspondiente tiene lugar por una de las tres ra0ones siguientes: $. La solución del problema rela,ado es mayor que la cota superior disponible en el caso de minimi0aciones+ o menor que la cota inferior disponible para el caso de ma!imi0aciones. >. El problema considerado es infactible. . La solución obtenida satisface las condiciones de integralidad. En cuanto al punto $ puede optarse por convertir el problema a la forma est'ndar de ma!imi0ación y podar siempre que la solución del problema rela,ado sea inferior al óptimo actual. En cuanto al punto + si el problema rela,ado y el subproblema generado mediante bifurcación tan sólo difieren en la falta de alguna restricción+ la poda puede simplemente basarse en comprobar si la solución óptima de dicha rela,ación es una solución factible para el subproblema+ ya que en este caso dicha solución tambin ser' óptima para este subproblema.
E'emplo( todo %*% para un PPLE i!ta
Se trata de obtener su solución mediante el mtodo de %*%.
!olución: Método B)B para un PPLE Mixta Paso 1: Iniciación La cota superior inicial es 72 y la inferior 3 2. $.> El problema rela,ado+ denominado P"+ es el siguiente:
Paso 2: Bifurcación La variable que ha de ser entera ! + mediante bifurcación da lugar a los dos problemas siguientes:
Estos problemas se colocan en la lista de problemas a procesar.
Paso : !olución Se resuelve el problema P$ Solución: 0 @ $.D para el punto (!$@".D+ !>@"+ !@>+ !@".D)
Paso ": #cotación Puesto que la solución obtenida satisface las condiciones de integralidad (!> + !F
Ν)+
y que el valor de la función ob,etivo (0@$.D) es menor que el valor actual
de la cota superior+ sta se actuali0a de 2 a $.D (la solución óptima est' por tanto entre " y $.D)+ y el minimi0ador encontrado se almacena como me,or candidato a minimi0ador del problema original.
Paso $: Poda Puesto que la solución actual satisface las condiciones de integralidad (para !> y ! )+ la rama se poda y se continua con el paso .
Paso : !olución Se resuelve el problema P>. Solución: 0 @ ".D para el punto (!$@"+ !>@".>D+ !@+ !@$.>D)
Paso ": #cotación Puesto que esta solución no satisface las condiciones de integralidad (!> ₡Ν) y el valor correspondiente de la función ob,etivo (".D) est' entre las cotas interior y superior+ la cota inferior se actuali0a de " a ".D (la solución óptima est' por tanto entre ".D y $.D). / continuación se procede a bifurcar sobre la variable !> + lo que da lugar a los dos problemas siguientes:
Los problemas generados en el proceso de bifurcación se a-aden a la lista de problemas que han de resolverse.
Paso $: Poda (?o ocurre nada en este paso)
Paso %: *ontrol de optimalidad Puesto que la lista de problemas a procesar no est' vac&a+ se contina con el problema P en el paso .
Paso : !olución (El problema P es infactible< por tanto+ nada tiene lugar en este paso)
Paso ": #cotación (?o ocurre nada en este paso)
Paso $: Poda Puesto que el problema P es infactible+ la rama correspondiente se poda por infactibilidad.
Paso %: *ontrol de optimalidad Puesto que la lista de problemas no est' vac&a+ se contina con el problema P en el paso .
Paso : !olución Se resuelve el problema P Solución: 0 @ > para el punto (!$@"+ !>@$+ !@.D+ !@".D) Paso ": #cotación (?o ocurre nada en este paso)
Paso $: Poda Puesto que la solución obtenida no satisface las condiciones de integralidad (! Ν)+
y el valor correspondiente de la función ob,etivo es mayor que el valor
actual de la cota superior+ no podr' lograrse una me,or solución que la disponible llevando a cabo bifurcaciones adicionales. /s&+ la rama se poda por cotas.
Paso %: *ontrol de optimalidad
Puesto que la lista de problemas a procesar est' vac&a+ el procedimiento concluye. ;oncluido el proceso+ como hay un candidato a minimi0ador+ este candidato es la solución del problema original: