Coordinación de Ciencias Computacionales - INAOE Grafos...

15
1 Coordinación de Ciencias Computacionales - INAOE Matemáticas Discretas Grafos Cursos Propedéuticos 2010 Ciencias Computacionales INAOE Dr. Luis Villaseñor Pineda [email protected] http://ccc.inaoep.mx/~villasen 2 Grafos Definiciones básicas Caminos y ciclos Grafos eulerianos y hamiltonianos Isomorfismo Árboles 3 Generalidades Los grafos son estructuras discretas compuestas por vértices y aristas que conectan pares de esos puntos Son una abstracción útil para modelar situaciones tales como: Redes de computadoras Estructuras de datos Redes eléctricas y telefónicas Circuitos eléctricos Sistemas carreteros Sistemas de toma de decisiones 4 ¿Qué son? Un grafo es una representación gráfica de objetos y relaciones binarias entre éstos. Un grafo se representa gráficamente por medio de puntos o pequeños círculos, que designan vértices, y líneas que los unen, que representan las aristas 1 5 4 3 2

Transcript of Coordinación de Ciencias Computacionales - INAOE Grafos...

Page 1: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

1

Coordinación de Ciencias Computacionales - INAOE

Matemáticas DiscretasGrafos

Cursos Propedéuticos 2010

Ciencias Computacionales

INAOE

Dr. Luis Villaseñor Pineda

[email protected]

http://ccc.inaoep.mx/~villasen

2

Grafos

Definiciones básicas

Caminos y ciclos

Grafos eulerianos y hamiltonianos

Isomorfismo

Árboles

3

Generalidades

Los grafos son estructuras discretas compuestas por vértices y aristas que conectan pares de esos puntos

Son una abstracción útil para modelar situaciones tales como:

Redes de computadoras

Estructuras de datos

Redes eléctricas y telefónicas

Circuitos eléctricos

Sistemas carreteros

Sistemas de toma de decisiones

4

¿Qué son?

Un grafo es una representación gráfica de objetos y

relaciones binarias entre éstos.

Un grafo se representa gráficamente por medio de puntos o

pequeños círculos, que designan vértices, y líneas que los

unen, que representan las aristas

1

54

3

2

Page 2: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

2

5

Grafos dirigidos

Un grafo dirigido/dígrafo G = (V, E) consiste de un

conjunto de vértices V (o nodos) y un conjunto de

aristas (o arcos) dirigidas E VV

Note que las aristas (a, b) tiene una dirección; un vértice

fuente/origen a y un vértice terminal b

V={1,2,3,4,5}

E = {(1,3), (2,3), (3,4),

(4,3), (5,3), (5,4), (5,5)}1

54

3

2

6

Grafos simples

Un grafo no dirigido G = (V,E) sin auto lazos se

denomina grafo simple

E se determina por una relación simétrica, antireflexiva, tal

que {a,b} E si y solo si (a,b)R

V={1,2,3,4,5}

E = {{1,2}, {1,3}, {2,3},

{3,4}, {3,5}, {4,5}, {2,5}} 1

54

3

2

7

Definiciones

Si e={u, v} es una arista entonces se dice que los

vértices u y v son los extremos de e

Un vértice y una arista son incidentes si el vértice es

uno de los extremos de la arista

Dos vértices u y v son adyacentes si {u, v} es una

arista

8

Representación de grafos simples

1 2

3 4

{3,4}

{2,4}{1,3} {2,3}

{1,4}

{1,2}

Page 3: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

3

9

Ejemplo: vértices

¿Cuáles vértices son adyacentes a 1?

1 2

3 4

e3

e1

e2e4

10

Ejemplo: vértices

¿Cuáles vértices son adyacentes a 1? 1 es adyacente a 2 y 3

2 es adyacente a 1 y 3

3 es adyacente a 1 y 2

4 no es adyacente a vértice alguno

1 2

3 4

e3

e1

e2e4

11

Ejemplo: vértices

¿Cuáles aristas son incidentes a 1? e1, e2, e4 son incidentes a 2

2 es incidente con e1, e2, e4

3 es incidente con e2, e3

4 no es incidente con ninguna arista

1 2

3 4

e3

e1

e2e4

12

Definiciones

Dos aristas asociadas al mismo par de vértices son

aristas paralelas

Una arista incidente en un sólo vértice es un ciclo

Un vértice que no es incidente en ninguna arista es un

vértice aislado

Page 4: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

4

13

Matriz de adyacencia

Forma de representar grafos y relaciones

1

2

3

4

1000

1100

1110

1111

14

Ejemplo

¿Cuál es la matriz de adyacencia del grafo de la

figura?

1 2

3 4

1000

0011

0122

0120

Tipos de grafos

Un grafo no dirigido sin auto lazos (un ciclo sobre un

mismo vértice) se denomina grafo simple

Un grafo con aristas paralelas (dos aristas pueden

conectar un mismo par de vértices) es llamado

multigrafo

Un grafo completo es un grafo con arcos entre cada par de vértices

Un grafo pesado es aquel que tiene pesos asociados a nodos y/o arcos

15 16

Grafos completos

Se llama grafo completo (o clique) en n vértices a un

grafo con n vértices v1, v2, …, vn donde para todo a y

b que pertenecen a V existe una arista {a, b}. Este

grafo se denota Kn, y el número de aristas de Kn es

n(n-1)/2

Cada par de vértices distintos comparte un arista

Page 5: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

5

17

Grados

El grado de un vértice v de un grafo es el número

g(v) de aristas incidentes con él. Si g(v) = 0 se dice

que v es un vértice aislado

En grafos dirigidos existen grado de entrada y grado de

salida

La sucesión de grados de un grafo se obtiene

ordenando en forma creciente los grados de todos los

vértices

18

Ejemplo: grado de un vértice

¿Cuál es grado del vértice 2?

g(2)=1+1+1+2+2=7

1 2

3

e1

e3

e2e4

e5

e6

19

Ejemplo: grado de un vértice

¿Cuáles son los grado de entrada y salida de los

vértices del grafo mostrado en la figura?

g-(1) = 0

g-(2) = 3

g-(3) = 4

g+(1) = 2

g+(2) = 3

g+(3) = 2 1

2

3

20

Teorema de Euler

En todo grafo G=(V, E) se cumple

Las aristas se pueden contar considerando cuantas son

incidentes en cada vértice y sumando todos los números

obtenidos. Pero asi cada arista resulta contada dos veces,

una para cada uno de sus extremos

Vv

Evg

2)(

Page 6: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

6

21

Ejemplos

Si un grafo tiene una sucesión de grados 0, 1, 1, 2,

3, 4, ¿Cuántas aristas tiene?

(0+1+1+2+3+4)/2=5

¿Existe algún grafo cuya sucesión de grados sea 1,

1, 2, 3, 4?

No, dado que 1+1+2+3+4=11 es impar

22

Subgrafos

Si G = (V, E) y H = (W, F) son grafos tales que

W V y F E, entonces se dice que H es un

subgrafo de G y que G es un supergrafo de H.

Cada arista de F es incidente con vértices en W

23

Ejemplo

b b b

a c e

d d

ca e

d

24

Caminos y ciclos

Un camino de longitud n es un grafo G = (V, E) con V = {v0, v1, v2, . . . , vn} y E = {v0v1, v1v2, . . . , vn−1vn}. Un camino se representa dando la sucesión v0v1 . . . vn de sus vértices, entendiendo que las aristas son v0v1, v1v2,. . . , vn−1vn. A v0 y vn se les llama extremos del camino.

Camino: Secuencia ordenada de vértices y arcos.

Camino cerrado: Cuyo inicio es igual que el final

Camino simple: Sin aristas repetidas.

Camino elemental: Sin vértices repetidos.

Page 7: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

7

25

Caminos y ciclos

Un ciclo de longitud n es un grafo G = (V,E) de orden n≥3, con vértices v0, v1, . . . , vn−1 y aristas v0v1, v1v2,. . . , vn−2vn−1 y vn−1v0.

Ciclo: Camino elemental cerrado.

Circuito: Camino simple cerrado.

26

Ejemplo

Camino de a-b

{a, b},{b, d}, {d, c}, {c, e},

{e, d}, {d, b}

Camino de b a f

b – c – d – e – c – f

Camino de f a a

{f, c}, {c, e}, {e, d}, {d, a}

Camino de c a c

c – e – d – c

a

b

d

c

fe

27

Distancia y diámetro

La distancia d(u, v) entre dos vértices u y v de un

grafo es la longitud del camino más corto de u a v. Si

no existe ningún camino de u a v entonces d(u, v) =

∞.

El diámetro de G es la máxima distancia entre dos

vértices de G y se denota diam(G).

28

Grafo conexo

Un grafo G = (V, E) es conexo si para cualquier par

de vértices u, y v existe un camino en G que los une,

es decir un camino con extremos u y v.

Equivalentemente, G es conexo si diam(G) < ∞

Page 8: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

8

29

Ejemplo

Sea G=(V, E) un grafo no dirigido en V={a, b, c, d, e,

f, g}

El grafo no es conexo

Los dos sub-grafos son conexos

a

b

df

c

e g

30

Problemas de Caminos y Circuitos

Encontrar si existe un camino entre un par de vértices

Encontrar el camino más corto entre un par de vértices

Encontrar camino que pase por cada arista una sola vez (Euler)

Encontrar circuito que pase por cada vértice una sola vez (Hamilton)

31

Camino simple de Euler

Un camino simple de Euler es un camino que pasa

por todas las aristas exactamente una sola vez.

Los puentes de Königsberg

Camino simple de Euler

Teorema:

(a) Si un grafo conexo tiene más de dos nodos con

grado impar, no existe un camino simple de Euler.

(b) Si existen exactamente dos vértices de grado

impar, el grafo se puede recorrer, pero el camino ha

de empezar en uno de los dos vértices de grado impar

y terminar en el otro.

(c) Si no existen vértices de grado impar, el grafo se

puede recorrer. El camino siempre será cerrado.

32

Page 9: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

9

33

Ciclo de Hamilton

Sean G=(V, E) un grafo, se dice que G tiene un ciclo

de Hamilton si existe un ciclo en G que incluye todos

y cada uno de los vértices en V.

34

Ejemplo

En el grafo de la figura, las aristas {a, b}, {b, c}, {c,

f}, {f, e}, {e, d}, {d, g}, {g, h} y {h, i} producen una

camino de Hamilton

a b

ed

c

f

hg i

¿Existe solución?

Dado un grafo cualquiera, ¿es posible determinar si

posee un camino Hamiltoniano?

Es una pregunta muy parecida a la de Euler, así que

se esperaría una respuesta del mismo tipo…

Sin embargo, se trata de un problema NP-completo

(Teorema de Garey-Johnson)

35 38

Clique

Grafo completo: cada par de nodos distintos son

adyacentes

Conjunto completo: subconjunto W de G que induce

un subgrafo completo de G

Clique: subconjunto de nodos que es conjunto

completo y máximo (no hay un conjunto completo

que lo contenga)

Page 10: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

10

39

Cliques

40

Cliques

41

Cliques

42

Isomorfismo

Dos grafos G={V, E} y G’={V’, E’} son isomorfos si existe una biyección f: V V’ que preserva la relación de adyacencia, es decir tal que

{u, v} E si y solo si {f(u), f(v)} E’

Dos grafos isomorfos deben tener el mismo número de vértices. Todas las propiedades que se deriven de la relación de adyacencia deben ser idénticas: mismo número de aristas y sucesiones de grado

Page 11: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

11

43

Ejemplo: isomorfismo

Los dos grafos representados en la figura son

isomorfos:

44

Ejemplo

a b

dc

w x

zy

Grafos isomorfos

45

Ejemplo

a

x ze

b

w

yf

c

v

u

d

Grafos no isomorfos

46

Tipos de isomorfismos

Isomorfismo de grafos

correspondencia 1:1 entre dos grafos G1 - G2

Isomorfismo de subgrafos

correspondencia entre un grafo G1 y los subgrafos de G2

Doble isomorfismo de subgrafos

correspondencia entre los subgrafos de G1 y los subgrafosde G2

Page 12: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

12

47

Búsqueda con backtracking

Se construye un árbol en el que las trayectorias corresponden a isomorfismos:

se toma un nodo de G1 y todas sus posibles correspondencias en G2 (primer nivel)

se buscan los nodos conectados a los nodos correspondientes del primer nivel (segundo nivel)

se continua hasta que no existan correspondencias

las trayectorias en el árbol corresponden a isomorfismos de subgrafos entre G1 y G2

48

Búsqueda con backtracking

A/A’ A/A’’

B/B’

C/C’ C/C’’

49

Árboles

Un árbol es un grafo conexo y acíclico

Sea G(V, E) un grafo. Las afirmaciones siguientes son equivalentes:

G es un árbol

Dos vértices cualesquiera de G están unidos por un único camino

G es conexo pero si se le quita cualquier arista deja de serlo

G es acíclico pero si se le agrega una arista cualquiera deja de serlo

50

Ejemplo

El grafo de la izquierda es un árbol pero el de la

derecha no

ba

c

e

d

f

ba

c

e

d

f

Page 13: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

13

51

Árbol

Hoja o nodo terminal: grado 1

Nodo rama o interno: grado > 1

52

Árbol

Propiedades:

Hay una trayectoria simple entre cada par de nodos

El número de nodos = número de aristas + 1

Un árbol con 2 o más nodos tiene al menos dos nodos hoja

53

Árboles dirigidos

Árbol (enraizado): un nodo con grado de entrada 0

(raíz) y los demás con 1

Poliárbol (árbol dirigido): se vuelve un árbol al

quitar las direcciones

54

Árbol dirigido

Terminología:

Raíz: vértice con grado de entrada 0

Hoja: vértice con grado de salida 0

Interno: vértice con grado de salida > 0

Hijo / Padre: arista de A a B, A es padre de B y B es hijo de A

Hermanos: tienen el mismo padre

Descendientes / Ascendientes: camino de A a B, A es ascendiente de B y B es descendiente de A

Page 14: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

14

55

Árbol dirigido

Terminología:

Subárbol con raíz A: A y todos sus descendientes

Subárbol de A: subárbol con hijo de A como raíz

Árbol ordenado: aristas salientes de cada nodo etiquetados con enteros

Árbol de aridad “m”: cada nodo rama (raíz o interno) tiene máximo m hijos. Es regular si c/u tiene exactamente m hijos (binario m =2)

56

Teoremas

Si G=(V, E) es un grafo no dirigido, entonces G es

conectado si y sólo si G tiene un árbol de cobertura

En cualquier árbol T=(V, E), |V|=|E|+1

57

Recorridos en árboles

Sea T un árbol con raíz r. Si t no tiene otros vértices,

entonces las raíz constituye los recorrido pre-order y post-

order. Si |V| > 1, sean T1, T2, …, Tk los subárboles de T de

izquierda a derecha:

El recorrido en pre-order de T primero visita r y después recorre los

vértices de T1 en pre-order, luego los vértices de T2 en pre-order y así

sucesivamente hasta que los vértices de Tk son recorridos en pre-

orden

El recorrido post-order de T recorre en post-order los subárboles T1,

T2, .., Tk y después visita la raíz

58

Ejemplos

1

2 3

5

4

6 7 8 9 10

11 12 13 14 171615

Recorrido en pre-order: 1, 2, 5, 11, 12, 13, 14, 3, 6, 7, 4, 8, 9, 10, 15, 16, 17

Recorrido en post-order: 11, 12, 13, 14, 5, 2, 6, 7, 3, 8, 9,15, 16, 17, 10, 4, 1

Page 15: Coordinación de Ciencias Computacionales - INAOE Grafos …ccc.inaoep.mx/~villasen/CursoMatDiscretas/Grafos.pdf · 2010-06-17 · Tipos de grafos Un grafo no ... (un ciclo sobre

15

59

Recorrido in-order

Sea T=(V, E) un árbol binario con raíz en el

vértice r:

Si |V| = 1, entonces el vértice r constituye el recorrido

in-order de T

Si |V| > 1, sea TL y TR los subárboles izquierdo y

derecho de T. El recorrido in-order de T visita primero

los vértices de TL in-order y después visita la raíz y

finalmente recorre in-order los vértices de TR

60

Ejemplo

Recorrido en orden: f, c, p, j, q, a, d, r, h, e, t, n, u

r

a

c

e

hd

f j u

n

t

qp