Algoritmos y Estructuras de Datos: Cursada 2021
Algoritmos y Estructuras de Datos: Cursada 2021
Cursada 2021
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Agenda - Grafos
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Agenda – Grafos
Definición
Aplicaciones
Algoritmo de Prim
Algoritmo de Kruskal
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Árbol de expansión mínima
Definición
Dado un grafo G=(V , E) no dirigido y conexo
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Árbol de expansión mínima
Aplicaciones
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Árbol de expansión mínima
Ejemplo:
2
3
6 2
1
3
5 4
5
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Árbol de expansión mínima
Algoritmo de Prim
Construye el árbol haciéndolo crecer por etapas
Se elige un vértice como raíz del árbol.
En las siguientes etapas:
a) se selecciona la arista (u,v) de mínimo costo que
cumpla: u ∈ árbol y v ∉ árbol
b) se agrega al árbol la arista seleccionada en a) (es
decir, ahora el vértice v ∈ árbol)
c) se repite a) y b) hasta que se hayan tomado todos los
vértices del grafo.
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Algoritmo de Prim
Implementación
Para la implementación se usa una tabla (similar a la utilizada en la
implementación del algoritmo de Dijkstra).
La dinámica del algoritmo consiste en, una vez seleccionado una
arista (u,v) de costo mínimo tq u ∈ árbol y v ∉ árbol:
se agrega la arista seleccionada al árbol
se actualizan los costos a los adyacentes del vértice v de la sig.
manera :
se compara Costow con c(v,w)
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Algoritmo de Prim
Implementación
Construye el árbol haciéndolo crecer por etapas
Ejemplo: 1° Paso Conoc.
V Costo W
costo de la arista (v,w)
Nodo raíz 1 0 0 01
Vértice inicial 2 ∞ 0 0
Vértice elegido
3 ∞ 0 0
4 ∞ 0 0
5 ∞ 0 0
6 ∞ 0 0
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Algoritmo de Prim
Implementación
1° Paso
Vértice elegido V Costo W Conoc.
1 0 0 1
Vértices
actualizados
2 6 1 0
3 1 1 0
4 5 1 0
5 ∞ 0 0
6 ∞ 0 0
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Algoritmo de Prim
Implementación
V Costo W Conoc.
2° Paso
1 0 0 1
Vértice elegido
2 6 1 0
3 1 1 1
4 5 1 0
5 ∞ 0 0
Se agrega la arista
6 ∞ 0 0 (1,3) y el vértice 3
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Algoritmo de Prim
Implementación
2° Paso
V Costo W Conoc. V Costo W Conoc.
1 0 0 1 1 0 0 1
Vértice elegido
2 6 1 0 2 5 3 0
Vértices
3 1 1 1 actualizados 3 1 1 1
4 5 1 0 4 5 1 0
5 ∞ 0 0 5 6 3 0
6 ∞ 0 0 6 4 3 0
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Algoritmo de Prim
Implementación
1 ∞ 0 1
2 5 3 0
3 1 1 1
4 5 1 0
Vértice elegido
5 6 3 0 Se agrega la arista
(3,6) y el vértice 6
6 4 3 10
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Algoritmo de Prim
Implementación
3° Paso
V Costo W Conoc. V Costo W Conoc.
1 ∞ 0 1 1 0 0 1
2 5 3 0 2 5 3 0
Vértices
3 1 1 1 actualizados 3 1 1 1
4 5 1 0 4 2 6 0
Vértice elegido
5 6 3 0 5 6 3 0
6 4 3 10 6 4 3 0
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Algoritmo de Prim
Implementación
1 0 0 1
2 5 3 0
Vértice 3 1 1 1
elegido
4 2 6 1
5 6 3 0 Se agrega la arista
(6,4) y el vértice 4
6 4 3 1
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Algoritmo de Prim
Implementación
Vértice elegido
1 0 0 1
2 5 3 10
3 1 1 1
4 2 6 1
Se agrega la arista
5 6 3 0 (3,2) y el vértice 2
6 4 3 1
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Algoritmo de Prim
Implementación
5° Paso
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Algoritmo de Prim
Implementación
1 0 0 1
2 5 3 1
3 1 1 1
Vértice elegido
4 2 6 1
5 3 2 10 Se agrega la arista
(2,5) y el vértice 5
6 4 3 1
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Algoritmo de Prim
Tiempo de Ejecución
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Árbol de expansión mínima
Algoritmo de Kruskal
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Árbol de expansión mínima
Algoritmo de Kruskal (cont.)
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Árbol de expansión mínima
Algoritmo de Kruskal (cont.)
Ejemplo:
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Árbol de expansión mínima
Algoritmo de Kruskal (cont.)
Aristas ordenadas por su costo de
Ejemplo: menor a mayor:
(1,2) 10
(3,6) 15
(4,6) 20
(2,6) 25
(1,4) 30
(5,3) 35
(5,2) 40
(1,5) 45
(2,3) 50
(5,6) 55
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Árbol de expansión mínima
Algoritmo de Kruskal (cont.)
Se Se
agrega agrega
la arista la arista
(3,6) (4,6)
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Árbol de expansión mínima
Algoritmo de Kruskal (cont.)
Se agrega la arista (2,6) ¿Se agrega la arista (1,4) con costo 30?
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Árbol de expansión mínima
Algoritmo de Kruskal (cont.)
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Algoritmo de Kruskal
Tiempo de Ejecución
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Grafos
Conclusiones
Representación:
• Tamaño reducido: matrices de adyacencia.
• Tamaño grande y grafo “disperso”: listas de adyacencia.
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021
Grafos
Conclusiones
Existen muchos algoritmos “clásicos” para resolver diferentes
problemas sobre grafos.
Nuestro trabajo: saber modelar los problemas de interés usando
grafos y encontrar el algoritmo adecuado para la aplicación que se
requiera.
Es importante el estudio de problemas genéricos sobre grafos.
La búsqueda primero en profundidad (DFS) y búsqueda en
amplitud (BFS) son herramientas básicas, subyacentes en muchos
de los algoritmos estudiados
Algoritmo
Problema de Problema con genérico con Algoritmo para el
interés grafos grafos problema de interés
Prof. Alejandra Schiavoni – Prof. Catalina Mostaccio Algoritmos y Estructuras de Datos 2021