1. Grafos
Instituto Tecnológico de Costa Rica
Centro Académico
Estructuras de Datos
-
Kathy Brenes –Pablo Gonzalez.
-
Franco Solis
-Veronica Arias
2. Grafos
Corresponde a un conjunto de objetos llamados
vértices o nodos unidos por aristas o arcos.
Se representan gráficamente como un conjunto de
puntos unidos por líneas.
Permiten estudiar las interrelaciones entre unidades
que interactúan unas con otras.
3. Vértice o nodo
Unidad fundamental que conforma el grafo.
Representa los entes con los que se están trabajando.
El número de aristas incidentes a él se les conoce
como grado.
-Vértice aislado: Grado cero.
-Vértice hoja: Grado uno.
-Vértice fuente: Grado entrada cero.
-Vértice hundido: Grado de salida cero.
4. INSERTAR Vértice o nodo
Se añade una nueva entrada en la tabla de
vértices para el nuevo nodo.
Inicialmente es un nodo aislado, ya que ninguna
arista llegará a él.
5. Arcos O ARISTA
Representa una relación entre nodos de un
grafo.
Se representa por medio de un par de nodos.
Un vértice es incidente a una arista si está
conectado a otro vértice a través de ella.
6. INSERTAR Arcos O ARISTA
Es simplemente agregar un nuevo nodo a la lista
de adyacencia
Si se añade a la lista (1,0), se deberá incluir en la
lista de adyacencia de 1 el vértice 0 como nuevo
destino.
7. Tipos
Grafos Dirigidos
Las
aristas
se
representan con una
flecha que parte del nodo
origen y al nodo destino.
Grafos no dirigidos
Los vértices se unen por
medio de una línea
continua que representa
la arista.
8. Formas de representación
Listas de adyacencia
La lista de adyacencia
para un vértice i es
una lista, en algún
orden, de todos los
vértices adyacentes a i.
Matriz de adyacencia
Su principal desventaja
es que para representar
un grafo dirigido se que
requiere un espacio Ω
(n2) aun si el grafo
dirigido tiene menos de
n2.
9. LISTAS DE ADYACENCIA
Son una estructura multienlazada formada por una
lista; cada nodo representa un vértice del grafo, del
que además emerge una lista enlazada con todos sus
vértices adyacentes.
11. MATRIZ DE ADYACENCIA
1. Se crea una matriz de ceros, cuyas columnas y
filas representan los nodos del grafo.
.
12. MATRIZ DE ADYACENCIA
2. Por cada arista que une a dos nodos, se suma 1 al
valor que hay actualmente en la ubicación
correspondiente de la matriz.
-Si tal arista es un bucle y el grafo es no
dirigido , entonces se suma 2 en vez de 1.
13. MATRIZ DE ADYACENCIA
3. Finalmente, se obtiene una matriz que
representa el número de aristas (relaciones) entre
cada par de nodos (elementos).
16. RECORRIDOS
Consiste en visitar todos los vértices alcanzables a
partir de uno dado.
Existen básicamente dos técnicas para recorrer un
grafo:
-El recorrido en anchura.
-El recorrido en profundidad
17. RECORRIDO EN PROFUNDIDAD
(DFS)
Trata de buscar los caminos que parten desde el nodo
de salida hasta que ya no sea posible avanzar más.
Cuando ya no se puede avanzar más sobre el camino
elegido vuelve atrás en busca de caminos
alternativos, que no se estudiaron previamente.
La búsqueda en profundidad empieza por vértice V
del grafo G; V no visitado; así hasta que no haya más
vértices adyacentes no visitados.
19. RECORRIDO EN ANCHURA (BFS)
Recorre a partir de un nodo dado, en niveles. Primero
lo que están a una distancia de un arco del nodo
de salida, después los que están a dos arcos de
distancia y así sucesivamente.
20. ALGORITMO DE FLOYD
WARSHALL
Descrito en 1959 por Bernard Roy.
Es un algoritmo para encontrar el camino mínimo en
grafos dirigidos ponderados.
El algoritmo encuentra el camino entre todos los pares
de vértices en una única ejecución.
Es un ejemplo de programación dinámica.
21. ALGORITMO DE FLOYD
WARSHALL
1. Dado un grafo ponderado, queremos obtener el
camino de distancia mínima entre dos vértices
cualesquiera.
22. ALGORITMO DE FLOYD
WARSHALL
2. Se establece el punto de partida en este caso será el
cero.
3. Se busca el camino más corto para llegar al destino.
23. ALGORITMO DE FLOYD
WARSHALL
4. Se completa la matriz de adyacencia con el peso de los
arcos recorridos para pasar de un vértice a otro, en este
caso se recorrerá todo el grafo.
25. Investigación realizada por los estudiantes de
Ingeniería en computación del Instituto Tecnológico de
Costa Rica, sede Centro Académico.
-Kathy Brenes Guerrero.
-Pablo Gonzalez.
-Franco Solís.
Realizada en noviembre del 2013, en la asignatura de
Estructuras de datos.