tema 8: grafos - academia cartagena99tema 8: grafos estructuras de datos 1 • introducción •...

41
Tema 8: Grafos ESTRUCTURAS DE DATOS 1

Upload: others

Post on 15-Jul-2020

6 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Tema 8: Grafos ESTRUCTURAS DE DATOS

1

Page 2: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

• Introducción

• Definiciones

• Representación

• Recorridos

ED 2

Contenidos

Page 3: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Introducción • Los árboles se utilizaban para modelar jerarquías

• Los grafos son extensiones que se utilizan para modelar sistemas posiblemente menos jerárquicos o relaciones arbitrarias

• Por ejemplo caminos entre ciudades, redes de ordenadores, conectividades de píxeles en imágenes, optimización de viajes, tráfico urbano,...

ED 3

v2 v3

v5 v1

v4

Page 4: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Definiciones • Grafo: G = ( V, A )

• V = Conjunto de vértices pertenecientes al grafo G {v1, v2, v3,…}

• A = Conjunto de pares (v1, v2) donde v1 y v2 pertenecen a V. Representan los arcos (aristas) de G

•Densidad: relación entre #arcos vs #vértices ◦ Grafo denso/disperso

ED 4

v2 v3

v5

v1 v4 Vértice

Arista o arco

Page 5: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Definiciones •Grafo dirigido o Digrafo: Cuando los arcos son ordenados (v1,v2) != (v2,v1) ◦ Arcos “con sentido” Hay “flechas”

◦ Puede haber 2 arcos entre 2 nodos para indicar vecindad mutua (adyacentes)

ED 5

v2 v3

v5

v1 v4

Page 6: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Definiciones •Adyacencia: Dos vértices son adyacentes si existe un arco que los una (para grafos dirigidos: “adyacentes a”)

ED 6

v2 v3

v5

v1 v4

V3 es adyacente de V2, V1 y V5

Page 7: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Definiciones •Grafo valorado o ponderado: Grafo cuyos arcos tienen asociados un peso o coste.

ED 7

v2 v3

v5

v1 v4

3

7 1 5

2

2 4

v2 v3

v5

v1 v4

3

7

4 2

2

1

Grafo ponderado Digrafo ponderado

Page 8: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Definiciones •Grado: Número de arcos que contienen a un nodo

•Grado de entrada y grado de salida: ◦ Para grafos dirigidos (#arcos de salida/entrada)

•Nodos fuente/sumidero: ◦ CON arcos SÓLO de salida/entrada

ED 8

v2 v3

v5

v1 v4

v2 v3

v5

v1 v4

V3 grado 3 V3 grado entrada: 1

V3 grado salida: 1

Page 9: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Definiciones • Camino: Secuencia de vértices que hay que atravesar para llegar de un vértice a otro

ED 9

v2 v3

v5

v1 v4

Camino de V1 a V3:

(V1,V2), (V2,V3)

Longitud: 2

Longitud: Número de arcos que atraviesa un camino

Camino simple: camino con vértices diferentes

Page 10: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Definiciones Ciclo: posible camino de “v” a “v” (pasando por otros)

ED 10

v2 v3

v5

v1 v4

Ciclo a V1:

(V1,V2), (V2,V3), (V3,V5), (V5, V1)

Bucle: camino de “v” a “v”

Page 11: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Definiciones •Circuito: idem ciclo pero para grafos dirigidos

ED 11

v2 v3

v5

v1 v4 Circuito a V1:

<V1,V5>, <V5,V3>, <V3,V2>, <V2, V1>

Page 12: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Definiciones • Grafo completo: si existe una arista entre cada par de vértices ◦ Máxima densidad

ED 12

v2 v3

v5

v1 v4

Page 13: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Definiciones •Grafo conexo: Para grafo no dirigido si existe un camino desde un vértice a cualquier otro

ED 13

v2 v3

v5

v1 v4

v2 v3

v5

v1 v4

Inconexo (2 componentes conexas)

Conexo

Page 14: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Definiciones • Grafo fuertemente conexo: Para un grafo dirigido, si existe un camino desde un vértice a cualquier otro

• Un grafo dirigido puede ser conexo (si lo es sin considerarlo dirigido) o fuertemente conexo

ED 14

v2 v3

v5

v1 v4

v2 v3

v5

v1 v4

Conexo

Fuertemente conexo

Page 15: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Representación • Representación estática (grafo dirigido)

◦ Conjunto nodos + Matriz de adyacencia

• Representación dinámica (grafo dir.) ◦ Lista de adyacencia

◦ Incluye conjunto nodos

ED 15

010

101

100

A

a

c

b

a

c

b

c

c a

b

Especialmente útil si

el grafo es disperso

V = (a, b, c)

Page 16: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Representación • Representación estática grafo ponderado

◦ Conjunto nodos + Matriz de adyacencia con pesos

• Repr. dinámica grafo ponderado ◦ Lista de adyacencia

◦ Nodos con campo peso

ED 16

060

201

300

A

a

c

b

a

c

b

c|3

c|2 a|1

b|6

3

2

1

6

V = (a, b, c)

Page 17: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos •Recorrer un grafo (graph traversal): visitar todos los nodos alcanzables a partir de uno dado (¡sin repetir nodos!) ◦ Recorrido en anchura (BFS) ◦ Recorrido en profundidad (DFS)

◦ Múltiples variantes para determinados problemas y aplicaciones ◦ Algoritmos Prim, Dijkstra, Bellman-Ford, Kruskal,…

ED 36

Page 18: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos • De forma iterativa se necesitan ciertas estructuras de datos auxiliares ◦ Conjunto “visitados” para no repetir nodos y entrar en ciclos

(loop infinito) ◦ Guarda elementos ya visitados

◦ Estructura FIFO (anchura/breadth-first/BFS) o pila (profundidad/depth-first/DFS) por la que pasan los nodos para guardar memoria y orden de visita ◦ Guardan direcciones de nodos (punteros) que quedan por visitar

Prototipo:

PROCEDURE Recorrido(g: TGrafo; origen: TElemento; VAR l: TLista)

ED 37

Page 19: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 38

Page 20: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 39

Se elige origen del recorrido

Recorrido en anchura

Page 21: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 40

Se elige aleatoriamente siguiente a visitar

entre sus nodos vecinos

Recorrido en anchura

Page 22: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 41

Se continúa entre los restantes vecinos del

origen (si quedan sin visitar)

Recorrido en anchura

Page 23: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 42

Recorrido en anchura

Page 24: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 43

Hasta terminar con la vecindad 1

Recorrido en anchura

Page 25: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 44

Se elige siguiente nodo desde el que

continuar el recorrido (vecindad 2)

Recorrido en anchura

Page 26: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 45

Se visitan otros vecinos de la vecindad 1

Recorrido en anchura

Page 27: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 46

Hasta terminar con la vecindad 2

Recorrido en anchura

Page 28: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 47

Y así sucesivamente hasta

terminar con todos los nodos

Recorrido en anchura

Page 29: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 48

Se elige origen del recorrido

Recorrido en profundidad

Page 30: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 49

Se elige vecino para avanzar

Recorrido en profundidad

Page 31: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 50

Recorrido en profundidad

Page 32: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 51

Recorrido en profundidad

Page 33: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 52

Recorrido en profundidad

Page 34: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 53

Recorrido en profundidad

Page 35: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 54

Recorrido en profundidad

Page 36: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 55

Se retoman caminos no tomados

Recorrido en profundidad

Page 37: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 56

Recorrido en profundidad

Page 38: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 57

Recorrido en profundidad

Page 39: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos

ED 58

Recorrido en profundidad

Page 40: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos Recorrer en anchura: se visita el nodo de partida, para después visitar los adyacentes no visitados aún ◦ Estructura auxiliar: Cola para guardar los adyacentes no

visitados

ED 59

Z P

R

O C

P

{P}

Z

{P,Z}

C

{P,Z,C}

C

{P,Z,C,R}

R

{P,Z,C,R,O}

O

Conjunto visitados

Cola (queue)

Page 41: Tema 8: Grafos - Academia Cartagena99Tema 8: Grafos ESTRUCTURAS DE DATOS 1 • Introducción • Definiciones • Representación • Recorridos ED 2 Contenidos Introducción • Los

Recorridos Recorrer en profundidad: se visita el nodo de partida, para después visitar en profundidad los adyacentes no visitados aún ◦ Estructura auxiliar: Pila para guardar los adyacentes no

visitados

ED 60

Z P

R

O C

{P}

{P,C}

{P,C,R}

{P,C,R,O}

P

Z

C

Z

R

Z

O

Z {P,C,R,O,Z}

Conjunto visitados Pila (stack)