1 / 33

PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP

PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP. Universidad Simón Bolívar ( Sede de Sartenejas ) Programa de Maestría en Ciencias de la Computación CI-7621 ( Teoría de Algoritmos ). Expositor: Ricardo Monascal Profesor: Oscar Meza.

makana
Download Presentation

PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP Universidad Simón Bolívar (Sede de Sartenejas) Programa de Maestría en Ciencias de la Computación CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Profesor: Oscar Meza

  2. PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Contenido • Árboles de Búsqueda • Árboles de Búsqueda Óptimos • Programación Dinámica (Árboles de Búsqueda Óptimos) • TSP (Travelling Salesman Problem) • Programación Dinámica (Travelling Salesman Problem) • Conclusiones

  3. Un árbol de búsqueda es un árbol binario que cumple la siguiente condición: 5 Para cada nodo x: Todos los nodos de su hijo izquierdo deben ser menores o iguales que la clave de x. Todos los nodos de su hijo derecho deben ser mayores que la clave de x. 3 6 1 4 8 7 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal ÁRBOLES DE BÚSQUEDA

  4. 5 5 3 3 5 5 3 3 6 6 3 3 7 7 1 1 5 5 1 1 4 4 8 8 4 4 7 7 1 1 4 4 6 6 8 8 7 7 6 6 8 8 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal ÁRBOLES DE BÚSQUEDA

  5. 5 3 7 1 4 6 8 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal ÁRBOLES DE BÚSQUEDA ¿Cuántas comparaciones hacen falta (en promedio) para conseguir un elemento en un árbol de búsqueda? Clave 5: 1 comparación Claves 3 y 7: 2 comparaciones Claves 1, 4, 6 y 8: 3 comparaciones En general: Para un nodo de profundidad di, la cantidad de comparaciones necesarias para encontrar dicho nodo es di + 1.

  6. 5 3 7 1 4 6 8 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal ÁRBOLES DE BÚSQUEDA ÓPTIMOS Considerando que cada clave tiene la misma probabilidad de ser buscada en el árbol. ¿Qué configuración proporciona el mínimo número promedio de comparaciones necesarias? ¿Cuántas comparaciones hacen falta (en promedio) para conseguir un elemento en el siguiente árbol de búsqueda? (1 + 2 + 2 + 3 + 3 + 3 + 3) / 8 = 17 / 8 = 2.125

  7. PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal ÁRBOLES DE BÚSQUEDA ÓPTIMOS Considerando ahora que cada clave tiene probabilidad pi de ser buscada en el árbol. ¿Qué configuración proporciona el mínimo número promedio de comparaciones necesarias? A este problema se le conoce como: Hallar el árbol de búsqueda óptimo para un conjunto determinado de claves.

  8. n Σ pi = 1 i = 1 n Σ C= pi (di + 1) i = 1 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal ÁRBOLES DE BÚSQUEDA ÓPTIMOS Supondremos la condición de que todas las claves, en efecto se encuentran en el árbol: Siendo así, la cantidad promedio de comparaciones necesarias, para una configuración dada, viene dada por:

  9. PROGRAMACIÓN DINÁMICA ÁRBOLES DE BÚSQUEDA ÓPTIMOS [ ni, ni+1, ..., nk-1, nk, nk+1, ..., nj-1, nj] L R nk R L PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal

  10. PROGRAMACIÓN DINÁMICA ÁRBOLES DE BÚSQUEDA ÓPTIMOS j Σ mij= pk k = i PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Ejemplo: i 1 2 3 4 5 pi 0.30 0.05 0.08 0.45 0.12

  11. PROGRAMACIÓN DINÁMICA ÁRBOLES DE BÚSQUEDA ÓPTIMOS [ ni, ni+1, ..., nk-1, nk, nk+1, ..., nj-1, nj] L R nk R L PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Cij = mij + Ci,k-1 + Ck+1,j

  12. PROGRAMACIÓN DINÁMICA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Cij = mij + min ( Ci,k-1 + Ck+1,j ) i < k < j PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Cii = pi La Matriz se llena por diagonales.

  13. PROGRAMACIÓN DINÁMICA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Θ( ) Θ( ) n-1 Σ T(n)= (n - m) (m + 1) = n3 m = 1 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Con m = j - i ¿Qué ocurriría si se admitiera la búsqueda de claves que no se encuentren en el árbol?

  14. TSP TRAVELLING SALESMAN PROBLEM 10 Dado un grafo G = (V, E) y una función de costo C : E → R+ Se desea conseguir un circuito (un camino que empieza y termina en el mismo nodo), de costo mínimo, tal que dicho circuito pase por cada nodo exactamente una vez. 1 2 10 1 2 5 5 Circuito óptimo: C = 1 → 2 → 4 → 3 → 1 Costo (C) = 10 + 10 + 9 + 6 = 35 8 20 8 15 8 20 8 10 13 9 15 10 13 9 9 9 4 3 4 3 12 12 6 6 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal

  15. TSP TRAVELLING SALESMAN PROBLEM 10 10 9 6 1 2 4 3 1 También es óptimo Sea g (i , S) el costo de un camino óptimo que empiece en el nodo i y termine en el nodo 1, pasando exactamente una vez por cada nodo en S. g( 1 , V / { 1 } ) = min ( C1j + g ( j , V \ { 1, j } ) ) 2 < j < n PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal

  16. PROGRAMACIÓN DINÁMICA TRAVELLING SALESMAN PROBLEM g( i , S ) = min ( Cij + g ( j , S \ { j } ) ) j S PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal g( i , Ø ) = Ci1 El algoritmo entonces puede averiguar los valores para g, cuando S = Ø. Luego, puede usar esa información para averiguar los valores de g, cuando |S| = 1, luego cuando |S| = 2. Y así en adelante hasta que S = V.

  17. PROGRAMACIÓN DINÁMICA TRAVELLING SALESMAN PROBLEM 10 1 2 5 8 20 8 15 10 13 9 9 4 3 12 6 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Ejemplo: C =

  18. PROGRAMACIÓN DINÁMICA TRAVELLING SALESMAN PROBLEM 10 1 2 5 8 20 8 15 10 13 9 9 4 3 12 6 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Ejemplo: g( 2 , Ø ) = 5 g( 3 , Ø ) = 6 g( 4 , Ø ) = 8

  19. PROGRAMACIÓN DINÁMICA TRAVELLING SALESMAN PROBLEM 10 1 2 5 8 20 8 15 10 13 9 9 4 3 12 6 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Ejemplo: g( 2 , { 3 } ) = C23 + g( 3 , Ø ) = 15 g( 2 , { 4 } ) = C24 + g( 4 , Ø ) = 18

  20. PROGRAMACIÓN DINÁMICA TRAVELLING SALESMAN PROBLEM 10 1 2 5 8 20 8 15 10 13 9 9 4 3 12 6 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Ejemplo: g( 3 , { 2 } ) = C32 + g( 2 , Ø ) = 18 g( 3 , { 4 } ) = C34 + g( 4 , Ø ) = 20

  21. PROGRAMACIÓN DINÁMICA TRAVELLING SALESMAN PROBLEM 10 1 2 5 8 20 8 15 10 13 9 9 4 3 12 6 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Ejemplo: g( 4 , { 2 } ) = C42 + g( 2 , Ø ) = 13 g( 4 , { 3 } ) = C43 + g( 3 , Ø ) = 15

  22. PROGRAMACIÓN DINÁMICA TRAVELLING SALESMAN PROBLEM g( 2 , { 3 , 4 } ) = C23 + g( 3 , { 4 } ) C24 + g( 4 , { 3 } ) = 25 10 1 2 5 8 20 8 min 15 10 13 9 9 4 3 12 6 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Ejemplo:

  23. PROGRAMACIÓN DINÁMICA TRAVELLING SALESMAN PROBLEM g( 3 , { 2 , 4 } ) = C32 + g( 2 , { 4 } ) C34 + g( 4 , { 2 } ) = 25 10 1 2 5 8 20 8 min 15 10 13 9 9 4 3 12 6 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Ejemplo:

  24. PROGRAMACIÓN DINÁMICA TRAVELLING SALESMAN PROBLEM g( 4 , { 2 , 3 } ) = C42 + g( 2 , { 3 } ) C43 + g( 3 , { 2 } ) = 23 10 1 2 5 8 20 8 min 15 10 13 9 9 4 3 12 6 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Ejemplo:

  25. PROGRAMACIÓN DINÁMICA TRAVELLING SALESMAN PROBLEM 10 g( 1 , { 2 , 3 , 4 } ) = C12 + g( 2 , { 3 , 4 } ) C13 + g( 3 , { 2 , 4 } ) C14 + g( 4 , { 2 , 3 } ) = 35 1 2 5 8 20 8 15 10 13 9 min 9 4 3 12 6 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Ejemplo:

  26. PROGRAMACIÓN DINÁMICA TRAVELLING SALESMAN PROBLEM V = { 1 , 2 , 3 , 4 } S = { 2 , 4 } { 2 , 4 } S = = 5 0 1 0 1 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Nótese que hasta ahora se ha asumido que g (i , S) se calcula una sola vez, y luego es reutilizado cada vez que haga falta. Sin embargo, S es un conjunto, por lo tanto hay que escoger alguna estructura de datos conveniente para representarlo. Una posible representación podría ser una codificación binaria de los elementos en S, con respecto a V. Por ejemplo:

  27. PROGRAMACIÓN DINÁMICA TRAVELLING SALESMAN PROBLEM 10 1 2 5 1 → → → → J ( 1 , { 2 , 3 , 4 } ) = 2 J ( 2 , { 3 , 4 } ) = 4 J ( 4 , { 3 } ) = 3 1 8 20 8 15 10 13 9 9 4 3 12 6 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal Para reconstruir el circuito de costo mínimo, se puede tener otro espacio de memoria J ( i , S ), tal que contenga el j escogido cuando de calculaba g ( i , S ).

  28. PROGRAMACIÓN DINÁMICA TRAVELLING SALESMAN PROBLEM Θ( ) Θ( ) n-2 Σ T(n)= n – 2 k 2 (n - 1) + (n - 1) k = n2 2n k = 1 PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal

  29. PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal CONCLUSIONES Nuevamente la técnica de programación dinámica nos proporciona una forma viable de tratar problemas que parecen difíciles. En el caso de lo árboles de búsqueda óptimos, nos proporcionó un algoritmo polinomial para su resolución. (Como nota aparte, puede verse la similitud de éste problema con el de la multiplicación encadenada de matrices)

  30. PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal CONCLUSIONES En el caso de TSP, se obtuvo un algoritmo que, a pesar de seguir siendo de orden exponencial, mejora por mucho el tiempo del método directo. (Cuando existen 20 nodos en el grafo, la programación dinámica se tomará un poco menos de 7 minutos, mientras que el método directo excederá los 77.000 años.)

  31. PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal REFERENCIAS Guilles Brassard y Paul Bratley. “Algorithmics: Theory and Practice” Prentice Hall. 1988. ISBN-13: 9780130232434

  32. PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal ¿PREGUNTAS?

  33. PROGRAMACIÓN DINÁMICA PARA ÁRBOLES DE BÚSQUEDA ÓPTIMOS Y TSP CI-7621 (Teoría de Algoritmos) Expositor: Ricardo Monascal ¡MUCHAS GRACIAS!

More Related