Está en la página 1de 15

Coordinación de Ciencias Computacionales - INAOE

Grafos
Matemáticas Discretas
Grafos  Definiciones básicas
 Caminos y ciclos
Cursos Propedéuticos 2010
 Grafos eulerianos y hamiltonianos
Ciencias Computacionales
INAOE  Isomorfismo
 Árboles
Dr. Luis Villaseñor Pineda
villasen@inaoep.mx
http://ccc.inaoep.mx/~villasen

Generalidades ¿Qué son?


 Los grafos son estructuras discretas compuestas por  Un grafo es una representación gráfica de objetos y
vértices y aristas que conectan pares de esos puntos relaciones binarias entre éstos.
 Son una abstracción útil para modelar situaciones  Un grafo se representa gráficamente por medio de puntos o
tales como: pequeños círculos, que designan vértices, y líneas que los
 Redes de computadoras unen, que representan las aristas
 Estructuras de datos
 Redes eléctricas y telefónicas 2
 Circuitos eléctricos
 Sistemas carreteros 1 3
 Sistemas de toma de decisiones
5
4
3 4

1
Grafos dirigidos Grafos simples
 Un grafo dirigido/dígrafo G = (V, E) consiste de un  Un grafo no dirigido G = (V,E) sin auto lazos se
conjunto de vértices V (o nodos) y un conjunto de denomina grafo simple
aristas (o arcos) dirigidas E  VV  E se determina por una relación simétrica, antireflexiva, tal
 Note que las aristas (a, b) tiene una dirección; un vértice que {a,b} E si y solo si (a,b)R
fuente/origen a y un vértice terminal b
 V={1,2,3,4,5} 2
2
 V={1,2,3,4,5} E = {{1,2}, {1,3}, {2,3},
{3,4}, {3,5}, {4,5}, {2,5}} 1 3
 E = {(1,3), (2,3), (3,4), 1 3
(4,3), (5,3), (5,4), (5,5)} 5
5 4
4
5 6

Definiciones Representación de grafos simples


 Si e={u, v} es una arista entonces se dice que los {1,2}
vértices u y v son los extremos de e 1 2
 Un vértice y una arista son incidentes si el vértice es
{1,3} {2,3} {2,4}
uno de los extremos de la arista
 Dos vértices u y v son adyacentes si {u, v} es una
{3,4}
arista 3 4

{1,4}

7 8

2
Ejemplo: vértices Ejemplo: vértices
 ¿Cuáles vértices son adyacentes a 1?  ¿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
1 2 
e1  4 no es adyacente a vértice alguno

e3 e2
1 e1 2
e4 e3 e2
3 4
e4
3 4

9 10

Ejemplo: vértices Definiciones


 ¿Cuáles aristas son incidentes a 1?  Dos aristas asociadas al mismo par de vértices son
 e1, e2, e4 son incidentes a 2 aristas paralelas
 2 es incidente con e1, e2, e4
 Una arista incidente en un sólo vértice es un ciclo
 3 es incidente con e2, e3
 4 no es incidente con ninguna arista  Un vértice que no es incidente en ninguna arista es un
vértice aislado
1 e1 2
e3 e2
e4
3 4

11 12

3
Matriz de adyacencia Ejemplo
 Forma de representar grafos y relaciones  ¿Cuál es la matriz de adyacencia del grafo de la
figura?

2 1 1 1 1 0 2 1 0
  1 2  
0 1 1 1 2 2 1 0
0 1 0
1
1 3 1 0
0 1  
  3 4
0
0
 0 0 1  0 0 1 
4

13 14

Tipos de grafos Grafos completos


 Un grafo no dirigido sin auto lazos (un ciclo sobre un  Se llama grafo completo (o clique) en n vértices a un
mismo vértice) se denomina grafo simple grafo con n vértices v1, v2, …, vn donde para todo a y
 Un grafo con aristas paralelas (dos aristas pueden b que pertenecen a V existe una arista {a, b}. Este
conectar un mismo par de vértices) es llamado grafo se denota Kn, y el número de aristas de Kn es
multigrafo n(n-1)/2
 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
Cada par de vértices distintos comparte un arista
15 16

4
Grados Ejemplo: grado de un vértice
 El grado de un vértice v de un grafo es el número  ¿Cuál es grado del vértice 2?
g(v) de aristas incidentes con él. Si g(v) = 0 se dice  g(2)=1+1+1+2+2=7
que v es un vértice aislado
 En grafos dirigidos existen grado de entrada y grado de
salida e1 e6
 La sucesión de grados de un grafo se obtiene 1 e2 2 e5
ordenando en forma creciente los grados de todos los e3 e4
vértices
3

17 18

Ejemplo: grado de un vértice Teorema de Euler


 ¿Cuáles son los grado de entrada y salida de los  En todo grafo G=(V, E) se cumple
vértices del grafo mostrado en la figura?


g-(1) = 0
g-(2) = 3


g (v )  2 E
v V
 g-(3) = 4 2
 Las aristas se pueden contar considerando cuantas son
 g+(1) = 2
incidentes en cada vértice y sumando todos los números
 g+(2) = 3 obtenidos. Pero asi cada arista resulta contada dos veces,
 g+(3) = 2 1 3 una para cada uno de sus extremos

19 20

5
Ejemplos Subgrafos
 Si un grafo tiene una sucesión de grados 0, 1, 1, 2,  Si G = (V, E) y H = (W, F) son grafos tales que
3, 4, ¿Cuántas aristas tiene? W  V y F  E, entonces se dice que H es un
 (0+1+1+2+3+4)/2=5 subgrafo de G y que G es un supergrafo de H.
 ¿Existe algún grafo cuya sucesión de grados sea 1, Cada arista de F es incidente con vértices en W
1, 2, 3, 4?
 No, dado que 1+1+2+3+4=11 es impar

21 22

Ejemplo Caminos y ciclos


 Un camino de longitud n es un grafo G = (V, E) con
b b b 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
a c e
a c e extremos del camino.
 Camino: Secuencia ordenada de vértices y arcos.
 Camino cerrado: Cuyo inicio es igual que el final
d d  Camino simple: Sin aristas repetidas.
d
 Camino elemental: Sin vértices repetidos.

23 24

6
Caminos y ciclos Ejemplo
 Un ciclo de longitud n es un grafo G = (V,E) de orden  Camino de a-b
n≥3, con vértices v0, v1, . . . , vn−1 y aristas v0v1, v1v2,.  {a, b},{b, d}, {d, c}, {c, e}, a
. . , vn−2vn−1 y vn−1v0. {e, d}, {d, b}
b
 Camino de b a f
 b–c–d–e–c–f c
 Ciclo: Camino elemental cerrado.
 Camino de f a a d
 Circuito: Camino simple cerrado.
 {f, c}, {c, e}, {e, d}, {d, a}
 Camino de c a c
e
 c–e–d–c f

25 26

Distancia y diámetro Grafo conexo


 La distancia d(u, v) entre dos vértices u y v de un  Un grafo G = (V, E) es conexo si para cualquier par
grafo es la longitud del camino más corto de u a v. Si de vértices u, y v existe un camino en G que los une,
no existe ningún camino de u a v entonces d(u, v) = es decir un camino con extremos u y v.
∞. Equivalentemente, G es conexo si diam(G) < ∞
 El diámetro de G es la máxima distancia entre dos
vértices de G y se denota diam(G).

27 28

7
Ejemplo Problemas de Caminos y Circuitos
 Sea G=(V, E) un grafo no dirigido en V={a, b, c, d, e,  Encontrar si existe un camino entre un par de vértices
f, g}  Encontrar el camino más corto entre un par de
 El grafo no es conexo vértices
 Los dos sub-grafos son conexos  Encontrar camino que pase por cada arista una sola
vez (Euler)
a e g  Encontrar circuito que pase por cada vértice una sola
b vez (Hamilton)
c
f
d

29 30

Camino simple de Euler Camino simple de Euler


 Un camino simple de Euler es un camino que pasa Teorema:
por todas las aristas exactamente una sola vez.  (a) Si un grafo conexo tiene más de dos nodos con
 Los puentes de Königsberg 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.

31 32

8
Ciclo de Hamilton Ejemplo
 Sean G=(V, E) un grafo, se dice que G tiene un ciclo  En el grafo de la figura, las aristas {a, b}, {b, c}, {c,
de Hamilton si existe un ciclo en G que incluye todos f}, {f, e}, {e, d}, {d, g}, {g, h} y {h, i} producen una
y cada uno de los vértices en V. camino de Hamilton

a b c

d e f

g h i

33 34

¿Existe solución? Clique


 Dado un grafo cualquiera, ¿es posible determinar si  Grafo completo: cada par de nodos distintos son
posee un camino Hamiltoniano? adyacentes
 Conjunto completo: subconjunto W de G que induce
 Es una pregunta muy parecida a la de Euler, así que un subgrafo completo de G
se esperaría una respuesta del mismo tipo…  Clique: subconjunto de nodos que es conjunto
 Sin embargo, se trata de un problema NP-completo completo y máximo (no hay un conjunto completo
(Teorema de Garey-Johnson) que lo contenga)

35 38

9
Cliques Cliques

39 40

Cliques 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

41 42

10
Ejemplo: isomorfismo Ejemplo
 Los dos grafos representados en la figura son
isomorfos:
a b w x

c d y z

Grafos isomorfos

43 44

Ejemplo Tipos de isomorfismos


 Isomorfismo de grafos
u  correspondencia 1:1 entre dos grafos G1 - G2
b c
 Isomorfismo de subgrafos
v w  correspondencia entre un grafo G1 y los subgrafos de G2
a d
 Doble isomorfismo de subgrafos
e f x y z  correspondencia entre los subgrafos de G1 y los subgrafos
de G2

Grafos no isomorfos

45 46

11
Búsqueda con backtracking 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) A/A’ A/A’’
 se continua hasta que no existan correspondencias
 las trayectorias en el árbol corresponden a isomorfismos
B/B’
de subgrafos entre G1 y G2

C/C’ C/C’’

47 48

Árboles Ejemplo
 Un árbol es un grafo conexo y acíclico  El grafo de la izquierda es un árbol pero el de la
 Sea G(V, E) un grafo. Las afirmaciones siguientes derecha no
son equivalentes:
 G es un árbol
a b a b
 Dos vértices cualesquiera de G están unidos por un único
camino c
c
 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 d
d
de serlo
e e f
f

49 50

12
Árbol Árbol
 Hoja o nodo terminal: grado 1  Propiedades:
 Nodo rama o interno: grado > 1  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

51 52

Árboles dirigidos Árbol dirigido


 Árbol (enraizado): un nodo con grado de entrada 0  Terminología:
(raíz) y los demás con 1  Raíz: vértice con grado de entrada 0
 Poliárbol (árbol dirigido): se vuelve un árbol al  Hoja: vértice con grado de salida 0
quitar las direcciones  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

54
53

13
Árbol dirigido Teoremas
 Terminología:  Si G=(V, E) es un grafo no dirigido, entonces G es
 Subárbol con raíz A: A y todos sus descendientes conectado si y sólo si G tiene un árbol de cobertura
 Subárbol de A: subárbol con hijo de A como raíz
 Árbol ordenado: aristas salientes de cada nodo  En cualquier árbol T=(V, E), |V|=|E|+1
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)

55 56

Recorridos en árboles Ejemplos


 Sea T un árbol con raíz r. Si t no tiene otros vértices, 1
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 2 3 4
izquierda a derecha:
 El recorrido en pre-order de T primero visita r y después recorre los 5 6 7 8 9 10
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- 11 12 13 14 15 16 17
orden
 El recorrido post-order de T recorre en post-order los subárboles T1,  Recorrido en pre-order: 1, 2, 5, 11, 12, 13, 14, 3, 6, 7, 4, 8, 9,
T2, .., Tk y después visita la raíz 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

57 58

14
Recorrido in-order Ejemplo
 Sea T=(V, E) un árbol binario con raíz en el r

vértice r: a e
 Si |V| = 1, entonces el vértice r constituye el recorrido c d h n
in-order de T
f j t u
 Si |V| > 1, sea TL y TR los subárboles izquierdo y
derecho de T. El recorrido in-order de T visita primero p q
los vértices de TL in-order y después visita la raíz y
finalmente recorre in-order los vértices de TR

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

59 60

15

También podría gustarte