Tema 5: Grafos
I.S.C. Jorge Salgado Hernandez
Indice
1.
2.
3.
4.
5.
6.
7.
8.
Tipos de grafos
Conceptos Bsicos
Representacin de grafos
Subgrafos. Grafos complementarios
Caminos y conectividad
Grafos Bipartitos
Recorridos, eulerianos o
hamiltonianos
Isomorfismo de grafos
I.S.C. Jorge Salgado Hernandez
Tipos de Grafos
Un grafo G es un par (V,E) donde:
V ={v1,,vn} es un conjunto de vrtices
E = {e1,,em} es un conjunto de aristas,
con cada ek {vi, vj}, con vi, vj V, vi vj
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} }
I.S.C. Jorge Salgado Hernandez
Tipos de Grafos
Ejemplo: red de ordenadores
I.S.C. Jorge Salgado Hernandez
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}})
I.S.C. Jorge Salgado Hernandez
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) }
I.S.C. Jorge Salgado Hernandez
Tipos de Grafos
Si se permite que haya ms de una
arista se habla de multigrafos:
I.S.C. Jorge Salgado Hernandez
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
I.S.C. Jorge Salgado Hernandez
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
I.S.C. Jorge Salgado Hernandez
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)
I.S.C. Jorge Salgado Hernandez
10
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:
I.S.C. Jorge Salgado Hernandez
11
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?
I.S.C. Jorge Salgado Hernandez
12
Conceptos Bsicos
Se llama ciclo de grado n, y se denota Cn,
a G=({v1,,vn},
{{v1, v2}, {v2, v3},, {vn-1, vn}, {vn, v1}} )
Nota: A menudo slo se consideran ciclos
para n3
I.S.C. Jorge Salgado Hernandez
13
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:
1 2 3 4
5 6
2
1
3
4
5
6
Matriz
de
Adyacencia
de matriz
G
Para representarla en un ordenador
se utilizan
de
valores lgicos (booleanos). True hay arista, False no
hay arista
I.S.C. Jorge Salgado Hernandez
14
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
I.S.C. Jorge Salgado Hernandez
15
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
I.S.C. Jorge Salgado Hernandez
16
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
I.S.C. Jorge Salgado Hernandez
17
Subgrafos
Sea G=(V,A). G=(V,A) se dice
subgrafo de G si:
1.
2.
3.
V V
A A
(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)
I.S.C. Jorge Salgado Hernandez
18
Subgrafos
Ejemplo:
G1 y G2 son subgrafos de G
I.S.C. Jorge Salgado Hernandez
19
Subgrafos
Un grafo se dice cclico cuando contiene
algn ciclo como subgrafo
Ejemplo:
I.S.C. Jorge Salgado Hernandez
20
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
I.S.C. Jorge Salgado Hernandez
21
Grafo complementario
Ejemplo : Complementario de
1 Representar
K6
2 Marcar
las aristas
de G
I.S.C. Jorge Salgado Hernandez
3
Eliminarlas
22
Caminos y conectividad
Un recorrido en un grafo G = (V,A)
es una sucesin de vrtices v0, v1, ,
vk tal que {vi,vi+1} A para todo 0 i
<k
La longitud de un recorrido v0, v1,
, vk es k
Ejemplo:
G
I.S.C. Jorge Salgado Hernandez
f,b,c,f,e,d es un
recorrido de longitud 5
sobre G
23
Caminos y conectividad
Observacin: Un recorrido puede
repetir vrtices, y puede comenzar y
acabar en vrtices diferentes
Un camino es un recorrido v0, v1, ,
vk en el que vi vj 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
I.S.C. Jorge Salgado Hernandez
24
Caminos y conectividad
Ejemplo:
a,b,e,c,d es un
camino
I.S.C. Jorge Salgado Hernandez
25
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
I.S.C. Jorge Salgado Hernandez
26
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:
I.S.C. Jorge Salgado Hernandez
27
Caminos y conectividad
Un recorrido v0, v1, ,vk tal que v0 = vk es
un circuito
Un camino v0, v1, , vk tal que v0 = vk es
un ciclo
a,b,f,c,e,f,a es un
circuito
I.S.C. Jorge Salgado Hernandez
f,c,b,e,f es un
ciclo
28
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
I.S.C. Jorge Salgado Hernandez
29
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?
I.S.C. Jorge Salgado Hernandez
30
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?
de este grafo?
I.S.C. Jorge Salgado Hernandez
nmero cromtico
31
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.
I.S.C. Jorge Salgado Hernandez
32
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 V1, V2 tales que:
2.
V1 V2= V
V1 V2=
3.
Para toda {vi,vj} A se cumple vi V1, vj V2
1.
I.S.C. Jorge Salgado Hernandez
33
Grafos Bipartitos
Ejemplos:
Es bipartito
?
S; V1 = {2,5},
V2={0,1,3,4,6,7}
I.S.C. Jorge Salgado Hernandez
34
Grafos Bipartitos
Idea de cmo pintarlo:
Empezar por un vrtice cualquiera, de
color C1
Dibujar todos los adyacentes de color
C2
Parece que
Seguir este proceso hasta haber
No es
bipartito,
terminado
pero
cmo estar
seguros?
I.S.C. Jorge Salgado Hernandez
35
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)
I.S.C. Jorge Salgado Hernandez
36
Recorridos eulerianos
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?
I.S.C. Jorge Salgado Hernandez
37
Recorridos eulerianos
Representacin propuesta por
Leonard Euler en 1736:
Existe un circuito que pase por
todas las aristas una sola vez?
I.S.C. Jorge Salgado Hernandez
38
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
I.S.C. Jorge Salgado Hernandez
39
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:
I.S.C. Jorge Salgado Hernandez
40
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.
I.S.C. Jorge Salgado Hernandez
41
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
Euleriano
I.S.C. Jorge Salgado Hernandez
42
Recorridos
hamiltonianos
Un grafo se dice hamiltoniano si
existe un ciclo que recorre todos sus
vrtices. Al ciclo se le llama ciclo
hamiltoniano
Ejemplos:
I.S.C. Jorge Salgado Hernandez
43
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!
I.S.C. Jorge Salgado Hernandez
44
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:V V
tal que {a,b} A {f(a),f(b)} A
I.S.C. Jorge Salgado Hernandez
45
Isomorfismo de grafos
Ejemplo:
f(1) = a f(2) = f f(6) =
b
f(4) = h f(5)
= d f(3) = g
f(7) = e
f(8) = c
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}
I.S.C. Jorge Salgado Hernandez
46
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
I.S.C. Jorge Salgado Hernandez
47
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
I.S.C. Jorge Salgado Hernandez
48