Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C....

Preview:

Citation preview

Oscar Bedoya.

oscarbed@eisc.univalle.edu.co

http://eisc.univalle.edu.co/~oscarbed/Estructuras/

Edificio 331, 2º piso, E.I.S.C.

Estructuras de datos y Estructuras de datos y algoritmosalgoritmos

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

•V = {A, B, C, D, E}

•Un arco une dos vértices adyacentes

A

B

C

D

E

Grafos

Grafo dirigido o Digrafo

Es un grafo en el que los arcos tienen una orientación

A

B

C

D

E

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

C

D

E

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

C

D

E

Grafos

Grafos y digrafos fuertemente conectados

Un grafo está fuertemente conectado si desde cualquier vértice se puede llegar a todos los demás

A B

C 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 B

C 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.

Se pueden visitar los vértices cuantas veces sea necesario, pero los arcos se pueden repetir solo una vez

A

B C D

EF

G

H

Grafos

Grafo Euleriano

D

EF

Grafos

Grafo Euleriano

D

EF

A

Grafos

Grafo Euleriano

C D

EF

Grafos

Grafo Euleriano

C D

EF

A

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 C D

EF

G

H

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 C D

EF

G

H

Grafos

Grado de un vértice

En un digrafo se considera el grado de entrada y el grado de salida

A B

C D

E

Grafos

Grafos rectangulares

Un grafo es rectangular si todos los vértices tienen el mismo grado

B C

FH

Grafos

Arco cíclico

Un arco es cíclico si parte de un vértice y llega al mismo vértice

B C

FH

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

A

B

C

D

E

AA

BB

CC

DD

EE

grafoBB

AA

CC

CC

AA BB DD

CC EE

DD

Grafos

•Matriz de adyacencia

A

B

C

D

E

00 11 11 00 00

11 00 11 00 00

11 11 00 11 00

00 00 11 00 11

00 00 00 11 00

A B C D E

A

B

C

D

E

Grafos

A

B C D

EF

G

H

Grafos

Matriz de caminos1 2 3

4

56

8

7

9 10

Grafos

Matriz de caminos

11 22 33 44 55 66 77 88 99 1010

11 00 11 00 11 11 00 00 00 11 00

22 11 00 11 00 00 11 00 00 00 00

33 00 11 00 00 00 00 11 11 00 00

44 11 00 00 00 00 00 00 00 00 00

55 11 00 00 00 00 11 00 00 00 00

66 00 11 00 00 11 00 00 00 11 00

77 00 00 11 00 00 00 00 00 00 00

88 00 00 11 00 00 00 00 00 00 11

99 11 00 00 00 00 11 00 00 00 11

1010 00 00 00 00 00 00 00 11 11 00

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 M2, donde M es la matriz de adyacencia

Grafos

Matriz de caminos

La matriz de caminos

S= M + M1 + M2 + . . . + Mnv-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

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

C1

C2

C3

C4

C5

C6

C7C8

Grafos

Si cada punto representa una ciudad, cuál sería el camino más corto entre C2 y C7

C1

C2

C3

C4

C5

C6

C7C8

5

2

1

11

7

4

2

8

40

Grafos

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

C1

C2

C3

C4

C5

C6

C7C8