Transcript Grafos
Estructuras de datos y algoritmos
Oscar Bedoya.
http://eisc.univalle.edu.co/~oscarbed/Estructuras/
Edificio 331, 2º piso, E.I.S.C.
Grafos
Lo grafos son
estructuras de datos
, utilizadas comúnmente en el manejo de redes, en la construcción de circuitos eléctricos, en la estrategia de ventas y en muchas otras áreas del conocimiento
Grafos
Un grafo es una estructura de datos compuesta por
vértices
y
arcos
A •
V = {A, B, C, D, E}
•
Un arco une dos vértices adyacentes
B E D C
Grafos Grafo dirigido o Digrafo
Es un grafo en el que los arcos tienen una orientación A B E D C
Grafos Incidencia de los arcos
Un arco es incidente en un vértice, si una de sus puntas
llega
a ese vértice A B E D C
Grafos Incidencia de los arcos
Un arco es incidente en un vértice, si una de sus puntas
llega
a ese vértice A B E D C
Grafos Grafos y digrafos fuertemente conectados
A Un grafo está fuertemente conectado si desde cualquier vértice se puede llegar a todos los demás C B D E
Grafos Grafos y digrafos débilmente conectados
Un grafo está débilmente conectado, si por lo menos desde un vértice no se puede llegar a los demos A C B D E
Grafos Grafo Euleriano
Un grafo es Euleriano si partiendo de algún vértice, se pueden recorrer todos los arcos llegando de nuevo al vértice de origen. A Se pueden visitar los vértices cuantas veces sea necesario, pero los arcos se pueden repetir solo una vez B G C H F D E
Grafos Grafo Euleriano
D F E
Grafos Grafo Euleriano
A D F E
Grafo Euleriano Grafos
C D F E
Grafo Euleriano Grafos
C A D F E
Grafos Grafo Hamiltoniano
Un grafo es Hamiltoniano si partiendo de algún vértice se pueden recorrer todos los vértices sin repetir ninguno y finalmente se puede llegar al vértice de origen. Los arcos se pueden recorrer una o mas veces A B G C H F D E
Grafos Grado de un vértice
El grado de un vértice es el número de arcos que inciden en ese vértice El grado de A es 2 El grado de G es 4 A B G C H F D E
Grafos Grado de un vértice
En un digrafo se considera el grado de entrada y el grado de salida A C B D E
Grafos Grafos rectangulares
Un grafo es rectangular si todos los vértices tienen el mismo grado B C H F
Grafos Arco cíclico
Un arco es cíclico si parte de un vértice y llega al mismo vértice B C H F
Grafos Grafos completos
Un grafo es completo si cada vértice tiene un grado igual a n-1, donde n es el número de vértices que componen el grafo
Grafos Cómo almacenar la información de un grafo
•Lista de adyacencia •Matriz de adyacencia
Grafos
•Lista de adyacencia grafo A B C D E B A A C D C C B E D A B E D C
•Matriz de adyacencia A B C D E 0 1 1 0 0 A B C D E 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0
Grafos
A B E D C
Grafos
A B G C H F D E
Grafos Matriz de caminos
1 4 2 8 5 9 6 3 7 10
Grafos Matriz de caminos
4 5 1 2 3 6 7 8 9 1 10 0 0 0 0 1 1 1 0 1 0 0 1 2 1 0 0 0 0 1 0 0 1 0 3 0 0 0 0 0 0 1 1 0 0 4 1 0 0 0 0 0 0 0 0 0 5 1 0 0 0 0 1 0 0 1 0 6 0 1 0 0 1 0 0 0 0 1 7 0 0 0 0 0 0 0 0 0 1 8 0 0 1 0 0 0 0 0 0 0 9 1 0 1 0 0 1 0 0 0 0 10 0 1 0 0 0 0 0 1
Grafos Matriz de caminos La matriz de adyacencia indica cuántos caminos de longitud 1 se dan para cada vértice Cómo determinar la cantidad de caminos de longitud 2
Grafos Matriz de caminos
Para determinar la cantidad de caminos de longitud 2 se calcula M 2 , donde M es la matriz de adyacencia
Grafos Matriz de caminos
La matriz de caminos S= M + M 1 + M 2 + . . . + M nv-1 permite conocer si existe un camino (sin importar la longitud) entre cada par de vértices Cómo es S en un grafo fuertemente conectado
Grafos
C2 C5 C1 C7 C4 C3 C6 Si cada punto representa una ciudad •Existe un camino directo entre C1 y C4 •Existe un camino directo entre C4 y C6 •Cuántas formas existen de llegar de C1 a C7 C8
Grafos
C1 5 C2 11 4 C3 2 1 C4 7 C5 2 C6 C7 8 40 C8 Si cada punto representa una ciudad, cuál sería el camino más corto entre C2 y C7
Grafos
C2 C5 C1 C4 C3 Si cada punto representa una ciudad •Existe un camino entre C1 y C4 •Existe un camino entre C2 y C1 •Existe un camino entre C2 y C7 C6 C7 C8