Você está na página 1de 60

RafaC - Matemtica Discreta - UCM

07/08 1
Tema 5: Grafos
2
RafaC - Matemtica Discreta - UCM
07/08
Indice
1. Tipos de grafos
2. Conceptos Bsicos
3. Representacin de grafos
4. Subgrafos. Grafos complementarios
5. Caminos y conectividad
6. Grafos Bipartitos
7. Recorridos, eulerianos o hamiltonianos
8. Isomorfismo de grafos
9. rboles
3
RafaC - Matemtica Discreta - UCM
07/08
Tipos de Grafos
Un grafo G es un par (V,E) donde:
V ={v
1
,,v
n
} es un conjunto de vrtices
E = {e
1
,,e
m
} es un conjunto de aristas,
con cada e
k
{v
i
, v
j
}, con v
i
, v
j
V, v
i
v
j

Los vrtices se representan como puntos y las aristas como lneas
entre vrtices
Ejemplo:
G = (V,E)
V = {a,b,c,d }
E = {{a,b}, {b,c}, {a,c}, {a,d}, {d,b} }


4
RafaC - Matemtica Discreta - UCM
07/08
Tipos de Grafos
Ejemplo: red de ordenadores

5
RafaC - Matemtica Discreta - UCM
07/08
Tipos de grafos
Es importante recordar que un mismo grafo puede tener
diferentes representaciones grficas
Ejemplo:





Dos representaciones del mismo grafo
G = ({a,b,c,d,e,f},{{a,b},{a,e},{a,f}{e,f},{b,c},{c,d},{e,d},{d,f}})
6
RafaC - Matemtica Discreta - UCM
07/08
Tipos de Grafos
Si el orden influye en la aristas se habla de grafos
dirigidos:



En este caso a las aristas se les llama arcos y se
representan como pares para indicar el orden:
V = { a,b,c,d,e}
A ={(e,a), (a,b), (b,a), (d,a), (c,d), (d,c),(b,c),(c,b) }

7
RafaC - Matemtica Discreta - UCM
07/08
Tipos de Grafos
Si se permite que haya ms de una arista se habla
de multigrafos:
8
RafaC - Matemtica Discreta - UCM
07/08
Tipos de Grafos
Cuando las aristas tienen un valor numrico asociado se llama de
grafos valorados:








Al valor numrico asociado se le llama coste de la arista
9
RafaC - Matemtica Discreta - UCM
07/08
Tipos de Grafos
Los tipos anteriores pueden combinarse, dando
lugar por ejemplo a multigrafos valorados, o
grafos dirigidos valorados, etc.

En el resto del tema cuando no se diga lo
contrario G representar un grafo o multigrafo
no dirigido
10
RafaC - Matemtica Discreta - UCM
07/08
Conceptos Bsicos
Dos vrtices se dicen adyacentes si existe una
arista que los une
Los vrtices que forman una arista son los
extremos de la arista
Si v es un extremo de una arista a, se dice que a
es incidente con v
El grado de un vrtice v, gr(v) es el nmero de
aristas incidentes en v. Si hace falta indicar el
grafo en el que est v escribiremos gr(G,v)
11
RafaC - Matemtica Discreta - UCM
07/08
Conceptos Bsicos
Ejemplo:





gr(6)= _______ gr(1) = ________
12
RafaC - Matemtica Discreta - UCM
07/08
Conceptos Bsicos
Teorema (de los apretones de manos)
Sea G=(V,A) un grafo. Entonces: gr(v) = 2|A|

v V

Significado: la suma de los grados de todos los
vrtices es igual a 2 veces el nmero de aristas
Explicacin:
13
RafaC - Matemtica Discreta - UCM
07/08
Conceptos Bsicos
Ejemplo:




gr(a)+gr(b)+gr(c)+gr(d)+gr(e)+gr(f) =
3+4+5+2+4+4 = 22
2|A| = 2 ____ = _____
14
RafaC - Matemtica Discreta - UCM
07/08
Conceptos Bsicos
Para cada n1 se llama grafo completo de orden n, y se
representa por Kn, al grafo de n vrtices conectados de todas
las formas posibles:







Pregunta: Cuntas aristas tiene en general Kn?

15
RafaC - Matemtica Discreta - UCM
07/08
Conceptos Bsicos
Se llama ciclo de grado n, y se denota Cn, a
G=({v
1
,,v
n
},
{{v
1
, v
2
}, {v
2
, v
3
},, {v
n-1
, v
n
}, {v
n
, v
1
}} )




Nota: A menudo slo se consideran ciclos para n3

16
RafaC - Matemtica Discreta - UCM
07/08
Representacin de Grafos
Para representar los grafos a menudo se utiliza la llamada matriz de
adyacencia
Se construye imaginando que en las filas y las columnas corresponden a los
vrtices. Se pone un 0 para indicar que 2 vrtices no son adyacentes, y un 1
para indicar que s lo son:





Para representarla en un ordenador se utilizan matriz de valores lgicos
(booleanos). True hay arista, False no hay arista

1
2
3
4
5
6
1 2 3 4 5 6
G
Matriz de Adyacencia de G
17
RafaC - Matemtica Discreta - UCM
07/08
Representacin de Grafos
En el caso de un grafo no dirigido la matriz ser
simtrica. No ocurre lo mismo para grafos
dirigidos:




Se supone que la fila representa el vrtice
origen, y la columna el vrtice destino del arco


18
RafaC - Matemtica Discreta - UCM
07/08
Representacin de Grafos
La matriz de adyacencia tambin permite representar
grafos valorados




El valor guardado es el coste de la arista/arco
En lugar de 0, a menudo se emplea un valor especial
para indicar que dos vrtices no estn conectados
19
RafaC - Matemtica Discreta - UCM
07/08
Representacin de Grafos
En informtica a menudo en lugar de la matriz
se usa la lista de adyacencia
A cada vrtice le corresponde una lista con sus
adyacentes:

G
Lista de Adyacencia de G
20
RafaC - Matemtica Discreta - UCM
07/08
Subgrafos
Sea G=(V,A). G=(V,A) se dice subgrafo
de G si:
1. V V
2. A A
3. (V,A) es un grafo
Resultado fcil de comprobar:
Si G=(V,A) es subgrafo de G, para todo v G
se cumple gr(G,v) gr(G,v)
21
RafaC - Matemtica Discreta - UCM
07/08
Subgrafos
Ejemplo:





G1 y G2 son subgrafos de G
22
RafaC - Matemtica Discreta - UCM
07/08
Subgrafos
Un grafo se dice cclico cuando contiene algn ciclo
como subgrafo
Ejemplo:



Contiene dos ciclos de long. 3: {a,e,f,a} y {_, _, _, _}
Contiene un ciclo de longitud 6: {_,_,_,_,_,_,_}
Contiene algn ciclo ms? ___
23
RafaC - Matemtica Discreta - UCM
07/08
Grafo Complementario
El complementario G de un grafo G=(V,A)
tiene:
Los mismos vrtices que G
Si {u,v} G, entonces {u,v} G
Si {u,v} G, entonces {u,v} G
Una forma de construirlo:
Dibujar el corresp. grafo completo Kn, con n=|V|
Eliminar de Kn las aristas {u,v} G


24
RafaC - Matemtica Discreta - UCM
07/08
Grafo complementario
Ejemplo : Complementario de







1 Representar K6
2 Marcar las
aristas de G
3 Eliminarlas
25
RafaC - Matemtica Discreta - UCM
07/08
Caminos y conectividad
Un recorrido en un grafo G = (V,A) es una
sucesin de vrtices v
0
, v
1
, , v
k
tal que
{v
i
,v
i+1
} A para todo 0 i < k
La longitud de un recorrido v
0
, v
1
, , v
k
es k
Ejemplo:
G
f,b,c,f,e,d es un recorrido de
longitud 5 sobre G
26
RafaC - Matemtica Discreta - UCM
07/08
Caminos y conectividad
Observacin: Un recorrido puede repetir
vrtices, y puede comenzar y acabar en vrtices
diferentes
Un camino es un recorrido v
0
, v
1
, , v
k
en el
que v
i
v
j
para 0 i,j k, con i 0 o j k
Es decir en un camino todos los vrtices son
distintos entre s, excepto quizs el primero y el
ltimo
27
RafaC - Matemtica Discreta - UCM
07/08
Caminos y conectividad
Ejemplo:
G
a,b,e,c,d es un camino
28
RafaC - Matemtica Discreta - UCM
07/08
Caminos y conectividad
Si existe un camino entre dos vrtices se dice
que estn conectados
Sea G=(V,A) un grafo. La relacin
xRy x e y estn conectados
es de equivalencia (R ___)
Si para todo par de vrtices de un grafo estn
conectados se dice que el grafo es conexo g
Las componentes conexas de un grafo G son
los mayores subgrafos conexos de G

29
RafaC - Matemtica Discreta - UCM
07/08
Caminos y conectividad
Ejemplo. Consideramos el grafo:

Se tiene que:
G no es conexo: no hay camino entre a y b, por ejemplo.
[a] = {a,c,e} [c] = {a,c,e} [e]={a,c,e} [b]={b,d} [d]={b,d}
G/R = {[a],[b]}
G tiene dos componentes conexas:



30
RafaC - Matemtica Discreta - UCM
07/08
Caminos y conectividad
Un recorrido v
0
, v
1
, ,v
k
tal que v
0
= v
k
es un circuito
Un camino v
0
, v
1
, , v
k
tal que v
0
= v
k
es un ciclo
f,c,b,e,f es un ciclo
G
a,b,f,c,e,f,a es un circuito
31
RafaC - Matemtica Discreta - UCM
07/08
Grafos Bipartitos
Un problema interesante en un grafo es
determinar su nmero cromtico:
Cuntos colores son necesarios para pintar los
vrtices de forma que cada arista una siempre
colores distintos?
Ejemplo: Grafo con nmero cromtico 4
32
RafaC - Matemtica Discreta - UCM
07/08
Grafos Bipartitos
Aplicacin: coloreado de mapas
Cuntos colores se necesitan para colorear un
mapa de forma que no haya dos regiones con
frontera con el mismo color?

33
RafaC - Matemtica Discreta - UCM
07/08
Grafos Bipartitos
Idea: Transformar el mapa en un grafo, donde
cada vrtice representa una regin y cada arista
un lmite entre regiones:
Cuntos colores se necesitan? nmero cromtico de este grafo?
34
RafaC - Matemtica Discreta - UCM
07/08
Grafos Bipartitos
Resultado: Todos los mapas se pueden colorear con
un mximo de 4 colores
Solucin propuesta en 1879, probada en 1976 por K.
Appel y W. Haken con la ayuda de un ordenador.

35
RafaC - Matemtica Discreta - UCM
07/08
Grafos Bipartitos
Nosotros vamos a interesarnos en un caso
particular: aquellos grafos que se pueden
colorear en dos colores grafos bipartitos
Definicin: Sea G=(V,A). Se dice que G es
bipartito si existen V
1
, V
2
tales que:
1. V
1
V
2
= V
2.

V
1
V
2
=
3. Para toda {v
i
,v
j
} A se cumple v
i
V
1,
v
j
V
2


36
RafaC - Matemtica Discreta - UCM
07/08
Grafos Bipartitos
Ejemplos:
Es bipartito ?
S; V1 = {2,5}, V2={0,1,3,4,6,7}
37
RafaC - Matemtica Discreta - UCM
07/08
Grafos Bipartitos
Idea de cmo pintarlo:
Empezar por un vrtice cualquiera, de color C1
Dibujar todos los adyacentes de color C2
Seguir este proceso hasta haber terminado


Parece que No es
bipartito, pero
cmo estar
seguros?
38
RafaC - Matemtica Discreta - UCM
07/08
Grafos Bipartitos
Teorema: Una grafo es bipartito si y slo si no
tiene ciclos de longitud impar

Ejemplo anterior: No bipartito; contiene ciclos
de longitud impar (en la figura aparece marcado
uno de long. 3)

39
RafaC - Matemtica Discreta - UCM
07/08
Ciudad de Knisberg, en XVIII:





Pregunta: sera posible dar un paseo pasando por
cada uno de los siete puentes, sin repetir ninguno,
comenzando y acabando en el mismo punto?

Recorridos eulerianos
40
RafaC - Matemtica Discreta - UCM
07/08
Recorridos eulerianos
Representacin propuesta por Leonard Euler en
1736:




Existe un circuito que pase por todas las aristas
una sola vez?


41
RafaC - Matemtica Discreta - UCM
07/08
Recorridos eulerianos
A estos circuitos se les llama circuitos eulerianos, y a
los grafos que los contienen grafos eulerianos
Grafo o multigrafo euleriano: admite un recorrido
que pasa por todas las aristas una sola vez, empezando
y terminando en el mismo vrtice. Los vrtices s se
pueden repetir
Ejemplo: Grafo euleriano.




Circuito euleariano: a,b,c,d,b,f,d,e,a,c,e,f,a





42
RafaC - Matemtica Discreta - UCM
07/08
Recorridos eulerianos
Ejemplo: Grafo euleriano.





Circuito euleariano: a,b,c,d,b,f,d,e,a,c,e,f,a
Ejemplo: El siguiente grafo es euleriano




Encuentra un circuito euleriano:
43
RafaC - Matemtica Discreta - UCM
07/08
Recorridos eulerianos
Cmo saber si un grafo (o multigrafo) es
euleriano?
Teorema de Euler: Un grafo conexo es
euleriano no tiene vrtices de grado impar
Ejemplo:


A tiene grado 3el grafo de los puentes no es euleriano.

44
RafaC - Matemtica Discreta - UCM
07/08
Recorridos eulerianos
Si el grafo/multigrafo tiene slo dos vrtices de
grado impar se llama semi-euleriano. Se puede
convertir en euleriano aadindole una arista:

Semi-euleriano
(__,__ grado impar)
Euleriano
45
RafaC - Matemtica Discreta - UCM
07/08
Recorridos hamiltonianos
Un grafo se dice hamiltoniano si existe un ciclo
que recorre todos sus vrtices. Al ciclo se le
llama ciclo hamiltoniano
Ejemplos:
46
RafaC - Matemtica Discreta - UCM
07/08
Recorridos hamiltonianos
No existe un mtodo sencillo para saber si un
grafo es no hamiltoniano problema muy
complejo
Ejemplo: Este grafo es hamiltoniano


...pero este no difcil de probar!
47
RafaC - Matemtica Discreta - UCM
07/08
Isomorfismo de grafos
Idea: En ocasiones dos grafos con diferentes vrtices presentan
la misma estructura:





Cmo probarlo? Buscando una funcin biyectiva que convierta
los vrtices de uno en otro, preservando la estructura de las
aristas
Definicin: Dos grafos G=(V,A), G=(V,A) son isomorfos si
existe una funcin biyectiva f:VV tal que {a,b}A
{f(a),f(b)}A
48
RafaC - Matemtica Discreta - UCM
07/08
Isomorfismo de grafos
Ejemplo:






Los dos grafos son isomorfos. Demostracin: Construimos f
como se indica al lado de la figura. Se tiene que:
{1,2}f{a,f} {6,8}f{b,c} {1,6}f{a,b}
{2,8}f{f,c} {4,3}f{h,g} {1,4}f{a,h}
{2,3}f{f,g} {5,7}f{d,e} {4,5}f{h,d}
{3,7}f{g,e} {6,5}f{b,d} {8,7}f{c,e}


f(1) = a f(2) = f f(6) = b
f(4) = h f(5) = d f(3) = g
f(7) = e f(8) = c
49
RafaC - Matemtica Discreta - UCM
07/08
Isomorfismo de grafos
Y como saber si dos grafos no son isomorfos?
Hay que buscar alguna caracterstica que
diferencie la estructura de los dos grafos, como
por ejemplo:
Distinto nmero de vrtices o de aristas
Distinto nmero de ciclos de una longitud dada
Distinto nmero de vrtices con un mismo grado n
Aristas conectando vrtices con dos grados tales que
no existan aristas de las mismas caractersticas en el
otro grafo


50
RafaC - Matemtica Discreta - UCM
07/08
Isomorfismo de grafos
Ejemplo: son isomorfos estos dos grafos?





Respuesta: no; G tiene un ciclo de longitud 3
(b,d,c,b) y G no tiene ninguno de longitud 3
51
RafaC - Matemtica Discreta - UCM
07/08
Isomorfismo de grafos
Son isomorfos? ___





por qu? _________________________-







52
RafaC - Matemtica Discreta - UCM
07/08
rboles
rbol: Grafo conexo y sin ciclos
Ejemplo:


A menudo se selecciona un nodo especial al que se llama raz, y
se dibuja con la raz en la parte superior, sus adyacentes ms
abajo y as sucesivamente:


53
RafaC - Matemtica Discreta - UCM
07/08
rboles
Ejemplo: rbol


54
RafaC - Matemtica Discreta - UCM
07/08
Ejemplo: Una estructura de carpetas y ficheros
es un rbol
rboles
55
RafaC - Matemtica Discreta - UCM
07/08
rboles
Ejemplos:


Anlisis de expresiones
rboles de bsqueda
56
RafaC - Matemtica Discreta - UCM
07/08
rboles
Un poco de terminologa
Los vrtices de un rbol se llaman nodos
Los nodos descendientes inmediatos de un nodo son
sus hijos, y el nodo superior es el padre
A una secuencia descendente de nodos se le llama
rama
Los nodos sin hijos se llaman hojas, y los que s
tienen hijos nodos internos
Un conjunto de rboles es un bosque
57
RafaC - Matemtica Discreta - UCM
07/08
rboles
Algunas propiedades.
Sea G =(V,A) un rbol. Entonces:
Entre cada par de vrtices x,y hay un nico camino
Al quitar de A cualquier arista resulta un bosque con
2 rboles
Al aadir una arista nueva siempre se obtiene un
ciclo
|A| = |V| -1
58
RafaC - Matemtica Discreta - UCM
07/08
rboles recubridores
Dado un grafo conexo G =(V,A) decimos que
un rbol T =(V,A) es un rbol recubridor de
G si V=V, y A A.
En el caso de grafos valorados interesa que la
suma de pesos de las aristas del rbol sea lo ms
pequea posible: rbol de recubrimiento
mnimo.
59
RafaC - Matemtica Discreta - UCM
07/08
rbol de recubrimiento mnimo
60
RafaC - Matemtica Discreta - UCM
07/08
Algoritmo de Prim
Se usa para construir rboles recubridores:
1. Se elige un vrtice cualquiera del grafo como vrtice inicial
y se marca.
2. Mientras que queden vrtices no marcados elegimos un
vrtice no marcado que est conectado con alguno
marcado. Marcamos tanto el vrtice como una de las aristas
que lo unen con los ya marcados
En el caso de grafos valorados en cada paso se toma
la arista de menor peso que cumpla 2) y se obtiene un
rbol de recubrimiento mnimo.