algoritmo de branch & bound
DESCRIPTION
Presentacion del Algoritmo Branch and Bound para la solucion de problemas de programacion lineal entero mixtaTRANSCRIPT
ALGORITMO DE BRANCH & BOUNDJose Hermoza Ordoñez
1. DEFINICION
• METODO DE RESOLUCION DE UN PROBLEMA DE PROGRAMACION LINEAL ENTERA
• SE BASA EN EL CONCEPTO DE LA RAMIFICACION DEL PROBLEMA ORIGINAL EN SUB-PROBLEMAS RELAJADOS SUCESIVAMENTE, OBTENIENDO NUEVAS COTAS, HASTA ENCONTRAR LA SOLUCION CON VARIABLES ENTERAS, O LA INFACTIBILIDAD DE LA MISMA.
2. PROCEDIMIENTO• SE INICIA RESOLVIENDO EL PROBLEMA DE PLE, SIN
CONSIDERAR LAS RESTRICCIONES DE VARIABLES ENTERAS, A ESTO SE LE DENOMINA RELAJACION LINEAL CONTINUA
• CON LO ANTERIOR SE OBTIENE LA SOLUCION RELAJADA, QUE EQUIVALE A LA COTA DE LA SOLUCION.
• SI LAS VARIABLES HALLADAS, SON NO ENTERAS, SE PROCEDE A REALIZAR EL METODO, DE LO CONTRARIO, ESTA ES LA SOLUCION.
• SE TOMA UNA DE LAS VARIABLES QUE CUMPLA CON SER NO ENTERA, Y SE INICIA EL METODO.
2. PROCEDIMIENTO• SE APROXIMA LA VARIABLE ESCOGIDA AL ENTERO INFERIOR Y
SUPERIOR, CON ESTO SE RAMIFICA EL PROBLEMA EN DOS SUB-PROBLEMAS.
• SE RESUELVE CADA SUB-PROBLEMA, DE UNA MANERA RELAJADA, Y SE EVALUAN LOS RESULTADOS:
• SI LA SOLUCION ES INFACTIBLE, ESTA RAMA, QUEDA DESCARTADA COMO PARTE DEL CONJUNTO SOLUCION.
• SI LA SOLUCION ES FACTIBLE, CON LAS VARIABLES ENTERAS, ESTA ES LA SOLUCION.
• SI LA SOLUCION ES FACTIBLE, PERO CON ALGUNA VARIABLE NO ENTERA, SE PROCEDE A SUB-DIVIDIR, UNA VEZ MAS ESTE SUB-PROBLEMA EN DOS RAMAS, CON LA VARIABLE APROXIMADA AL ENTERO INFERIOR, Y SUPERIOR EN CADA RAMA RESPECTIVAMENTE.
2. PROCEDIMIENTO• DE ACUERDO A SI LAS VARIABLES HALLADAS SON
NO ENTERAS, SE PROCEDE A REPETIR LAS RAMIFICACIONES, HASTA QUE SE DEN ALGUNA DE LAS SIGUIENTES CONDICIONES:
• LAS VARIABLES HALLADAS, SEAN ENTERAS• LA SOLUCION SEA NO FACTIBLE• CUANDO SE FINALICEN TODAS LAS RAMAS, SE
PROCEDE A COMPARAR LOS VALORES DE LAS FUNCIONES OBJETIVOS EN CADA FINAL DE RAMA, Y SE ESCOGE LA QUE SE APROXIMA MAS A LA HALLADA CON LA PRIMERA RELAJACION CONTINUA.
3. EJERCICIO PRACTICO
1)Resolver el siguiente PLE:
3. EJERCICIO PRACTICO1. Relajamos el problema (obviamos la consideración de
restricción entera) y lo resolvemos.Con las tres restricciones consideradas, hallamos los vértices de
la región factible:a. x1=0,x2=13/4b. x1=13/7,x2=0c. x1=0,x2=0Evaluando en la función objetivo, escogemos el máximo:21*(0) + 11*(13/4)= 35.75,21*(13/7) + 11*(0)= 39,21*(0) + 11*(0)= 0;Se obtiene 39, y esta es la cota máxima de la solución.
3. EJERCICIO PRACTICO
(0,13/4)
(0,0) (13/7,0)
Región Factible
X1
X2
3. EJERCICIO PRACTICO2.Observamos que “x1”(13/7), toma un valor no
entero, por lo que ramificaremos el problema en dos, con x1 aproximada al entero inferior(1) y superior(2) respectivamente.
x1=13/7 x2=0
z= 39 x1<=1 x1>=2
x1=1 x1=2 x2=? x2=?
P0
P2P1
3. EJERCICIO PRACTICOAhora resolvemos de manera relajada cada sub-
problema, intersectando x1, en la región factible:P1: x1=1, x2=(13-7*x1)/4=3/2……(1,3/2),z=37.5
,x2=0 ……..(1,0),z=21P2: x1=2, x2=(13-7*x1)/4=-1/4…..(2,-1/4)…infac. ,x2=0 …..(2,0),.….infac.En P1,obtenemos la mejor solución de z=37.5, para
(1,3/2), en P2, obtenemos infactibilidad, debido a que la variables obtenidas no pertenecen a la región factible.
3. EJERCICIO PRACTICO x1=13/7
x2=0 z= 39
x1<=1 x1>=2
x1=1 x1=2 x2=3/2 x2 z=37.5 infactible
x2<=1 x2>=2
x1=1 x1=2 x2=? x2=?
Vemos que con P2, terminamos ese lado de la rama, caso contrario, con P1 donde el valor X2(3/2)no entero, obliga, a subdividir en dos nuevas ramas, repitiendo la metodología.
P0
P2P1
P11 P12
3. EJERCICIO PRACTICO
3. Siguiendo los criterios anteriores, resolvemos:
P11: x2=1, x1=(13-4*x2)/7=9/7……(9/7,1),z=38 ,x1=0 ……..(0,1),z=11
Notamos que con x1=9/7, se obtiene un z mayor, pero notamos que este valor viola la restricción principal de P1(x1<=1), que es la que dio origen a estas dos sub-ramas. Por lo que igualaremos x1 a 1, con lo que se obtiene un z=32.
P12: x2=2, x1=(13-4*x2)/7=5/7…..(5/7,2),z=37 ,x1=0 …..(0,2),Z=22
3. EJERCICIO PRACTICO• Notamos en P11, que sus variables son
enteras(1,1), por lo que esta rama finaliza aquí con un z=32.
• Caso contario con P12, donde se obtuvo (5/7,2), por lo que habrá que subdividir en nuevas ramas.
• Seguiremos el método hasta que se consigan que la variables sean enteras, o el sistema sea infactible, para finalizar la rama.
• Siguiendo el método obtuvimos lo siguiente
3. EJEMPLO PRACTICO
P0
P11
P2P1
P12
P122
P1212
P121
P1211
X1=13/7X2=0Z=39
X1=0X2=3Z=33
InfactibleX1=13/7X2=0Z=39
X1=1X2=1Z=32
X1=5/7X2=2Z=37
X1=0X2=13/4Z=35.75
X1<=1 X1>=2
X1<=0 X1>=1
X2<=1 X2>=2
X1<=3 X1>=4
Infactible
Infactible
Observamos, que el árbol de ramificaciones acabo, con dos juegos de variables, P11(z=32), y P1211(z=33).Por lo que la que se aproxima mas a la cota inicial(z=39), es P1211.
Así concluimos que la solución optima del problema de PLE, existe y es 33, con valores de x1=0, y x2=3
4. CONCLUSIONES
• El algoritmo de Branch & Bound es una herramienta muy importante para agilizar la resolucion de un problema de PLE, por que el problema en sub-problemas mas pequeños.