Transcript Grafos

Estructuras de datos y algoritmos

Oscar Bedoya.

[email protected]

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