SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
13/09/2011




                                                   Algoritmos y Estructura de Datos II                                                            Agenda
                                                                                                                                   2


                                                                                                                                                     Digrafo
                                                                                                                                                     DFS Dirigido
                                                                    DIGRAFOS                                                                         Alcanzabilidad




                                                                                                            Algoritmos y Estructura de Datos II
                                                                                                                                                     Fuertemente conexo
                                                                                                                                                         Algoritmo fuertemente conexo
                                                                                                                                                     Clausura transitiva
                                                                                                                                                     Floyd-Warshall: clausura transtiva
                                                                                                                                                         Algoritmo Floyd-Warshall
                                                                                                                                                     Grafos ponderados
                                                                                                                                                     Problema del camino más corto - ruta mínima
                                                                                                                                                         Algoritmo de Dijkstra
                                      UCSM - 2011                   Karim Guevara Puente de la Vega




                                         DiGrafos                                                                                                 DFS Dirigido
                       3                                                                                                           4



                                            Es un grafo cuyas aristas son                                                                           Especialización de los algoritmos DFS y BFS, para
                                             todas dirigidas                                                                                          recorrer un grafo a lo largo de la dirección de sus aristas
                                            Propiedades                                                                                             En el algoritmo DFS dirigido, se tiene cuatro tipos de
Algoritmos y Estructura de Datos II




                                                                                                            Algoritmos y Estructura de Datos II




                                              Sea un grafo G=(V, E) tal que                                                                          aristas:
                                               cada arista va en una                                                                                     arista discovery, back, fordward, cross
                                               dirección                                                                                             DFS dirigido determina a que vertices podemos llagar a
                                              Si G es simple, m≤n(n-1)                                                                               partir de un vértice determinado s.
                                            Aplicaciones
                                                Planificación: Arista (a,b)
                                                 significa que la tarea a debe
                                                 ser completada antes que la
                                                 tarea b empiece




                                         DFS Dirigido                                                                                             Alcanzabilidad
                       5                                                                                                           6


                                            Back edge(v,w)                                                                                          El árbol DFS con raíz en v:
                                                                                           Back edge
                                              w es un ancestro de v en el árbol           Forward edge                                                  Vértices alcanzables a partir de v vía las rutas dirigidas
                                               de aristas descubiertas                     Cross edge
Algoritmos y Estructura de Datos II




                                                                                                            Algoritmos y Estructura de Datos II




                                            Forward edge(v,w)                             Discovery edge
                                              v es un ancestro (pero no el padre)
                                               de w en el árbol de aristas
                                               descubiertas
                                            Cross edge(v,w)
                                              w esta en el mismo nivel que v o
                                               en el siguiente nivel en el árbol de
                                               aristas descubiertas
                                            Discovery edge(v,w)
                                              v es el padre de w en el árbol de
                                               aristas descubiertas




                                                                                                                                                                                                                          1
13/09/2011




                                      Fuertemente conexo                                                                                 Algoritmo fuertemente conexo
                       7                                                                                                  8



                                         Un dígrafo G es fuertemente conexo, si para cualquier                                             Elija un vértice v en G
                                          par de vértices u y v de G, u es alcanzable desde v, y                                            Realizar DFS desde v
                                          viceversa                                                                                             Si hay algún vértice w no
Algoritmos y Estructura de Datos II




                                                                                                   Algoritmos y Estructura de Datos II
                                         Cada vértice es alcanzable desde todos los vértices                                                    visitado, imprimir “no”
                                                                                                                                            Sea G’ el grafo G con los
                                                                                                                                             vértices invertidos
                                                                                                                                                Realizar DFS desde v in G’
                                                                                                                                                  si hay un w no visitado, imprimir
                                                                                                                                                   “no”
                                                                                                                                                  sino, imprimir “si”

                                                                                                                                            Tiempo de ejecución: O(n+m)




                                      Clausura transitiva                                                                                Cálculo de la Clausura Transitiva
                       9                                                                                        10



                                         Dado un dígrafo G, la                                                                             Se puede realizar DFS                  Si hay un
                                          clausura transitiva de G es                                                                                                           camino desde A
                                                                                                                                             iniciando en cada                   a B y de B a C,
                                          el dígrafo G* tal que:                                                                             vértice                            entonces hay un
Algoritmos y Estructura de Datos II




                                                                                                   Algoritmos y Estructura de Datos II




                                           G* tiene los mismos vértices                                                                        O(n(n+m))                      camino desde A
                                            que G                                                                                                                                       aC
                                           Si G tiene una ruta dirigida
                                            de u a v (u≠v), G* tiene una                                                                                                              Alternativamente…
                                            arista dirigida desde u a v
                                                                                                                                                                                       aplicar Programación
                                         La clausura transitiva provee                                                                                                                dinámica: Algoritmo
                                          información de la
                                                                                                                                                                                       Floyd-Warshall
                                          alcanzabilidad del dígrafo




                                      Floyd-Warshall: Clausura Transitiva                                                                Floyd-Warshall
               11                                                                                               12



                                         Idea 1: número de vértices 1,2, …, n                                                             En v1
                                         Idea 2: considerar las rutas que use solamente los
                                          vértices 1,2, …, k como vértices intermedios
Algoritmos y Estructura de Datos II




                                                                                                   Algoritmos y Estructura de Datos II




                                                                                                                                                                                                              2
Algoritmos y Estructura de Datos II                                         Algoritmos y Estructura de Datos II                                          Algoritmos y Estructura de Datos II




                                                          17
                                                                                                                                      15
                                                                                                                                                                                                                   13


                                                                                                                                                                                                            




                                                  En v5
                                                                                                                              En v3
                                                                                                                                                                                                           En v1




                                                               Floyd-Warshall
                                                                                                                                           Floyd-Warshall
                                                                                                                                                                                                                        Floyd-Warshall




                                                                                                                                                            En v2




    En v6
                                                                                En v4
            Algoritmos y Estructura de Datos II                                         Algoritmos y Estructura de Datos II                                          Algoritmos y Estructura de Datos II




                                                          18
                                                                                                                                      16
                                                                                                                                                                                                                   14


                                                                                                                                                                                                            




                                                  En v6
                                                                                                                              En v4
                                                                                                                                                                                                           En v2




                                                               Floyd-Warshall
                                                                                                                                           Floyd-Warshall
                                                                                                                                                                                                                        Floyd-Warshall




                                                                                En v5
                                                                                                                                                             En v3
                                                                                                                                                                                                                                         13/09/2011




3
13/09/2011




                                         Floyd-Warshall                                                                                      Algoritmo de Floyd-Warshall
             19                                                                                                     20


                                          En v7                                                                                                 Numera los vértices de G: v1, …,
                                                                                                                                                 vn y calcula una serie de
                                                                                                                                                 digrafos G0, …, Gn
                                                                                                                                                    G0 = G
Algoritmos y Estructura de Datos II




                                                                                                       Algoritmos y Estructura de Datos II
                                                                                                                                                    Gk tiene una arista dirigida (vi,
                                                                                                                                                     vj) si G tiene una ruta dirigida
                                                                                                                                                     desde vi a vj con vértices
                                                                                                                                                     intermedios en el conjunto
                                                                                                                                                     {v1,…,vk}
                                                                                                                                                Se tiene que Gn = G*
                                                                                                                                                En la fase k, el digrafo Gk es
                                                                                                                                                 calculado desde Gk-1
                                                                                                                                                Tiempo de ejecución: O(n3),
                                                                                                                                                 asumiendo que areAdjacent es
                                                                                                                                                 O(1)




                                                     Algoritmos y Estructura de Datos II                                                     Grafos Ponderados
                                                                                                                    22



                                                                                                                                                Un grafo ponderado es aquel, en donde cada una de las
                                                                                                                                                 aristas tiene un valor asociado, denominado peso.
                                                               RUTAS MINIMAS
                                                                                                                                                Este peso puede representar: distancias, costos, etc.
                                                                                                       Algoritmos y Estructura de Datos II




                                                                                                                                                P.e.:




                                      UCSM - 2011                  Karim Guevara Puente de la Vega




                                         Problema del camino más corto                                                                       Problema del camino más corto
             23                                                                                                     24



                                            Dado un grafo ponderado y dos vértices u y v, encontrar                                            Propiedad:
                                             el camino con el menor peso que hay entre u y v.                                                       Una subruta de una ruta corta es por si misma una ruta corta
                                              P.e.: el camino más corto entre PVD y HNL                                                        Una fuente de rutas cortas:
Algoritmos y Estructura de Datos II




                                                                                                       Algoritmos y Estructura de Datos II




                                              Aplicaciones:                                                                                        Dado un grafo ponderado G y un vértice s de G, las rutas más
                                                  Enrutamiento de paquetes en internet                                                              cortas de s a cada uno de los otros vértices los encontraremos en
                                                                                                                                                     un árbol.
                                                  Reservaciones de vuelos
                                                                                                                                                P.e.: el árbol de rutas cortas desde Providence (PVD)




                                                                                                                                                                                                                         4
13/09/2011




                                      Algoritmo de Dijkstra                                                                                                Algoritmo de Dijkstra
             25                                                                                                                   26



                                         El más famoso de los algoritmos para el cálculo del                                                                 Funcionamiento del algoritmo:
                                          camino de costo mínimo.                                                                                               Sea PERM el conjunto que contiene inicialmente el vértice
                                         Escoge un vértice como raíz de la búsqueda.                                                                            raíz s.
Algoritmos y Estructura de Datos II




                                                                                                                     Algoritmos y Estructura de Datos II
                                         Luego calcula el costo mínimo para todos los demás                                                                    PERM contiene todos los vértices para los cuales ya fueron

                                          vértices.                                                                                                              determinados los menores caminos usando apenas vértices
                                                                                                                                                                 en PERM.
                                         Puede ser usado en grafos dirigidos y no dirigidos.
                                                                                                                                                                Para cada vértice z fuera de PERM mantenemos la menor
                                                                                                                                                                 distancia en D[z] de s a z.
                                                                                                                                                                Es necesario almacenar también el vértice adyacente
                                                                                                                                                                 (precedente) a z en path[z].




                                      Algoritmo de Dijkstra                                                                                                Algoritmo de Dijkstra
             27                                                                                                                   28



                                         Funcionamiento del algoritmo (cont.):                                                                               P.e.:
                                           Se toma el vértice (de los que aún no están en PERM) con la                                                        1.   Se define el nodo origen (s) y se lo incluye en PERM. Se
                                            menor distancia D.                                                                                                      atribuye cero a su distancia, el resto tiene distancia infinita ().
Algoritmos y Estructura de Datos II




                                                                                                                     Algoritmos y Estructura de Datos II




                                           Este vértice es adicionado a PERM, lo llamaremos current, y
                                            se recalculan las distancias (D) para los vértices adyacentes                                                                                                 vértice    PERM        D        path
                                            a él y que no estén en PERM.                                                                                                                                     s         si        0         -
                                                                                                                                                                                                            u          no                 -
                                                       D[z] = min(D[z], D[z]+peso)
                                                                                                                                                                                                            x          no                 -
                                           Puede haber un camino menor a partir de s pasando por el                                                                                                        v          no                 -
                                            vértice current                                                                                                                                                 y          no                 -

                                           Si hay un camino más corto se necesita actualizar path[z]




                                      Algoritmo de Dijkstra                                                                                                Algoritmo de Dijkstra
             29                                                                                                                   30



                                         P.e.:                                                                                                               P.e.:
                                          2.   A partir de s se calculan las distancias de los vértices                                                        3.   Entre los vértices que no pertenecen a PERM se escoge el de
                                               adyacentes (u y x). A estos les llamaremos z:                                                                        menor distancia (x).
Algoritmos y Estructura de Datos II




                                                                                                                     Algoritmos y Estructura de Datos II




                                                      if ( D[z] > D[s] + peso(s,z)){
                                                         D[z] = D[s] + peso(s,z);
                                                         path[z] = s;
                                                      }

                                                                                                                                                                                                             vértice    PERM         D         path
                                                                                       vértice   PERM     D   path
                                                                                                                                                                                                                 s          si       0           -
                                                                                          s       si      0    -
                                                                                                                                                                                                                 u          no       10          s
                                                                                         u        no    10     s
                                                                                                                                                                                                                 x          no       5           s
                                                                                         x        no      5    s
                                                                                                                                                                                                                 v          no                  -
                                                                                         v        no          -
                                                                                                                                                                                                                 y          no                  -
                                                                                         y        no          -




                                                                                                                                                                                                                                                      5
13/09/2011




                                      Algoritmo de Dijkstra                                                                                             Algoritmo de Dijkstra
             31                                                                                                                32



                                         P.e.:                                                                                                            P.e.:
                                          4.   Incluir a x en PERM y a partir de x se consultan los vértices                                                5.   Entre todos los vértices que no pertenecen a PERM se escoge el
                                               adyacentes a él que no estén en PERM (y, u y v), y se recalculan                                                  de menor distancia (y).
Algoritmos y Estructura de Datos II




                                                                                                                  Algoritmos y Estructura de Datos II
                                               sus distancias.



                                                                                    vértice   PERM   D    path                                                                                       vértice   PERM   D    path
                                                                                       s       si    0     -                                                                                            s       si    0     -
                                                                                      u        no    8     x                                                                                           u        no    8     x
                                                                                      x        si    5     s                                                                                           x        si    5     s
                                                                                      v        no    14    x                                                                                           v        no    14    x
                                                                                      y        no    7     x                                                                                           y        no    7     x




                                      Algoritmo de Dijkstra                                                                                             Algoritmo de Dijkstra
             33                                                                                                                34



                                         P.e.:                                                                                                            P.e.:
                                          6.   Se incluye y en PERM y a partir de y se consultan los vértices                                               7.   Entre todos los vértices que no están en PERM se escoge el de
                                               adyacentes a él que no están en PERM (v), calcular sus                                                            menor distancia (u).
Algoritmos y Estructura de Datos II




                                                                                                                  Algoritmos y Estructura de Datos II




                                               distancias.



                                                                                    vértice   PERM   D    path                                                                                       vértice   PERM   D    path
                                                                                       s       si    0     -                                                                                            s       si    0     -
                                                                                      u        no    8     x                                                                                           u        no    8     x
                                                                                      x        si    5     s                                                                                           x        si    5     s
                                                                                      v        no    13    y                                                                                           v        no    13    y
                                                                                      y        si    7     x                                                                                           y        si    7     x




                                      Algoritmo de Dijkstra                                                                                             Algoritmo de Dijkstra
             35                                                                                                                36



                                         P.e.:                                                                                                            P.e.:
                                          8.   Se incluye u a PERM y a partir de u se consultan los vértices                                                9.   Entre todos los vértices que no están en PERM se escoge el de
                                               adyacentes a él que no estén en PERM para calcular sus                                                            menor distancia (v).
Algoritmos y Estructura de Datos II




                                                                                                                  Algoritmos y Estructura de Datos II




                                               distancias.



                                                                                    vértice   PERM   D    path                                                                                       vértice   PERM   D    path
                                                                                       s       si    0     -                                                                                            s       si    0     -
                                                                                      u        si    8     x                                                                                           u        si    8     x
                                                                                      x        si    5     s                                                                                           x        si    5     s
                                                                                      v        no    9     u                                                                                           v        no    9     u
                                                                                      y        si    7     x                                                                                           y        si    7     x




                                                                                                                                                                                                                                    6
13/09/2011




                                          Algoritmo de Dijkstra                                                                                                       Algoritmo de Dijkstra
             37                                                                                                                              38



                                             P.e.:
                                               10. Finalmente v es incluido en PERM. En este punto todos los
                                                   vértices están en PERM y la búsqueda finaliza.
Algoritmos y Estructura de Datos II




                                                                                                                                Algoritmos y Estructura de Datos II
                                                                                             vértice   PERM   D       path
                                                                                                s       si    0        -
                                                                                               u        si    8        x
                                                                                               x        si    5        s
                                                                                               v        si    9        u
                                                                                               y        si    7        x




                                          Extensión del algoritmo Dijkstra
             39


                                             Se puede extender el         Algorithm DijstraShortestPathsTree(G,s)
                                              algoritmo de Dijkstra          .. .
                                              para retornar el árbol         for all v  G.vertices()
                                                                             .. .
Algoritmos y Estructura de Datos II




                                              de rutas cortas desde
                                              un vertice inicial a todos        P[v] = 
                                              los otros vértices.               .. .

                                           Se almacena con cada             while Q.isEmpty()
                                            vértice z etiquetas que             u Q.removeMin()
                                            permitan seguir el                  for each vertex z adjacent to n such
                                                                                                               that z is in Q
                                            camino de regreso (la
                                                                                    if D[z] > D[u]+weight(u,z) then
                                            arista antecesora en el
                                                                                        D[z]  D[u]+weight(u,z)
                                            arbol):
                                                                                       change to D[z] the key of z in Q
                                              Arreglo P[z].                           P[z]  edge(u,z)




                                                                                                                                                                                                      7

Más contenido relacionado

Último

Patologia General DRA Tiñini Banknco.pdf
Patologia General DRA Tiñini Banknco.pdfPatologia General DRA Tiñini Banknco.pdf
Patologia General DRA Tiñini Banknco.pdfNATHALIENATIUSHKAESP
 
¡Explora el boletín del 29 abril de 2024!
¡Explora el boletín del 29 abril de 2024!¡Explora el boletín del 29 abril de 2024!
¡Explora el boletín del 29 abril de 2024!Yes Europa
 
CONTRATO DE TRABAJO, remuneraciones y otros datos
CONTRATO DE TRABAJO, remuneraciones y otros datosCONTRATO DE TRABAJO, remuneraciones y otros datos
CONTRATO DE TRABAJO, remuneraciones y otros datosJENNIFERBERARDI1
 
-PEIC-NUEVO de plantel educativo Venezuela
-PEIC-NUEVO de plantel educativo Venezuela-PEIC-NUEVO de plantel educativo Venezuela
-PEIC-NUEVO de plantel educativo VenezuelaJESUS341998
 
FASES DE LA CONSULTORÍA- parte 1aa.pptx
FASES DE LA CONSULTORÍA- parte 1aa.pptxFASES DE LA CONSULTORÍA- parte 1aa.pptx
FASES DE LA CONSULTORÍA- parte 1aa.pptx10ColungaFloresJosSa
 
1. PRESENTACION COSMOBIOLOGIA.pdf ler el texto
1. PRESENTACION COSMOBIOLOGIA.pdf  ler el texto1. PRESENTACION COSMOBIOLOGIA.pdf  ler el texto
1. PRESENTACION COSMOBIOLOGIA.pdf ler el textoangelcajo31
 
MODERNISMO VS POSMODERNISMO CUADRO SINOPTICO
MODERNISMO VS POSMODERNISMO CUADRO SINOPTICOMODERNISMO VS POSMODERNISMO CUADRO SINOPTICO
MODERNISMO VS POSMODERNISMO CUADRO SINOPTICOIreneGonzalez603427
 
DIARIO EL PERUANO 19-06-202hhhhhhhh3.pdf
DIARIO EL PERUANO 19-06-202hhhhhhhh3.pdfDIARIO EL PERUANO 19-06-202hhhhhhhh3.pdf
DIARIO EL PERUANO 19-06-202hhhhhhhh3.pdfhugorebaza00
 
Uñas en Gel emprendedores CURSO-DE-UNAS-ACRILICAS.pdf
Uñas en Gel emprendedores CURSO-DE-UNAS-ACRILICAS.pdfUñas en Gel emprendedores CURSO-DE-UNAS-ACRILICAS.pdf
Uñas en Gel emprendedores CURSO-DE-UNAS-ACRILICAS.pdfCinthiaRivera31
 

Último (9)

Patologia General DRA Tiñini Banknco.pdf
Patologia General DRA Tiñini Banknco.pdfPatologia General DRA Tiñini Banknco.pdf
Patologia General DRA Tiñini Banknco.pdf
 
¡Explora el boletín del 29 abril de 2024!
¡Explora el boletín del 29 abril de 2024!¡Explora el boletín del 29 abril de 2024!
¡Explora el boletín del 29 abril de 2024!
 
CONTRATO DE TRABAJO, remuneraciones y otros datos
CONTRATO DE TRABAJO, remuneraciones y otros datosCONTRATO DE TRABAJO, remuneraciones y otros datos
CONTRATO DE TRABAJO, remuneraciones y otros datos
 
-PEIC-NUEVO de plantel educativo Venezuela
-PEIC-NUEVO de plantel educativo Venezuela-PEIC-NUEVO de plantel educativo Venezuela
-PEIC-NUEVO de plantel educativo Venezuela
 
FASES DE LA CONSULTORÍA- parte 1aa.pptx
FASES DE LA CONSULTORÍA- parte 1aa.pptxFASES DE LA CONSULTORÍA- parte 1aa.pptx
FASES DE LA CONSULTORÍA- parte 1aa.pptx
 
1. PRESENTACION COSMOBIOLOGIA.pdf ler el texto
1. PRESENTACION COSMOBIOLOGIA.pdf  ler el texto1. PRESENTACION COSMOBIOLOGIA.pdf  ler el texto
1. PRESENTACION COSMOBIOLOGIA.pdf ler el texto
 
MODERNISMO VS POSMODERNISMO CUADRO SINOPTICO
MODERNISMO VS POSMODERNISMO CUADRO SINOPTICOMODERNISMO VS POSMODERNISMO CUADRO SINOPTICO
MODERNISMO VS POSMODERNISMO CUADRO SINOPTICO
 
DIARIO EL PERUANO 19-06-202hhhhhhhh3.pdf
DIARIO EL PERUANO 19-06-202hhhhhhhh3.pdfDIARIO EL PERUANO 19-06-202hhhhhhhh3.pdf
DIARIO EL PERUANO 19-06-202hhhhhhhh3.pdf
 
Uñas en Gel emprendedores CURSO-DE-UNAS-ACRILICAS.pdf
Uñas en Gel emprendedores CURSO-DE-UNAS-ACRILICAS.pdfUñas en Gel emprendedores CURSO-DE-UNAS-ACRILICAS.pdf
Uñas en Gel emprendedores CURSO-DE-UNAS-ACRILICAS.pdf
 

Destacado

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 

Destacado (20)

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 

Algoritmos y estructuras de datos II: DiGrafos

  • 1. 13/09/2011 Algoritmos y Estructura de Datos II Agenda 2  Digrafo  DFS Dirigido DIGRAFOS  Alcanzabilidad Algoritmos y Estructura de Datos II  Fuertemente conexo  Algoritmo fuertemente conexo  Clausura transitiva  Floyd-Warshall: clausura transtiva  Algoritmo Floyd-Warshall  Grafos ponderados  Problema del camino más corto - ruta mínima  Algoritmo de Dijkstra UCSM - 2011 Karim Guevara Puente de la Vega DiGrafos DFS Dirigido 3 4  Es un grafo cuyas aristas son  Especialización de los algoritmos DFS y BFS, para todas dirigidas recorrer un grafo a lo largo de la dirección de sus aristas  Propiedades  En el algoritmo DFS dirigido, se tiene cuatro tipos de Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II  Sea un grafo G=(V, E) tal que aristas: cada arista va en una  arista discovery, back, fordward, cross dirección  DFS dirigido determina a que vertices podemos llagar a  Si G es simple, m≤n(n-1) partir de un vértice determinado s.  Aplicaciones  Planificación: Arista (a,b) significa que la tarea a debe ser completada antes que la tarea b empiece DFS Dirigido Alcanzabilidad 5 6  Back edge(v,w)  El árbol DFS con raíz en v: Back edge  w es un ancestro de v en el árbol Forward edge  Vértices alcanzables a partir de v vía las rutas dirigidas de aristas descubiertas Cross edge Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II  Forward edge(v,w) Discovery edge  v es un ancestro (pero no el padre) de w en el árbol de aristas descubiertas  Cross edge(v,w)  w esta en el mismo nivel que v o en el siguiente nivel en el árbol de aristas descubiertas  Discovery edge(v,w)  v es el padre de w en el árbol de aristas descubiertas 1
  • 2. 13/09/2011 Fuertemente conexo Algoritmo fuertemente conexo 7 8  Un dígrafo G es fuertemente conexo, si para cualquier  Elija un vértice v en G par de vértices u y v de G, u es alcanzable desde v, y  Realizar DFS desde v viceversa  Si hay algún vértice w no Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II  Cada vértice es alcanzable desde todos los vértices visitado, imprimir “no”  Sea G’ el grafo G con los vértices invertidos  Realizar DFS desde v in G’  si hay un w no visitado, imprimir “no”  sino, imprimir “si”  Tiempo de ejecución: O(n+m) Clausura transitiva Cálculo de la Clausura Transitiva 9 10  Dado un dígrafo G, la  Se puede realizar DFS Si hay un clausura transitiva de G es camino desde A iniciando en cada a B y de B a C, el dígrafo G* tal que: vértice entonces hay un Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II  G* tiene los mismos vértices  O(n(n+m)) camino desde A que G aC  Si G tiene una ruta dirigida de u a v (u≠v), G* tiene una  Alternativamente… arista dirigida desde u a v aplicar Programación  La clausura transitiva provee dinámica: Algoritmo información de la Floyd-Warshall alcanzabilidad del dígrafo Floyd-Warshall: Clausura Transitiva Floyd-Warshall 11 12  Idea 1: número de vértices 1,2, …, n  En v1  Idea 2: considerar las rutas que use solamente los vértices 1,2, …, k como vértices intermedios Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II 2
  • 3. Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II 17 15 13  En v5 En v3 En v1 Floyd-Warshall Floyd-Warshall Floyd-Warshall En v2 En v6 En v4 Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II 18 16 14  En v6 En v4 En v2 Floyd-Warshall Floyd-Warshall Floyd-Warshall En v5 En v3 13/09/2011 3
  • 4. 13/09/2011 Floyd-Warshall Algoritmo de Floyd-Warshall 19 20 En v7  Numera los vértices de G: v1, …, vn y calcula una serie de digrafos G0, …, Gn  G0 = G Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II  Gk tiene una arista dirigida (vi, vj) si G tiene una ruta dirigida desde vi a vj con vértices intermedios en el conjunto {v1,…,vk}  Se tiene que Gn = G*  En la fase k, el digrafo Gk es calculado desde Gk-1  Tiempo de ejecución: O(n3), asumiendo que areAdjacent es O(1) Algoritmos y Estructura de Datos II Grafos Ponderados 22  Un grafo ponderado es aquel, en donde cada una de las aristas tiene un valor asociado, denominado peso. RUTAS MINIMAS  Este peso puede representar: distancias, costos, etc. Algoritmos y Estructura de Datos II  P.e.: UCSM - 2011 Karim Guevara Puente de la Vega Problema del camino más corto Problema del camino más corto 23 24  Dado un grafo ponderado y dos vértices u y v, encontrar  Propiedad: el camino con el menor peso que hay entre u y v.  Una subruta de una ruta corta es por si misma una ruta corta  P.e.: el camino más corto entre PVD y HNL  Una fuente de rutas cortas: Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II  Aplicaciones:  Dado un grafo ponderado G y un vértice s de G, las rutas más  Enrutamiento de paquetes en internet cortas de s a cada uno de los otros vértices los encontraremos en un árbol.  Reservaciones de vuelos  P.e.: el árbol de rutas cortas desde Providence (PVD) 4
  • 5. 13/09/2011 Algoritmo de Dijkstra Algoritmo de Dijkstra 25 26  El más famoso de los algoritmos para el cálculo del  Funcionamiento del algoritmo: camino de costo mínimo.  Sea PERM el conjunto que contiene inicialmente el vértice  Escoge un vértice como raíz de la búsqueda. raíz s. Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II  Luego calcula el costo mínimo para todos los demás  PERM contiene todos los vértices para los cuales ya fueron vértices. determinados los menores caminos usando apenas vértices en PERM.  Puede ser usado en grafos dirigidos y no dirigidos.  Para cada vértice z fuera de PERM mantenemos la menor distancia en D[z] de s a z.  Es necesario almacenar también el vértice adyacente (precedente) a z en path[z]. Algoritmo de Dijkstra Algoritmo de Dijkstra 27 28  Funcionamiento del algoritmo (cont.):  P.e.:  Se toma el vértice (de los que aún no están en PERM) con la 1. Se define el nodo origen (s) y se lo incluye en PERM. Se menor distancia D. atribuye cero a su distancia, el resto tiene distancia infinita (). Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II  Este vértice es adicionado a PERM, lo llamaremos current, y se recalculan las distancias (D) para los vértices adyacentes vértice PERM D path a él y que no estén en PERM. s si 0 - u no  - D[z] = min(D[z], D[z]+peso) x no  -  Puede haber un camino menor a partir de s pasando por el v no  - vértice current y no  -  Si hay un camino más corto se necesita actualizar path[z] Algoritmo de Dijkstra Algoritmo de Dijkstra 29 30  P.e.:  P.e.: 2. A partir de s se calculan las distancias de los vértices 3. Entre los vértices que no pertenecen a PERM se escoge el de adyacentes (u y x). A estos les llamaremos z: menor distancia (x). Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II if ( D[z] > D[s] + peso(s,z)){ D[z] = D[s] + peso(s,z); path[z] = s; } vértice PERM D path vértice PERM D path s si 0 - s si 0 - u no 10 s u no 10 s x no 5 s x no 5 s v no  - v no  - y no  - y no  - 5
  • 6. 13/09/2011 Algoritmo de Dijkstra Algoritmo de Dijkstra 31 32  P.e.:  P.e.: 4. Incluir a x en PERM y a partir de x se consultan los vértices 5. Entre todos los vértices que no pertenecen a PERM se escoge el adyacentes a él que no estén en PERM (y, u y v), y se recalculan de menor distancia (y). Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II sus distancias. vértice PERM D path vértice PERM D path s si 0 - s si 0 - u no 8 x u no 8 x x si 5 s x si 5 s v no 14 x v no 14 x y no 7 x y no 7 x Algoritmo de Dijkstra Algoritmo de Dijkstra 33 34  P.e.:  P.e.: 6. Se incluye y en PERM y a partir de y se consultan los vértices 7. Entre todos los vértices que no están en PERM se escoge el de adyacentes a él que no están en PERM (v), calcular sus menor distancia (u). Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II distancias. vértice PERM D path vértice PERM D path s si 0 - s si 0 - u no 8 x u no 8 x x si 5 s x si 5 s v no 13 y v no 13 y y si 7 x y si 7 x Algoritmo de Dijkstra Algoritmo de Dijkstra 35 36  P.e.:  P.e.: 8. Se incluye u a PERM y a partir de u se consultan los vértices 9. Entre todos los vértices que no están en PERM se escoge el de adyacentes a él que no estén en PERM para calcular sus menor distancia (v). Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II distancias. vértice PERM D path vértice PERM D path s si 0 - s si 0 - u si 8 x u si 8 x x si 5 s x si 5 s v no 9 u v no 9 u y si 7 x y si 7 x 6
  • 7. 13/09/2011 Algoritmo de Dijkstra Algoritmo de Dijkstra 37 38  P.e.: 10. Finalmente v es incluido en PERM. En este punto todos los vértices están en PERM y la búsqueda finaliza. Algoritmos y Estructura de Datos II Algoritmos y Estructura de Datos II vértice PERM D path s si 0 - u si 8 x x si 5 s v si 9 u y si 7 x Extensión del algoritmo Dijkstra 39  Se puede extender el Algorithm DijstraShortestPathsTree(G,s) algoritmo de Dijkstra .. . para retornar el árbol for all v  G.vertices() .. . Algoritmos y Estructura de Datos II de rutas cortas desde un vertice inicial a todos P[v] =  los otros vértices. .. .  Se almacena con cada while Q.isEmpty() vértice z etiquetas que u Q.removeMin() permitan seguir el for each vertex z adjacent to n such that z is in Q camino de regreso (la if D[z] > D[u]+weight(u,z) then arista antecesora en el D[z]  D[u]+weight(u,z) arbol): change to D[z] the key of z in Q  Arreglo P[z]. P[z]  edge(u,z) 7