La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.

Presentaciones similares


Presentación del tema: "Recorridos de grafos Segunda Parte M.C. Meliza Contreras González."— Transcripción de la presentación:

1 Recorridos de grafos Segunda Parte M.C. Meliza Contreras González

2 5/25/2016 2 Camino más corto Dado un grafo G = (V,E) con una función de peso W: E  R (asignando valores reales a las aristas) Peso del camino p = v 1  v 2  …  v k es Camino más corto = un camino con el peso mínimo Aplicaciones –Ruteo de redes –Planeación de movimientos de un robot

3 Aplicaciones Árbol de extensión mínima (Prim, Kruskal) que ayuda a obtener el costo mínimo de conexión para un grafo. Árbol del camino más corto(Dijkstra) que ayuda a obtener la distancia más corta (o el costo más pequeño) de un nodo del grafo hacia los otros nodos. 5/25/2016 3

4 Árbol de extensión mínima El AEM de un grafo x es un subgrafo conectado que contiene todos los nodos del grafo x y los arcos cuya suma de ponderaciones es la mínima. 5/25/2016 4

5 5 Algoritmo de Prim Resuelve el camino mínimo para aquellos grafos dirigidos, con peso no negativo. Entonces se asume w(u,v)  0  (u,v)  E. Al final del algoritmo se tiene que para todos los vértices d[v] =  (s,v). Utiliza una técnica voraz.

6 5/25/2016 6 Algoritmo de Prim PRIM (G,s) 1 Crear el grafo vacío AEM(árbol de Extensión Mínimo) 2 Insertar el nodo s del grafo en el AEM 3 Insertar todos los vértices vecinos del nodo s en una cola priorizada (el valor del arco que une al vértice x con su vecino es su prioridad, la mayor prioridad es el menor valor). 4 mientras la cola priorizada no esté vacía y no se hayan agregado todos los nodos al AEM 5 Sacar un vértice de la cola priorizada 6 Si el nodo vértice no está en el AEM, agregarlo con su arco y meter todos sus vecinos, que no estén en el AEM, en la cola de prioridad.

7 5/25/2016 7 Ejemplo  8 12 10 2 3 9 6 C DE  7

8 Algoritmo de Kruskal A diferencia del algoritmo de Prim, este trabaja con base en los arcos existentes en el grafo. Para ir conformando el árbol, se apoya en una cola priorizada que le permite ir eligiendo los arcos de menor peso. 5/25/2016 8

9 9 Algoritmo de Kruskal 1Crear el grafo vacío AEM(Arbol de Extensión Mínimo) 2 Crear una cola priorizada vacia 3 Encontrar el arco (i,j) que tenga el menor peso dentro del grafo. 4 Insertar ese arco, junto con los nodos i y j en el árbol AEM. 5 Para cualquier vértice K distinto de j: 6 Si hay un arco (i,k), insertarlo en la cola priorizada. 7 Para cualquier vértice K distinto de i: 8 Si hay un arco (j,k), insertarlo en la cola priorizada. 9 Mientras la cantidad de nodos en el AEM sea menor que la cantidad de nodos vértices del grafo: 10 Sacar de la cola priorizada el arco (a,b) con el menor peso. 11 Si el vértice b no existe en el AEM 12 Insertar el vértice b y el arco (a,b) en el AEM. 13 Para cada vértice c, de los arcos conformados por (b,c): 14 Si el vértice c, aún no existe en el AEM 15 Meter el arco (b,c) en la cola priorizada

10 5/25/2016 10 Ejemplo  8 12 10 2 3 9 6 C DE  7

11 5/25/2016 11 Arbol del camino más corto ACMC El ACMC a partir del nodo x de un grafo G, es un subgrafo conectado que contiene: – todos los vértices del grafo G – los arcos necesarios para minimizar la suma de las ponderaciones de los arcos en el camino del nodo x a cualquier otro vértice – el nodo x es la raíz del árbol.

12 Algoritmo de Dijkstra Se utiliza el mismo algoritmo de Prim, pero las prioridades se forman acumulando las ponderaciones de los arcos, desde el nodo inicial hasta el nodo analizado.

13 5/25/2016 13 Algoritmo de Dijkstra DIJKSTRA (G,s) 1 Crear el grafo vacío ACMC(Árbol del Camino Más Corto) 2 Insertar el nodo s del grafo en el ACMC 3 Insertar todas las aristas que vinculen los nodos vecinos del nodo s en una cola priorizada (el valor del arco que une al vértice x con su vecino es su prioridad, la mayor prioridad es el menor valor). 4 mientras la cola priorizada no esté vacía y no se hayan agregado todos los nodos al ACMC 5 Sacar una arista de la cola priorizada 6 Si la arista (a,b) no está en el ACMC, agregarla junto con sus vértices que no estén en el ACMC y meter las aristas relacionadas con el nodo b considerando el camino desde el vértice s, que no estén en el ACMC, en la cola de prioridad.

14 5/25/2016 14 Ejemplo  8 12 10 2 3 9 6 C DE  7


Descargar ppt "Recorridos de grafos Segunda Parte M.C. Meliza Contreras González."

Presentaciones similares


Anuncios Google