31
Oscar Bedoya. [email protected] http://eisc.univalle.edu.co/~oscarbed/ Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y Estructuras de datos y algoritmos algoritmos

Oscar Bedoya. [email protected] oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Embed Size (px)

Citation preview

Page 1: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Oscar Bedoya.

[email protected]

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

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

Estructuras de datos y Estructuras de datos y algoritmosalgoritmos

Page 2: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 3: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 4: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Grafos

Grafo dirigido o Digrafo

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

A

B

C

D

E

Page 5: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 6: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 7: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 8: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 9: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 10: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Grafos

Grafo Euleriano

D

EF

Page 11: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Grafos

Grafo Euleriano

D

EF

A

Page 12: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Grafos

Grafo Euleriano

C D

EF

Page 13: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Grafos

Grafo Euleriano

C D

EF

A

Page 14: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 15: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 16: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 17: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Grafos

Grafos rectangulares

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

B C

FH

Page 18: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Grafos

Arco cíclico

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

B C

FH

Page 19: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 20: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Grafos

Cómo almacenar la información de un grafo

•Lista de adyacencia

•Matriz de adyacencia

Page 21: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Grafos

•Lista de adyacencia

A

B

C

D

E

AA

BB

CC

DD

EE

grafoBB

AA

CC

CC

AA BB DD

CC EE

DD

Page 22: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 23: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Grafos

A

B C D

EF

G

H

Page 24: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Grafos

Matriz de caminos1 2 3

4

56

8

7

9 10

Page 25: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 26: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 27: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

Grafos

Matriz de caminos

Para determinar la cantidad de caminos de longitud 2 se calcula M2, donde M es la matriz de adyacencia

Page 28: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 29: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 30: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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

Page 31: Oscar Bedoya. oscarbed@eisc.univalle.edu.co oscarbed/Estructuras/ Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

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