Ramificacion y poda
-
Upload
whaleejaa-wha -
Category
Technology
-
view
208 -
download
0
Transcript of Ramificacion y poda
Algoritmo De Branch and Bound (Ramificacion y Poda).
Jesus Enrique Bahena Ortiz
1. Resumen
El presente artıculo se ha desarrollado con la finalidadde mostrar la resolucion de un problema practico deoptimizacion, a traves del Algoritmo de Ramificaciony Poda (Branch and Bound). Se plantea como tareaa resolver un caso de optimzacion de 4 individuos y 4tareas a traves del algoritmo de Ramificacion y Podautilizando las unidades de tiempo en que son ejecuta-das las tareas mencionadas por cada individuo.
Palabras clave:Algoritmo, ramificacion, poda, op-timizacion.
2. Introduccion
El algoritmo de Ramificacion y poda (conocidotambien como Ramificacion y cota o ”Branch andBound”por su significado en ingles) es una manera decombinar el ahorro de espacio de busqueda en profun-didad con informacion heurıstica. Es particularmenteaplicable cuando existen muchos caminos hacia un ob-jetivo y se desea una trayectoria optima. La idea princi-pal del algoritmo de busqueda de Ramificacion y podaes mantener el camino de costo mas bajo hacia unameta encontrada demasiado lejos. Supongamos que elcosto es obligado. Si la busqueda encuentra o arrojaun camino tal que costo (p) + h(p) ≥ que se estable-cio, el camino o puede ser podado. Si un camino nopodado hacia la meta es encontrado, debe ser mejorque el camino mas optimo. Esta nueva solucion es al-macenada y el costo establecido se coloca a esta nuevasolucion, ası sucesivamente se continua con la busquedahasta encontrar una nueva solucion. La busqueda delAlgoritmo de Branch and Bound genera una secuenciade mejores soluciones. Una vez que se ha encontradouna solucion, continua buscando una mejor. El algo-ritmo de Branch and Bound es tıpicamente utilizadoen busquedas de profundidad. El algoritmo recuerdael camino de menor costo encontrado y devuelve estecamino cuando finalice la busqueda.
Terminologıa
Nodo vivo: Aquel que no ha sido podado y quepuede ser ramificado.
Nodo muerto: Nodo del que no se van a generarmas hijos, porque:
• Se llega a una solucion.
• No genera nuevas soluciones factibles.
• No genera mejores soluciones que la mejorconocida hasta el momento.
Nodo en curso (o en expansion: Aquel que se se-lecciona para ramificarlo.
Algoritmo (Generalidades)
Cada arista de grafo (arbol) tendra asociado uncoste.
RP utiliza cotas para podar aquellas ramas delarbol que no conducen a la solucion optima.
En cada nodo se calcula una cota del valor de lassoluciones que se encontraran generando. suceso-res.
Si la cota indica que las soluciones a encontrarson peores que la mejor que tenemos no se sigueexplorando esa rama (proceso de poda
La cota se utiliza para seleccionar el camino masprometedor.
Etapas de Algoritmo de Ramificacion y Poda
Seleccion: extrae un nodo del conjunto de nodosvivos - depende de la estrategia de busqueda em-pleada.
Ramificacion: se construyen los posibles nodos hi-jos del nodo seleccionado en el paso anterior.
Poda: se eliminan algunos de los nodos creadosen la etapa anterior.
La poda contribuye a reducir en lo posible el es-pacio de busqueda, atenuando la complejidad.
Los nodos no podados pasan a formar parte delconjunto de nodos vivos.
Se repiten las 3 etapas hasta que finaliza el algo-ritmo.
El algoritmo se detiene cuando: encuentra la so-lucion, se agota el conjunto de nodos vivos.
3. Planteamiento del Problema
Dadas n tareas y n personas, asignar a cada per-sona una tarea; minimizando el coste de la asignaciontotal.
Para resolver el problema, se tiene una matriz detarifas que determina el coste de asignar a cada perso-na una tarea.
1
Figura 1 Matriz de tarifas
4. Desarrollo y Experimentacion
En primer lugar, se necesita obtener una cota su-perior del coste. Se obtendra a partir de una primerasolucion. Para este ejemplo, se tomaran los elementosde la diagonal principal: a1, b2, c3, d4.
11 + 15 + 19 + 28 = 73
Solucion optima ≤ Cota calculada
Se empieza asignando el agente a a las diferentestareas. Cabe recordar que la cota superior establecidaes de 73.
Se selecciona el menor valor para cada tarea peroque no se encuentre en la columna del primer elementoelegido.
a1 = 11 + 13 + 17 + 14 = 55
a2 = 12 + 13 + 11 + 17 = 53
a3 = 18 + 14 + 11 + 14 = 55
a4 = 40 + 13 + 11 + 14 = 78
Figura 1 Inicio del arbol
Se observa que 78 ≥ cota superior, por lo tanto estarama no se explorara, debido a que no se encuentra uncamino optimo en ella.
A continuacion se explorara el nodo mas promete-dor: cota 53 (a2)
Cota superior:73
b1 = 12 + 14 + 19 + 20 = 65
b3 = 12 + 13 + 11 + 17 = 53
b4 = 12 + 22 + 11 + 17 = 62
Figura 2. Primera ramificacion
Se observa que el nodo mas prometedor es de lacota de 53, por lo que sera el nodo que se explorara.
c1, d4 = 12 + 13 + 11 + 28 = 64
c4, d1 = 12 + 22 + 23 + 17 = 65
Figura 3. Primera Solucion encontrada
La solucion encontrada sera nuestra nueva cota su-perior:64
Como consecuencia, se descarta el nodo (a2,b1) queexcede la nueva cota superior.
Despues, se procede a continuar con la cota mas pro-metedora.
a1, cuenta con la cota mas prometedora despues dea2 y se continua la exploracion a partir de el. Cotasuperior: 64
Figura 3. Exploracion a partir de nodo a1
a1, b3, c2, d4 = 11 + 13 + 71 + 28 = 69
a1, b3, c4, d2 = 11 + 13 + 23 + 14 = 61
La solucion encontrada sera la nueva cota superior:61. Como consecuencia, se descarta el nodo (a2,b4)
Continuando con la exploracion, a3 cuenta con la cotamas prometedora despues de a1 y a2 por lo que seprocede a realizar la exploracion a partir de el.
2
Figura 3. Exploracion a partir de nodo a3
a3, b1 = 18 + 14 + 17 + 14 = 63a3, b2 = 18 + 15 + 11 + 17 = 61a3, b4 = 18 + 22 + 11 + 14 = 65
Ninguna solucion encontrada es menor a nuestra cotasuperior establecida de 61. Por lo que se ha encontradouna solucion optima, reduciendo el coste de una explo-racion completa.
Se partio de una solucion inicial, la exploracion del
arbol de busqueda se realiza examinando el nodo masprometedor en cada momento.
5. Conclusion
La sencillez del Algoritmo de Warshall la hace unaherramienta muy simple de utilizar y encontrar los di-ferente caminos entre un par de nodos en un grafo,siendo de gran utilidad en la teoria de grafos.
Referencias
[1] Matematicas Discretas, Schawm, Seymour lips-chutz, Marc Lipson, 3a Edicion..
[2] Algoritmo de warshall, Josue Coloma,https://www.youtube.com/watch?v=UIAX9Lj85Is
3