Introducción.
Muchos de los problemas de la vida real exigen soluciones con números entero, por lo tanto las variables de dicho problema deben ser definidas como variables enteras. Los métodos de solución que contemplaremos en éste capítulo son: Método grfico, Método de los planos cortantes de !omor", Método de #ifurcación " $cotación %#ranch $nd #ound&, el Método de 'gon #alas en donde las variables son de carcter binario %(,)&. *or último se ilustra el uso del soft+are in-sb para atender éste tipo de problema. Método de los planos cortantes de Gomory
ste método sirve para solucionar problemas de ms de dos %/& variables. Algoritmo
). 'ncontrar la solución, empleando el método simplex. /. 0i la solución es entera, entonces estamos en el óptimo. 1. 0i no es entera, introducir una restricción nueva para la variable no entera, que tenga la ma"or ma"or parte parte fracci fraccional onal %-uebra %-uebrarr empate empatess arbitr arbitrari ariame amente nte&& " resolv resolver er el nuevo nuevo problema mediante el método dual simplex. 2ueva restricción a partir de la restricción actual que tenga la variable cu"o valor en su parte fraccional sea ma"or. a& 'scriba cada constante como la suma de: 3n número entero de cualquier signo " una fracción no negativa, menor que uno %)&. b& 4ambiar la ecuación trasladando los coeficientes enteros al lado derecho. Ejempl o Max: C.S.R. X1 < 2 X j > 0
Z = X1 Max: Z = X1 + 5X2 5 5 + 5X2 X1 + 10X2 C.S. X1 + 10X2 + X3 = 20 R. < 20 X1 + X4 = 2 y enteros X j > 0 y enteros para toa j para toa j
! "ont#n$a"#%n so&$"#ona'os e& pro(&e'a por e& ')too s#'p&ex* ta& "o'o se ar,a s# e& pro(&e'a -$ese e prora'a"#%n nea& "ont#n$a.
4lculo de la nueva restricción, a partir de la ecuación /. 6/ 7 )8)(61 9 )8)(6 ; <8= >empla?amos cada constante por la suma de un número entero de cualquier signo " una fracción no negativa menor que uno %)&. %)7(&6/ 7 %(7)8)(& 61 7 %@)7<8)(& 6 ; %)78=& 0implificando 6/ 7 )8)(61 9 6 7 <8)(6 ; 8= 7 )A Brasladamos los términos con coeficiente entero, al lado derecho. )8)(61 7 <8)(6 ; 8= 7 ) 9 6/ 7 6A CíDese que el lado i?quierdo subra"ado debe ser positivo " el lado derecho subra"ado, debe ser entero, luego podemos asegurar que: )8)(61 7 <8)(6 E 8=A Multiplicando por %@)&A @)8)(61 9 <8)(6 F @8= A $dicionando una variable de holguraA -1/10X3 – /10X! " X# $ -!/# A 'cuación ésta que adicionamos, así:
6) ; )(8< ; ) 7 )8< A 6/ ; )G8< ; ) 7 %/ A 61 ; ( A 6 ; %/ A 6= ; ( A H ; <=8< ; )(,= 'scogemos la variable bsica con ma"or parte fraccionaria, en caso de empate, escoDa al a?ar. 'scoDo 6
)8<61 7 6 9 )(8<6= ; I8< / %(7)8<&61 7 %)7(&6 7 %@/7I8<&6= ; I8< /
X1 = 0 X2 = 2 X3 = 0 X4 = 2 X5 = 1 X = 0 Zx = 10
1 = 3 2 = 0 3 = 0 4 = 5 5 = 0 = 0 Z = 10
Método de &i'urcación y Acotación (&ranc) And &ound*.
'l método de bifurcación " acotación %#J#, de #ranch and #ound& resuelve un **L' resolviendo una secuencia ordenada de **Ls que se obtienen relaDando las restricciones de integralidad " aKadiendo restricciones adicionales. 'l número de restricciones adicionales crece a medida que el método #J# progresa. 'stas restricciones permiten separar la región factible en subregiones complementarias. 'l método #J# establece inicialmente cotas inferior " superior del valor óptimo de la función obDetivo. 'l mecanismo de bifurcación aumenta progresivamente el valor de la cota inferior " disminu"e también progresivamente el valor de la cota superior. La diferencia entre estas cotas es una medida de la proximidad de la solución actual a la óptima, si ésta existe. $l minimi?ar, se obtiene una cota inferior de la solución óptima relaDando las restricciones de integralidad del **L' inicial " resolviendo el **L resultante. $dems, el valor de la función obDetivo para cualquier solución del **L' original es una cota superior de la solución óptima. e manera anloga, al maximi?ar, la solución del **L relaDado es una cota superior para el óptimo " cualquier solución del **L' original es una cota inferior de la solución óptima. 's una estrategia sistemtica, que reduce mucho el número de combinaciones que se deben examinar. ! "ont#n$a"#%n se en$'eran &os pasos e& a&or#t'o 6 para $n 7789 M#xta: Paso 1: Iniciación
).) 0e establece una cota superior %& " una cota inferior %N& de la solución óptima. )./ 0e resuelve el **L' Mixta inicial relaDando las restricciones de integralidad. )./. a 0i el problema relaDado es infactible, el original también lo es " no ha" solución. )./. b 0i la solución obtenida satisface las condiciones de integralidad, es óptima. )./. c 'n cualquier otro caso, se actuali?a el valor de la cota correspondiente con el valor de la función obDetivo resultante. Paso 2: Bifurcación
/.) 'mpleando la variable xk que ha de ser entera " no lo es, se generan mediante bifurcación dos problemas. 0i el valor de la variable que ha de ser entera xk es a.b, donde a " b son sus partes entera " fraccional respectivamente, los problemas fruto de la bifurcación son los siguientes. /.).a 'l primer problema es el **L' relaDado al que se la aKade la restricción xk Oa /.).b 'l segundo es el **L' relaDado al que se le aKade la restricción xk Pa7)
/./ 'stos problemas se colocan ordenadamente en una lista de problemas a procesar que son resueltos secuencialmente o en paralelo. Qbsérvese que la técnica de bifurcación propuesta cubre completamente el espacio de soluciones. Paso 3: Solución
1.) 0e resuelve el siguiente problema en la lista de problemas a procesar. Paso 4: Acotación
.) 0i la solución del problema actual satisface las condiciones de integralidad " el valor óptimo de su función obDetivo es menor que la cota superior actual, dicha cota se actuali?a al valor óptimo de la función obDetivo del problema resuelto, " el minimi?ador actual se almacena como el meDor candidato a minimi?ador del problema original. 'n caso de maximi?aciones, la cota inferior actual se actuali?a al valor óptimo de la función obDetivo del problema resuelto si éste es menor que dicha cota inferior. ./ 0i, por el contrario, la solución obtenida no satisface las restricciones de integralidad " el valor de la correspondiente función obDetivo est entre las cotas inferior " superior, se actuali?a el valor de la cota inferior al valor de la función obDetivo del problema resuelto " se procede a bifurcar de nuevo. 'n caso de maximi?aciones, se actuali?a el valor de la cota superior al valor de la función obDetivo del problema resuelto " se procede a bifurcar de nuevo. .1 Los problemas generados en el proceso de bifurcación se aKaden a la lista de problemas que han de resolverse. Paso 5: Poda =.) Poda por cotas: Biene lugar si la solución no satisface las condiciones de integralidad
" adems el valor de la función obDetivo del problema resuelto es ma"or que la cota superior para minimi?aciones o menor que la cota inferior para maximi?aciones. 'n este caso no es posible obtener soluciones mediante bifurcaciones adicionales de esa rama. =./ Poda por infactibilidad : Biene lugar si el problema es infactible. =.1 Poda por integralidad : Biene lugar si la solución del problema actual cumple las restricciones de integralidad. Paso 6: Optimalidad
R.) 0i la lista de problemas a procesar no est vacía, se continúa con el paso 1. R./ 0i la lista de problemas a procesar est vacía, el procedimiento conclu"e. R.1 4oncluido el problema, si existe un candidato a minimi?ador, dicho candidato es el minimi?adorA en caso contrario, el problema es infactible. Algoritmo
). 'ncontrar la solución mediante el Método 0implex. 0i la solución no es entera, pase al segundo punto. /. 4omien?a con la solución óptima del simplex en donde se ignoran las restricciones de variables enteras. 1. 0e selecciona una variable con valor no cero " se crean dos ramas mutuamente exclu"entes, esto da lugar a dos %/& nuevos problemas de *rogramación LinealA que se deben resolver. . 0i ninguna solución es entera, con la rama de ma"or valor de H, se crean nuevas ramas " se resuelven nuevos problemas por programación lineal %Método 0implex&. =. 0e repite el punto &, Sasta encontrar la solución entera óptima.
Qbserve que la primera acotación se reali?ó sobre la variable 6/ , pero pudo haber sido sobre 6) , de todas formas el método es dispendioso, en especial si se hace manualmente. Método Aditi+o de ,gon &alas para prolemas inarios (01*
2o confundir éste método para solucionar problemas de asignaciones, aquí el problema de programación lineal tiene la forma general " lo diferente es que las variables solo pueden tomar valores binarios %(,)&. La filosofía del método se basa en pensar que si se tiene una función obDetiva minimi?ando " todos sus términos son positivos, entonces, entre menos variables tomen el valor de uno %)&, la función obDetiva ser mínima. ). La función obDetivo se minimi?a, en caso de maximi?ación, use la regla de equivalencia: Maximi?ar %H& ; Minimi?ar %@H&. /. 0e requiere que 4D E (, D. 'n caso de que 4D F (, entonces 6D se sustitu"e por: 6T ; ) @ 6D, es decir 6D es el complemento. 'Demplo: Min H ; 16) 9 /6/ / 6/ ; ) @ 6/A >empla?ando H ; 16) 9 /%)@ 6/& Min H ; 16) 7 /6/ 9 /, que para el caso: Min H ; 16) 7 /6/ ota 'l cambio de variable, también se debe aplicar a todas las restricciones. *ara apreciar la utilidad del método, resolveremos el siguiente eDemplo, primero, contemplando todas las posibles soluciones " a continuación aplicando el método aditivo de 'gon #alas, que reduce el número de soluciones posibles a contemplar. M#n#'#"e : C.S.R. X = 0* 1
Z = X1 + ;X 2 + X 3 + 5X 4 + X5 X1 3X2 + 2X3 4X 4 X 5 < 3 4X1 5X2 4X3 3X4 + 3X5 < ; j = 1* 2* 3* 4* 5
'l número posible de soluciones es de / n, en donde n es el número de variables. 'n el eDemplo, el número posible de soluciones es / = ; 1/ 'n el siguiente diagrama se muestran todas las 1/ posibles soluciones.
$lgunas de éstas soluciones no son factibles, "a que no satisfacen las restricciones. $quellas que satisfagan las restricciones, debern ser rempla?adas en la función obDetivo " la que la haga ms pequeKa, ser la solución óptima. ste procedimiento es dispendioso, tanto en la consecución de todas las soluciones como en su evaluación para todas las restricciones " en su evaluación final sobre la función obDetiva. Aplicación del Método de ,gon &alas
'valuamos cada restricción, primeramente suponiendo que todas las variables valgan cero, " después, alternativamente a cada variable le asignamos el valor de uno %)& " al resto de variables el valor de cero %(&. 4ada ve? que una solución no satisfaga una restricción, el que tan leDos est de satisfacerla, lo llamamos infactibilidad. 'Demplo: 0i 6) ; ) " 6/ ; 61 ; 6 ; 6= ; ( >empla?ando en la restricción uno %)&, establecemos que: @1 F ( , luego aquí la infactibilidad es cero %(&, "a que la solución evaluada, satisface la restricción, convirtiéndola en una afirmación verdadera. >empla?ando en la restricción dos %/&, establecemos que: 1 F ( , luego aquí la infactibilidad es tres %1&, "a que la solución evaluada, no satisface la restricción, convirtiéndola en una afirmación falsa. 'l que tan leDos est de ser una verdad, es lo que llamamos infactibilidad. 'n total, la solución evaluada tiene una infactibilidad de ( 7 1 ; 1 0i en ésta primera iteración, encontramos una solución cu"a infactibilidad sea cero %(&, hemos encontrado la solución factible " óptima. 0i encontramos que varias soluciones tienen la infactibilidad igual a cero %(&, rempla?amos todas éstas soluciones en la función obDetivo " la solución óptima ser aquella que haga que H sea mínima. 0i no ha" ninguna solución con su infactibilidad igual a cero %(&, 'scogemos la solución que menor infactibilidad tenga " de ella la variable que esté valiendo uno %)&. >empla?amos en las restricciones dicha variable " sobre dichas restricciones iniciamos la segunda iteración. ste procedimiento se repite hasta encontrar la solución óptima factible.
Primera Iteración X1 3X2 + 2X3 4X4 X5 + 3 < 0
Segunda Iteración (X 2 = 1) X1 + 2X3 4X4 X5 < 0
4X1 5X2 4X3 3X4 + 3X5 + ; < 0
4X1 4X3 3X4 + 3X5 + 2 < 0
X1 = X2 = X3 = X4 = X5 = 0
X1 = 1 @ X 3 = X4 = X5 = 0
3<0
< 0
; < 0 ?n-a"t#(#a = 10
2 < 0 ?n-a"t#(#a = 0 @
X1 = 1 @ X 2 = X3 = X4 = X5 = 0
X3 = 1 @ X 1 = X4 = X5 = 0
3 < 0
2<0
3 < 0 ?n-a"t#(#a = 3
2 < 0 ?n-a"t#(#a = 2
X2 = 1 @ X 1 = X3 = X4 = X5 = 0
X4 = 1 @ X 1 = X3 = X5 = 0
0<0
4 < 0
2 < 0 ?n-a"t#(#a = 2 @ La menor
1 < 0 ?n-a"t#(#a = 0
X3 = 1 @ X 1 = X2 = X4 = X5 = 0
X5 = 1 @ X 1 = X3 = X4 = 0
5<0
1 < 0
3 < 0 ?n-a"t#(#a =
5 < 0 ?n-a"t#(#a = 5
X4 = 1 @ X 1 = X2 = X3 = X5 = 0
9n )sta #tera"#%n ay os so&$"#ones "on #n-a"t#(#a #$a& a "ero A0B* ea&$ao &a -$n"#%n o(jet#o "on a'(as so&$"#ones* en"ontra'os &a so&$"#%n %pt#'a "on Z = 12
1 < 0 4 < 0 ?n-a"t#(#a = 4 X5 = 1 @ X 1 = X2 = X3 = X4 = 0 2<0 10 < 0 ?n-a"t#(#a = 12
$quí concluimos, que lo menos malo es fiDar la primera variable con valor de uno %)& a 6/ "a que presenta la menor infactibilidad, rempla?amos a 6/ ; ) en las dos restricciones e iniciamos la /U iteración.
,emplo 1 Método &2& para un 4, ura
Sea e& s#$#ente 7789 7$ra:
Solución: X1 = 0 @ X 2 = 1 @ X 3 = 0 @ X 4 = 1 X5 = 0 @ Z = 12
0olamente se hi?o necesario escudriKar )( de las 1/ soluciones posibles. *odemos asegurar que el método hace una búsqueda sistemtica que evita probar todas las combinaciones posibles.