Está en la página 1de 45

Tema 4: Teoría de Grafos

Introducción

Tema 4: Teoría de Grafos Los grafos se utilizan para modelar situaciones en las que se relacionan
entre sí pares de objetos de una determinada colección.

Agustín Valverde Gráficamente, el modelo consiste en puntos que representan los


objetos y líneas que unen dichos puntos.
Universidad de Málaga
Dpto. de Matemática Aplicada
c

b d
f

a e

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 1 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 3 / 178

Tema 4: Teoría de Grafos Tema 4: Teoría de Grafos


Introducción

4.0 Introducción

4.1 Nociones básicas en teoría de grafos Podemos utilizar los grafos para:
Estudiar las combinaciones diferentes de vuelos entre dos ciudades de
4.2 Conexión en grafos
una red aérea,
4.3 Grafos Eulerianos y Hamiltonianos
determinar si es posible recorrer todas las calles de una parte de una
4.4 Isomorfismo de grafos ciudad sin pasar dos veces por la misma calle,

4.5 Planaridad encontrar el camino más corto entre dos ciudades en una red de
transporte,
4.6 Coloración de Grafos
programar exámenes y asignar canales a las emisoras de televisión,
4.7 Árboles hallar el número de colores que se necesitan para colorear un mapa.
4.8 Grafos Ponderados

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 2 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 4 / 178
Tema 4: Teoría de Grafos 4.1 Nociones básicas en teoría de grafos
Introducción Otros tipos

Z Z
B B
M M
V V
En particular, en ciencias de la computación podemos utilizar los grafos PM PM
para: S S
determinar si se puede implementar un circuito sobre una placa de una Ma Ma
Multigrafo Pseudografo
sola capa,
Z Z
estudiar la estructura de una red informática, B B
M M
construir modelos para redes informáticas y determinar si dos V V
PM PM
ordenadores están conectados entre sí.
S S
Ma Ma
Grafo dirigido Multigrafo dirigido

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 5 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 7 / 178

4.1 Nociones básicas en teoría de grafos 4.1 Nociones básicas en teoría de grafos
Tipos de grafos Tipos de grafos

Definición
Un grafo (simple) es un par G = (V, E) consta de
un conjunto no vacío V de vértices,
Tipos de Aristas/ ¿Aristas/Arcos Múltiples ¿Bucles
un conjunto E de pares no ordenados de elementos distintos de V
grafos Arcos permitidos? permitidos?
llamados aristas.
Grafo simple No dirigidas No No
Ejemplo Z Multigrafo No dirigidas Sí No
B
Pseudografo No dirigidas Sí Sí
M V
PM Grafo dirigido Dirigidos No Sí
Se Multigrafo dirigido Dirigidos Sí Sí
Ma

Conexiones . . . entre ciudades españolas


Agustín Valverde (UMA) Tema 4: Teoría de Grafos 6 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 8 / 178
4.1 Nociones básicas en teoría de grafos 4.1 Nociones básicas en teoría de grafos
Terminología básica Terminología básica

Ejemplo c
Definición
Sean u y v dos vértices de un grafo G = (V, E). Se dice que
los vértices u y v son adyacentes si {u, v} es una arista de G. b d
la arista e = {u, v} es incidente con los vértices u y v.
f
También se dice que
a e
los vértices u y v son extremos de la arista e = {u, v}
la arista e = {u, v} conecta a los vértices u y v.
(a) = 3; (b) = 4; (c) = 2; (d) = 4; (e) = 3; (f) = 4

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 9 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 11 / 178

4.1 Nociones básicas en teoría de grafos 4.1 Nociones básicas en teoría de grafos
Terminología básica Terminología básica

Definición Teorema (Euler)


P
El grado de un vértice de un grafo G = (V, E) es el número de aristas Si G = (V, E) es un grafo, entonces (v) = 2|E|.
v2V
incidentes en él.

El grado de un vértice v se denota (v).

A los vértices de grado cero se les llama aislados.


Corolario
Si un vértice tiene grado 1, se dice que es una hoja o un vértice colgante. Todo grafo tiene un número par de vértices de grado impar.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 10 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 12 / 178
Nociones básicas en teoría de grafos 4.1 Nociones básicas en teoría de grafos
Representación de grafos: Listas de adyacencia

Ejemplo c

Definición
b d Sea G = (V, E) un grafo (o digrafo), con V = {v1 , . . . , vn }. La lista de
adyacencia de G es una lista de listas construida como sigue:
f
la lista contiene tantas listas como vértices tiene el grafo;
a e el primer elemento de cada lista es un vértice, siendo este primer
X elemento distinto para cada lista;
(v) = 3 + 4 + 2 + 4 + 3 + 4 = 20 = 2 · 10 = 2|E|
si vi es el primer elemento de una lista, el resto de los elementos son
v2V
los elmentos adyacentes a vi .

Hay 2 vértices de grado impar: a y e.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 13 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 15 / 178

4.1 Nociones básicas en teoría de grafos 4.1 Nociones básicas en teoría de grafos
Representación de grafos Representación de grafos: Listas de adyacencia

Habitualmente, la lista de adyacencia se representa en forma de tabla, en


donde las listas contenidas en ella se escriben en forma de columna.

Ejemplo
Listas de adyacencia
v4 v1 v2 v3 v4 v5 v6 v7
v5
Matrices de adyacencia v3 v2 v1 v1 v3 v3 v1 v1
v7 v3 v3 v2 v5 v4 v5 v3
v6
v6 v4 v6 v7 v5
v2 v7 v5 v7 v6
v1 v7

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 14 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 16 / 178
4.1 Nociones básicas en teoría de grafos 4.1 Nociones básicas en teoría de grafos
Representación de grafos: Matrices de adyacencia Familias distinguidas de grafos simples

Definición
Se llama matriz de adyacencia de un grafo G = (V, E) con conjunto de
1 Grafo completo Kn .
vértices V = {v1 , . . . , vn }, a la matriz cuadrada MG = (mij ), donde
2 Ciclos Cn .
mij = 1 si vi y vj están conectados y mij = 0 en caso contrario.
0 1
3 Grafo Rueda Wn .
Ejemplo 0 1 0 0 1 1
c B C
4 Grafo estrella Sn .
B 1 0 1 1 0 1 C
B 0 1 0 1 0 0 C 5 Grafos regulares.
b d MG = B
B
C
C
B 0 1 1 0 1 1 C
@ A 6 n-Cubos: Qn .
f 1 0 0 1 0 1
1 1 0 1 1 0 7 Grafos bipartitos.
a e
* Para los grafos simples, la matriz siempre es simétrica, pero no en los 8 Grafos bipartitos completos Km,n .
digrafos. En los multigrafos, la matriz se forma con el número de aristas
que conecta cada par de vértices.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 17 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 19 / 178

4.1 Nociones básicas en teoría de grafos 4.1 Nociones básicas en teoría de grafos
Representación de grafos: Listas de adyacencia Grafos definidos a partir de otros

Ejemplo
Definición (Subgrafos)
c Se dice que el grafo H = (VH , EH ) es un subgrafo del grafo G = (VG , EG ) si
VH ✓ VG , EH ✓ EG y cada arista de EH conecta vértices de VH .
b d
El subgrafo se llama propio si, o bien VH 6= VG o bien EH 6= EG .
f Si VH = VG , se dice que el grafo H es un subgrafo generador de G (En
a e inglés, spanning subgraph).

0 1 Ejemplo: H1 y H2 son subgrafos de G :


0 1 0 0 1 1
a b c d e f
B 1 0 1 1 0 1 C b d b b d
b a b b a a B C
B 0 1 0 1 0 0 C
e c d c d b MG = B
B
C
C c f c c f
B 0 1 1 0 1 1 C
f d e f d @ A a e a e a e
1 0 0 1 0 1
f f e
1 1 0 1 1 0 G = (VG , EG ) H1 = (VH1 , EH1 ) H2 = (VH2 , EH2 )

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 18 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 20 / 178
4.1 Nociones básicas en teoría de grafos 4.2 Conexión en grafos
Grafos definidos a partir de otros Caminos, Circuitos y Ciclos

Definición
Definición (Unión de grafos) Un camino (en inglés, Walk) entre los vértices v0 y vk de un grafo
La unión de dos grafos simples G1 = (V1 , E1 ) y G2 = (V2 , E2 ) es el grafo G = (V, E), es una secuencia finita
simple cuyo conjunto de vértices es V1 [ V2 y cuyo conjunto de arcos es
E1 [ E2 . Se denota G1 [ G2 . v 0 , e1 , v 1 , e2 , · · · , v k 1 , ek , vk ,

Ejemplo cuyos elementos son alternativamente vértices y aristas y de forma que


cada arista ej es incidente con los vértices vj 1 y vj .
b d b d b d
Se dice que el camino recorre las aristas e1 , . . . , ek y que pasa por los
c c f c f
vértices v1 , · · · , vk 1, llamados vértices interiores.
a e e a e El vértice v0 se llama vértice inicial y vk se llama vértice final.
La longitud del camino es el número de aristas que recorre, k en el
G1 = (V1 , E1 ) G2 = (V2 , E2 ) G1 [ G2
esquema de arriba.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 21 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 23 / 178

4.1 Nociones básicas en teoría de grafos 4.2 Conexión en grafos


Grafos definidos a partir de otros Caminos, Circuitos y Ciclos

* En un grafo simple la secuencia de vértices v0 , v1 , · · · , vk determina de


Definición
forma única el camino.
El grafo complementario G = (V, E) de un grafo simple G = (V, E) es el
grafo que tiene los mismos vértices que G y las aristas que le faltan para Ejemplo

ser un grafo completo. W : a, b, f, d, e, f, b, c

Ejemplo c

b c b c
b d

a d a d f
Grafo G = (V, E) Grafo complementario G = (V, E).
a e

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 22 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 24 / 178
4.2 Conexión en grafos 4.2 Conexión en grafos
Caminos, Circuitos y Ciclos Caminos, Circuitos y Ciclos

Ejemplo: El camino P : a, b, f, d, e en el siguiente grafo, es elemental:


Definición
c
Un camino simple (en inglés, Trail) es un camino que no repite aristas:

ei 6= ej , si i 6= j
b d
Un camino elemental (en inglés, Path) es un camino en el que todos los
vértices son distintos f
vi 6= vj , si i 6= j.
a e

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 25 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 27 / 178

4.2 Conexión en grafos 4.2 Conexión en grafos


Caminos, Circuitos y Ciclos Caminos, Circuitos y Ciclos

Definición
Ejemplo: El camino T : a, b, d, c, b, f, e en el siguiente grafo, es simple: Un camino se dice cerrado si empieza y termina en el mismo vértice.

c Un circuito es un camino cerrado que no repite aristas.


Un ciclo es un camino cerrado en el que todos los vértices son distintos.

Ejemplo:
b d c. cerrado circuito ciclo
c c c
f
b d b d b d
a e f f f
a e a e a e
a b d c b a; a b f d b c d e a; a b f d e a
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 26 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 28 / 178
4.2 Conexión en grafos 4.2 Conexión en grafos
Caminos, Circuitos y Ciclos Grafos conexos. Componentes conexas

Un grafo que no es conexo es la unión de dos o más subgrafos conexos


tales que, dos a dos, no tienen ningún vértice en común.
Tipos de ¿Aristas ¿Vértices ¿Abierto?
caminos repetidas? repetidos? Estos subgrafos conexos disjuntos se denominan componentes conexas
del grafo.
Walk Camino Permitidas Permitidos Sí
Trail Camino simple No Permitidas Permitidos Sí Por lo tanto, un grafo es conexo si y solo si tiene exactamente una
Path Camino Elemental No Permitidas No Permitidos Sí componente conexa.
Circuit Circuito No Permitidas Permitidos No b d f h
Cycle Ciclo No Permitidas No Permitidos No c j
i
a e g
Grafo G = (V, E)

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 29 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 31 / 178

4.2 Conexión en grafos 4.2 Conexión en grafos


Grafos conexos. Componentes conexas Grafos conexos. Componentes conexas

Definición
Teorema (Número de caminos entre dos vértices)
Un grafo G = (V, E) se dice conexo si hay un camino entre cada par de
Sea G un grafo con matriz de adyacencia MG . El número de caminos de
vértices distintos del grafo.
longitud k, k 0 entre los vértices vi y vj es el número que ocupa la
Ejemplo: G2 es un grafo conexo, pero G1 no lo es. posición (i, j) de la matriz MkG .

b d f h b d
* G puede ser dirigido o no, multigrafo o pseudografo.
c i j c f
* Podemos utilizar este resultado para decidir si un grafo es conexo a
a e g a e
partir de su matriz de adyacencia.
Grafo G1 = (V1 , E1 ) Grafo G2 = (V2 , E2 )

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 30 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 32 / 178
4.2 Conexión en grafos 4.2 Conexión en grafos
Grafos conexos. Componentes conexas Grafos conexos. Componentes conexas

Ejemplo: El grafo 0 1
0 1 0 1 0 v1 v2 A veces, eliminar un vértice y todas las aristas incidentes en él produce
B 1 0 1 0 1 C
B C un subgrafo con más componentes conexas que el grafo inicial. A estos
MG = B
B 0 1 0 1 1 C
C v3
@ A vértices se les llama vértices de corte o puntos de articulación.
1 0 1 0 0
0 1 1 0 0 v4 v5 Análogamente, se llama arista de corte o puente a aquella arista cuya
es conexo, ya que al menos hay un camino de longitud a lo sumo 2 que une eliminación produce un grafo con más componentes conexas que el
cada par de vértices. grafo original.
Por otra parte, si calculamos M4G vemos que hay 7 caminos de longitud 4 El menor número de vértices que hay que eliminar en un grafo G, para
que unen v2 con v4 . que se desconecte o llegue a ser trivial (esto es, un vértice aislado) se
0 1 0 1 denota (G) y se denomina índice de vértice-conexión o
2 0 2 0 1 9 3 11 1 6
B 0 3 1 2 1 C B 3 15 7 11 8 C conectividad.
B C B C
M2G = B
B 2 1 3 0 1 C;
C M4G = B
B 11 7 15 3 8 C
C
@ 0 A @ 1 Un grafo G se llama n -conexo si (G) n.
2 0 2 1 11 3 9 6 A
1 1 1 1 2 6 8 8 6 8
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 33 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 35 / 178

4.2 Conexión en grafos 4.2 Conexión en grafos


Grafos conexos. Componentes conexas Grafos conexos. Componentes conexas

Ejemplo
Ejemplo Una manera de conectar entre sí 6 nodos economizando el v2 v4 v6 v8 v2 v4 v6 v8
cableado entre ellos sería mediante un ciclo de longitud 5, o bien mediante
una estrella de 5 puntas. v1 v3 v5 v7 v1 v3 v5 v7

u2 u1 v1 v2 v4 v6 v8 v2 v4 v6 v8

v2 v5
u3 u6 v1 v3 v5 v7 v1 v3 v5 v7
v6
Vértices de corte: v1 , v3 , v5
u4 u5 v3 v4 v2 v4 v6 v8 v2 v4 v6 v8
C6 S5
v1 v3 v5 v7 v1 v3 v5 v7

Aristas de corte: {v1 , v2 }, {v3 , v5 }


Agustín Valverde (UMA) Tema 4: Teoría de Grafos 34 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 36 / 178
4.2 Conexión en grafos 4.3 Grafos eulerianos
Grafos conexos. Componentes conexas

Ejemplo: El grafo rueda de 7 vértices es un grafo 3-conexo.


x2 x1
Definición
x3 x6 Un camino euleriano entre dos vértices distinos u y v , es un camino que
x7
recorre cada arista del grafo exactamente una vez, es decir, un camino
simple que recorre todas las aristas.
x4 x5
Solución
Un circuito euleriano es un circuito que recorre cada arista del grafo
3 (G) > 2 ya que no desconecta el grafo la eventual eliminación de dos exactamente una vez.
vértices cualesquiera.
3 Pero no es 4-conexo, puesto que la eliminación de los vértices x1 , x3 y
x7 desconecta el grafo.
3 Así, (G) = 3.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 37 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 39 / 178

4.3 Grafos Eulerianos y Hamiltonianos 4.3 Grafos eulerianos

4.3 Grafos Eulerianos y Hamiltonianos Ejemplo

G1 G2
v1 v2 v1 v2

v5
Caminos y circuitos eulerianos
v4 v3 v3 v4 v5

Circuito euleriano en G1 :

v1 v5 v3 v4 v5 v2 v1
Caminos y ciclos hamiltonianos
Camino euleriano en G2 :

v1 v3 v4 v5 v2 v1 v4 v2
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 38 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 40 / 178
4.3 Grafos eulerianos 4.3 Grafos eulerianos
Ejemplo:
1 Primera iteración:
Ejemplo: El siguiente grafo no contiene ni caminos ni circuitos de Euler a b e f c a
a
b d f 2 Segunda iteración:
a b e f c a
b c z }| {
a c e g e d f g e
d
Resultado:
e f a b e d f g e f c a
Teorema
Un grafo conexo tiene un circuito de Euler si y solo si todos los vértices son 3 Tercera iteración:
de grado par. g a b e d f g e f c a
z }| {
d b c d
Resultado:
a b e d b c d f g e f c a
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 41 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 43 / 178

4.3 Grafos eulerianos 4.3 Grafos eulerianos

Teorema
Algoritmo de Fleury (Descripción informal)
Un grafo conexo tiene un camino de Euler entre los vértices u y v si y
1 Se elige un vértice arbitrario y se construye un circuito. solo si todos los vértices tienen grado par excepto u y v .
2 Si ese circuito contiene todos los arcos, FIN.
Ejemplo Estudia si es posible dibujar el siguiente grafo sin levantar el lápiz
3 En caso contrario, se considera un vértice común al circuito construido del papel y no repetir arco.
y a la parte del grafo que queda sin recorrer. (Este vértice está a
asegurado por ser G conexo.)
4 Empezando por ese vértice, se construye un circuito. b c

5 Se inserta este circuito en el circuito inicial. d


e f
6 Si ya se han recorrido todos los arcos, FIN.
Solución
7 En caso contrario, continuamos por (3).
e b a c f d b c d e f

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 42 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 44 / 178
4.3 Grafos hamiltonianos 4.3 Grafos hamiltonianos
Caminos y ciclos hamiltonianos Caminos y ciclos hamiltonianos

Ejemplo G3
Definición
Un camino hamiltoniano entre dos vértices distinos u y v , es un camino
b d f
que pasa por cada vértice del grafo exactamente una vez, es decir, un
camino elemental que recorre todos los vértices.
a c e g
Un ciclo hamiltoniano es un ciclo que recorre todas los vértices del grafo
exactamente una vez.
En G3 no existe ni ciclo ni camino hamiltoniano.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 45 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 47 / 178

4.3 Grafos hamiltonianos 4.3 Grafos hamiltonianos


Caminos y ciclos hamiltonianos

Ejemplo
Teorema (Dirac)
G1 G1 Sea G = (V, E) un grafo simple con n vértices, n 3. Si todos los
n
c 1 2 vértices de G tienen grado mayor o igual a , entonces G contiene un
b 2
ciclo hamiltoniano.

a d 4 3
Teorema (Ore)
e
Sea G un grafo simple con n vértices, n 3. Si para cada par de
a c b d e a 1 2 4 3
vértices no adyacentes u y v de G se verifica (u) + (v) n,
entonces G contiene un ciclo hamiltoniano.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 46 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 48 / 178
Tema 4: Teoría de Grafos 4.4 Isomorfismos de grafos
4.4 Isomorfismo de grafos

Definición
Se dice que dos grafos simples G1 = (V1 , E1 ) y G2 = (V2 , E2 ) son
isomorfos si existe una función biyectiva : V1 ! V2 tal que
La relación de isomorfía entre grafos es una relación de equivalencia.
8u, v 2 V1 , {u, v} 2 E1 () { (u), (v)} 2 E2
Cada clase de equivalencia definida por esta relación es
Esta función se llama isomorfismo de grafos. un conjunto de grafos isomorfos al que llamaremos grafo
no etiquetado.
Es decir, dos grafos son isomorfos si entre sus vértices existe una
función biyectiva que conserva las adyacencias en los dos sentidos.
Matricialmente, esto significa que existe una reordenación de los
vértices de G1 y G2 de manera que las matrices de adyacencia,
según estas reordenaciones, son exactamente iguales.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 49 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 51 / 178

4.4 Isomorfismos de grafos 4.4 Isomorfismos de grafos


Ejemplo: Los siguientes grafos son isomorfos
b c x
Ejemplo 2 Los grafos G1 y G2 de la siguiente figura son isomorfos; basta

y tomar la función dada por (ui ) = vi . Ambos, como grafos isomorfos,


a d v u
pertenecen a la clase representada por un grafo no etiquetado que podemos
G1 = (V1 , E1 ) G2 = (V2 , E2 )
dibujar, por ejemplo, como G3 .

u4 u5 v1 v5
Y el isomorfismo está dado por la siguiente biyección:
8
: V1 ! V2 >
> {a, b} 2 E1 () ({a, b}) = {u, v} 2 E2
>
> u1 u3 u2 v4 v2 v3
>
>
a 7! u < {a, c} 2 E1 () ({a, c}) = {u, x} 2 E2
>
Grafo G1 Grafo G2 Grafo G3
b 7! v {a, d} 2 E1 () ({a, d}) = {u, y} 2 E2
>
>
c 7! x >
> {b, c} 2 E1 () ({b, c}) = {v, x} 2 E2
>
>
>
: {c, d} 2 E () ({c, d}) = {x, y} 2 E
d 7! y 1 2

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 50 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 52 / 178
4.4 Isomorfismos de grafos Isomorfismos de grafos (Caminos e Isomorfismos)

Verificar que dos grafos son isomorfos o no lo son puede ser un Ejemplo: Estudia si son isomorfos o no los grafos siguientes
problema difícil.
Grafo G1 Grafo G2
Para la resolución de este problema se suelen buscar datos
necesariamente comunes a todos los grafos de una clase de 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9
(equivalencia) isomorfía. 2 1 2 3 4 1 5 6 3 2 1 4 3 2 1 3 9 8
6 3 4 5 7 7 6 6 5 7 7 6 2 4
A estos datos se les llama invariantes de un grafo.
9 8 6 5
Son invariantes de un grafo
1 su número de vértices: |V|,
Ambos grafos tienen la misma lista de grados (3, 3, 2, 2, 2, 2, 2, 1, 1)
2 su número de aristas: |E|,
3 la lista de grados de los vértices, (v), para los v 2 V. Pero el grafo G1 es conexo y el grafo G2 tiene tres componentes
4 ... conexas de vértices respectivos {1, 2, 5, 6}, {3, 4, 7}, {8, 9}.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 53 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 55 / 178

4.4 Isomorfismos de grafos 4.4 Isomorfismos de grafos

Ejercicio Comprueba que son isomorfos los grafos G1 y G2 . Ejemplo: Estudia si son isomorfos los siguientes grafos

a b s t
e f w x

Grafo G1 Grafo G2 h g z y
d c v u
Ejercicio Comprueba que no son isomorfos los grafos H1 y H2 . Grafo G1 Grafo G2

Ambos grafos tienen: 8 vértices y 10 aristas; 4 vértices de grado 2 y 4


vértices de grado 3.

Grafo H1 Grafo H2 Como estos invariantes coinciden, podemos pensar que son isomorfos.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 54 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 56 / 178
4.4 Isomorfismos de grafos Isomorfismos de grafos

(Continuación del ejemplo)


Ejemplo: Grafo G Grafo H
Sin embargo NO son isomorfos.
u1 v1
Para comprobarlo, se debe observar que cualquier isomorfismo de G1
en G2 debe hacer corresponder al vértice a de G1 un vértice de G2 u6 u2 v6 v2
que tenga el mismo grado que a.
Ya que (a) = 2, al vértice a debe corresponderle uno de los vértices u5 u3 v5 v3
t, u, x, y, que son los vértices de grado 2 del grafo G2 .
Pero cada uno de estos cuatro vértices es adyacente a otro vértice de u4 v4
grado 2 de G2 , lo que no es cierto para el vértice a de G1 .

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 57 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 59 / 178

Isomorfismos de grafos Isomorfismos de grafos

Ejemplo:
Estudiar el número de caminos y circuitos nos puede ayudar a
determinar si dos grafos son isomorfos o no. u2 v1

Por ejemplo, la existencia de un circuito de una longitud concreta es un


u1 u3 v5 v2
invariante útil que se puede usar para mostrar que dos grafos no son
isomorfos.
Además podemos utilizar los caminos a la hora de construir posibles u5 u4 v4 v3
isomorfismos. G H

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 58 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 60 / 178
4.5 Planaridad 4.5 Planaridad
Fórmula de Euler

Definición Una representación plana de un grafo G divide al plano en regiones,


Se dice que un grafo es plano si puede dibujarse en el plano sin que se partes del plano que quedan delimitadas por las aristas y los vértices.
corten ningún par de aristas. (Por ‘‘corte de aristas’’ se entiende la La parte externa, no acotada, también se considera región.
intersección de líneas que representan a las aristas en un punto distinto de 110 111
2
sus extremos). A este dibujo se le llama representación plana del grafo. 010 011
3 1 5 6
Ejemplo: u2 u2 000 001
1 2 4 4
3 100 101
u1 u3 u5 u3

Teorema (Fórmula de Euler)


u5 u4 u1 u4 Sea G = (V, E) un grafo plano conexo con |V| = v, |E| = e. Sea r el
número de regiones de una representación plana de G. Entonces,
v e + r = 2.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 61 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 63 / 178

4.5 Planaridad 4.5 Planaridad


Fórmula de Euler
Ejemplo
Teorema
El grafo K3,3 es un grafo no plano.

Demostración:
Grafo K4 Supongamos que K3,3 fuese plano. Usando el teorema anterior, debería
Ejemplo tener 9 6 + 2 = 5 regiones.
110 111 110 111
Por otra parte, en K3,3 cada ciclo debe contener al menos 4 aristas (por ser
bipartito). Luego cada región debe estar acotada por un ciclo de 4 aristas al
100 101 010 011 menos. Así, el número de aristas de todas las regiones debe ser mayor o
igual que 4r.
010 011 000 001
Pero ya que cada arista es común a dos regiones, se contará como máximo
000 001 100 101 dos veces. Por eso, el número total de aristas debe ser menor o igual a 2e.
Grafo Q3 18
4r  2e =) 4r  2 · 9 =) r  = 4,5 < 5
4
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 62 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 64 / 178
Y esto contradice que r = 5. Por lo tanto, el grafo K3,3 no es plano.
4.5 Planaridad 4.5 Planaridad
Fórmula de Euler Grafos Homeomorfos

Corolario (1)
Sea G = (V, E) un grafo plano conexo con |V| = v vértices, |E| = e Definición
aristas, r regiones y v 3 y e > 2. Entonces, 3r  2e y e  3v 6. Se dice que los grafos G1 = (V1 , E1 ) y G2 = (V2 , E2 ) son homeomorfos si se
puede obtener el uno del otro insertando o eliminando vértices de grado 2.
Corolario (2)
Sea G un grafo plano conexo. Entonces G tiene un vértice de grado Ejemplo:

menor o igual a 5.

Corolario (3)
Si un grafo plano conexo tiene e aristas y v vértices, con v 3 y no
contiene ciclos de longitud tres, entonces e  2v 4.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 65 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 67 / 178

4.5 Planaridad 4.5 Planaridad


Fórmula de Euler Grafos Homeomorfos

El corolario 1 permite demostrar que K5 no es plano, ya que

3·v 6=3·5 6=96 10 = e Teorema


Si dos grafos conexos son homeomorfos, entonces ambos son planos o no
Los corolarios anteriores establecen condiciones necesarias, pero no planos.
suficientes. Por ejemplo, ya hemos visto que K3,3 no es plano, sin
embargo, verifica la desigualdad del corolario 1:
Corolario
3·v 6=3·6 2 = 12 9=e Cualquier grafo que es homeomorfo a K5 o a K3,3 es no plano.

El corolario 3 también permite deducir que K3,3 no es plano:


e = 9 6 8 = 2 · 6 4=2·v 4.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 66 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 68 / 178
4.5 Planaridad 4.5 Planaridad
Teorema de Kuratowski Teorema de Kuratowski

Ejemplo: Estudia si es plano el grafo de Petersen


El matemático polaco Kazimierz Kuratowski estableció en 1930 el siguiente Solución:
teorema que caracteriza los grafos planos utilizando el concepto de v6 v6
homeomorfismo de grafos.
v1 v1 v1
Teorema (Kuratowski) v10 v7 v7 v7
Un grafo es no plano si, y sólo si, contiene un subgrafo que es homeomorfo v5 v2 v5 v2 v2
al grafo K5 ó al grafo K3,3 . v4 v3 v4 v3 v4 v3

v9 v8 v9 v8 v8

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 69 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 71 / 178

4.5 Planaridad 4.6 Coloración de Grafos


Teorema de Kuratowski Introducción

Colorear los vértices de un grafo consiste en asignar un color a cada vértice


Ejemplo: Estudia si es plano el grafo de Petersen del grafo de manera que dos vértices adyacentes no tengan el mismo color.
v6 Definición
Sea G = (V, E) un grafo simple y C = {1, 2, . . . , m} un conjunto de m
v1 colores. Una coloración con m colores de los vértices del grafo G es una
v10 v7 función c : V ! C tal que si u, v 2 V y {u, v} 2 E, entonces c(u) 6= c(v).
v5 v2
Se puede colorear un grafo asignando un color distinto a cada vértice.
v4 v3
Sin embargo, para la mayor parte de los grafos, se puede encontrar una
coloración que utiliza menos colores que el número de vértices del
v9 v8
grafo.
¿Cuál es el número mínimo que se requiere?
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 70 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 72 / 178
4.6 Coloración de Grafos 4.6 Coloración de Grafos
Algoritmo para colorear los vértices de un grafo

Sea G = (V, E) un grafo.

Definición Se ordenan los vértices del grafo según su grado V = {v1 , . . . , vn }

El número cromático del grafo es el mínimo número de colores necesario (v1 ) (v2 ) . . . (vn 1) (vn )
para su coloración. Se denota (G).
Se asigna el color 1 al primer vértice v1 , es decir, c(v1 ) = 1 .
Para determinar que el número cromático de un grafo es m son necesarios Siguiendo la lista de vértices, se asigna el color 1 a cada vértice que no
dos pasos: sea adyacente a v1 ni a ningún vértice coloreado con 1.
1 Demostrar que el grafo se puede colorear con m colores. Se asigna el color 2 al primer vértice de la lista que no esté coloreado
2 Demostrar que el grafo no se puede colorear usando menos de m aun.
colores. Siguiendo la lista de vértices, se asigna el color 2 a cada vértice que no
esté coloreado aun y que no sea adyacente a ningún vértice coloreado
con 2.
Se repite este proceso hasta que todos los vértices estén coloreados.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 73 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 75 / 178

4.6 Coloración de Grafos 4.6 Coloración de Grafos


Ejemplo 1 Halla el número cromático del grafo G de la figura
b e
Ejemplo 1
a d g
Solución: Grados 4 4 4 4 4 2 2
c f
3 (G) 3, ya que a los vértices a, b y c se les debe asignar colores Vértices b c d e f a g
distintos. Color 1 2 3 2 1 3 3
3 Para ver si se puede colorear G con 3 colores, le asignamos el rojo al vértice
b e
a, el azul al vértice b y el verde al vértice c.
3 Entonces, d se puede (y se tiene que) colorear en rojo, ya que es adyacente a g
a d
b y a c. Además el vértice e se puede (y se tiene que) colorear en verde, ya
que sólo es adyacente a vértices coloreados en rojo y en azul, y f se puede (y
c f
se tiene que) colorear en azul, ya que sólo es adyacente a vértices coloreados
en rojo y en verde.
3 Finalmente, g se puede (y se tiene que) colorear en rojo.
3 Esto produce una coloración deTema
Agustín Valverde (UMA)
los4: vértices de G usando solamente 3 colores.
Teoría de Grafos 74 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 76 / 178

Si al grafo G se le añade un arco entre los vértices a y g, se obtiene un


4.6 Coloración de Grafos 4.6 Coloración de Grafos

Ejemplo 4 ¿Cuál es el número cromático del grafo Cn ?

Ejemplo 2 ¿Cuál es el número cromático del grafo Kn ? Solución:

Solución: 3 En primer lugar, empezamos con algunos caso particulares, por ejemplo

3 (Kn )  n, ya que puede construirse una coloración del grafo n = 6.

asignando un color distinto a cada vértice. 3 Elegimos un vértice y lo coloreamos de rojo.

3 ¿Hay alguna coloración que use menos colores? La respuesta es NO. 3 Continuamos siguiendo el sentido de las agujas del reloj y le asignamos

3 No puede asignarse el mismo color a dos vértices distintos, ya que dos un segundo color (azul) al siguiente vértice al que llegamos.

vértices cualesquiera de este grafo siempre son adyacentes. 3 Proseguimos en el sentido de las agujas del reloj: el siguiente vértice se

3 Por lo tanto, el número cromático de Kn es n. puede colorear en rojo, el cuarto en azul y el quinto en rojo.
3 Finalmente, el sexto vértice que es adyacente al primero, puede
colorearse en azul. Por tanto, el número cromático del grafo Cn es 2.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 77 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 79 / 178

4.6 Coloración de Grafos 4.6 Coloración de Grafos


Ejemplo 3 ¿Cuál es el número cromático del grafo Km,n ? Ejemplo 4 ¿Cuál es el número cromático del grafo Cn ?
Solución: Solución: (cont.)
3 Podría pensarse que el número de colores depende de m y n. 3 A continuación tomamos n = 5 y consideramos C5 .
3 Sin embargo, sólo se necesitan dos colores. 3 Elegimos un vértice y lo coloreamos en rojo.
3 Moviéndonos en el sentido de las agujas del reloj, tenemos que asignarle
3 Se colorea el conjunto de m vértices de un color y el conjunto de n
un segundo color (digamos azul) al siguiente vértice que alcanzamos.
vértices de un segundo color.
3 Prosiguiendo en el sentido de las agujas del reloj, el tercer vértice se
3 Como los arcos conectan siempre un vértice del conjunto de m
puede colorear en rojo y el cuarto en azul.
vértices con uno del conjunto de n vértices, ningún par de vértices
3 El quinto vértice no puede colorearse en rojo ni en azul ya que es
adyacentes se colorea del mismo color.
adyacente al cuarto y al primero.
* Todo grafo simple bipartito y conexo tiene número cromático 2 (o 1, si
3 Luego, hace falta utilizar un tercer color para ese vértice.
no tiene arcos), ya que el razonamiento anterior se aplica a cualquier
3 Por lo tanto, el número cromático de C5 es 3.
grafo con esas características.
(Observa que habríamos necesitado tres colores también, si hubiéramos
* Recíprocamente, cualquier grafo con número cromático 2 es bipartito. seguido el sentido contrario a las agujas del reloj.)
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 78 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 80 / 178
4.6 Coloración de Grafos 4.6 Coloración de Grafos

Ejemplo 4 ¿Cuál es el número cromático del grafo Cn ?


Solución: (cont.) Ejercicios

3 En general, se necesitan 2 colores para colorear Cn cuando n es par. 1 Demuestra que un grafo simple es bipartito si y solo si su número
3 Para construir una coloración, simplemente se elige un vértice y se cromático es 2.
colorea en rojo. 2 Diseña un algoritmo que permita determinar si un grafo es bipartito,
3 Se procede recorriendo el grafo en el sentido de las agujas del reloj obteniendo el conjunto de vértices V como la unión de dos conjuntos
(utilizando un representación plana del grafo) coloreando el siguiente disjuntos V1 y V2 . (Sugerencia: Tomando el conjunto de vértices
vértice en azul, el tercero en rojo y así sucesivamente. V = {1, 2, . . . , n}, partir de la situación inicial V1 = {1} y V2 = ?. Ir
añadiendo al conjunto V2 los vértices adyacentes a vértices del
3 El vértice n -ésimo se puede colorear en azul, ya que los dos vértices
conjunto V1 y recíprocamente, comprobando en cada adición si su
adyacentes a él (esto es, el vértice n 1 -ésimo y el primero) están
intersección es vacía.)
coloreados en rojo.
(Se elige el rojo para los vértices impares y el azul para los pares).

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 81 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 83 / 178

4.6 Coloración de Grafos 4.6 Coloración de Grafos


Aplicaciones de la coloración de grafos

La coloración de grafos tiene una gran variedad aplicaciones en problemas


Ejemplo 4 ¿Cuál es el número cromático del grafo Cn ?
relacionados con planificación y asignación.
Solución: (cont.)
Programación de exámenes finales ¿Cómo se pueden programar los
3 Cuando n es impar y n > 1, el número cromático de Cn es 3.
exámenes finales de una universidad de modo que ningún estudiante
3 Para comprobarlo, elegimos un vértice inicial.
tenga dos exámenes al mismo tiempo?
3 Para usar sólo dos colores, tenemos que ir alternando los colores a Solución: Este problema de planificación se puede resolver utilizando
medida que recorremos el grafo en el sentido de las agujas del reloj. un modelo con grafos en el que los vértices representan las asignaturas
3 Sin embargo, el n -ésimo vértice al que llegamos es adyacente a dos y hay un arco entre dos vértices si hay un estudiante matriculado en las
vértices de distinto color, a saber, el vértice n 1 -ésimo y el primero. asignaturas representadas por dichos vértices. Cada segmento horario
3 Por tanto tiene que emplearse un tercer color. reservado para un examen final se representa mediante un color
diferente. Una programación de los exámenes corresponde a una
coloración del grafo asociado.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 82 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 84 / 178
4.6 Coloración de Grafos 4.6 Coloración de Grafos
Aplicaciones de la coloración de grafos Aplicaciones de la coloración de grafos

Ejercicio
Ejercicio
¿Cuántos canales distintos se necesitan para 6 estaciones localizadas a las
El jefe de una escuela tiene que programar las fechas de los exámenes
distancias que se muestran en la siguiente tabla si dos estaciones no pueden
finales de 7 asignaturas: a1 , a2 , a3 , a4 , a5 , a6 , a7 . Se sabe que los siguientes
usar el mismo canal cuando están a menos de 150 Km una de la otra?
pares de asignaturas tienen alumnos en común:
1 2 3 4 5 6
{a1 , a2 }, {a1 , a3 }, {a1 , a4 }, {a1 , a7 }, {a2 , a3 }, {a2 , a4 }, {a2 , a5 }, {a2 , a7 }, 1 85 175 200 50 100
2 85 125 175 100 160
{a3 , a4 }, {a3 , a6 }, {a3 , a7 }, {a4 , a5 }, {a4 , a6 }, {a5 , a6 }, {a5 , a7 }, {a6 , a7 } 3 175 125 100 200 250
4 200 175 100 210 220
¿Cuántos días son necesarios para realizar todos los exámenes de modo que 5 50 100 200 210 100
ningún estudiante tenga dos exámenes el mismo día? 6 100 160 250 220 100

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 85 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 87 / 178

4.6 Coloración de Grafos 4.6 Coloración


Aplicaciones de la coloración de grafos Aplicaciones de la coloración de grafos:Coloración de mapas

Ejercicio Cada mapa se puede representar mediante un grafo en el que:


En un laboratorio hay una serie de compuestos químicos, a, b, c, d, e, f, g, h cada vértice representa una región del mapa y
que hay que almacenar en cajas para su traslado. No pueden ser las aristas conectan dos vértices que indiquen regiones con frontera
almacenados en una misma caja dos compuestos que reaccionen entre sí común.
(como ácidos y bases). Los productos que reaccionan vienen dados por la Este grafo se llama grafo dual del mapa.
siguiente tabla: Ejemplo
a b c d e f g h
b a a b b c d e
Co Ja
c d e e c h e f Hu Se
e f g d h g Gr Al
g Ma
Ca
h
¿Cómo podemos elegir los elementos que hemos de introducir en cada caja? Por construcción, los grafos duales de mapas son grafos planos.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 86 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 88 / 178
¿Cuántas cajas serán necesarias para poder trasladar los productos?
4.6 Coloración Tema 4: Teoría de Grafos
Aplicaciones de la coloración de grafos:Coloración de mapas 4.7 Árboles

Colorear las regiones de un mapa es asignar colores a dichas regiones, de


Los árboles son grafos conexos sin ciclos.
manera que dos regiones con frontera común reciban distinto color.
Esto equivale a colorear los vértices de su grafo dual, que es plano. Cayley los usó por primera vez en 1857 para representar ciertos tipos de
En 1976 se demostró el teorema de los 4 colores, conjeturado en 1852. componentes químicos.

Teorema (Guthrie/ Appel/ Haken) Ejemplo


H H
El número cromático de un grafo plano es menor o igual a 4.
| |
De este teorema se deduce el siguiente H C C O H
| |
Corolario
H H
Todo mapa se puede colorear con 4 colores.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 89 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 91 / 178

4.6 Coloración 4.7 Árboles


Aplicaciones de la coloración de grafos:Coloración de mapas Introducción

Ejemplo Coloración del mapa de Andalucía.

En Ciencias de la Computación los árboles nos sirven para:


Co Ja almacenar y recuperar la información.
Hu
Se
construir algoritmos eficientes para localizar items en una lista.
Gr Al construir códigos eficientes para almacenar / transmitir datos.
Ma

Ca
modelar procedimientos que se realizan usando una secuencia de
decisiones. Por tanto, son útiles en los algoritmos de clasificación.

Ma Gr Co Se Ca Hu Ja Al
4 4 4 4 3 3 2 1

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 90 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 92 / 178
4.7 Árboles 4.7 Árboles
Conceptos fundamentales Conceptos fundamentales

Definición
Un árbol es un grafo conexo sin ciclos. Definición
Se llama bosque a un grafo acíclico cuyas componentes conexas son árboles.
Ejemplo Indica qué grafos de la siguiente figura son árboles.
Ejemplo El grafo G4 es un bosque.
G1 G2 G3 G4

3 Puesto que un árbol es un grafo acíclico, no puede contener bucles,


ni aristas múltiples.
3 Por tanto, un árbol es, necesariamente, un grafo simple.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 93 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 95 / 178

4.7 Árboles 4.7 Árboles


Conceptos fundamentales Propiedades de los Árboles

Ejemplo Indica qué grafos de la siguiente figura son árboles.


Teorema
G1 G2 G3 G4 Un grafo no dirigido G = (V, E) es un árbol si, y sólo si, hay un único
camino entre cada par de vértices.

Teorema
Sea G = (V, E) un grafo simple. Son equivalentes:
1 G es un árbol.
2 G es conexo y |E| = |V| 1.
3 G no tiene ciclos y |E| = |V| 1.
Los grafos G1 y G2 son árboles, pero G3 y G4 no lo son. 4 En G hay exactamente un camino entre cada par de vértices.
El grafo G3 tiene un ciclo y el grafo G4 no es conexo. 5 G es conexo, pero si eliminamos una arista cualquiera, el grafo
resultante no es conexo.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 94 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 96 / 178
4.7 Árboles 4.7 Árboles
Árboles generadores Árboles generadores

3 Un grafo simple puede tener más de un árbol generador


Los árboles tienen propiedades de minimalidad, en el sentido de que
Z
son los grafos conexos con el menor número posible de aristas. B
Modelan, así, redes de comunicaciones con un mínimo número de M
V
conexiones entre nodos. PM

Se
Definición
Ma
Un subgrafo generador de un grafo simple G = (V, E) es cualquier
subgrafo de G que incluye todos los vértices de G. Z Z
B B
M M
Definición V V
PM PM
Un árbol generador (spanning tree) de un grafo simple G = (V, E) es un
Se Se
subgrafo generador de G que es un árbol.
Ma Ma
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 97 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 99 / 178

4.7 Árboles 4.7 Árboles


Árboles generadores Árboles generadores

Si un grafo simple tiene un árbol generador, entonces es conexo claramente.


El recíproco también es cierto. Así tenemos
Ejemplo Un árbol generador del grafo G es el árbol T
Teorema
Z Z
B B Un grafo simple G es conexo si y sólo si tiene un árbol generador T.
M M
V V Demostración: ((=) Evidente, por ser T un árbol.
PM PM
(=)) Sea G un grafo conexo. Si G no es un árbol, contiene un ciclo.
Se Se Al quitar uno de las aristas de ese ciclo, nos queda un subgrafo con una arista
Ma Ma menos pero que todavía contiene todos los vértices de G y es conexo.
Grafo G Árbol generador T Si este subgrafo no es un árbol, tendrá un ciclo.Se procede igual que antes
y se repite el proceso anterior hasta que no queden ciclos.
El resultado es un árbol, ya que el grafo permanece conectado mientras las
aristas se eliminan. Este árbol es un árbol generador.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 98 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 100 / 178
4.7 Árboles 4.7 Árboles
Árboles con raíz Árboles con raíz

En muchas aplicaciones se necesita destacar un vértice particular.


A este vértice se le llama raíz.
3 Para dibujar un árbol con raíz se dibuja la raíz en la parte superior del
Una vez especifiada la raíz, podemos asignar una dirección a cada arista grafo.
del árbol de la siguiente manera: puesto que hay un único camino entre
3 Las flechas indicando las direcciones de los arcos se pueden omitir, ya
la raíz y cada uno de los restantes vértices, la dirección de cada arista
que la elección de la raíz determina las orientaciones de los arcos.
es la que se aleja de la raíz.
De esta manera, un árbol junto a su raíz produce un grafo dirigido
llamado árbol con raíz.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 101 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 103 / 178

4.7 Árboles 4.7 Árboles


Árboles con raíz Árboles con raíz

Definición
Definición
Un árbol con raíz es un árbol en el que uno de sus vértices se ha designado
Sea T un árbol con raíz y sea v un vértice distinto a la raíz.
como la raíz y todas las aristas están orientadas de modo que se alejan de
la raíz. El padre de v es el único vértice u tal que hay una arista dirigida
desde u hasta v .
Ejemplo Del árbol T podemos obtener distintos árboles con raíz:
a Cuando u es el padre de v , se dice que v es el hijo de u .
a c
e Los vértices con el mismo padre se llaman hermanos.
b
Los antecesores de un vértice v son todos los vértices que aparecen
b e
d c d b en el camino desde la raíz hasta v .
f
f e f a c d Los descendientes de un vértice v son aquellos vértices para los que
v es un antecesor.
Árbol T Árbol con raíz a Árbol con raíz e

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 102 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 104 / 178
4.7 Árboles 4.7 Árboles
Árboles con raíz Árboles con raíz

Definición Los árboles con raíz tales que todos sus vértices internos tienen el
Sea T un árbol con raíz y sea v un vértice distinto a la raíz. mismo número de hijos se utilizan en múltiples aplicaciones.
Una hoja es un vértice que no tiene hijos. Estos árboles se usan para estudiar problemas relativos a la búsqueda,
Los vértices internos son los vértices que tienen hijos. la ordenación y la codificación.

Si x es un vértice de un árbol con raíz T , el subárbol con raíz en x


Definición
es el subgrafo de T que contiene al vértice v , a todos sus
Un árbol con raíz se llama árbol m-ario si todos los vértices internos
descendientes y a todas las aristas incidentes en dichos descendientes.
tienen, a lo sumo, m hijos.
Se denota Tx
El árbol se llama m-ario completo si cada vértice interno tiene
* La raíz se considera vértice interno, a menos que sea el único vértice exactamente m hijos.
del grafo. En ese caso, se considerará una hoja. Un árbol m -ario con m = 2 se llama árbol binario.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 105 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 107 / 178

4.7 Árboles 4.7 Árboles


Árboles con raíz Árboles con raíz

Ejemplos

a Ejemplos

a r
b c d d
b c d u v w
e f g h f g h
e f g h i j x y z
i j k l m n l m n
Árbol ternario completo Árbol ternario (no completo)

Árbol T con raíz en a Subárbol con raíz en d

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 106 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 108 / 178
4.7 Árboles 4.7 Árboles
Árboles con raíz Árboles con raíz

¿Cómo se relacionan los números de vértices y de aristas?

Teorema
Un árbol de n vértices tiene n 1 aristas. Ejercicio 2
Un aula tiene 25 ordenadores que deben conectarse a un enchufe de pared
Teorema (Propiedades de los árboles con raíz) con cuatro salidas. Se hacen las conexiones mediante cables de extensión
Un árbol m -ario completo con i vértices internos tiene n = i · m + 1 con cuatro salidas cada uno.
vértices. ¿Cuál es el número mínimo de cables que se necesitan para poder utilizar
Sea T un árbol m -ario completo y sean n el número de vértices, todos los ordenadores?
i el número de vértices internos y l el número de hojas del árbol.

* Una vez que algunos de los enteros n, i ó l es conocido, las otras


dos cantidades quedan determinadas.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 109 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 111 / 178

4.7 Árboles 4.7 Árboles


Árboles con raíz Árboles con raíz

Ejercicio 3
Ejercicio 1 En una compañía donde trabajan 125 ejecutivos se instala un nuevo sistema
de comunicación telefónica. Lo inaugura la presidenta, quien llama a sus
1 Un árbol ternario completo tiene 34 vértices internos. ¿Cuántas aristas
cuatro vicepresidentes. A continuación, cada vicepresidente llama a otros
tiene? ¿Cuántas hojas?
cuatro ejecutivos; éstos, a su vez, a otros cuatro y así sucesivamente.
2 ¿Cuántos vértices internos tiene un árbol 5-ario completo con 817 hojas?
1 ¿Cuántas llamadas son necesarias para comunicar con los 125 ejecutivos?
2 ¿Cuántos ejecutivos hacen llamadas?

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 110 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 112 / 178
4.7 Árboles 4.7 Árboles
Árboles con raíz Árboles con raíz ordenados

Definición
Definición Un árbol con raíz ordenado es un árbol con raíz en el que los hijos de cada
El nivel de un vértice v en un árbol con raíz es la longitud del único vértice interno están ordenados.
camino desde la raíz hasta dicho vértice. (El nivel de la raíz es cero)
3 Los árboles ordenados con raíz se dibujan de modo que los hijos de cada
La altura de un árbol con raíz es el máximo de los niveles de sus
vértice interno se colocan ordenados de izquierda a derecha.
vértices.
Un árbol con raíz m -ario de altura h está equilibrado o balanceado En un árbol binario completo ordenado , el primer hijo de cada vértice
si todas sus hojas están en los niveles h o h 1. interno se llama hijo izquierdo y el segundo se llama hijo derecho.
El árbol con raíz en el hijo izquierdo se llama subárbol izquierdo y el árbol
con raíz en el hijo derecho se llama subárbol derecho.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 113 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 115 / 178

4.7 Árboles 4.7 Árboles


Árboles con raíz Árboles con raíz ordenados

Ejemplos
Teorema
a a
Un árbol m -ario de altura h tiene, a lo sumo, mh hojas.
b c b c
Corolario
Si un árbol m -ario de altura h tiene l hojas, entonces h dlogm l e. d e e d
Si el árbol m -ario es completo y equilibrado, entonces h = dlogm l e.
f g f g
(Se recuerda que dxe es el menor entero mayor o igual que x ). Árbol T1 Árbol T2

Ejercicio Los árboles T1 y T2 son iguales como árboles no ordenados.

¿Cuál es el número máximo de vértices internos que puede tener un árbol Sin embargo, como árboles ordenados no son iguales, ya que en T1 el

cuaternario completo de altura 8? vértice d es el hijo izquierdo de c y en T2 el vértice d es el hijo


derecho de c.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 114 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 116 / 178
4.7 Árboles 4.7 Árboles
Árboles con raíz ordenados Árboles con raíz ordenados

¿Cómo se evalúan expresiones representadas por a. r. o. ?


Los árboles con raíz ordenados se usan para representar El árbol se evalúa empezando desde abajo y asignando valores a cada
expresiones algebraicas, vértice interior, ya que las expresiones de los paréntesis más profundos
enunciados, se evalúan primero (se ejecutan de dentro hacia fuera).
expresiones en un lenguaje, etc A un vértice etiquetado con un operador se le asigna el valor que
resulta de realizar la operación sobre los valores de sus hijos.
Las hojas del árbol se etiquetan con variables, constantes, V, F, ... y los
vértices interiores se etiquetan con operadores o conectivos. Este proceso se puede considerar como un ’plegado’ del árbol hacia
arriba.
Estos árboles deben ser ordenados cuando las operaciones
Se ilustra por una secuencia de árboles.
no son conmutativas.
Cada árbol de la secuencia se obtiene de su predecesor ’plegando’ un
subárbol consistente en un vértice y las hojas que son sus hijos.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 117 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 119 / 178

4.7 Árboles 4.7 Árboles


Árboles con raíz ordenados Árboles con raíz ordenados

⇣ ⌘
Ejemplo (x + y) ⇤ z u⇤v
⇣ ⌘
Ejemplo La expresión algebraica (x + y) ⇤ z u⇤v se puede
representar mediante un árbol ordenado

⇤ ⇤

⇤ ⇤ + z u v

+ z u v x y

x y Para evaluarlo asignamos valores a las variables

x=9 y=5 z=4 u=2 v=3

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 118 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 120 / 178
4.7 Árboles 4.7 Árboles
Árboles con raíz ordenados Recorridos en Árboles: Introducción

3 Los árboles con raíz ordenados se usan para almacenar información.


⇤ ⇤ ⇤ ⇤
3 Se necesitan procedimientos para visitar cada vértice de un árbol con
14 4 2 3 raíz ordenado para acceder a los datos.
+ 4 2 3
Recorridos: Procedimientos para visitar los vértices del á.r.o.
9 5 3 Describiremos varios algoritmos importantes para visitar todos los
vértices de un árbol con raíz ordenado.
1 Recorrido en orden previo (Preorder)
50
56 ⇤ 56 6 2 Recorrido en orden simétrico (Inorder)

2 3 3 Recorrido en orden posterior (Postorder)

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 121 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 123 / 178

4.7 Árboles 4.7 Árboles


Árboles con raíz ordenados Recorridos en Árboles: Orden Previo

1 Preorder Sea T un árbol con raíz r ordenado.

Si T solo consta de la raíz, entonces r es el recorrido en orden


56 ⇤
previo de T.

2 3 56 6 En otro caso, supongamos que v1 , v2 , ..., vk son los hijos de r de


50
izquierda a derecha en T y T1 , T2 , ..., Tk los subárboles
3 Este procedimiento se llama evaluación ’botton-up’ de la correspondientes.
representación de árbol de la expresión. El recorrido en orden previo empieza por visitar la raíz r, continúa
3 Se usa para el análisis sintáctico de una gramática. recorriendo T1 en orden previo, después T2 en orden previo y así
sucesivamente hasta que Tk es recorrido en orden previo.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 122 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 124 / 178
4.7 Árboles 4.7 Árboles
Recorridos en Árboles: Orden Previo Recorridos en Árboles: Orden Simétrico

Preorder 2 Inorder Sea T un árbol con raíz r ordenado.

Paso 1: Visitar la raíz r. Si T solo consiste en la raíz, entonces r es el recorrido en orden


Paso 2: Recorrer T1 en orden previo. simétrico de T.
Paso 3: Recorrer T2 en orden previo. En otro caso, supongamos que v1 , v2 , ..., vk son los hijos de r de
..
. izquierda a derecha en T y T1 , T2 , ..., Tk los subárboles
Paso k+1: Recorrer Tk en orden previo. correspondientes.
El recorrido en orden simétrico empieza recorriendo T1 en orden
3 El recorrido en orden previo de un árbol con raíz ordenado nos da la
simétrico, después visita la raíz r, continúa recorriendo T2 en orden
misma ordenación de los vértices que la ordenación obtenida usando el
simétrico, después T3 en orden simétrico y así sucesivamente hasta
sistema universal de direcciones.
que Tk es recorrido en orden simétrico.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 125 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 127 / 178

4.7 Árboles 4.7 Árboles


Recorridos en Árboles: Orden Previo Recorridos en Árboles: Orden Simétrico

Ejemplo
r

v s Inorder Sea T un árbol con raíz r ordenado.

u w p q Paso 1: Recorrer T1 en orden simétrico.


Paso 2: Visitar la raíz r.
x y z
Paso 3: Recorrer T2 en orden simétrico.
r Tv Ts ..
.

r v Tu Tw s Tp Tq Paso k+1: Recorrer Tk en orden simétrico.

r v u w Tx Ty Tz s p q

r v u w x y z s p q

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 126 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 128 / 178
4.7 Árboles 4.7 Árboles
Recorridos en Árboles: Orden Simétrico Recorridos en Árboles: Orden Posterior

Ejemplo
r

v s Postorder
u w p q Paso 1: Recorrer T1 en orden posterior.
Paso 2: Recorrer T2 en orden posterior.
x y z ..
.
Tv r Ts Paso k: Recorrer Tk en orden posterior.

Tu v Tw r Ts Paso k+1: Visitar la raíz r.

u v Tx w Ty Tz r Tp s Tq

u v x w y z r p s q

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 129 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 131 / 178

4.7 Árboles 4.7 Árboles


Recorridos en Árboles: Orden Posterior Recorridos en Árboles: Orden Posterior

Ejemplo
r
3 Postorder Sea T un árbol con raíz r ordenado.
v s
Si T solo consiste en la raíz, entonces r es el recorrido en orden
u w p q
posterior de T.
En otro caso, supongamos que v1 , v2 , ..., vk son los hijos de r de x y z
izquierda a derecha en T y T1 , T2 , ..., Tk los subárboles
Tv Ts r
correspondientes.
El recorrido en orden posterior empieza por recorrer T1 en orden Tu Tw v Ts r

posterior, después T2 en orden posterior y así sucesivamente hasta u Tx Ty Tz w v Tp Tq s r


que Tk es recorrido en orden posterior y termina visitando la raíz r.
u x y z w v p q s r

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 130 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 132 / 178
4.7 Árboles 4.7 Árboles
Recorridos en Árboles. Notación polaca Recorridos en Árboles. Notación polaca

Los recorridos en preorden, postorden e inorden permiten dar una lista


de los vértices de un árbol con raíz ordenado.
Cada uno de estos listados determina de forma única al árbol y, por lo
Si este árbol representa una expresión algebraica, los vértices están tanto, a la expresión que representa.
etiquetados con signos de operaciones, variables y constantes. Y el
listado obtenido nos puede servir para evaluar la expresión. El lógico polaco Lukasiewicz demostró que estas expresiones no son
ambiguas sin paréntesis.
Por ejemplo, utilizando la notación algebraica usual, la lista 4⇤3/2
determina el número 6. El listado en preorden se conoce como notación (polaca) prefija, el
La lista 4+3⇤2 es ambigua, ¿expresa el 10 ó el 14 ? listado en orden posterior como notación (polaca) inversa o sufija y la
notación usual, con los paréntesis necesarios, se llama notación infija.
A continuación estudiaremos un método, (la notación polaca), para
definir operaciones algebraicas sin usar paréntesis y sin establecer
prioridad entre operadores, utilizando listas obtenidas de árboles.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 133 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 135 / 178

4.7 Árboles 4.7 Árboles


Recorridos en Árboles. Notación polaca Recorridos en Árboles. Notación polaca

✓ ◆ Conociendo el número de hijos de cada vértice interior, a partir de la


2 y+2
Ejemplo La expresión algebraica (x 4) se puede escribir expresión x4 2 " y 2 + 3 / ⇤ en notación sufija podemos recuperar la
⇣ ⌘ ⇣ ⌘ 3
(x 4) " 2 ⇤ (y+2)/3 y se representa por el árbol con raíz ordenado expresión algebraica inicial.
x4 2"y2+3/⇤

x4 2"y2+3/⇤
| {z }
" / (x 4) 2 " y 2 + 3 / ⇤
|⇣ {z } ⌘
(x 4) " 2 y 2 + 3 / ⇤
2 + 3 ⇣ ⌘ | {z }
(x 4) " 2 (y+2) 3 / ⇤
x 4 y 2 ⇣ ⌘
(x 4) " 2 (y+2) 3 / ⇤
El recorrido en orden previo de este árbol es ⇤" x42/+y23 ⇣ ⌘ ⇣| {z }⌘
(x 4) " 2 (y+2)/3 ⇤
y el recorrido en orden posterior es x4 2"y2+3/⇤ | {z } ✓ ◆
⇣ ⌘ ⇣ ⌘
y+2
(x 4) " 2 ⇤ (y+2)/3 = (x 4)2
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 134 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos
3 136 / 178
4.7 Árboles 4.7 Árboles
Recorridos en Árboles. Notación polaca Recorridos en Árboles. Notación polaca

Ejercicio Dada la expresión Ejercicio Dada la expresión algebraica

(¬(p _ (q ^ r))) _ ((¬p _ q) ^ (p ! r)) ((((A + B) ⇤ C) + D) ⇤ E) ((A + B) ⇤ C)

1 Represéntala mediante un árbol. 1 Represéntala mediante un árbol binario.


2 Describe algún procedimiento para determinar el recorrido en orden
2 Escribe su representación prefija (polaca) y postfija (polaca inversa).
previo y el recorrido en orden posterior y utilízalo en el árbol anterior.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 137 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 139 / 178

4.7 Árboles 4.7 Árboles


Recorridos en Árboles. Notación polaca Recorridos en Árboles. Notación polaca

Ejercicio
1 Define recorrido en orden previo y recorrido en orden posterior.
Ejercicio Se sabe que una expresión algebraica se representa en notación
2 Dada la expresión sufija como
AB + CD ⇤ EF/ A⇤
(((p1 _ p2 ) ! q) () ((p1 ! q) ^ (p2 ! q)))
1 Traza un árbol binario que represente a dicha expresión algebraica.

1 Represéntala mediante un árbol. 2 Escribe su expresión en notación infija y en notación prefija.


2 Describe algún procedimiento para determinar el recorrido en
orden previo y el recorrido en orden posterior y utilízalo en el árbol
anterior.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 138 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 140 / 178
4.7 Árboles 4.7 Árboles
Árboles de Búsqueda Árboles de Búsqueda: Búsqueda en anchura (B.E.A.)

Algoritmo B. E. A.
Se elige un vértice arbitrario como raíz y se designa v0 .
A continuación se añaden todas las aristas incidentes con ese vértice.
Para determinar una propiedad de un grafo, a menudo hay que explorar
Los nuevos vértices añadidos en esta fase forman los vértices del nivel 1
cada uno de los vértices y aristas en algún orden razonable.
del árbol generador. Los ordenamos en cualquier orden.
Son importantes dos recorridos: Para cada vértice del nivel 1, visitados en orden, se añaden todas las
aristas incidentes con él (siempre que no formen ciclo).
1 Búsqueda en anchura (B.E.A.)
Los nuevos vértices añadidos a esta fase forman los vértices del nivel 2
2 Búsqueda en profundidad (B. E. P.) del árbol.
Seguimos el mismo procedimiento hasta que se hayan añadido al árbol
todos los vértices del grafo G.
Este proceso termina, ya que el conjunto de vértices del grafo G es
finito.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 141 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 143 / 178

4.7 Árboles 4.7 Árboles


Árboles de Búsqueda: Búsqueda en anchura (B.E.A.) Árboles de Búsqueda: Búsqueda en anchura (B.E.A.)

Ejemplo Empezando en el vértice v , haz una búsqueda en anchura y


representa la secuencia de búsqueda de los vértices con un árbol con raíz.
Dado un un grafo conexo simple G, podemos obtener un árbol
generador mediante la búsqueda en anchura o por niveles. a f v
d
a b c
Se construye un árbol con raíz y el grafo no dirigido subyacente es el b e
v w
árbol generador. d f e g
h
c g w h

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 142 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 144 / 178
Algoritmo de Búsqueda en Profundidad (B.E.P.) 4.7 Árboles
Árboles de Búsqueda

Se elige como raíz un vértice cualquiera del grafo.

Formamos un camino que comienza en este vértice añadiendo sucesivamente


aristas y vértices, siendo cada nueva arista incidente con el último vértice del 1 La búsqueda en anchura se usará para problemas tales como:
camino y un vértice que no está en el camino. colorear grafos bipartitos,
Añadimos a este camino tantos vértices y aristas como sea posible.
encontrar el camino más corto en un grafo,
Si el camino pasa por todos los vértices del grafo, entonces el árbol generador
es dicho camino. determinar la distancia más corta desde un vértice a otro del grafo.

En caso contrario, retrocedemos al penúltimo vértice del camino y, si es


posible, formamos un nuevo camino que empiece en este vértice y que pase por
2 La búsqueda en profundidad se aplicará para:
vértices no visitados. encontrar componentes conexas

Si esto no se puede hacer, retrocedemos al vértice anterior en el recorrido comprobar si un grafo es acíclico.
hasta la raíz y lo intentamos de nuevo.

Repetimos el proceso hasta que no se puedan añadir más aristas.


Agustín Valverde (UMA) Tema 4: Teoría de Grafos 145 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 147 / 178

4.7 Árboles 4.7 Árboles


Árboles de Búsqueda: Búsqueda en Profundidad (B.E.P.) Árboles de Búsqueda

Ejercicio Considera el grafo dado por las listas de adyacencia


Ejemplo Empezando en el vértice f , haz una búsqueda en profundidad y
representa la secuencia de búsqueda de los vértices con un árbol con raíz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
f
2 1 4 3 1 2 6 9 3 4 6 7 8 9 12 13
e
5 6 9 10 6 5 12 13 8 9 12 11 12 13 16 15
g 7 10 13 14
a f
h b 11 14 15 16
d
b e w a
v w 1 Determina si es conexo haciendo una búsqueda en profundidad y
v d representa la secuencia de búsqueda de los vértices con un árbol con
h
c g c raíz.
2 Idem mediante una búsqueda en anchura.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 146 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 148 / 178
4.8 Grafos Ponderados 4.8 Grafos Ponderados
Introducción Representación de grafos ponderados

Muchos problemas se pueden representar usando grafos en los que se asigna Gráficamente, etiquetando cada arista con su peso w(e),
un número (peso) a cada una de sus aristas. Matricialmente, mediante la matriz de pesos W(G) = (wi,j ), donde
previamente se ha listado ordenadamente el conjunto de vértices. Cada
Ejemplo Para una línea aérea construimos el modelo básico representando elemento wi,j es
las ciudades mediante vértices y los vuelos mediante aristas. el peso de la arista {vi , vj } o el arco (vi , vj ) ; o bien
un símbolo para indicar que vi no es adyacente a vj .
Los problemas relacionados con distancias entre ciudades se pueden
representar asignándoles a las aristas las distancias entre ciudades. Ejemplo
0 1
Los problemas relacionados con tiempos de vuelo se pueden b 5 d 0 4 2
B C
B 4 0 1 5 C
representar asignándoles a las aristas los tiempos de vuelo 4 6 B C
B 2 1 0 8 10 C
B C
corespondientes. a 1 2 z W(G) = B C
B 5 8 0 2 6 C
8 B C
Los problemas relacionados con tarifas de vuelo se pueden representar 2 3 B
@ 10 2 0
C
3 A
asignándoles a las aristas los precios de los billetes. 6 3 0
c 10 e
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 149 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 151 / 178

4.8 Grafos Ponderados 4.8 Grafos Ponderados

Definición
En un grafo ponderado se llama longitud de un camino a la suma de los
pesos de sus aristas.
Definición
Sea G = (V, E) un grafo (o digrafo) simple. Ejemplo La longitud del camino a b d c e z es 30
Se llama peso a una función
b 5 d
w : E ! R +
4 6
e 7! w(e) a 1 2 z
8
2 3
A la terna G = (V, E, w) se le llama grafo ponderado.
c 10 e
En un grafo ponderado nos planteamos los siguientes problemas:
1 hallar un árbol generador de peso mínimo.
2 encontrar un camino de longitud mínima entre dos vértices.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 150 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 152 / 178
4.8 Grafos ponderados 4.8 Grafos ponderados
Árboles generadores minimales Árboles generadores minimales : Algoritmo de Prim

Ejemplo

Definición a
Un árbol generador minimal de un grafo conexo ponderado es un árbol 7
generador tal que la suma de los pesos de sus aristas es mínima. 8
5 b c
Para hallar árboles generadores minimales usaremos: 7
9 5
Algoritmo de Prim 15
d e
6 9
Algoritmo de Kruskal
8
11
f g

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 153 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 155 / 178

4.8 Grafos ponderados 4.8 Grafos ponderados


Árboles generadores minimales Árboles generadores minimales : Algoritmo de Prim

Ejercicio El estudio de localización de terminales de ordenadores que van a


Algoritmo de Prim
ser instalados en una empresa viene dado por la siguiente tabla, donde los
Sea G = (V, E) un grafo conexo ponderado, donde V = {v1 , v2 , ..., vp }.
números representan el coste de instalar las conexiones entre los distintos
1 Sea i = 1, V1 = {v}, donde v es un vértice cualquiera y E1 = ?. terminales. El terminal C corresponde al ordenador principal y el resto de
2 Para Ui = V Vi , hallamos wi = min{w({x, y}), x 2 Vi , y 2 Ui }. los terminales deben estar conectados a él mediante líneas telefónicas.
Sea ei = {xi , yi } una arista para la que se alcanza este mínimo.
A B C D E F G H
3 Se incrementa i en 1. Halla la manera en que todos A 2 5 10
B 2 6 7 9
Sea Vi = Vi 1 [ { yi } y Ei = Ei 1 [ { ei }. los terminales estén conectados C 5 11 12
4 Si i < p, volver al paso 2. a C, (directa o indirectamente), D 10 11 1
E 6 1 14 13 4
En otro caso, parar porque el subgrafo T = (Vp , Ep ) es un árbol siendo mínimo el coste total de la F 7 14 8
generador minimal del grafo G. instalación. G 12 13 3
H 9 4 8 3

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 154 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 156 / 178
4.8 Grafos ponderados 4.8 Grafos ponderados
Caminos de longitud mínima Caminos de longitud mínima: ALGORITMO DE DIJKSTRA

Nos planteamos el problema de encontrar el camino de longitud mínima


Descripción informal del algoritmo
entre dos vértices de un grafo ponderado. Por ejemplo,
El algoritmo actúa realizando una serie de iteraciones.
en una línea aérea:
¿cual es la combinación de vuelos que tiene el tiempo de vuelo Se construye un conjunto de vértices distinguidos, añadiendo un vértice

total más pequeño? en cada iteración.

¿cuál es la tarifa más barata para viajar entre dos ciudades? También se realiza un proceso de etiquetado en cada iteración.
en una red de ordenadores: En este proceso de etiquetado, a cada vértice v se le pone una
¿cuál es el conjunto de líneas de teléfono menos costosa que se etiqueta que es la longitud de un camino de longitud mínima entre a y
necesita para conectar los ordenadores de Málaga con los de v, que contenga sólo vértices del conjunto de vértices distinguidos.
Barcelona?, El vértice que se añade al conjunto de vértices distinguidos es
¿cuál es el conjunto de líneas de teléfono que da el tiempo de cualquiera que tenga una etiqueta minimal entre aquellos que no están
respuesta más rápido para las comunicaciones entre Málaga y en el conjunto.
Barcelona?
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 157 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 159 / 178

4.8 Grafos ponderados 4.8 Grafos ponderados


Caminos de longitud mínima: ALGORITMO DE DIJKSTRA Caminos de longitud mínima: ALGORITMO DE DIJKSTRA

Se empieza asignando la etiqueta 0 al vértice inicial y a los demás


Sea G = (V, E, w) un grafo conexo simple ponderado.
vértices la etiqueta 1.
G tiene n vértices a = v0 , v1 , . . . , vn = z y pesos w(vi , vj ) > 0
3 Usamos la notación l0 (a) = 0, l0 (v) = 1 para estas etiquetas
Se busca el camino de longitud mínima entre los vértices a y z. (el subíndice 0 indica la iteración 0).
El algoritmo de Dijkstra procede determinando 3 En cada iteración consideramos los caminos que contienen vértices
la longitud de un camino de longitud mínima entre a y un primer del conjunto de vértices distinguidos.
vértice, 3 Las etiquetas l0 (v) indican las longitudes de los caminos más
la longitud de un camino de longitud mínima entre a y un segundo cortos desde a hasta cada vértice v, (considerando los caminos
vértice, que sólo contienen el vértice a ).
y así sucesivamente, hasta determinar la longitud de un camino de 3 Ya que todavía no existe ningún camino desde a hasta vértices
longitud mínima entre a y el vértice z. distintos de a, la longitud del camino más corto entre a y cada
vértice distinto de a es 1.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 158 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 160 / 178
4.8 Grafos ponderados 4.8 Grafos ponderados
Caminos de longitud mínima: ALGORITMO DE DIJKSTRA Caminos de longitud mínima: ALGORITMO DE DIJKSTRA

El algoritmo de DIJKSTRA prosigue formando un conjunto de vértices


distinguidos o destacados. Ejemplo 1 Usa el algoritmo de Dijkstra para hallar el camino más corto
Se denota Sk el conjunto de vértices distinguidos después de la entre los vértices a y z en el grafo
iteración k del proceso de etiquetado.
Empezamos con S0 = ?. Para k 1, el conjunto Sk = Sk 1 [ {u}, b 5 d
donde u 62 Sk 1 y la etiqueta lk 1 (u) es mínima entre los vértices que 2 2
no están en Sk 1. a 1 z
2
Una vez que u es añadido a Sk 1, se actualizan todas las etiquetas de 3 4
los vértices que no están en Sk de modo que lk (v), la etiqueta del c 5 e

vértice v en la etapa k, es la longitud de un camino de longitud


mínima entre a y v, (que sólo contiene vértices de Sk ).

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 161 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 163 / 178

4.8 Grafos ponderados 4.8 Grafos ponderados


Caminos de longitud mínima: ALGORITMO DE DIJKSTRA Caminos de longitud mínima: ALGORITMO DE DIJKSTRA

La actualización se puede realizar eficientemente teniendo en cuenta Solución Ejemplo 1: Al aplicar el algoritmo, usamos una tabla para escribir
que el camino más corto entre a y v que solo contiene vértices de las etiquetas de cada vértice y los conjuntos de vértices distinguidos.
Sk es: Los subíndices de las etiquetas indican el penúltimo vértice en el camino de
3 el camino más corto entre a y u en la etapa k 1 añadiéndole longitud mínima.
la arista {u, v} ; o bien
3 el camino más corto entre a y v que contiene sólo elementos de Vértices a b c d e z Caminos
Sk (es decir, u no está incluido). S0 = ? 0 1 1 1 1 1 a
1
S1 = {a} 2 a
3a 1 1 1 ab, ac
lk (v) = min{lk 1 (v), lk 1 (u) + w(u, v)} S2 = S1 [ {b} 3 7b 4b 1 abd, abe
a

Este proceso se repite añadiendo sucesivamente vértices al conjunto de S3 = S2 [ {c} 7b 4 b


1
vértices distinguidos hasta que se añade el vértice z. S4 = S3 [ {e} 5 e
8e abed, abez
S5 = S4 [ {d} 7 abedz
Cuando se añade z al conjunto de vértices distinguidos, su etiqueta es d

la longitud del camino más corto entre a y z. El camino buscado es: a b e d zz, que tiene longitud 7 .
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 162 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 164 / 178
4.8 Grafos ponderados 4.8 Grafos ponderados
Caminos de longitud mínima: ALGORITMO DE DIJKSTRA Caminos de longitud mínima: ALGORITMO DE DIJKSTRA

Solución Ejemplo 2:

Solución Ejemplo 1:
Vértices a b c d e z Caminos
b 5 d S0 = ? 0 1 1 1 1 1 a
2 2
S1 = {a} 4a 2 a
1 1 1 ab, ac
a 1 z
2 S2 = S1 [ {c} 3 10 c 12 c 1 acb, acd, ace
c
3 4 S3 = S2 [ {b} 8 12 c 1 acbd
c 5 e b
S4 = S3 [ {d} 10 d
14 d acbde, acbdz
S5 = S4 [ {e} 13 e
acbdez

El camino buscado es: a c b d e zz, que tiene longitud 13


13.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 165 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 167 / 178

4.8 Grafos ponderados 4.8 Grafos ponderados


Caminos de longitud mínima: ALGORITMO DE DIJKSTRA Caminos de longitud mínima: ALGORITMO DE DIJKSTRA

Ejemplo 2 Usa el algoritmo de Dijkstra para hallar el camino más corto


entre los vértices a y z en el grafo Solución Ejemplo 2:

5
b d
5 4 6
b d
4 6 a 1 2 z
8
a 1 2 z 2 3
8
c e
2 3 10
c e
10

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 166 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 168 / 178
4.8 Grafos ponderados 4.8 Grafos ponderados
Caminos de longitud mínima: ALGORITMO DE DIJKSTRA Caminos de longitud mínima: ALGORITMO DE DIJKSTRA

Ejemplo 3 En el grafo de la figura se representa una red ferroviaria donde


la distancia entre cada par de ciudades se expresa en km: Solución Ejemplo 3:

6 g 6 g
b b
16 4 7 16 4 7
2 8 2 8
10 12 16 a 10 c 12 f 16 z
a c f z
10 10
4 3 4 3
5 5 5 5
d e d e
15 15

1 Halla el camino más corto para viajar de a hasta z.

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 169 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 171 / 178

4.8 Grafos ponderados 4.8 Grafos ponderados


Caminos de longitud mínima: ALGORITMO DE DIJKSTRA Caminos de longitud mínima: ALGORITMO DE DIJKSTRA

Ejemplo 4 Usa el algoritmo de Dijkstra para hallar el camino más corto


Solución Ejemplo 3:
entre los vértices v y w en el grafo
Vértices a b c d e f g z Caminos 10
a f
S1 = {a} 16 a 10 a 5 a
1 1 1 1 ab, ac, ad 3
S2 = S1 [ {d} 16 a 9 20 d 1 1 1 adc, ade
d 4 12 d 3 13
S3 = S2 [ {c} 11 19 c 21 c 1 1 adcb, adceadcf,
c 8 5
S4 = S3 [ {b} 19 c 15 b
17 b 1 adcbf, adcbg
S5 = S4 [ {f} 18 f 17 31 f adcbfe, adcbfz v b e w
b 15 2 16
S6 = S5 [ {g} 18 f
24 g adcbgz 2
S7 = S6 [ {e} 23 adcbfez 9 8 h
e 6 4
6
El camino buscado es: a d c b f e zz, que tiene longitud 23
23. c g
14

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 170 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 172 / 178
4.8 Grafos ponderados 4.8 Grafos ponderados
Caminos de longitud mínima: ALGORITMO DE DIJKSTRA Caminos de longitud mínima: ALGORITMO DE DIJKSTRA

Solución Ejemplo 4: Ejercicio El grafo de la figura muestra la conexión entre 8 centros de


Vértices v a b c d e f g h w Caminos comunicación. Los vértices representan a los centros y las aristas a los canales de
comunicación. Los tiempos de transmisión están representados por los pesos de las
S1 = {v} 4 v
15v 6v 1 1 1 1 1 1 va, vb, vc
aristas. Supongamos que a las 7:00 el centro de comunicaciones A transmite una
S2 = S1 [ {a} 15 v 6 v
7 1 14 a 1 1 1 vad, vaf
noticia a través de todos sus canales. Los otros centros transmitirán esa noticia tan
S3 = S2 [ {c} 15 v 7 1 14 a 20 c 1 1 vcg
a pronto como la reciban. Usa el algoritmo de Dijkstra para determinar el menor
S4 = S3 [ {d} 15 v 12 14 a 20 c 1 1 vade
d tiempo en que cada uno de los centros B, C, D, E, F, G y H recibe la noticia.
S5 = S4 [ {e} 14 e
14 a 20 c 1 28 e vadeb, vadew
5
B E
S6 = S5 [ {b} 14 a
18 b 1 28 e vadebg 3 1 3
1 2
S7 = S6 [ {f} 18 b
1 27 f vadefw 5 2 8
A C F H
S8 = S7 [ {g} 24 g
27 f vadebgh 1
2 4
6 1
S9 = S8 [ {h} 26 h
vadebghw D G
2
El camino buscado es: v a d e b g h w, que es de longitud 26.
Agustín Valverde (UMA) Tema 4: Teoría de Grafos 173 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 175 / 178

4.8 Grafos ponderados 4.8 Grafos ponderados


Caminos de longitud mínima: ALGORITMO DE DIJKSTRA Caminos de longitud mínima: ALGORITMO DE DIJKSTRA

Solución Ejemplo 4: Ejercicio En la tabla siguiente se indican las conexiones, (en coste por unidades de
longitud de cable), de los ordenadores A, B, C, D, E, F, G, H, I, J de los empleados de
10
a f una empresa, conectados entre sí en una red.
3
4 13 B C D E F G H I J
12 d 3 A 22 15 14 8
8 5 B 10 12 9 11
C 18
v b e w D 11
15 2 16 E 13 7
2 G 16
9 8 h En la red se producen fallos y se han contratado los servicios de un técnico para
6 4
6 localizarlos. Como el coste de reparación es demasiado elevado, se decide reparar lo
c g indispensable para que los ordenadores A y H queden conectados por tramos
14
renovados. ¿Cuáles serían los tramos a reparar?

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 174 / 178 Agustín Valverde (UMA) Tema 4: Teoría de Grafos 176 / 178
5
b d
2 2
a 2 1 z
3
5 4
c e

Vértices a b c d e z
S0 = ? 0 1 1 1 1 1
S1 = {a} 2(a) 3(a) 1 1 1
S2 = S1 [ {b} 3(a) 7(b) 4(b) 1
S3 = S2 [ {c} 7(b) 4(b) 1
S4 = S3 [ {e} 5(e) 8(e)
S5 = S4 [ {d} 7(d)

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 177 / 178

6 g
b
16 4 7
2 8
a 10 c 12 f 16 z
10
4 3
5 5
d e
15

Vértices a b c d e f g z
S1 = {a} 16(a) 10(a) 5(a) 1 1 1 1
S2 = S1 [ {d} 16(a) 9(d) 20(d) 1 1 1
S3 = S2 [ {c} 11(c) 19(c) 21(c) 1 1
S4 = S3 [ {b} 19(c) 15(b) 17(b) 1
S5 = S4 [ {f} 18(f) 17(b) 31(f)
S6 = S5 [ {g} 18(f) 24(g)
S7 = S6 [ {e} 23(e)

Agustín Valverde (UMA) Tema 4: Teoría de Grafos 178 / 178

También podría gustarte