TEORA DE GRAFOS
Primera Edicin
c Derechos reservados
Reproducido y editado por Ediciones Elizcom
Primera edicin, diciembre del 2010
200 ejemplares
ISBN: 978-958-99325-7-5
www.elizcom.com
ventas@elizcom.com
Cel: 3113340748
Armenia, Quindo
Contenido
PRLOGO
iii
1. GRAFOS
1.1. Conceptos Bsicos . . . . . . . . .
1.2. Representacin de un Grafo . . . .
1.3. Matriz de Adyacencias de un Grafo
1.4. Lista de Adyacencias . . . . . . . .
1.5. Coeciente de estabilidad . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
8
9
11
12
2. RELACIONES Y GRAFOS
2.1. Relaciones . . . . . . . . . . .
2.2. Matriz de una Relacin . . .
2.3. Grca de una Relacin . .
2.4. Propiedades de una Relacin
2.5. Operaciones entre Relaciones
2.6. Producto Lgico de Matrices
2.7. Trayectorias y Relaciones . .
2.8. Algoritmo de Warshall . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
18
19
19
22
25
28
33
3. CONEXIDAD
3.1. Grafo Conexo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Algoritmo para Conexidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Algoritmo para Grafos no Dirigidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
39
40
42
4. CIRCUITO EULERIANO
4.1. Circuito de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1. Puentes de Knigsberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Algoritmo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
45
45
48
5. CICLO HAMILTONIANO
5.1. Ciclo de Hamilton . . . . . . . . .
5.2. Algoritmo Hamiciclo . . . . . . . .
5.3. Problema del Agente Viajero . . .
5.4. Algoritmo del Vecino ms Cercano
6. LA
6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
53
53
54
55
56
TRAYECTORIA MS CORTA
Trayectoria Mnima . . . . . . . . . .
Algoritmo del Camino Mnimo . . .
Trayectoria del Valor Mnimo . . . .
Algoritmo de DIJKSTRA . . . . . .
Algoritmo de Floyd-Warshall . . . .
Algoritmo Matricial . . . . . . . . .
La Trayectoria ptima . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
61
62
62
63
64
66
73
76
ii
CONTENIDO
7. RBOLES
7.1. Conceptos Bsicos . . . . . . . . . . . . . . . . .
7.2. Subrboles . . . . . . . . . . . . . . . . . . . . .
7.3. rbol Binario . . . . . . . . . . . . . . . . . . . .
7.4. rboles Etiquetados . . . . . . . . . . . . . . . .
7.5. rbol Posicional . . . . . . . . . . . . . . . . . .
7.6. Otras Formas de rboles Ordenados . . . . . . .
7.7. Representacin Matricial . . . . . . . . . . . . . .
7.8. Representacin Secuencial . . . . . . . . . . . . .
7.9. Representacin Enlazada . . . . . . . . . . . . . .
7.10. Conversin de un rbol General a Binario . . . .
7.11. Recorrido de un rbol Binario . . . . . . . . . .
7.12. Notacin Polaca . . . . . . . . . . . . . . . . . .
7.13. Bsqueda y Ordenamiento con rboles Binarios .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
83
. 83
. 86
. 87
. 89
. 90
. 91
. 92
. 93
. 94
. 95
. 96
. 99
. 101
8. RBOLES NO DIRIGIDOS
8.1. rbol No Dirigido . . . . . . . . . . . . . . . . . .
8.2. rbol Generado de Relaciones Conexas . . . . . .
8.3. rbol Generador de Mnimo Peso . . . . . . . . . .
8.4. Algoritmo de Prim (Robert C. Prim, 1957) . . . .
8.5. Algoritmo de Kruskal . . . . . . . . . . . . . . . .
8.6. rbol Generador de Mnima Distancia . . . . . . .
8.7. Algoritmo de Dijkstra (rbol de mnima distancia)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
107
107
108
109
110
111
113
113
PRLOGO
La Matemtica Discreta y una de sus reas principales como es la teora de grafos ocupan hoy en da
un lugar muy importante entre los conocimientos bsicos que deben adquirir las personas que se dedican
al estudio de las ciencias de la computacin, las matemticas aplicadas, la teora de la optimizacin, la
planeacin estratgica, etc. Adems la Teora de Grafos puede servir para el modelamiento de sistemas,
la simulacin, la estructuracin de datos y el anlisis y diseo de algoritmos.
Este libro pretende ser una gua introductoria para un segundo curso de matemticas discretas, con
una duracin de un semestre y en efecto se ha elaborado con base al programa curricular de Matemticas
Discretas II (Teora de Grafos) de la carrera de Ingeniera de Sistemas de la Universidad del Quindo. Se
ha experimentado durante varios semestres con los estudiantes de dicha disciplina y se ha complementado
con las notas de clase de estos cursos.
El tema central del libro es una introduccin a la teora de grafos, considerando los grafos y los rboles como una estructura dinmica que puede aplicarse en la solucin de problemas prcticos y a la
creacin de algoritmos aplicables a la estructuracin de datos.
Aunque el curso cubre varios temas, se ha limitado mucho el contenido de cada captulo y su profundidad se ha moderado para que sea apenas un curso introductorio a nivel de pregrado. Se han omitido
las pruebas y demostraciones de teoremas para agilizar ms el aprendizaje.
El material de cada captulo se ha complementado con sucientes ejemplos y grcas para aclarar un
poco el carcter abstracto de la teora. Al nal de cada captulo se incluye un grupo de ejercicios que
ayudarn a reforzar los conocimientos adquiridos.
Los Autores, Diciembre de 2010.
iii
iv
PRLOGO
Ca
ulo
pt
GRAFOS
Los grafos se presentan con frecuencia en la vida real, tal es el caso de una red de carreteras
que enlace un cierto grupo de ciudades; aqu los nodos de la red o ciudades representan los
vrtices del grafo, las carreteras que unen las ciudades representan los arcos o aristas; as
a cada arco se asocia una informacin tal como la distancia entre ciudades, consumo de
gasolina, costo de mantenimiento, etc.
Los grafos son una estructura de datos no lineal, la cual se
puede usar para modelar diversas aplicaciones. Es una parte
importante de la Teora Combinatoria en Matemticas, lo
que le da un carcter bastante amplio y complejo. En esta
unidad slo se har una introduccin a los conceptos bsicos
de la teora de grafos y a los algoritmos que permiten su
aplicacin a problemas prcticos.
1.1
Conceptos Bsicos
Denicin 1.1
Grafo
Los arcos que unen los nodos tambin se llaman aristas del grafo y se representan por medio de un par
de elementos, (vi , vj ), donde los elementos son los nodos que une el arco.
Denicin 1.2
Grafo Dirigido
Si en un grafo los arcos tienen una direccin, el grafo se llama grafo dirigido u orientado.
En un grafo orientado cada arco se representa por medio de un par ordenado (vi , vj ) donde el primer
elemento es el nodo origen o fuente y el segundo es el nodo destino de ese arco, por lo tanto se puede
decir que el arco va desde vi hasta vj y que vj es adyacente a vi . Un grafo orientado tambin se llama un
digrafo. Si los arcos del grafo no indican una direccin, el grafo es no dirigido y en l cada arco se puede
representar nombrando los nodos que lo forman sin importar el orden es decir:
(vi , vj ) = (vj , vi )
1
GRAFOS
Ejemplo 1
La gura 2. muestra dos grafos, el primero no dirigido y el segundo un digrafo, ambos, de 4 nodos y
5 arcos.
Los nodos de un grafo se pueden usar para representar los objetos y los arcos para representar relaciones
entre esos objetos. En el ejemplo anterior los nodos podran ser ciudades y los arcos las rutas areas entre
esas ciudades. A los nodos y arcos de un grafo se pueden asignar nombres o valores (etiquetas), crendose
as lo que se llama un grafo etiquetado.
Denicin 1.3
Orden de un Grafo
Grado de un Vrtice
Ejemplo 2
v1
v2
grad(v1 ) = 2
v3
grad(v2 ) = 0
grad(v3 ) = 4
A continuacin enunciaremos un teorema que relaciona el nmero de aristas de un grafo con el orden de
los vrtices de este; adems se da uno de los conceptos ms importantes en el estudio de los grafos como
es el de la trayectoria.
Teorema 1
Si N (G) = x1 , x2 , ..., xn ; entonces,
grad(x1 ) + . . . + grad(xn ) = 2A.
Donde A es el nmero de aristas incidentes
A. Caicedo B., G. Wagner de G., R. M. Mndez
Conceptos Bsicos
Denicin 1.5
Trayectoria
4
Figura 3. Trayectoria de un grafo
Cuando los vrtices de una trayectoria son todos distintos, excepto posiblemente el primero y el ltimo,
la trayectoria se dene como una trayectoria simple. Una trayectoria que comienza y termina en el mismo
nodo se llama un ciclo o circuito. Los ciclos de longitud 1 se llaman bucles o lazos porque salen de un
nodo e inciden en el mismo nodo sin pasar por ningn otro.
Ejemplo 4
a
e1
b
e3
e4
e2
e7
d
e6
e5
c
Figura 4. Digrafo etiquetado
Grafo Acclico
GRAFOS
Ejemplo 5
La siguiente tabla es una lista parcial de tareas para construir una casa. Para cada tarea T , la segunda columna muestra aquellas arcos que deben ser completadas antes que T pueda ser comenzada.
Construir un digrafo para mostrar la relacin entre las tareas.
Tareas
Prerrequisitos
1. Hacer cimientos
Ninguno
3. Hacer columnas
2y3
6. Instalar plomera
4y5
8. Pegar piso
4y6
9. Instalar puertas
4y8
4, 7, 8 y 9
10
10
11
Etiquetamiento consistente
Conceptos Bsicos
Teorema 2
Sea G = (N, A) un digrafo. G tiene un etiquetamiento consistente si y solo si G es acclico.
Prueba
La demostracin en el primer sentido se puede hacer en la siguiente forma: supngase que el
digrafo G tiene un etiquetamiento consistente n1 , n2 , . . . , nn . Si existe un ciclo ni1 , ni2 , ..., nik
se debe tener que i1 = ik y que i1 < i2 < . . . < ik , pero esto es una contradiccin, entonces G
no puede tener un ciclo.
Para la demostracin en el otro sentido se parte del supuesto de que el digrafo es acclico y se usar un algoritmo llamado algoritmo del Ordenamiento Topolgico para construir
el etiquetamiento consistente. El algoritmo parte del hecho de que un digrafo debe tener
una fuente; la metodologa del algoritmo consiste en etiquetar el conjunto de fuentes y luego
removerlas de su consideracin, luego ser etiquetado el siguiente nivel de fuentes y as
sucesivamente. Eventualmente se presentar una de las siguientes situaciones: o todos los nodos
han sido etiquetados sucesivamente o permanecen nodos sin etiquetar que no son fuentes,
implicando que el digrafo contiene un ciclo, lo cual contradice el supuesto.
begin
Para n N hacer
computar A(n)
etiqueta = O
Mientras S = hacer
begin
etiqueta = etiqueta +1
n = nodo con A(n) =
asignar la etiqueta a n y sacarlo de consideracin. Establecer a S
Para cada nodo no etiquetado u N , hacer
A(u) = A(u) {n}
end
Si todos los nodos no estn etiquetados entonces
reportar: "hay un ciclo en el digrafo".
end.
GRAFOS
Ejemplo 6
Aplicar el algoritmo del ordenamlento topolgico al siguiente digrafo para obtener un etiquetamiento
consistente.
2
Figura 6.
Solucin
1. Computar los conjuntos de antecedentes A(n) para cada n N A(1) = , A(2) = {1}, A(3) =
{2, 4}, A(4) = {1, 2, 6}, A(5) = {4, 6}, A(6) = {1}. Etiqueta = 0. S = {1}, S = .
2. Desarrollar el bucle principal:
a) n = 1. Etiquetar 1 con E(1) y sacarlo de consideracin. S = {2, 6}. Computar nuevo
conjunto de antecedentes: para todo u no etiquetado hacer A(u) = A(u) {n} A(2) =
, A(3) = {2, 4}, A(4) = {2, 6}, A(5) = {4, 6}, A(6) =
b) n = 6 Etiquetar 6 con E(2) y sacarlo de consideracin. S = {2}. Computar nuevo conjunto
de antecedentes: A(2) = , A(3) = {2, 4}, A(4) = {2}, A(5) = {4}
c) n = 2 Etiquetar 2 con E(3) y sacarlo de consideracin. S = {4}. Computar nuevo conjunto
de antecedentes: A(3) = {4}, A(4) = , A(5) = {4}.
d ) n = 4 Etiquetar 4 con E(4) y sacarlo de consideracin. S = {3, 5}. Computar nuevo
conjunto de antecedentes: A(3) = , A(5) = .
e) n = 3 Etiquetar 3 con E(5) y sacarlo de consideracin. S = {5}. Computar nuevo conjunto
de antecedentes: A(5) =
f ) n = 5 Etiquetar 5 con E(6) y sacarlo de consideracin. S =
3. Todos los nodos estn etiquetados. Parar.
Denicin 1.8
Grafo Simple
Conceptos Bsicos
Denicin 1.9
b) Grafo Mltiple
Grafo Completo
Es aquel en el que cada par de nodos distintos estn unidos por un arco o cualquier nodo est unido
a todos los otros.
Un grafo completo con r nodos es llamado un r-grafo y se acostumbra notarlo con Kr .
Ejercicio 1
Gracar los siguientes grafos: K1 , K2 , K3 , K4 , K5 y K6
Teorema 3
Un r-grafo no dirigido contiene exactamente
r(r 1)
arcos.
2
Prueba
En Kr cada nodo tiene grado r 1. Luego la suma de los grados es:
grad(x1 ) + ... + grad(xr ) = r(r 1) = a un nmero par
Por el teorema 1, esta suma tambin es igual a 2A. Por lo tanto 2A = r(r 1) y A =
Corolario
Para cada grafo Kr no dirigido se cumple que:
N (N 1)
A
2
r(r 1)
2
GRAFOS
Ejercicio 2
1. Trazar dos grafos 3-regular con 6 nodos
2. Trazar los siguientes grafos:
a) 0-regular
b) 1-regular
c) 2-regular
Teorema 4
Un grafo regular debe tener un nmero par de nodos
Prueba
Sea S=suma de los grados del grafo r-regular con n nodos,
S = grad(x1 ) + grad(x2 ) + + grad(xn ) = n r = #par
nr = #par si r es impar, n es par
Teorema 5
En un grafo no dirigido de n nodos, el nmero de nodos de grado impar es par
Ejemplo 7
1.2
Representacin de un Grafo
Existen diversas formas de representar un grafo dirigido o no-dirigido, pero entre ellas las ms usadas
y fciles de implementar por computador son: la matriz de adyacencias y la lista de adyacencias. Esta
ltima es la ms conveniente para efectos de computacin puesto que opera ms rpido y ocupa menos
memoria.
1.3
Sea G = (N, A) un grafo de n nodos. La Matriz de Adyacencias M para G es una matriz Mnxn de valores
booleanos, donde M (i, j) es verdad si y solo si existe un arco desde el nodo i al nodo j.
M (i, j) =
1,
0,
Las las y las columnas de la matriz representan los nodos del grafo.
Cuando el grafo no es dirigido la matriz de adyacencias es simtrica.
La matriz de adyacencias es la misma matriz de la relacin A de N en N porque indica cuales nodos
estn relacionados (unidos por un arco)
Ejemplo 8
La siguiente es la matriz de adyacencias del grafo orientado que se muestra en la gura 8.
a
a 0
b 0
M (i, j) =
c 1
d 1
b
1
0
0
0
c d
1 0
1 1
0 1
0 0
b
a
d
c
Figura 8.
Nota: Para un digrafo, la matriz de adyacencias depende del orden de los nodos. Para distintos rdenes
en los nodos se obtienen distintas matrices de adyacencias de un mismo grafo G
Ejemplo 9
Grafo orientado con su correspondiente matriz de adyacencias (matriz de pesos o valores)
120
2
1
2
1 0 100
20
0
0
M (i, j) = 3 0
4 0 110
5 0
0
3
0
120
0
0
0
4
0
0
200
0
0
0
0
80
0
100
3
110
200
4
80
Figura 9.
10
GRAFOS
Ejemplo 10
Considere el esquema de Von Newmann, para un computador que consta de los siguientes dispositivos:
V = (a, b, c, d, e) donde a es un dispositivo de entrada, b es una unidad aritmtica, c es una unidad
de mando, d es una unidad de memoria y e es un dispositivo de salida. Las relaciones entre unidades
y dispositivos se representan en el grafo de la gura 10.
a
e
Figura 10.
Si con un 1 se indica que hay un paso de informacin (relacin) desde el componente vi al componente
vj , la matriz que representa al grafo es:
a b c d e
a 0 1 1 1 0
b 0 0 1 1 1
M (i, j) = c 1 1 0 1 1
d0 1 1 0 1
e 0 0 1 0 0
Ejemplo 11
Un mensajero debe visitar los seis puntos mostrados en la gura 11a) partiendo del punto a y
terminando en el punto f. El conoce la distancia que separa a cada par de puntos y desea establecer
el recorrido que debe seguir para recorrer la mnima distancia y ahorrar tiempo.
a
11
c
19
6
15
16
4
e
d
a)
Figura 11.
e
b)
Con las distancias entre los puntos se construye el grafo no dirigido etiquetado:
Para hallar el recorrido de mnima distancia se podrian listar todas las posibles trayectorias desde a
hasta f y escoger la menor. Una de tales trayectorias es : a b c d e f de longitud 22.
Lista de Adyacencias
11
De hecho este no es el mejor mtodo para resolver el problema. Se han desarrollado algoritmos muy
ecientes que con la ayuda del computador pueden producir una solucin muy ptima en un tiempo
bastante corto. Uno de estos algoritmos es el propuesto por DIJKST RA y que se estudiar ms adelante.
Lista de Adyacencias
1.4
Sea G = (N, A) un grafo. La lista de adyacencias para un nodo i es una lista, en cualquier orden, de
todos los nodos adyacentes a i.
En esta representacin el grafo incluye dos partes: un directorio y un conjunto de listas enlazadas. Hay
una entrada al directorio por cada nodo del grafo.
Ejemplo 12
La gura 12 muestra un grafo dirigido y su correspondiente representacin en lista de adyacencias.
1
3
Figura 12.
La entrada en el directorio del nodo i apunta a una lista enlazada que representa los nodos que
son conectados al nodo i. Cada registro de la lista enlazada tiene dos campos: el primero es un
identicador de nodo y el otro es un enlace al siguiente elemento de la lista j. La lista enlazada
representa arcos.
Ejemplo 13
La gura 13 muestra un grafo con su correspondiente lista de adyacencias.
1
6
2
1
4
6
Figura 13.
Si este grafo no fuera orientado, la lista de adyacencias sera la que se muestra en la gura 14.
12
GRAFOS
1
Figura 14.
Ejemplo 14
Otra forma de presentar la lista de adyacencias
A
Lista de adyacencias
A : B, P
B : A, C, P, Q
C: B
P : A, B
Q: B
G = [A : B, P ; B : A, C, P, Q; C : B; P : A, B; Q : B]
Representacin enlazada de G
1.5
Coeciente de estabilidad
Un concepto muy aplicable de la teora de grafos es el coeciente de estabilidad interna y externa que
sirve para resolver problemas referentes a modelos de comunicacin.
Denicin 1.11
Sea G (N, A) y S N (S subconjunto de nodos de G) . Se dice que S es interiormente estable si
no contiene ninguna pareja de nodos adyacentes.
Recurdese que dos nodos ni y nj son adyacentes si son distintos y al menos existe un arco (ni , nj ) o
(nj , ni ) .
Denicin 1.12 Coeciente de estabilidad interna
El coeciente de estabilidad interna (G) de G es igual a:
(G) = mx {S}
a
Es decir (G) es el nmero de elementos que contiene el mayor subconjunto S interiormente estable.
Coeciente de estabilidad
Ejemplo 15
13
2
6
5
8
Figura 15.
En el grafo de la gura 15, los conjuntos de nodos {1, 2, 7} ; {6, 7, 1} ; {5, 4, 3} y {8, 4, 3} son conjuntos
interiormente estables. El coeciente de estabilidad interno de G es (G) = mx {S} = 5 con S =
a
{1, 2, 6, 7, 5}
Ejemplo 16
Capacidad de un Conjunto de Seales
Considrese un transmisor que puede emitir cinco seales diferentes {a, b, c, d, e} . Estas seales se
reciben en un receptor de tal forma que cada una puede dar lugar a dos interpretaciones diferentes:
a puede dar p o q, b puede dar q o r, c : r o s, d : s o t, y e : t o p. Esta informacin se puede
representar en el grafo de la gura 16.a.
a
t
a)
Figura 16.
d
b)
Cul es el nmero mximo de seales que pueden emitirse simultneamente en forma tal que no
exista posibilidad de confusin en la recepcin?
El problema equivale a buscar un conjunto interiormente estable y mximo, del grafo de la gura
16a en donde dos nodos son adyacentes si representan dos seales que puedan confundirse. Se llega
as a construir un nuevo grafo, ver f ig. 16 b donde:
a se une con b porque ellas pueden producir q
b se une con c porque ellas pueden producir r
c se une con d porque ellas pueden producir s
d se une con e porque ellas pueden producir t
e se une con a porque ellas pueden producir p
El grafo obtenido tiene los siguientes conjuntos interiormente estables:
{a, c}, {a, d}, {b, d}, {b, e} y {c, e}
donde (G) = 2. Luego, el nmero mximo de seales que se puede emitir sin crear confusin es 2.
A. Caicedo B., G. Wagner de G., R. M. Mndez
14
GRAFOS
Denicin 1.14
El coeciente de estabilidad externa (G) de G es igual (G) = min{T }, lo que signica que es
igual al nmero de elementos del menor conjunto exteriormente estable.
Ejemplo 17
En el grafo de la gura 17
{c, d, e, f, h}, {c, e, h} y {c, e, f, h}
a
siguientes
conjuntos
son
exteriormente
estables:
los
h
g
Figura 17.
Ejemplo 18
Redes de Comunicacin
Considrese un conjunto de subestaciones telefnicas con sus respectivas redes, como lo indica El
grafo de la gura 18.
1
B
11
10
3
7
Figura 18.
Cul es el nmero mnimo de subestaciones que deben fallar para que las centrales A y B no
pueden intercomunicarse?. El problema se reduce a encontrar un conjunto mnimo de articulaciones
que divida al grafo G en dos subgrafos disyuntos, conteniendo uno a A y el otro a B. Sea T = {4, 5, 9}.
T es un subconjunto de nodos exteriormente estable porque todos los nodos que no pertenecen a T
estn ligados al menos a uno de los nodos de T por un arco que se inicia en ellos. Adems T es el
mnimo de los subconjuntos exteriormente estables que se pueden obtener de G. El coeciente de
estabilidad externa para G es (G) = min{T } = 3. Se concluye que si fallan las subestaciones 4, 5 y
9, las centrales A y B no pueden comunicarse.
A. Caicedo B., G. Wagner de G., R. M. Mndez
Coeciente de estabilidad
15
Ejercicios Captulo 1
1. Sea N = {1, 2, 3, 4} un conjunto de nodos y A = {(1, 3), (2, 4), (4, 3)} un conjunto de arcos, dibujar
el grafo correspondiente.
2. Dados los dos grafos de la gura 19, establecer el conjunto de nodos N y el conjunto de arcos A.
a
4
7
Figura 19.
3. En los grafos del ejercicio anterior determinar el orden y el nmero de arcos de cada uno. Usar la
notacin correspondiente.
4. En el grafo de la gura 20, determinar el grado de cada uno de sus nodos.
a
d
c
e
b
Figura 20.
5. Hallar dos trayectorias entre los nodos b y e del grafo de la gura 20.
6. Para los grafos de la gura 21 encontrar una trayectoria que vaya desde a hasta a y que pase por
cada arco una sola vez.
a
f
Figura 21.
7. Examinar los siguientes grafos y determinar cules son simples y cules no, justicar la respuesta.
a
Figura 22.
A. Caicedo B., G. Wagner de G., R. M. Mndez
16
GRAFOS
b
c
a
e
d
a
10
e
12
20
b
5
e
12
2
4
14
c
20
5
6
4
Figura 23.
13. Establecer la lista de adyacencias para cada uno de los grafos del ejercicio nmero 12.
14. Para el grafo de la gura 24 establecer los coecientes de estabilidad interna y externa.
1
Figura 24.
Ca
ulo
pt
RELACIONES Y GRAFOS
El concepto fundamental de las Matemticas Discretas es el de Relacin, por ello en esta seccin
se hace una breve introduccin a las relaciones y se utilizarn para designar la correspondencia
entre los objetos o nociones tales como los nodos de un grafo.
2.1
Relaciones
Denicin 2.1
Relacin
Ejemplo 1
Sean A = {3, 7, 9} y B = {x, y} entonces = {{3, x), (9, y)} es una relacin de A en B.
Cuando los conjuntos A y B son iguales se dice que A A es una relacin en A en lugar de una
relacin de A en A.
Si el conjunto de referencia para la relacin es el conjunto N de puntos (nodos) y la relacin binaria
es N 2 , entonces la coleccin formada por N y se denomina un grafo G. Algunos autores llaman a
N el portador del grafo y a la signatura del grafo.
Si A B es una relacin de A en B, existen dos conjuntos asociados a :
1. El dominio de que se escribe Dom(), es el conjunto de elementos de A que estn relacionados
con algn elemento de B, por lo tanto Dom() A.
2. El codominio de que se escribe Cod() es el conjunto de elementos de B que estn relacionados
con algn elemento de A, por lo tanto Cod() B.
17
18
RELACIONES Y GRAFOS
Ejemplo 2
Sean A = {1, 3, 5} y B = {0, 1, 2, 4, 7}. Se dene la siguiente relacin de A en B:
AB a < b
Entonces: = {(1, 2), (1, 4), (1, 7), (3, 4), (3, 7), (5, 7)}; Dom() = {1, 3, 5} y Cod() = {2, 4, 7}.
2.2
1, si (a , b )
i j
mij =
0, si (a , b )
i j /
Ejemplo 3
Sean A = {0, 7, 5, 9} y B = {1, 3, 10} y la relacin dada por:
AB a > b
7
3
0
5
1
9
10
0 0
71
M =
51
9 1
3 10
0 0
1 0
1 0
1 0
Figura 1.
Entonces: = {(5, 1), (5, 3), (7, 1), (7, 3), (9, 1), (9, 3)}. La matriz de se ve en la gura 1:
Ejemplo 4
Sean X = {3, 9, 1} e Y = {a, b} . Luego = {(3, a), (9, b), (1, a), (1, b)}.
a b
3 1 0
M = 9 0 1
1 1 1
A. Caicedo B., G. Wagner de G., R. M. Mndez
2.3
19
c
Figura 2.
Ejemplo 6
Determinar la relacin representada por el grafo de la gura 3.
2
1
3
Figura 3.
2.4
Reexiva
Una relacin en un conjunto A es reexiva si (a, a) , es decir, aa, a . es reexiva si cada
elemento a A est relacionado consigo mismo.
A. Caicedo B., G. Wagner de G., R. M. Mndez
20
RELACIONES Y GRAFOS
Denicin 2.3
Irreexiva
d
Figura 4.
Simtrica
Una relacin en un conjunto A es simtrica si cuando ab ba a, b
Denicin 2.4
Antisimtrica
1 1
Si M = 1 0
0 1
0
1 , entonces
0
T
M
1 1 0
= 1 0 1
0 1 0
Teorema 2
La matriz M de una relacin asimtrica satisface:
1. Si mij = 1 mji = 0.
2. mij = 0 para i = j.
A. Caicedo B., G. Wagner de G., R. M. Mndez
21
Teorema 3
La matriz M de una relacin antisimtrica satisface que si i = j mij = 0 mji = 0
De los anteriores teoremas se pueden concluir las siguientes armaciones:
1. Si es una relacin asimtrica, entonces el grafo dirigido no puede tener simultneamente un arco
desde el nodo i al nodo j y un arco desde el nodo j al nodo i. No puede haber ciclos de longitud 1.
2. Si es antisimtrica, entonces para i = j no puede haber un arco desde i a j y un arco desde j a
i. Pueden existir ciclos de longitud 1.
3. Si es simtrica, entonces, si existe el arco de i a j, tambin existe el arco desde j a i.
Denicin 2.5
Relacin Conexa
Una relacin simtrica en A se llama conexa si existe una trayectoria desde cualquier elemento
de A a cualquier otro elemento de A, es decir, el grafo es completo
Ejemplo 10
El grafo de la gura 5 representa una relacin conexa.
b
Figura 5.
Transitiva
Una relacin en un conjunto A es transitiva si cuando ab y bc entonces ac.
En una relacin transitiva se tiene: si mij = 1 y mjk = 1 mik = 1.
En un grafo dirigido las condiciones ab y bc ocurrirn si y solo si existe una trayectoria de longitud
dos desde a hasta c. es decir, que a2 c implica que ac. 2 , siendo un subconjunto de A A.
Cualquier par de nodos conectados por un arco deben estar conectados por una trayectoria de longitud
2.
Con base al concepto anterior se puede establecer la siguiente denicin de transitividad.
Denicin 2.6
Transitividad
2
1
0
0
1
1
1
(MR ) = MR
R es transitiva
22
RELACIONES Y GRAFOS
Ejemplo 12
a
2
5
Transitiva
Antisimtrica
Transitiva
1 0
0 1
1 0
1 0
0
0
Irreexiva
Simtrica
No transitiva
Relacin de Equivalencia
Denicin 2.7
Una relacin sobre un conjunto A se llama relacin de equivalencia si cumple que es reexiva,
simtrica y transitiva.
Ejemplo 13
0 1 1
0 1 1
Relacin de equivalencia
2.5
1 0 1
0 1 0
1 0 1
Reexiva, simtrica, no transitiva
As como es posible manipular nmeros y frmulas usando las reglas del lgebra, tambin es posible
denir operaciones que permitan manipular relaciones. Una vez denidas ciertas operaciones se puede
operar con ellas sobre relaciones existentes para obtener otras relaciones.
Algunas de las operaciones que se pueden denir sobre relaciones son:
Relacin Complementaria
Sean A y B dos conjuntos nitos y una relacin de A en B. Se dene la relacin complementaria como:
ab
ab
Nota: A B
Ejemplo 14
Sean A = {3, 4, 5}, B = {a, b, c} y = {(3, a)(3, b)(4, c)(5, c)}. = {(3, c)(4, a)(4, b)(5, a)(5, b)}.
23
Interseccin de Relaciones
Sean A y B dos conjuntos nitos, y S relaciones denidas de A en B. Se dene la interseccin
de las dos relaciones como:
a( S)b
ab
y
aSb
Nota: (a, b) ( S), si est en y tambin est en S
Unin de Relaciones
Sean A y B dos conjuntos nitos, y S relaciones denidas de A en B. Se dene la unin de
las dos relaciones como:
a( S)b
ab
aSb
Nota: (a, b) ( S), si est en o est en S
Relacin Inversa
Sean A y B dos conjuntos nitos, R una relacin de A en B. Se dene la relacin inversa 1
como una relacin de B en A tal que:
b1 a
ab
Nota: (b, a) (1 ), si (a, b)
Ejemplo 15
Sean
A =
S =
Calcular 1. , 2. S, 3. S y 4. 1
Solucin
1. Para hallar el complemento se compara la relacin dada con A B, donde,
A B = {(1, x), (1, y), (5, x), (5, 7), (7, x), (7, y), (9, x), (9, y)}
as, el complemento de es: = {(5, x), (9, y)}.
2. La interseccin S se forma con el conjunto de parejas en comn entre y S, as,
S = {(7, y), (9, x)(1, y)}.
3. La unin S se forma juntando las parejas de con las de S sin repetir parejas, por lo que
S = {(1, x), (1, y), (5, x), (5; y), (7, x), (7, y), (9, x)}.
4. 1 se forma tomando las parejas de e invirtiendo el orden de los elementos, as la relacin
inversa est dada por 1 = {(x, 1), (y, 1), (y, 5), (x, 7), (y, 7), (x, 9)}.
24
RELACIONES Y GRAFOS
Composicin de Relaciones
Se pueden crear nuevas relaciones a partir de otras existentes, una forma de hacer esto es
mediante la composicin de relaciones.
Sea una relacin entre A y B y sea S una relacin entre B y C luego, la composicin y S es la relacin entre A y C y se nota S y est dada por:
S = {(x, z) : x A, z C y existe y B tal que xy y ySz.
Grcamente se tiene:
S
B
Figura 6. S
S
1
1
2
3
4
4
A
B
Figura 7.
2.6
25
Ahora se quiere denir una operacion matricial que combine la representacion matricial de dos relaciones
para obtener una representacin matricial de la composicin de relaciones.
Sea A = {a1 , a2 , ..., am }, B = {b1 , b2 , ..., bn } y C = {c1 , c2 , ..., cp }. Sea una relacin de A en B y
sea S una relacin de B en C. se representa por una matriz M1mn ; S se representa por la matriz
M2np , entonces la relacin compuesta S se representa por la matriz M3mp .
La operacin matricial que se busca para representar la composicin, se denota con el smbolo lo
cual permite escribir:
M3 = M1 M2
Para determinar ms fcilmente como est denida esta operacin, se puede considerar el esquema de las
dos relaciones dadas (ver gura 8).
Para cada i {1, ..., m} y j {1, ..., p}, M3 (i, j) = verdad si y solo si ai Scj lo cual es cierto si
y solo si k {1, ..., n} tal que ai bj y bk Scj .
Usando las deniciones de las operaciones lgicas y (and y or)1 se puede obtener la frmula como sigue:
M3 (i, j) = [M1 (i, 1) M2 (1, j)] [M1 (i, 2) M2 (2, j)] ... [m1 (i, n) M2 (n, j)]
La matriz M3 obtenida en esta forma se llama el producto lgico o booleano de las matrices M1 y M2 .
a1
b1
c1
a2
b2
c2
.
.
.
.
.
.
.
.
.
ai
bk
cj
.
.
.
.
.
.
.
.
.
am
bn
cp
Figura 8.
+/
26
RELACIONES Y GRAFOS
Denicin 2.8
Si Amp y Bpn son matrices booleanas se dene: A B = [eij ] como el producto booleano de A y B,
donde
eij = (ai1 b1j ) (ai2 b2j ) ... (aip bpj )
Este producto booleano es similar al producto ordinario de matrices pero aplicando las operaciones booleanas
y .
Ejemplo 17
Sea A = {a, b}, B = {a, b, c} y C = {a, b, c, d}. es una relacin de A en B. = {(a, a), (a, b), (b, b)}. S una
relacin de B en C. S = {(a, a), (a, c), (a, d), (b, a), (c, b), (c, d)}, por lo tanto:
1 0 1 1
1 1 0
,
MS = 1 0 0 0
M =
0 1 0
0 1 0 1
Entonces S = {(a, a), (a, c), (a, d), (b, a)} como se ve en el esquema de la gura 9
1
0
M MS =
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
(1 1) (1 1) (0 0) . . . (1 1) (1 0) (0 1)
(0 1) (1 1) (0 0) . . . (0 1) (1 0) (0 1)
110
010
000
000
100
000
100
000
1
1
0
0
1
0
1
0
Ntese que esta ltima matriz es equivalente a la matriz de la relacin representada en el esquema anterior.
A
a
B
a
b
C
a
A
a
C
a
Figura 9. S
El siguiente teorema establece algunas relaciones interesantes entre las matrices de relaciones y las operaciones
booleanas entre ellas.
Teorema 4
Sean y S dos relaciones en A, entonces se cumple que:
1. MS = M MS
2. MS = M MS
3. MS = M MS
4. (M )n = M... = M M . . . (n veces)
A. Caicedo B., G. Wagner de G., R. M. Mndez
Ejemplo 18
Sean M = 1
1
0
0
1
1
0
0 y M S = 1
1
0
1
1
1
MS
M MS
27
0, se tiene entonces,
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
MS
M MS
1
0
0
0
1
1
0
0
0
1
0
0
0
0
Ejemplo 19
Si = {(a, b), (a, c), (b, a)}, S = {(a, c), (b, a), (b, b), (c, a)}, entonces
MS
Ejemplo 20
= M MS = M MS = 0
0
1
0
1
0
0
= {(1, b), (2, a), (2, c)}, S = {(a, y), (b, x), (c, y), (c, z)}
M = 2 1
MS = 2 0
1
0
MS = b 1
c
0
M MS = 2 0
2
0
28
RELACIONES Y GRAFOS
2.7
Trayectorias y Relaciones
La idea de una trayectoria en un digrafo tiene muchas interpretaciones, dependiendo de la aplicacin que est
siendo modelada. Por ejemplo, si el digrafo es un modelo de una red de comunicacin, las trayectorias en el
digrafo mostrarn las posibles rutas para mensajes entre diferentes computadores. Hay tres problemas que surgen
al tratar de aplicar el modelo a la realidad:
1. Establecer la existencia de trayectorias entre dos nodos.
2. Contar el nmero de trayectorias entre dos nodos.
3. Encontrar la trayectoria ms corta entre un par de nodos dados.
Denicin 2.9
Sea una relacin en un conjunto A. Una trayectoria de longitud n de a hasta b es una sucesin nita
= a, x1 , x2 ,. . . xn1 , b que se inicia en a y termina en b, y tal que ax1 , x1 x2 ,. . . , xn1 b.
Una solucin al primer problema de determinar cules nodos estn conectados por trayectorias a otros nodos
puede ser establecida en dos formas: la primera analizando visualmente el grafo y determinando la trayectoria
y la segunda en trminos de la matriz de la relacin que representa los arcos del digrafo. El primer mtodo no
es prctico cuando el grafo tiene muchos nodos y arcos, razn por la cual en esta seccin, se har el estudio del
segundo mtodo.
Las trayectorias en una relacin pueden usarse para denir nuevas trayectorias. Si n es un entero positivo jo, se dene una relacin n como xn y y signica que existe una trayectoria de longitud n de x a y en , o x
est relacionado con y mediante un recorrido de n arcos.
Recordando cmo se deni la composicin de relaciones, se concluye que la composicin de con si misma
da trayectorias de longitud 2, y la composicin de este resultado con da trayectorias de longitud 3 y as sucesivamente. Luego se puede proceder con un argumento inductivo para encontrar todas las trayectorias.
Tambin se puede denir una relacin en A como x y indica que existe alguna trayectoria en de x
a y, no importa la longitud.
se le llama relacin de conectividad de . (clausurativa, transitiva)
Nota: M muestra quines quedan conectados mediante trayectorias de cualquier longitud
Ejemplo 21
Sea A un conjunto de personas y la relacin conocerse mutuamente, entonces:
ab signica que a y b se conocen el uno al otro.
a2 b signica que a y b tienen un conocido en comn.
an b signica que a conoce a x1 , que conoce a x2 ,. . . ,que conoce a xn1 , que conoce a b.
Trayectorias y Relaciones
29
Ejemplo 22
El siguiente grafo representa un conjunto de vuelos con escala intermedia.
5
1
Figura 10.
Luego:
12 5 porque 12 y 25
12 4 porque 12 y 24
22 5 porque 24 y 45
22 6 porque 25 y 56
32 5 porque 34 y 45
42 6 porque 45 y 56
Grafo de la relacin
Ejemplo 23
Para el grafo de la gura 11 determinar .
1
2
= {(1, 1) , (1, 2) , (1, 3) , (1, 4) , (2, 1) , (2, 2) , (2, 3) , (2, 4) , (3, 4)}
M
3
4
Figura 11.
1 1
2 1
=
3 0
4 0
2
1
1
0
0
3
1
1
0
0
1
1
1
0
Ejemplo 24
1
= {(1, 2), (1, 3), (1, 4), (3, 2), (3, 3), (3, 4)}
1 0
20
=
30
4 0
2
1
0
1
0
3
1
0
1
0
1
0
1
0
30
RELACIONES Y GRAFOS
Teorema 5
Sea G = (N, A) un digrafo. Sea n1 , . . . , n2 nodos en A. Para cada i, j hay una trayectoria desde ni a nj
en G si y solo si existe k = 1, 2, 3, . . . tal que ni k nj , por lo tanto:
= 2 3 . . .
Teorema 6
Sea G = (N, A) un digrafo, una relacin en A y sea n = |N | entonces:
= 2 3 . . . n
es decir que las potencias de mayores que n no son necesarias para calcular .
Teorema 7
Para n 1 y una relacin en un conjunto nito A, se tiene:
Mn = M M . . . M
n veces
Denicin 2.10
x y si y solo si xy o x2 y o x3 y o . . .
Del teorema anterior y teniendo en cuenta que MS = M MS se concluye que:
M = M M 2 M 3 . . . M n
que tambin se puede escribir de la forma:
M = M (M )2 (M )3 . . . (M )n
donde,
(M )n = M . . . M (n factores)
Denicin 2.11
La relacin de accesibilidad o alcanzabilidad de una relacin en un conjunto N de n elementos se
dene como x y si y solo si x = y o x y.
En otras palabras esto indica que un nodo y es alcanzable desde x si y es x o existe una trayectoria de cualquier
longitud desde x a y.
La matriz de la relacin de accesibilidad o alcanzabilidad o matriz de caminos se nota M .
Teorema 8
M = In M donde In es la matriz identidad de n n, luego:
M = In M M 2 . . . M n
Trayectorias y Relaciones
31
Ejemplo 25
Para la relacin representada por el siguiente grafo, determinar cules parejas de nodos estn unidas por
trayectorias de longitud 2 arcos.
b
Solucin
1. Analizando visualmente el grafo se tiene:
Figura 12.
2 = {(a, a), (a, b), (a, c), (a, d), (b, d), (b, e), (c, d), (d, d)}
2. En una forma ms analtica y usando la matriz de relaciones se tiene:
1 1 0 0 0
0 0 1 1 0
M = 0 0 0 1 1
0 0 0 1 0
0 0 0 0 0
M2
= M M = 0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0 0
1 0
0 0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0 0
1 = 0
0 0
0
0
Ejemplo 26
Encontrar la matriz de alcance (conectividad) para el digrafo de la gura 13.
1
4
Figura 13.
Solucin
La matriz de la relacin en el digrafo es:
0
M =
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1 matriz de
0 = caminos de
0 longitud 2
0
32
RELACIONES Y GRAFOS
M2
M4
1
2
= (M ) = M M =
0
0
0
4
= (M ) = M3 M =
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0 1 0
0 0 1
=
1 0 0
1 0 0
1 1 1
1 1 1
=
1 1 1
1 1 1
0 ,
0
0
0
0
M3 M4
0
0 0
0 1 0
0 0 1
0
0 1
0
0
M3 = (M )3 = M2
1
0
0
0
0
1
0 0
0 0
0
0
0
1
0
0
0
M =
0
0
0
0
0 0
0 1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
Teorema 9
Sea M la matriz de adyacencias de un digrafo G. El elemento de la i-sima la y j-sima columna de M n
con n > 0 es igual al nmero de caminos de longitud n que van desde el i-simo nodo hasta el j-simo nodo
Ejemplo 27
Sea G el siguiente digrafo y su correspondiente matriz de adyacencias
v1
v2
v3
v5
M2 =
M3 =
M M =
M2 M =
v4
1
0
0
0
1
1
0
2
0
1
0
1
1
1
0
0
0
0
1
2
0
1
1
2
1
1
0
2
1
0
0
0
1
0
0 0
0 1
1 0
0 0
1 0
0 0
M = 0
Figura 14.
0
0
0
1
Algoritmo de Warshall
M4 =
M3 M =
M5 =
M4 M =
0
1
1
0
1
1
0
3
2
2
0
1
2
2
1
0
0
0
0
3
0
1
3
2
2
1
0
3
2
0
0
0
0
1
33
1
0
0
0
T 5 = M + M 2 + M 3 + M 4 + M 5 = 0
2
2
7
2
3
10
7
6
3
2
9
6
2
0
0
1
2
2
el elemento de la i-sima la y j-sima
0 columna indica el nmero de trayecto
0 = rias de longitud 5 o menor entre v y
i
2 v
j
1
Si un elemento de esta matriz no es nulo, queda claro que vj es alcanzable o accesable desde vi mediante una
trayectoria o camino de longitud mxima 5.
2.8
Algoritmo de Warshall
Como el clculo de M o matriz de alcanzabilidad es muy laborioso mediante la unin de potencias de la matriz
de adyacencias, o sea usando
M = M1 M2 Mn
Stephen Warshall propuso en 1962 el siguiente procedimiento para hallar la matriz de alcanzabilidad a partir de
la matriz de adyacencias de G.
Para un grafo G, sea M su matriz de adyacencias n n
Procedimiento
W =M
para k = 1 hasta n
para i = 1 hasta n
para j = 1 hasta n
hacer W (i, j) = W (i, j) [W (i, k) W (k, j)]
Denicin 2.12
Sea G = (N, A) un digrafo. Se dene la familia de relaciones W (k) como sigue:
Sea v1 , v2 , . . ., vn un etiquetamiento de los vrtices y
1. Para u, v N decimos que u W (1) v si y slo si existe el arco (u, v) o existe una trayectoria de u a v
usando a v1 como vrtice intermedio.
2. Para u, v N decimos que u W (k+1) v si y slo si u W (k) v o existe una trayectoria de u a v usando
algn subconjunto de vrtices v1 , . . . , vk+1 como vrtices intermedios.
34
RELACIONES Y GRAFOS
De esta denicin se deriva que W (n) = M = matriz de alcanzabilidad o accesibilidad. Si consideramos las
relaciones W (k) como conjuntos, se obtiene que:
W (1) W (2) . . . W (n)
as que cada sucesiva relacin contiene a las relaciones precedentes.
Ejemplo 28
Hallar la matriz M de alcanzabilidad para el siguiente digrafo, usando el algoritmo de Warshall
1
La matriz de adyacencias es
1 0
20
M=
31
4 1
2
1
0
0
0
3
0
1
0
1
0
0
0
0
Figura 15.
En este momento W = M y W ser modicado mediante el proceso iterativo que usa la frmula: nuevo
W (i, j) = W (i, j) [W (i, k) W (k, j)]
Proceso iterativo
Primera iteracin
Para k = 1 nodo intermedio
i = 1, j = 1
j=2
j=3
j=4
i = 2, j = 1
j=2
j=3
j=4
i = 3, j = 1
j=2
j=3
j=4
i = 4, j = 1
j=2
j=3
j=4
W (1, 1) =
=
W (1, 2) =
=
W (1, 3) =
=
W (1, 4) =
=
W (2, 1) =
=
W (2, 2) =
=
W (2, 3) =
=
W (2, 4) =
=
W (3, 1) =
=
W (3, 2) =
=
W (3, 3) =
=
W (3, 4) =
=
W (4, 1) =
=
W (4, 2) =
=
W (4, 3) =
=
W (4, 4) =
=
W (1, 1)
0
W (1, 2)
1
W (1, 3)
0
W (1, 4)
0
W (2, 1)
0
W (2, 2)
0
W (2, 3)
1
W (2, 4)
0
W (3, 1)
1
W (3, 2)
0
W (3, 3)
0
W (3, 4)
0
W (4, 1)
1
W (4, 2)
0
W (4, 3)
1
W (4, 4)
0
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
[
W (1, 1)
0
W (1, 1)
0
W (1, 1)
0
W (1, 1)
0
W (2, 1)
0
W (2, 1)
0
W (2, 1)
0
W (2, 1)
0
W (3, 1)
1
W (3, 1)
1
W (3, 1)
1
W (3, 1)
1
W (4, 1)
1
W (4, 1)
1
W (4, 1)
1
W (4, 1)
0
W (1, 1)
0
W (1, 2)
1
W (1, 3)
0
W (1, 4)
0
W (1, 1)
0
W (1, 2)
1
W (1, 3)
0
W (1, 4)
0
W (1, 1)
0
W (1, 2)
1
W (1, 3)
0
W (1, 4)
0
W (1, 1)
0
W (1, 2)
1
W (1, 3)
0
W (1, 4)
0
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
]
=0
=1
=0
=0
=0
=0
=1
=0
=1
=1
=0
=0
=1
=1
=1
=0
Algoritmo de Warshall
35
W (1)
1
1 0
2 0
=
3 1
4 1
2
1
0
1
1
3
0
1
0
1
0
0
0
0
Segunda Iteracin
Para hallar W (2) partimos con todas las trayectorias encontradas en W (1) y establecemos las trayectorias
que usan a v1 y v2 como nodos intermedios.
Para k = 2 y usando los valores de W (1) ejecutamos el mismo proceso iterativo y se obtiene:
1 2 3 4
W
=
que usa los nodos v1 y v2 como nodos intermedios
3 1 1 1 0
4 1 1 1 0
Tercera Iteracin
Para k = 3 y usando los valores de W (2) , ejecutamos el mismo proceso iterativo y se obtiene:
(3)
1 1
2 1
=
3 1
4 1
2
1
1
1
1
3
1
1
1
1
0
0
0
0
Cuarta Iteracin
Para k = 4 y usando los valores de W (3) y ejecutando el mismo proceso iterativo se obtiene:
W (4)
1 1
2 1
=
3 1
4 1
2
1
1
1
1
3
1
1
1
1
0
0
= Matriz de alcanzabilidad
0
0
Obsrvese que W (3) = W (4) porque el nodo 4 es un nodo fuente, l no recibe ningn arco, entonces no se
pueden establecer nuevas trayectorias. El proceso se detiene cuando:
1. W k1 = W k
2. W k = matriz de unos
3. W k = W n
Trayectorias de acceso o alcanzabilidad
W (4) (1, 1) = 1
W (4) (1, 2) = 1
W (4) (1, 3) = 1
W (4) (2, 1) = 1
W (4) (2, 2) = 1
W (4) (2, 3) = 1
W (4) (3, 1) = 1
W (4) (3, 2) = 1
W (4) (3, 3) = 1
W (4) (4, 1) = 1
W (4) (4, 2) = 1
W (4) (4, 3) = 1
Trayectoria
Trayectoria
Trayectoria
Trayectoria
Trayectoria
Trayectoria
Trayectoria
Trayectoria
Trayectoria
Trayectoria
Trayectoria
Trayectoria
de
de
de
de
de
de
de
de
de
de
de
de
acceso:
acceso:
acceso:
acceso:
acceso:
acceso:
acceso:
acceso:
acceso:
acceso:
acceso:
acceso:
1231
12
123
231
2312
23
31
312
3123
41
4312
43
36
RELACIONES Y GRAFOS
Ejercicios Captulo 2
1. Sea A el conjunto de los nmeros reales. Se dene la siguiente relacin en A: xy si y solo si x e y
satisfacen la ecuacin
x2
y2
+
=1
16
81
Establecer el dominio y el codominio de .
2. Dada la relacin = {(1, 3), (4, 5), (7, 9), (8, 20)} establecer su dominio y codominio.
3. Para la siguiente relacin = {(a, 3), (b, 5), (c, 7)} establecer la matriz de la relacin.
4. Sean A = {7, 10, 4, 12}, B = {3, 8, 5} y la relacin AB a < b. establecer el conjunto de parejas que
conforman a y la matriz de .
5. Trazar el grafo que represente cada una de las relaciones de los ejercicios 2, 3 y 4.
6. La siguiente es la matriz de una relacin ,
M = 1
a 1
M = b 1
c
0
establecer:
y
0
1
1
1
1
1
a) Dom()
b) Cod()
c) Conjunto de parejas.
d ) Trazar el grafo correspondiente.
8. Sean A = {1, 2, 3, 4, 8}, B = {1, 4, 6, 9} y la relacin ab si y solo si a es un divisor de b (a|b). Establecer el
conjunto de parejas de y trazar el grafo.
9. Sean A = {1, 2, 3, 4, 5}, B = {5, 2, 1, 4, 10} y la relacin ab si y solo si a es un mltiplo de b. Establecer el
conjunto de parejas de y trazar el grafo.
10. Sea A = {1, 2, 3, 4}. Encontrar la relacin en A determinada para la siguiente matriz:
0
M =
0
1
1
1
0
0
0
1
1
0
1
0
a) M .
b) Conjunto de parejas.
c) Dominio y codominio de .
A. Caicedo B., G. Wagner de G., R. M. Mndez
Algoritmo de Warshall
37
2
1
3
Figura 16.
Figura 17.
15. En los ejercicios de a hasta h, determinar si la relacin sobre el conjunto A es reexiva, irreexiva,
simtrica, asimtrica o transitiva.
a) A = Z; ab a b + 1
b) A = Z+ ; ab a = bn , n Z+
c) A = Z; ab |a b| = 4
d ) A = Z+ ; ab |a b| 2
e) A = Z; ab a + b es par
f ) A = Z; ab a + b es impar
g) A = Z; ab a b es par
h) A = Z; ab a b es impar
16. Sea A = {x, y, z} . Determinar si la relacin cuya matriz
de equivalencia.
1 0
M = 0 1
0 1
38
RELACIONES Y GRAFOS
17. Para los ejercicios de a hasta e, considere la relacin cuyo grafo dirigido se ilustra en la gura 18.
1
6
4
5
Figura 18.
Figura 19.
Ca
ulo
pt
CONEXIDAD
El concepto de conexidad en la teora de grafos es uno de los conceptos ms importantes
y de mayor aplicabilidad. Para desarrollar este concepto se hace uso de otros que ya fueron
tratados en la unidad anterior, tales como trayectoria y ciclo o circuito.
Como en la mayora de las situaciones de optimizacin en redes y rboles se requiere
que el grafo o red inicial sea conexa, es conveniente establecer un algoritmo que determine si
un grafo es conexo o n. Este es el propsito central de la presente unidad.
3.1
Grafo Conexo
Denicin 3.1
Grafo Conexo
Un grafo se dice ser conexo si para cada par de vrtices x e y existe una trayectoria desde x hasta
y la cual use mximo n-1 arcos.
Un grafo conexo consiste de una sola pieza, mientras que un grafo que no es conexo consiste de dos o ms
piezas. Estas piezas son subgrafos del grafo original y son llamadas componentes.
Denicin 3.2
Un grafo orientado es fuertemente conexo si para cada par de vrtices x e y existe una trayectoria
desde x hasta y y una trayectoria desde y hasta x. Las trayectorias pueden ser diferentes
Denicin 3.3
Un grafo dirigido es llamado conexo si para cada par de vrtices x e y existe una trayectoria desde
un nodo al otro.
Sea M una matriz de adyacencias del grafo G donde cada elemento mij de M es de la forma
mij =
40
CONEXIDAD
Al efectuar M M = M 2 sus entradas indicarn el nmero de trayectorias diferentes que existen entre
cada par de nodos y que tengan longitud de 2 arcos. Similarmente en M 2 M = M 3 sus entradas
indicarn el nmero de trayectorias diferentes que existen entre cada par de nodos y que tienen longitud
de tres arcos.
En al menos una de las matrices M, M 2 , . . . , M n1 habr una entrada no cero en la (i, j) esima
3.2
paso 0.
paso 1.
Hacer C = M
Hacer I = 1
paso 2.
Si C tiene todas las las libres de ceros ejecutar paso 4, en caso contrario continuar.
paso 3.
Hacer I = I + 1
Si I = n, ejecutar paso 5, en caso contrario hacer C = C + M I y regresar al paso 2.
paso 4.
paso 5.
Ejemplo 1
Usando el algoritmo anterior, determinar si el grafo de la gura 1 es conexo
2
3
4
5
Figura 1.
41
Solucin
Paso 0. Matriz de adyacencias. n = 6.
paso 1. Hacer C = M , I = 1
0
M =
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
C=
1
0
0
+ 1 = 2 I = n, hacer C
1 0 1 0 0
2
0 1 0 0 0 0
1 0 0 1 1 1
+
0 0 0 1 0 0
0 1 1 0 1 1
0 1 0 1 0
0
= C + M2 .
0
2
0
1
1
1
1
0
3
1
1
1
0
1
1
2
0
1
1
1
1
0
3
1
0
2
1 1
1 1
=
1 1
1 1
2
0
1
2
1
1
1
1
1
1
3
1
2
2
1
1
1
2
1
1
1
1
2
1
3
1
2
2
2
2
1 4
4 2
=
1 4
4 2
2
2
4
2
5
2
3
2
2
5
5
3
7
6
4
2
3
2
5
2
2
3
7
5
5
6
6
4
1
C=
1
1
0
+ 1 = 3 I = n, Hacer C
1 1 1 1 0
0
2 1 1 1 1 3
1 3 1 2 2 1
+
1 1 2 1 1 3
1 2 1 3 2 1
1 2 1 1 2
2
= C + M 3.
3
0
4
1
2
1
1
4
2
2
5
4
3
1
2
0
4
1
1
2
5
4
2
4
42
CONEXIDAD
Denicin 3.4
Sea el grafo G (N, A) y ni N uno de los nodos. Se denota Cni el conjunto formado por el nodo
ni y todos los nodos de G ligados a ni , por una trayectoria.
Denicin 3.5
Se llama componente conexa de G a un subgrafo de G engendrado por un conjunto de la forma
Cni .
Ejemplo 2
En el grafo siguiente las dos subgrcas son componentes conexas del grafo dado.
2
4
5
Figura 2.
Denicin 3.6
El nmero de componentes de un grafo G es llamado el nmero de conectividad de G y es notado
por C (G) .
Teorema 1
G es conexo si y solo si C (G) = 1.
3.3
43
ALGORITMO
Inicio
N N
C0
mientras N = haga
inicio
Escoger n N
Encontrar todos los nodos conectados a n y guardarlos en W
Remover todos estos nodos de N , es decir, hacer N = N W
C =C +1
Terminar
Terminar
Ejemplo 3
Aplicar el algoritmo anterior al grafo de la gura 3.
2
10
8
9
Figura 3.
SOLUCIN
N = {1, 2, . . . , 10} C = 0
Primera iteracin:
N = continuar
Escoger n = 5 arbitrariamente
W = {5, 6, 7, 8, 9} nodos conectados a n (componente)
N = N W = {1, 2, 3, 4, 10}
C =0+1=1
Segunda iteracin
N = continuar
Escoger n = 1 arbitrariamente
W = {1, 2, 3, 4} nodos conectados a n (componente)
N = N W = {10}
C =1+1=2
Tercera iteracin
N = continuar
Escoger n = 10 arbitrariamente
W = {10} nodos conectados a n (componente)
N = N W =
C =2+1=3
Cuarta iteracin
N = Parar
No se pudieron visitar todos los nodos, entonces el grafo no es conexo.
A. Caicedo B., G. Wagner de G., R. M. Mndez
44
CONEXIDAD
Ejercicios Captulo 3
1. Use el algoritmo de conexidad para determinar
continuacin, es conexo o n.
0 0
0 0
1 0
0 1
0 0
0
1
0
0
1
1
0
2. Por simple inspeccin determinar cul es el arco que hace que el siguiente grafo sea conexo
Figura 4.
d
Figura 5.
e
c
f
Figura 6.
Ca
ulo
pt
CIRCUITO EULERIANO
Cuando se posee una red no dirigida conexa se puede disear un circuito que recorra todos
sus nodos, partiendo de un nodo especco y regresando a l, pero sin pasar ms de una vez
por cada arco, adems escogiendo el circuito de forma tal que el recorrido sea mnimo.
Este tipo de problema se resuelve hallando un circuito euleriano de longitud mnima.
4.1
Circuito de Euler
Denicin 4.1
Circuito Euleriano
En una red conexa, un circuito que recorra todos los nodos y todos los arcos pasando una vez por
cada arco, se llama circuito euleriano.
Trayectoria Euleriana
Una trayectoria euleriana es una trayectoria que incluye cada arco exactamente una sola vez.
El problema de determinar un circuito euleriano de longitud mnima de una red conexa, tambin es
llamado El Problema del Cartero o Problema Chino del Cartero el cual apareci formulado por primera
vez por M. K. Kwan en el Chinese Mathematical Journal. Sus orgenes se remontan a 1736 cuando
Leonard Euler estudi el problema de los puentes de Knigsberg.
4.1.1.
Puentes de Knigsberg
La ciudad de Knigsberg, situada en Prusia Oriental, en la poca de Euler (1707-1783) y hoy perteneciente
a Rusia con el nombre de Kaliningrado es atravesada por el ro Pregel o Pregolia. La parte central de la
ciudad se encuentra sobre una isla del ro llamada Kniphof que se une a las dos orillas por cuatro puentes,
dos a cada lado; un quinto puente une a Kniphof con otra isla que tambin est unida a las orillas por
dos puentes, uno hacia cada orilla.
45
46
CIRCUITO EULERIANO
En aquella poca alguien propuso el siguiente problema: Ser posible, en una sola caminata, pasar por
los siete puentes sin cruzar ninguno de ellos dos veces?. En la ciudad de San Petesburgo, entonces capital
de Rusia, el matemtico suizo Leonard Euler, analiz el problema y escribi un trabajo que present a
la Academia Rusa de Ciencias. Este trabajo demostr que el problema tal como haba sido propuesto no
tiene solucin.
El problema lo esquematiz en un grafo donde sustituy las porciones de tierra por puntos o nodos
y los puentes por lneas o arcos como se muestra en la gura 2.
A
C
Figura 2.
Bajo esta simplicacin el problema se resuma en coger un lpiz y a partir de un nodo del grafo y sin
levantarlo, tratar de recorrer todo el grafo sin repetir arco. Esto equivaldra a atravesar fsicamente los
siete puentes del problema, donde el concepto recorrer el grafo es pasar todos los arcos solamente una
vez y regresar al punto de partida.
En su trabajo Euler descubri que un grafo puede ser recorrido (cruzado) si todos sus nodos son pares.
Obsrvese que en el grafo de los puentes todos los nodos son de grado impar.
Para iniciar el proceso de hallar un ciclo euleriano en una red conexa, son de gran ayuda los siguientes
teoremas:
Teorema 1
G es un gafo conexo y de grado par si y solo si G tiene un ciclo euleriano.
Teorema 2
Un grafo conexo es euleriano si y solo si cada nodo tiene grado par.
Circuito de Euler
47
Denicin 4.3
Una red par es aquella en la cual el nmero de arcos que inciden a todos y cada uno de los nodos
es par.
Corolario
Un grafo conexo contiene una trayectoria euleriana, pero no un ciclo euleriano, si y solo s
exactamente dos nodos tienen grado impar. La trayectoria debe comenzar en un nodo impar y
terminar en otro nodo impar.
Ejemplo 1
Si en el grafo de los puentes se retira el arco BD, solamente los nodos A y C sern de grado impar
y el grafo podr cruzarse pero no se lograr regresar al punto de partida (gura 3a). Si se agrega
un nuevo arcoAC, solamente los nodos B y D sern impares y se podr cruzar el grafo pero no se
podr regresar al punto de partida (gura 3b). Si se hacen conjuntamente los dos casos anteriores
(retirar el arco BD y agregar el arco AC) todos los nodos quedan de orden par y el grafo podr ser
recorrido y regresar al nodo de partida (gura 3c).
A
C
a)
C
b)
Figura 3.
c)
Con relacin al corolario anterior se puede armar que la trayectoria euleriana empieza en un nodo impar
y termina en el otro nodo impar.
De acuerdo a estos teoremas, si el grafo es par entonces la solucin ptima al problema del cartero
es un ciclo euleriano. El cartero no tiene que repetir ningn arco.
Para una red par la bsqueda de un ciclo euleriano se puede desarrollar en la siguiente forma:
1. Dividir el conjunto de datos en dos subconjuntos: uno que contenga los arcos usados en el circuito
y otro que contenga los no usados. Inicialmente todos los arcos estn en el segundo conjunto.
2. El circuito es construido transriendo arcos del segundo conjunto al primero a medida que se van
usando.
3. Partiendo de un nodo origen cualquiera se selecciona un arco no usado que sea incidente a ese nodo
origen. Este arco se considera usado y se transere del segundo conjunto al primero.
4. Se repite el proceso hallando un nuevo arco no usado incidente al ltimo nodo del arco anterior
usado. As el circuito se construye arco por arco, hasta que eventualmente se regresa al nodo origen.
A. Caicedo B., G. Wagner de G., R. M. Mndez
48
CIRCUITO EULERIANO
El siguiente algoritmo se basa en los conceptos anteriores y permite hallar un circuito de Euler de longitud
mnima en redes conexas de orden par.
4.2
Algoritmo de Euler
Paso 0.
Determinar el orden de cada nodo del grafo G = (N, A). Hacer S el conjunto de todos los
nodos de orden impar. Si S es vaco ejecutar el paso 1.
Paso 1.
Ejemplo 2
Hallar la trayectoria del cartero para el grafo de la gura 4 aplicando el algoritmo anterior.
2
3
4
5
1
2
3
7
5
Figura 4.
paso 0.
La matriz de distancias es
0
4
D=2
4
0
5
3
6
2
5 3
6
0 3
7
3 0
7 0
Algoritmo de Euler
49
Si el grafo es conexo y de orden par, el paso 1 del algoritmo anterior se puede reemplazar por el siguiente
procedimiento:
A. Caicedo B., G. Wagner de G., R. M. Mndez
50
CIRCUITO EULERIANO
paso 0.
Vericar que el grafo G = (N, A) es conexo con todos los nodos de orden par.
paso 1.
paso 2.
paso 7.
Ejemplo 3
Aplicar el procedimiento anterior para establecer si el grafo de la gura 5 contiene un ciclo euleriano.
1
Figura 5.
X
9
C
{9}
|A(G)| > 0
A(G)
si
9
{9, 6, 7, 9}
11 3 = 8
{9, 6, 7, 9}
si
6
{6, 3, 4, 5, 6}
84=4
{9, 6, 3, 4, 5, 6, 7, 9}
si
7
{7, 2, 1, 8, 7}
44=0
{9, 6, 3, 4, 5, 6, 7, 2, 1, 8, 7, 9}
no
parar
Algoritmo de Euler
51
Ejercicios Captulo 4
1. Aplicar el algoritmo general de Euler para hallar un circuito euleriano en el grafo de la gura 6,
usando el nodo a como nodo inicial.
a
b
c
e
g
f
Figura 6.
2. Mostrar que el grafo de la gura 7 tiene una trayectoria euleriana, pero no un circuito euleriano.
Construir la trayectoria.
a
c
d
Figura 7.
Figura 8.
4. Un ingeniero supervisor de carreteras tiene asignado un circuito vial que debe revisar una vez por
semana para informar sobre el estado de dichas vas. El circuito vial es el de la gura 9
2
10
12
20
14
18
25
7
10
11
Figura 9.
4
18
52
CIRCUITO EULERIANO
El ingeniero tiene su sede en la ciudad 1 y debe planear su recorrido en forma tal que recorra todas
las carreteras de la red vial con el mnimo de distancia recorrida.
5. En una red de estaciones repetidoras se emite una seal de prueba de la estacin R1, la seal debe
llegar a todas las otras estaciones; cada estacin la replica a la estacin ms cercana, hasta que la
seal regresa a R1. Determinar la trayectoria seguida por la seal de prueba si la red de repetidoras
es la mostrada en la gura 10.
R2
20
18
R1
35
30
R4
30
R3
26
24
R5
32
35
72
Figura 10.
30
R6
80
Ca
ulo
pt
CICLO HAMILTONIANO
Cuando se tiene un grafo conexo no dirigido G = (N, A) puede ocurrir que se desea hacer
un recorrido por el grafo, que pase por todos lo nodos, sin repetir nodo y regresar al nodo de
partida. Tal tipo de recorrido se dene como un ciclo o circuito hamiltoniano.
El nombre de este tipo de ciclo se ha dado en honor al matemtico irlands Sir William Rowan
Hamilton (1805-1865), quien fue el primero que los estudi en 1857.
Si el grafo G tiene asociados a sus arcos valores que pueden ser las distancias entre los nodos
o el costo de recorrer dichas distancias, es de inters hallar un circuito que recorra todos los
nodos una sola vez, y que tenga distancia mnima o costo mnimo. Este problema ha sido
formulado desde hace mucho tiempo con el nombre de: Problema del Agente Viajero.
5.1
Ciclo de Hamilton
Denicin 5.1
En un grafo G = (N, A), una trayectoria (o ciclo) que contenga exactamente n 1 arcos y recorra
todos los nodos, es llamado hamiltoniana. Un grafo es llamado hamiltoniano si contiene un ciclo
hamiltoniano.
No hay una regla simple para determinar la existencia de un circuito hamiltoniano como si la hay para
circuitos eulerianos. Es cierto que un grafo con circuito hamiltoniano es conexo, pero no cada grafo conexo
tendr un circuito hamiltoniano.
Si un grafo representa un conjunto de ciudades a ser visitadas, luego una trayectoria que visite cada
ciudad exactamente una sola vez es un circuito hamiltoniano. Asumiendo que cada ciudad est conectada
por un arco a cada una de las otras ciudades, siempre habr un circuito hamiltoniano.
Teorema 1
De Dirac
Si G tiene n mayor o igual a 3 nodos y cada nodo tiene grado al menos n/2, entonces G es
hamiltoniano.
Teorema 2
54
CICLO HAMILTONIANO
Ejemplo 1
4
Figura 1.
Obsrvese que para cualquier par de nodos que se escoja, se cumple que la suma de los grados es
n 1, por lo tanto el grafo tiene una trayectoria Hamiltoniana, sta podra ser 1 4 3 2 5.
Basado en el teorema anterior De Dirac, se obtiene el siguiente algoritmo
5.2
Algoritmo Hamiciclo
paso 1
paso 2
paso 3
paso 6
Imprimir C y parar.
Ejemplo 2
Aplicar el algoritmo anterior al grafo de la gura 2 para hallar un ciclo hamiltoniano C
u
Figura 2.
Solucin
El seguimiento del algoritmo se muestra en la tabla siguiente:
paso
2
4
5
4
5
6
|N (C) = N |
no
{u, w, y, v, x, t, u}
{u, w, y, v, x, t, u}
{x, v, t, w, y}
{x, t, w, y, v, x}
si
parar
{u, t, w, y, v, x}
5.3
55
Sea G = (N, A) un grafo conexo cuyos nodos representan ciudades y sus arcos representan las carreteras
que unen cada par de ciudades. El valor asociado a cada arco d(x, y) 0 es la distancia entre ellas. Un
agente viajero desea escoger una ruta que le permita visitar cada ciudad una sola vez y retornar a la
ciudad de origen cubriendo el mnimo de distancia.
Planteado en esta forma, el problema del agente viajero es equivalente a hallar un ciclo hamiltoniano
con la distancia mnima o costo mnimo
Un circuito hamiltoniano con la menor longitud total es llamado un ciclo hamiltoniano ptimo y es
una solucin ptima al problema del agente viajero.
Un circuito ptimo para el problema del agente viajero no necesariamente es un circuito hamiltoniano ptimo como se observa en el siguiente grco.
b
2
2
15
4
4
Figura 3.
Para hallar una solucin aproximada al problema del agente viajero se dispone de diversos algoritmos
como los de Bellmore-Nemhauser (1968), Held-Karp (1970), Garnkel-Nemhauser (1972), Little-Murty
(1973) y otros. Todos estos algoritmos caen dentro de dos categoras:
A. Caicedo B., G. Wagner de G., R. M. Mndez
56
CICLO HAMILTONIANO
1. Algoritmo que siempre halla una solucin ptima pero que se requiere de un nmero muy grande
de operaciones.
2. Algoritmo que encuentra un circuito hamiltoniano pero que no siempre es el ptimo. Requiere un
nmero razonable de operaciones.
Un algoritmo que encuentra una sub-ptima solucin al problema del agente viajero en un grafo completo
es el llamado algoritmo del vecino ms cercano. Este algoritmo se describe a continuacin.
5.4
paso 0.
paso 1.
paso 2.
Marcar n
Mientras existan nodos sin marcar, hacer:
begin
paso 3.
paso 4.
paso 5.
Hacer n = u
end
paso 6.
paso 7.
paso 8.
Ejemplo 3
Aplicar el algoritmo del vecino ms cercano al grafo pesado de la gura 4, para hallar un ciclo
hamiltoniano.
b
10
7
6
3
c
8
Figura 4.
57
Solucin
paso 0.
paso 1.
paso 2.
paso 3.
paso 4.
paso 5.
Hacer n = a.
paso 2.
paso 3.
paso 4.
paso 5.
Hacer n = c.
paso 2.
paso 3.
paso 4.
paso 5.
Hacer n = d
paso 2.
paso 6.
paso 7.
paso 8.
Se ha hallado un circuito hamiltoniano que no es una solucin ptima al problema del agente viajero
puesto que si se toma como nodo inicial al nodo a, el circuito resultante ser de longitud 23 como se
muestra en la gura 5.
b
5
a
7
3
c
8
Figura 5.
58
CICLO HAMILTONIANO
Teorema 4
Sea G un grafo conexo sin lazos, con n nodos, n 3. Entonces x, y N, si grad(x) + grad(y) n
y x e y no estn conectados por un arco, entonces G es hamiltoniano
Ejemplo 4
2
3
(2, 3),
n = 5 y (3, 4),
(1, 5),
no existe
no existe
no existe
Figura 6.
grad(2) + grad(3) = 3 + 2 =5 5
grad(1) + grad(5) = 3 + 3 =6 5
Teorema 5
1
Sea G un grafo conexo sin lazos, |N (G)| = n 3. Si G tiene al menos 2 (n 1)(n 2) + 2 arcos,
entonces G es hamiltoniano
Ejemplo 5
n = 5 y 1 (5 1)(5 2) + 2 = 8 aristas,
2
entonces G es hamiltoniano
Figura 7.
Nota: Observe que los grafos de los ejemplos 4 y 5 son hamiltonianos pero no cumplen el teorema de
Dirac.
59
Ejercicios Captulo 5
1. Encontrar un ciclo hamiltoniano y un circuito euleriano para el grafo de la gura 8.
2
7
Figura 8.
2. Aplique el algoritmo del vecino ms cercano para hallar un ciclo hamiltoniano en el grafo de la
gura 9, empezando en el nodo a) 1; b) 2; c) 3.
4
1
12
11
3
9
10
4
Figura 9.
10
3. Cules de los grafos de la gura 10 contienen un circuito hamiltoniano. Cules contienen una
trayectoria hamiltoniana pero no un circuito hamiltoniano
Figura 10.
60
CICLO HAMILTONIANO
Figura 11.
Figura 12.
Ca
ulo
pt
LA TRAYECTORIA MS CORTA
Existen diversas situaciones o problemas de la vida real que pueden ser llevadas a formularse
como un caso especco de la Teora de Grafos, como es el hecho de encontrar la trayectoria
ms corta que une dos puntos de abastecimiento, dos ciudades, etc.
Algunos de los problemas ms comunes que pueden darse dentro de este mbito son:
a. Las compaas areas necesitan con frecuencia determinar las rutas ms cortas de sus vuelos que
cubran el mximo nmero posible de los aeropuertos a los cuales estn autorizados para llegar.
b. Los agentes viajeros de las compaas comerciales requieren de rutas que les permitan visitar el
mayor nmero de clientes sin salirse del lmite de sus presupuestos.
c. Las agencias de inversionistas deben decidir cmo invertir ptimamente sus fondos, escogiendo de
entre una gama de posibilidades de diversos montos y tiempos de duracin, y as llegar a establecer
el mejor plan de inversin, el cual correspondera a la trayectoria ms corta de una red establecida
considerando los nodos como fechas y los valores de los arcos como las rentabilidades esperadas.
d. Las compaas manufactureras deben enfrentar el problema de reposicin de maquinaria despus
de un perodo de tiempo dado, por lo cual pueden planear una poltica de reemplazo que minimice
el costo total de operacin para la mquina durante dicho periodo. Esta poltica se puede establecer
partiendo de plantear el modelo como un problema de ruta ms corta en una red orientada.
De los algoritmos diseados para resolver el problema de la trayectoria ms corta se destacan:
Algoritmo de DIJKSTRA (1959): permite encontrar la trayectoria ms corta entre dos nodos especcos, cuando los valores de los arcos son todos positivos
Algoritmo de FLOYD (1962): permite encontrar la trayectoria ms corta desde un nodo cualquiera
hasta uno de los otros nodos en el grafo, el cual puede tener arcos de valor negativo pero no circuitos
negativos
Algoritmo de FORD (1964): sirve para calcular la trayectoria ms corta entre dos nodos dados cuando
los valores de los arcos pueden ser negativos. Es una generalizacin del algoritmo de DIJKSTRA y
no se puede aplicar a grafos que contengan circuitos cuya longitud total sea negativa.
Algoritmo de DANTZIG (1967): es similar al algoritmo de FLOYD puesto que tambin encuentra
la trayectoria ms corta desde un nodo dado hasta cada uno de los otros nodos en el grafo.
Algoritmo de POLLAC (1967): encuentra la primera y segunda trayectoria ms corta en un grafo
que puede tener arcos negativos.
61
62
LA TRAYECTORIA MS CORTA
6.1
Trayectoria Mnima
Denicin 6.1
Dados los nodos ni y nj de un grafo G = (N, A) se llama trayectoria mnima o camino mnimo
de ni a nj al nmero de arcos del camino de longitud mnima que va desde ni a nj y se representa
por d(ni , nj )
Cuando en el grafo no exista un camino que vaya de ni a nj se dice que el camino mnimo es d(ni , nj ) = .
Adems, cuando ni = nj se escribe d(ni , nj ) = 0.
Si ni , nj y nk son nodos adyacentes, entonces:
d(ni , nj ) + d(nj , nk ) d(ni , nk )
Si el grafo es simtrico, entonces
d(ni , nj ) = d(nj , ni )
Ejemplo 1
Para el grafo de la gura 1 se tiene:
Camino mnimo del nodo 1 al 7 es d(1, 7) = 2
Camino mnimo del nodo 2 al 5 es d(2, 5) = 2
1
5
7
2
6
Figura 1.
6.2
Para determinar el o los caminos mnimos que van desde el nodo np al nodo nf en un grafo no pesado
se sigue el siguiente procedimiento:
A. Caicedo B., G. Wagner de G., R. M. Mndez
63
paso 1.
paso 2.
Se marcan con 1 a todos los nodos ni no marcados, adyacentes a np , y tales que (np , ni ) A
(o sea que debe existir arco entre np y ni )
paso 3.
Se marcan con 2 los nodos nj no marcados, adyacentes a los nodos ni marcados en el paso
anterior y tales que (ni , nj ) A
paso 4.
Continuar el proceso hasta llegar a marcar el nodo nf , los caminos mnimos quedan determinados por las secuencias de nodos que estn marcados en secuencia ascendente 0, 1, 2, . . .
Ejemplo 2
En el grafo de la gura 2 determinar el camino mnimo desde n0 a n7
n3
n5
n0
n2
n7
n1
n4
n6
Figura 2.
Solucin
paso 1.
paso 2.
paso 3.
paso 4.
Se marcan con 3 los nodos n6 , n7 adyacentes a n4 , n5 . Ya se marc el nodo nal n7. Parar.
El camino mnimo desde n0 a n7 es:
{n0 , n3 , n5 , n7 } {n0 , n2 , n4 , n7 } {n0 , n1 , n4 , n7 }
Con d(n0 , n7 ) = 3. El camino ms corto est formado por los nodos que quedaron
etiquetados en un orden consecutivo ascendente 0, 1, 2, 3.
6.3
Sea G = (N, A) un grafo y supngase que todo arco u tiene asociado un nmero l(u) 0 llamado valor
de u. Se trata de hallar una trayectoria o camino que vaya desde un nodo vi a otro vj tal que su valor
total sea mnimo. Este problema es resuelto en una forma muy eciente con el algoritmo propuesto por
Edsgar W. Dijkstra.
64
LA TRAYECTORIA MS CORTA
6.4
Algoritmo de DIJKSTRA
El algoritmo asigna un etiqueta a cada nodo en el grafo. Esta etiqueta es la distancia que hay desde el
nodo s escogido como origen a lo largo de la trayectoria ms corta encontrada, hasta el nodo que se est
etiquetando.
La etiqueta de cada nodo puede estar en 2 estados:
a. Puede ser permanente: en este caso la distancia encontrada es a lo largo de la trayectoria ms corta
de todas las encontradas.
b. Puede ser temporal: cuando hay incertidumbre de que la trayectoria encontrada sea la ms corta
de todas.
A medida que el mtodo trabaja se cambian gradualmente las etiquetas temporales por etiquetas permanentes. Al comienzo se tiene un conjunto de nodos con etiquetas temporales y el objetivo es hacer que esas
etiquetas disminuyan, encontrando trayectorias a esos nodos usando trayectorias a nodos etiquetados permanentemente. Cuando esto se ha logrado, se selecciona el nodo con la etiqueta temporal ms pequea y
esta etiqueta se convierte en permanente. El proceso se repite hasta que al nodo terminal t se le haya asignado una etiqueta permanente, pero esto puede ocurrir eventualmente, ya que cada vez que el algoritmo
es usado, una de las etiquetas es omitida y as el nmero de nodos con etiquetas temporales decrece a cero.
Algoritmo:
paso 0.
Asignar un etiqueta temporal l(i) = a todos los nodos i = s. Fijar l(s) = 0 y p = s. Hacer
l(s) permanente (p es el ltimo nodo al que se le haya asignado una etiqueta permanente).
s es el nodo de partida
paso 1.
Para cada nodo i con una etiqueta temporal redefnase l(i) a ser el menor entre l(i) y
l(p) + d(p, i). Hallar el nodo i con la menor etiqueta temporal. Hacer p igual a ste i y hacer
permanente la etiqueta l(p)
paso 2
Si el nodo t tiene etiqueta temporal, repetir el paso 1. En caso contrario, t tiene una etiqueta
permanente y sta corresponde a la longitud de la trayectoria ms corta desde s hasta t a
travs de la red. Parar.
Ejemplo 3
El grafo de la gura 3 muestra los costos en miles de pesos, para transportar una tonelada de
mercanca entre los diversos centros de consumo. Se desea determinar la trayectoria ms corta (menos
costosa) para transportar la mercanca desde el centro de abastecimiento S al centro de consumo t
S
7
4
3
3
b
2
2
c
Figura 3.
Algoritmo de DIJKSTRA
65
Para efectos de aplicacin del algoritmo, el centro de consumo t se llamar el nodo terminal t
Solucin
Matriz de adyacencias (o de costos); si el grafo no es dirigido
s
a
s
0
4
a 4
0
b 7
3
M=
c 3
d 2
t
b
7
3
0
paso 0.
c
d
3
2
0
3
3
0
2
2
0
l() =
permanentes?
si
no
no
no
no
no
l() =
permanentes?
paso 1.
si
no
no
si
no
no
Redenir etiquetas:
l(a) = m
n{, 0 + 4} = 4
l(b) = m
n{, 0 + 7} = 7
l(c) = m
n{, 0 + 3} = 3
l(d) = m
n{, 0 + } =
l(t) = m
n{, 0 + } =
Hacer p = c y l(c) = permanente
paso 2.
paso 1.
Redenir etiquetas:
l(a) = m
n{4, 3 + } = 4
l(b) = m
n{7, 3 + } = 7
l(d) = m
n{, 3 + 3} = 6
l(t) = m
n{, 3 + } =
Hacer p = a y l(a) = permanente
s
l() =
permanentes?
si
si
no
si
no
no
66
LA TRAYECTORIA MS CORTA
paso 1.
Redenir etiquetas:
l(b) = m
n{7, 4 + 3} = 7
l(d) = m
n{6, 4 + 2} = 6
l(t) = m
n{, 4 + } =
Hacer p = d y l(d) = permanente
s
l() =
permanentes?
si
si
no
si
si
no
paso 2.
paso 1.
Redenir etiquetas:
l(b) = m
n{7, 6 + } = 7
l(t) = m
n{, 6 + 2} = 8
Hacer p = b y l(b) = permanente
s
l() =
permanentes?
si
si
si
si
si
no
paso 2.
paso 1.
Redenir etiquetas:
l(t) = m
n{8, 7 + 2} = 8
Hacer p = t y l(t) = permanente
s
permanentes?
6.5
l() =
paso 2.
si
si
si
si
si
si
Algoritmo de Floyd-Warshall
El algoritmo de Floyd-Warshall encuentra el camino mnimo entre todos los pares de nodos, en una nica
ejecucin, en grafos dirigidos ponderados, sin ciclos negativos. El algoritmo compara todos los posibles
caminos a travs del grafo entre cada par de nodos y escoge la estimacin ptima (la de menor costo).
A. Caicedo B., G. Wagner de G., R. M. Mndez
Algoritmo de Floyd-Warshall
67
Sea G un grafo ponderado de n nodos. Sea cmin(i, j, k) una funcin que devuelve el camino mnimo de i
a j usando nicamente los nodos de 1 a k como puntos intermedios en el camino. El objetivo es encontrar
el camino mnimo desde cada i a cada j, usando nicamente los nodos 1 hasta k + 1.
El camino ptimo de i a j que utiliza nicamente los nodos de 1 hasta k, como nodos intermedios,
est denido por cmin(i, j, k). Si hubiera un camino mejor de i a k + 1 a j, la longitud de ese camino
sera la concatenacin del camino mnimo de i a k + 1 (utilizando nodos de 1 . . . k) y el camino mnimo
de k + 1 a j (que tambin utiliza los nodos en 1 . . . k)
Proceso Recursivo
cmin(i, j, k) = m [cmin(i, j, k 1), cmin(i, k, k 1) + cmin(k, j, k 1)]
n
cmin(i, j, 0) = valorarco(i, j)
Para efectos de implementar el algoritmo se usa una matriz de adyacencias del grafo, modicada y
que se llamar matriz de distancias o Dist; esta matriz es la matriz de pesos del grafo donde la ausencia
de un arco se simboliza con , y los valores en la diagonal principal son ceros.
Se utiliza algn nodo k como nodo intermedio para hallar la distancia ms corta entre todos los pares de
nodos.
Para una pareja de nodos (i, j) el camino ms corto del nodo i al k, que es Dist[i, k], se suma al camino
ms corto desde el nodo k hasta el nodo j. Si esta suma es menor que el camino actualmente ms corto
entre los nodos i y j, entonces se utiliza el camino ms corto que pasa por el nodo k.
Si Dist[i, k] + Dist[k, j] < Dist[i, j] entonces Dist[i, j] = Dist[i, k] + Dist[k, j]
Repitiendo este proceso para todas las parejas de nodos, se puede obtener para cada pareja la longitud
del camino de mnimo costo que pasa por el nodo k.
Al tomar todos los nodos de G como nodos intermedios, se obtiene la matriz de distancias mnimas
entre todos los pares de nodos.
Se introduce una matriz en la cual se registra informacin acerca de los nodos intermedios. Dicha matriz
se puede llamar CAM IN O. Esta informacin se puede utilizar para generar los nodos que se encuentran
en cada uno de los caminos mnimos.
La matriz CAM IN O se inicializa en cero y cuando el proceso termina CAM IN O[i, j] contiene el nmero
de nodos que ha dado lugar a un cambio en Dist[i, j].
Si
Si
Si
Si
Si
68
LA TRAYECTORIA MS CORTA
Procedimiento (1)
Entrar Dist[i, j] =matriz inicial de valores de G
begin
para i = 1 hasta n
para j = 1 hasta n
hacer CAM IN O[i, j] = 0
para k = 1 hasta n
para i = 1 hasta n
para j = 1 hasta n
si Dist[i, k] + Dist[k, j] < Dist[i, j], hacer
begin
Dist[i, j] = Dist[i, k] + Dist[k, j]
CAM IN O[i, j] = k
end
end.
Ejemplo 4
Para el siguiente grafo establecer la matriz de distancias ms cortas entre todas las parejas de nodos
y la matriz que indica los nodos intermedios por los cuales pasa cada camino ms corto.
3
1
1
8
3
Dist =
0
CAM IN O =
0 0 0
0 0 0
0 0 0
0 0 0
Figura 4.
k=1
(no)
Dist[1, 1],
CAM IN O[1, 1],
no cambia
no cambia
Dist[1, 2],
CAM IN O[1, 2],
no cambia
no cambia
Dist[1, 3],
CAM IN O[1, 3],
no cambia
no cambia
(no)
Dist[1, 4],
CAM IN O[1, 4],
no cambia
no cambia
(no)
Dist[2, 1],
CAM IN O[2, 1],
no cambia
no cambia
(no)
Dist[2, 2],
CAM IN O[2, 2],
no cambia
no cambia
(no)
Dist[2, 3]
CAM IN O[2, 3]
no cambia
no cambia
Algoritmo de Floyd-Warshall
69
(si)
Dist[2, 4]
cambia a 4
CAM IN O[2, 4] = 1
(no)
Dist[3, 1]
CAM IN O[3, 1]
no cambia
no cambia
Dist[3, 2]
CAM IN O[3, 2]
no cambia
no cambia
(no)
Dist[3, 3]
CAM IN O[3, 3]
no cambia
no cambia
(si)
Dist[3, 4]
cambia a 6
CAM IN O[3, 4] = 1
(no)
Dist[4, 1]
CAM IN O[4, 1]
no cambia
no cambia
(no)
Dist[4, 2]
CAM IN O[4, 2]
no cambia
no cambia
(no)
Dist[4, 3]
CAM IN O[4, 3]
no cambia
no cambia
(no)
Dist[4, 4]
CAM IN O[4, 4]
no cambia
no cambia
0 1
0
3 0
0
1 4
Dist1 =
CAM IN O1 =
5 1
0
0 6
8 1
4 0
0
Para k = 2
Para k = 3
Para k = 4
3
Dist2 =
4
4
0
1
1
1
0
2
5
0
3
Dist3 =
4
4
0
1
1
1
0
2
5
0
2
0
1
1
3
1
0
2
3
Dist4 =
4
4
5
0
0
CAM IN O2 =
2
2
0
CAM IN O3 =
2
2
0
CAM IN O4 =
2
2
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
2
2
0
0
0
0
0
0
0
0
2
2
0
4
0
0
0
4
0
0
2
2
0
70
LA TRAYECTORIA MS CORTA
La matriz Dist4 posee los valores de las distancias ms cortas entre cualquier par de nodos. Por
ejemplo Dist(1, 3) = 3, Dist(3, 4) = 5, etc.
La matriz CAM IN O4 sirve para establecer cules nodos conforman los caminos ms cortos. Por
ejemplo establecer el camino ms corto de 3 a 4. CAM IN O[3, 4] = 2 indica que 2 es un nodo
intermedio entre 3 y 4, es decir,
3
Como CAM IN O[3, 2] = 0, CAM IN O[2, 1] = 0, CAM IN O[1, 4] = 0, entonces no hay ms nodos
intermedios.
El camino ptimo entre 3 y 4 es
3
Procedimiento (2)
Entrar la matriz de distancias Dist del grafo G
Para k = 1 hasta n
Para i = k, 1 hasta n
Para j = k, 1 hasta n
hacer Dist[i, j] = m
n(Dist(i, j), Dist(i, k) + Dist(k, j))
Ejemplo 5
Hallar la matriz de distancias ms cortas entre todas las parejas de nodos del siguiente grafo no
dirigido
5
1
5
4
6
7
1 0
2 3
3 5
Dist =
4 1
5
6
2
3
3
5
0
0
7
9
7
1
Figura 5.
4
1
7
0
5
6
7
1
0
0
Algoritmo de Floyd-Warshall
5
Dist =
1
3
0
0
7
7
1
7
0
9
7
71
Aplicamos el algoritmo de Floyd-Warshall, y para ello en cada iteracin jamos un vrtice intermedio.
1a Iteracin: nodo intermedio = k = 1
La matriz en simtrica, por lo que solamente har falta calcular el tringulo superior de las distancias.
d23 = m 23 , d21 + d13 ) = 8,
n(d
5
Dist1 =
1
iteracin es:
3
0
8
4
9
5
8
0
6
7
1
1
4
6
0
7
1
0
0
0
3
3
0
5
8
Dist2 =
1
4
12 9
es:
5
8
0
6
7
1
1
4
6
0
13
4
12
7
1
13 4
0
0
72
LA TRAYECTORIA MS CORTA
0 3
3 0
5 8
Dist3 =
1 4
12 9
6 9
es:
5 1
8 4
0 6
6 0
7 13
1 4
12
9
7
13
0
8
8
0
0 3
3 0
5 8
Dist4 =
1 4
12 9
5 8
es:
5 1
8 4
0 6
6 0
7 13
1 4
12
9
7
13
0
8
8
0
Algoritmo Matricial
5
Dist5 = Dist4 =
1
12
5
3
0
8
4
9
8
5
8
0
6
7
1
73
1 12
4
9
6
7
0 13
13 0
4
8
8
0
0 3
3 0
5 8
Dist6 =
1 4
12 9
5 8
es:
5
8
0
5
7
1
1
4
5
0
12
4
12
9
7
12
0
8
8
0
Ya se han hecho todas las iteraciones posibles. Por tanto, el camino mnimo entre dos vrtices
cualesquiera del grafo ser el obtenido en la matriz nal. En este caso, el camino mnimo entre 3 y
4 vale 5.
6.6
Algoritmo Matricial
Este algoritmo propuesto por SHUMBEL en Structure in Communication Nets, Symposium of Information Networks en 1954, establece un procedimiento para hallar la trayectoria de valor mximo o de valor
mnimo, usando producto de matrices a partir de la matriz inicial de costos o adyacencias.
Algoritmo de Shumbel
Sea M la matriz de valores asociados a un grafo G, la cual se representa por M = [mij ] donde los
elementos mij se denen de dos formas.
a. Si se desea encontrar la trayectoria de valor mnimo, se establece:
mij = X,
si el arco no existe. Con X
0,
si hay un bucle o si i = j
A. Caicedo B., G. Wagner de G., R. M. Mndez
74
LA TRAYECTORIA MS CORTA
mij = X,
si el arco no existe. Con X
0,
si hay un bucle o si i = j
La matriz de trayectorias de valor ptimo es M n1 en donde n es el nmero de nodos del grafo.
Si en un momento dado se obtiene que M m = M m1 , siendo m < n 1 la matriz M m es la matriz
de trayectorias de valor ptimo, o sea qu la matriz de valor ptimo se obtiene del clculo de las siguientes
potencias: M , M 2 , M 3 , M 4 , . . . donde las operaciones matriciales se denen de la siguiente forma:
a. Si se trata de hallar la trayectoria de valor mnimo:
El producto de las dos matrices dar origen a otra matriz C obtenida as:
cij =mnk (aik + bkj )
=mnk (ai1 + b1j , ai2 + b2j , ai3 + b3j , . . . , ain + bnj )
La anterior expresin es equivalente a: sumar las parejas de elementos que intervienen en el producto
de matrices y escoger la suma mnima.
b. Si se trata de hallar la trayectoria de valor mximo:
Los elementos de la matriz producto son de la forma:
cij =mxk (aik + bkj )
=mxk (ai1 + b1j , ai2 + b2j , ai3 + b3j , . . . , ain + bnj )
La anterior expresin es equivalente a: sumar las parejas de elementos que intervienen en el producto
de matrices y escoger la suma mxima.
Ejemplo 6
Determinar las trayectorias de valor mnimo en el grafo de la gura 6
8
x2
3
x1
x4
5
x6
6
x3
x5
Figura 6.
Algoritmo Matricial
75
Solucin
La matriz de costos asociados al grafo es:
1
1 0
2X
3X
M=
4X
5X
6 X
2
3
0
X
X
X
X
3
7
3
0
X
X
X
4
X
8
1
0
4
X
5
X
4
4
3
0
X
X
X
6
0
0 3 6
X 0 3
X X 0
M2 =
X X X
X X X
X X X
y se obtiene:
8 7 X
4 4 10
1 4 6
0 3 5
4 0 6
X X 0
0 3 6 7 7 12
X 0 3 4 4 9
X X 0 1 4 6
M5 = M6 =
X X X 0 3 5
X X X 4 0 6
X X X X X 0
La matriz M 5 es la matriz de trayectorias de valor mnimo; muestra los valores de las trayectorias
mnimas para ir de un nodo a otro, por ejemplo: para ir del nodo 1 al nodo 6 la trayectoria mnima
tiene un valor de 12. Para ir del nodo 2 al 6 la trayectoria mnima vale 9.
76
LA TRAYECTORIA MS CORTA
6.7
La Trayectoria ptima
Hasta ahora se ha encontrado una matriz de distancias mnimas, pero no se ha determinado cules son
esas trayectorias mnimas. Para llegar a encontrar una trayectoria mnima se procede de la siguiente forma:
Sea S una matriz cuyos
1,
Sij =
0,
1 0
20
30
S=
40
50
6 0
2
1
0
0
0
0
0
3
0
1
0
0
0
0
4
0
0
1
0
1
0
5
0
1
1
1
0
0
0
0
1
0
En esta matriz el 1 indica presencia del arco y el 0 la ausencia del mismo. A partir de esta matriz se
pueden establecer las trayectorias, por ejemplo, para ir del nodo 1 al nodo 6 se pueden establecer las
siguientes trayectorias:
a. Del nodo 1 ir al nodo 2 (ver matriz S), estando en 2 ir al nodo 3, estando en 3 ir al nodo 4, del 4
ir al 5 y del 5 ir al 6. Longitud = 16.
b. Del nodo 1 ir al nodo 2, estando en 2 ir al nodo 5 y del 5 ir al nodo 6. Longitud = 13.
c. Del nodo 1 ir al nodo 2, del 2 ir al 4 y del 4 ir al 6. Longitud = 16.
d. Del nodo 1 ir al nodo 2, del 2 ir al nodo 3, del 3 ir al nodo 4 y del 4 ir al nodo 6. Longitud = 12.
Esta trayectoria tiene longitud igual a la que indica la matriz de valores mnimos, lo que indica que
ya se ha encontrado una de las trayectorias ms cortas para ir del nodo 1 al nodo 6.
Lo anterior se puede reorganizar mediante una estructura de rbol:
3
4
1
Vr = 16
Vr = 12
3
4
4
5
Vr = 19
6
6
2
4
4
5
Vr = 16
Vr = 16
Vr = 13
6
Figura 7.
A. Caicedo B., G. Wagner de G., R. M. Mndez
La Trayectoria ptima
77
La trayectoria de menor costo para ir del nodo 1 al nodo 6 es 1 2 3 4 6 con un valor de 12. Como
lo indica la matriz de parada M 5 es la posicin (1, 6).
En forma similar se procede para hallar otras trayectorias mnimas entre cada par de nodos, las cuales
no necesariamente son nicas.
Ejemplo 7
Un problema simple de control de produccin
Un fabricante de pinturas produce 5 tipos de pinturas que se pueden fabricar con la misma maquinaria. Los costos de adecuacin de mquinas para pasar de un producto a otro se muestran en la
siguiente tabla.
i
10
11
10
10
Se desea establecer el orden en que deben producir para que el costo sea mnimo.
El problema se puede traducir a un problema de trayectoria ms corta en un grafo conexo como el
siguiente:
8
7
2
11
7
1
10
10
10
6
8
8
Figura 8.
Se pueden encontrar varias trayectorias mnimas, dependiendo del nodo que se tome como nodo
inicial.
Aqu los nodos son los productos. Los valores en los arcos son los costos.
78
LA TRAYECTORIA MS CORTA
8
x
x 10
0
5
x 0
6
7
10 8
x
7
6
0
x
8
x
x 10
0
5
x 0
6
7
10 8
M2
x
7
6
0
x
11
10
0
11
10
0
8
x
x
0
x
6
10
10
5
0
7
8
M2
8
15
18
0
12
6
10
10
5
0
7
8
x 8
7 11
6 8
0 10
x 0
16 8
7 11
6
8
0 10
14 0
8
13
8
13
18
0
12
6
10
10
5
0
7
8
16
7
6
0
14
11
10
0
16
7
6
0
14
11
10
0
M3
18
0
12
6
10
10
5
0
7
8
1,
0,
Sij =
Comparando M y M 3 se obtiene:
1
1 0
21
S = 31
41
5 0
2
0
0
0
1
1
3
1
1
0
1
1
4
0
1
1
0
0
1
1
1
0
El 1 indica presencia de arco y el 0 ausencia de arco. Con esta matriz ya se pueden establecer las
trayectorias ptimas de valor mnimo.
6
3
10
11
= 33
10
= 36
= 35
15342
= 29
2
5
= 32
= 28
10
8
5
10
1
5
8
10
5
8
con un costo de 28
Figura 9.
A. Caicedo B., G. Wagner de G., R. M. Mndez
La Trayectoria ptima
10
8
1
7
6
7
10
= 33
= 29
= 27
5
10
= 31
23415
= 33
= 27
8
4
10
5
8
1
7
79
24315
25341
las tres con un costo de 27
= 30
= 27
Figura 10.
10
= 30
10
= 30
= 27
7
11
6
3
10
5
10
10
7
7
34215
= 33
= 33
Figura 11.
con un costo de 27
80
LA TRAYECTORIA MS CORTA
10
= 36
= 31
10
8
= 31
= 29
= 24
42315
10
1
10
8
7
4
5
8
con un valor de 24
5
11
5
10
3
5
8
10
= 30
10
= 30
10
= 32
10
= 37
7
5
= 30
= 33
= 29
8
3
1
Figura 12.
10
5
6
7
5
10
4
5
8
5
3
53421
6
4
8
2
1
2
= 27
Figura 13.
Nota: Obsrvese que en los rboles anteriores algunas ramas quedan sin completar, lo cual indica
que determinadas secuencias no se pueden realizar para producir las 5 pinturas.
La Trayectoria ptima
81
Ejercicios Captulo 6
1. Aplicar el algoritmo de Dijkstra para encontrar la trayectoria de mnimo valor entre los nodos A y
F del grafo de la gura 5
4
12
11
D
5
10
2
4
F
Figura 14.
2. Use un algoritmo que permita hallar la trayectoria de menor nmero de arcos entre los nodos A y
H del grafo de la gura 6
A
F
H
D
C
E
Figura 15.
3. Aplicar el algoritmo matricial de Shumbel para hallar la trayectoria de mnimo valor entre los nodos
1 y 9, entre los nodos 2 y 10 y entre los nodos 3 y 8 del grafo de la gura 7
3
4
2
5
2
2
7
5
8
3
3
9
4
11
1
10
Figura 16.
4. Debido a los avances tecnolgicos, una compaa procesadora de datos considera que un determinado
tipo de computador tiene una vida til de 4 aos y luego entra en obsolescencia. La compaa puede
tener este tipo de computador por un perodo de 4 aos y luego venderlo por un valor de rescate, o
puede reemplazarlo por un nuevo modelo al nal de cualquier ao dado. El costo neto estimado de
operacin (precio de compra + instalacin y mantenimiento precio de venta) para un computador
comprado al inicio del ao i y vendido al inicio del ao j est dado en la tabla 1 y representado en
el grafo de la gura 8; adems, determinar una poltica de reemplazo que minimice el costo total
de operacin durante el perodo de 4 aos. Usar el algoritmo de Dijkstra
A. Caicedo B., G. Wagner de G., R. M. Mndez
82
LA TRAYECTORIA MS CORTA
19
33
49
14
23
38
16
12
26
2
3
4
13
Figura 17.
Tabla 1.
5. Un fabricante de pegantes produce 5 clases de productos que se pueden fabricar con la misma
maquinaria, con los correspondientes costos de adecuacin y operarios. Desea determinar el orden
en que debe producir estos 5 productos para que el costo sea mnimo. La tabla de costos por cambio
de actividad se muestra en la tabla 2, en donde m indica que no se puede llevar a cabo el intercambio
de la actividad i por la actividad j.
i
Tabla 2.
6. Use el procedimiento (1) del algoritmo de Floyd-Warshall para hallar la matriz de distancias mnimas
y la matriz de caminos para los siguientes grafos
2
1
2
5
2
4
1
2
2
5
2
10
3
4
1
2
4
2
a)
b)
10
7. Use el procedimiento (2) del algoritmo de Floyd-Warshall para hallar la matriz de distancias mnimas
del siguiente grafo.
1
2
2
1
4
5
4
Ca
ulo
pt
RBOLES
Uno de los elementos de la teora de grafos ms ampliamente aplicados es el concepto de rbol,
el cual es muy usado al solucionar problemas de redes locales de comunicacin.
7.1
Conceptos Bsicos
83
84
RBOLES
Ejemplo 1
Los grafos de la gura 1 son rboles
Figura 1.
Ejercicio 1
Determinar cules de los grafos de la gura 2 son rboles
Figura 2.
Los siguientes enunciados son equivalentes para un grafo G = (N, A) con n vrtices y m aristas:
1. G es un rbol
2. Existe exactamente una trayectoria entre cualquier par de vrtices en G
3. G es conexo y m = n 1
4. G es conexo y removiendo cualquier arista, G deja de ser conexo
5. G es acclico y m = n 1
6. G es acclico y adicionando alguna arista se crea un ciclo
Denicin 7.4
Un vrtice v de un digrafo se dice ser una raz del digrafo si todos los vrtices del mismo son
accesibles desde v
A. Caicedo B., G. Wagner de G., R. M. Mndez
Conceptos Bsicos
85
Denicin 7.5
Un rbol con raz (o rbol dirigido) es un digrafo tal que posee una raz y su grafo asociado es un
rbol
En un rbol arraigado en v0 , la trayectoria entre v0 y cualquier otro vrtice vn es nica y la longitud de
dicha trayectoria se llama el nivel del vrtice vn
El nivel donde terminan las aristas adyacentes a v0 se llaman vrtices de nivel 1 y se considera que v0
est en el nivel 0. A v0 se le llama tambin antecesor o padre de los vrtices del nivel 1 y a stos se les
llama vstagos o descendientes de v0 . Recursivamente, los descendientes de v0 pueden ser designados
como races de los subrboles obtenidos al borrar la raz del rbol original.
En la gura 3 se muestra un rbol con sus correspondientes niveles o grupos de descendientes.
nivel 0
v0
v1
v4
v2
v5
v6
nivel 1
v3
v7
v8
v9
nivel 2
Figura 3.
La relacin antecesor vstago se mantiene entre los niveles, por ejemplo: v1 es antecesor de los vstagos
v4 , v5 y v3 es antecesor de los vstagos v7 , v8 , v9
Denicin 7.6
El nmero de niveles de un rbol T se llama altura del rbol o nivel del rbol o profundidad del
rbol.
La anterior denicin es equivalente a decir que la longitud de la trayectoria ms larga desde la
raz es la profundidad o nivel del rbol arraigado.
Denicin 7.7
Los vrtices de un rbol que no tengan vstagos se les llama hojas del rbol.
Ejemplo 2
En el rbol de la gura 3 las hojas son v4 , v5 , v6 , v7 , v8 , v9
Denicin 7.8
La altura de un nodo en un rbol es la longitud de la trayectoria ms larga desde ese nodo a cada
hoja. La profundidad de un nodo es la longitud de la trayectoria desde la raz hasta ese nodo.
A. Caicedo B., G. Wagner de G., R. M. Mndez
86
RBOLES
Cuando al construir un rbol se introducen los conceptos de relacin y de niveles, se considera que el
rbol est siendo construido en forma orientada. (rbol orientado o dirigido).
Al dibujar el grafo dirigido de un rbol se puede introducir algn ordenamiento para cada nivel, arreglando (numerando) los vstagos de izquierda a derecha. A un rbol de este tipo se le llama rbol ordenado.
El rbol de la gura 3 es un rbol ordenado.
Ejemplo 3
El siguiente rbol (gura 4) es ordenado segn un orden alfabtico
a
c
b
e
h
Figura 4. Arbol ordenado
7.2
Subrboles
Sea (T, v0 ) un rbol arraigado sobre el conjunto N de nodos. Sea v un vrtice de T y B el conjunto que
consta de v y todos sus descendientes. B N .
Sea T (v) la restriccin de la relacin T a B que es T (B B) entonces T (v) tambin es un rbol
arraigado con raz v. Luego T (v) es un subrbol de T .
Denicin 7.9
Un subrbol T (v) est compuesto por el nodo v y todos sus descendientes.
Ejemplo 4
El rbol siguiente es trinario no ordenado y de l se pueden sacar tres subrboles: T (v5 ), T (v4 ), T (v2 )
(gura 6)
v3
v5
v9
v4
v2
v6
v10
v7
v8
Figura 5.
rbol Binario
87
v5
v9
T (v5 )
v4
v2
v6
v10
v7
T (v4 )
v8
T (v2 )
Figura 6.
7.3
rbol Binario
Un concepto muy importante a tener en cuenta en el estudio de rboles es su clasicacin segn el nmero
de descendientes que posea cada nodo
Denicin 7.10
Si n Z+ , se dice que T es un rbol n-ario si cada vrtice tiene mximo n vstagos.
Si todos los vrtices de T , excepto las hojas, tienen exactamente n vstagos, se dice que T es un
rbol n-ario completo.
Particularizando, un rbol binario es aquel que tiene como mximo dos descendientes (vstagos)
para cada vrtice excepto para las hojas.
Denicin 7.11
Un rbol binario es un conjunto nito de cero o ms nodos tal que
1. Existe un nodo denominado la raz del rbol.
2. Cada nodo puede tener 0, 1 2 vstagos conocidos como vstago izquierdo y vstago derecho.
Ejemplo 5
Los rboles de la gura 7 son binarios. El de la derecha es un rbol binario completo.
Figura 7.
88
RBOLES
Denicin 7.12
Un rbol binario se considera equilibrado o balanceado si al seleccionar uno cualquiera de sus
nodos, cada uno de los subrboles que penden de l tiene un nmero de nodos que no diere en
ms de uno, de los otros subrboles del nodo.
Un tipo de rbol muy usado al estructurar datos son los rboles parcialmente balanceados o rboles AVL
llamados as en honor a sus creadores, Adelson, Velskii y Landis.
Denicin 7.13
Un rbol es parcialmente balanceado por altura o AVL cuando la diferencia de altura de
cualquiera de los subrboles que penden de un nodo del rbol no es mayor de uno.
Denicin 7.14
Si T es un rbol con raz y n es el mayor nivel de T , entonces T tiene altura n y T es balanceado
si el nivel del cualquier hoja es n o n 1.
Ejemplo 6
El siguiente rbol no es un rbol AVL
Figura 8.
Teorema 2
Un rbol binario completo de altura h tiene a lo mximo 2h vrtices en el nivel h
Prueba
La prueba se hace por induccin sobre h. Como la raz es el nico vrtice en el nivel cero,
entonces existen 2 o cero vrtices adyacentes a la raz y estos estn en el nivel 1.
Asmase que no hay ms de 2k vrtices en el nivel k. Considrese el nivel k + 1. Cada vrtice
en este nivel debe ser adyacente a un slo vrtice en el nivel k. Como cada vrtice en el nivel k
tiene grado 1 3 entonces l es adyacente a cero o 2 vrtices en el nivel k + 1. Luego, el nmero
de vrtices en el nivel k + 1 no puede ser mayor de 2 veces el nmero de vrtices en el nivel k.
Si Nk = nmero de vrtices en el nivel k, entonces:
Nk+1 2Nk 2 2k = 2k+1
A. Caicedo B., G. Wagner de G., R. M. Mndez
rboles Etiquetados
89
Corolario
Un rbol binario completo de altura h tiene como mximo 2h+1 1 vrtices
Prueba
Por el teorema anterior se sabe que en el nivel k hay como mximo 2k vrtices. As, el nmero
total de vrtices en el rbol es a lo mximo
1 + 2 + 4 + . . . + 2k + . . . + 2h =
7.4
1 2h+1
= 2h+1 1
12
rboles Etiquetados
Un rbol especco se puede usar para modelar un problema o para usarlo para un propsito particular;
para tal efecto conviene etiquetar los vrtices o las aristas y as poder usar ms fcilmente las propiedades
de los rboles en la computacin.
Una de las aplicaciones ms simples de los rboles etiquetados es usarlos para representar expresiones
algebraicas.
Ejemplo 7
La expresin algebraica:
(7 (5 y)) + ((y + 3) (8 y))
se puede representar mediante el rbol etiquetado de la gura 9
+
Figura 9.
Se etiqueta el nodo raz con el operador central (+), los dos vstagos de la raz se etiquetan con los
operadores centrales de las expresiones de argumentos izquierdo y derecho. Si algn argumento es una
constante o una variable y no una expresin, se etiqueta el vstago correspondiente con dicha constante
o variable.
Reglas para representar expresiones:
a. Cada hoja es etiquetada por un solo operando
b. Cada nodo interior es etiquetado por un operador
A. Caicedo B., G. Wagner de G., R. M. Mndez
90
RBOLES
Ejemplo 8
El rbol de la gura 10 representa la expresin:
(x (y (x + y))) ((3 (2 y)) 7)
7.5
rbol Posicional
Sea (T, v0 ) un rbol n-ario. Cada vrtice tiene como mximo n vstagos. Suponiendo que cada vrtice
tiene exactamente n vstagos que se pueden ordenar del 1 al n. Si alguno de los vstagos en la sucesin se elimina o no aparece, los restantes se etiquetarn con la posicin que ocuparan en la sucesin
hipottica; por lo tanto los vstagos de cualquier vrtice estarn etiquetados con nmeros distintos 1, 2, . . .
Un rbol etiquetado en esta forma se le llama rbol posicional
3
y
Figura 10.
Ejemplo 9
El rbol de la gura 11 es 3-ario posicional.
1
1
Figura 11.
Cuando se trata de un rbol binario, las posiciones de los vstagos potenciales se acostumbra etiquetarlas
como Izquierdo (I) y derecho (D), ver gura12.
A. Caicedo B., G. Wagner de G., R. M. Mndez
91
Denicin 7.15
Sea T un rbol binario posicional con raz v. Si vI existe, al subrbol T (vI ) se le llama subrbol
izquierdo de T , y si vD existe, al subrbol T (vD ) se le llama subrbol derecho de T
T (vI ) es tambin un rbol binario posicional con raz en vI , y T (vD ) es un rbol binario
posicional con raz en vD
I
Figura 12.
7.6
1
2
1.1
3.3
2.1
1.2
1.1.1
1.1.2
1.1.3
2.3
2.1.2
2.1.3
3.2.1
3.2
3.2.2
3.2.3
3.3.3
Figura 13.
a.a
a.a.a
a.b
a.a.b a.b.a
b.a
a.b.b b.a.a
b.b
b.a.b b.b.a
Figura 14.
b.b.b
92
RBOLES
0.0
0.0.0
0.1
0.0.1 0.1.0
1.0
0.1.1 1.0.0
1.1
1.0.1 1.1.0
1.1.1
Figura 15.
7.7
Representacin Matricial
Para facilitar su programacin mediante un lenguaje de computacin, los rboles binarios se pueden
representar mediante arreglos matriciales o mediante listas encadenadas. En esta seccin se har una
introduccin a la representacin matricial.
En la representacin matricial se usan dos arreglos: vstagos izquierdos y vstagos derechos.
Si n es el nmero de vrtices de un rbol binario, entonces: V AST IZQ[i] = j si y solo si j es un
vstago izquierdo de i. Si i no tiene vstagos izquierdos, entonces V AST IZQ[i] = 0.
Similarmente: V AST DER[i] = j si y solo si j es un vstago derecho de i. Si i no tiene vstagos derechos,
entonces, V AST DER[i] = 0.
Ejemplo 10
En la gura 16 se muestra un rbol binario no posicional y su correspondiente representacin matricial
i
1
2
3
4
5
6
7
8
9
hijoizq
2
3
0
0
0
7
0
0
0
hijoder
6
4
0
5
0
8
0
9
0
1
2
3
6
4
7
5
8
9
Figura 16.
Ejemplo 11
La gura 17 muestra un rbol binario etiquetado y su correspondiente representacin matricial
Representacin Secuencial
i
1
2
3
4
5
6
7
8
9
hijoizq
2
4
6
0
0
0
8
0
0
dato
a
b
c
d
e
93
1
hijoder
3
5
7
0
0
0
9
0
0
b
5
6
8
d
9
e
Figura 17.
7.8
Representacin Secuencial
Si T es un rbol binario completo o casi completo, entonces una forma eciente de mantener a T en
memoria es mediante una representacin secuencial o arreglo lineal T , establecido de la siguiente forma:
a. La raz se guarda en T [1]
b. Si un nodo n est en T [k] entonces su vstago izquierdo est en T [2 k] y su vstago derecho est
en T [2 k + 1]
c. Si un subrbol es vaco se representa con NULO. T [1] = N U LO indica que el rbol est vaco.
Ejemplo 12
Para el rbol de la gura 18 la representacin secuencial se muestra en la tabla siguiente
I
10
11
12
13
14
...
T [I]
60
31
70
10
40
100
14
20
80
...
1
31
60
2
4
10
3
40
5
14
9
20
19
70
7
80
14
100
Figura 18.
94
RBOLES
7.9
Representacin Enlazada
Un rbol binario tambin se puede mantener en memoria mediante una representacin enlazada de 3
arreglos paralelos que se pueden llamar IZG, DAT O, DER y una variable puntero llamada RAIZ que
contendr la posicin de la raz R de T .
Cada nodo N de T corresponde a una posicin K, tal que:
DAT O[K] : contiene los datos del nodo N .
IZQ[K] : contiene la localizacin del vstago izquierdo del nodo N
DER[K] : contiene la localizacin del vstago derecho del nodo N .
Una representacin que haga uso de estos tres conceptos se llama una lista doblemente enlazada
o doblemente ligada en donde la unidad de almacenamiento es la clula que contiene un dato y los dos
apuntadores. Simblicamente una clula se representa con la gura 15.
DAT O
Figura 19.
Cada clula corresponde a un nodo; la parte del dato contiene el valor de la etiqueta del nodo. Los apuntadores izquierdo y derecho se dirigen a los vstagos izquierdo y derecho, si es que existen. Si un vstago
no existe el apuntador se simboliza con
Ejemplo 13
Para el rbol de la gura 20a, la representacin simblica como una lista doblemente enlazada es el
esquema de la gura 20b, y la implementacin de esa lista mediante tres arreglos se muestra en la
tabla 1.
a
1)
2)
a)
3)
Inicio
6)
g
Figura 20.
4)
7)
5)
8)
b)
d
g
i
1
2
3
4
5
6
7
8
IZQ
2
3
6
0
0
0
0
0
DAT O
nil
a
b
c
d
e
f
g
95
DER
0
0
4
5
0
7
8
0
Tabla 1.
7.10
Para que un rbol A general pueda ser representado por cualquiera de los anteriores mtodos, debe ser
convertido primero en rbol binario B.
Algoritmo de Conversin
a. Tomar la raz de A como la raz de B
b. Enlazar el nodo raz con el camino que conecta el nodo ms a la izquierda
c. Enlazar este nodo con los restantes descendientes del nodo raz en un camino, formndose as el
nivel 1 del nuevo rbol
d. Repetir los pasos 2 y 3 con los nodos del nivel 2 de A, enlazando siempre en un solo camino todos
los hermanos. Repetir todos estos pasos hasta llegar al nivel ms alto
e. Girar el rbol resultante aproximadamente 30o a la derecha para poder diferenciar entre los subrboles izquierdo y derecho de B
Ejemplo 14
La gura 21 muestra un rbol general y el correspondiente rbol binario obtenido al aplicar el
algoritmo anterior.
a
a
b
c
f
d
g
k
k
l
Figura 21.
96
RBOLES
7.11
Existen problemas de la estructuracin de datos donde es necesario examinar cada vrtice de un rbol una
sola vez, en un orden especco. El proceso de visitar cada vrtice de un rbol en algn orden especial
se llama recorrer, atravesar o analizar el rbol. Existen tres formas de recorrer un rbol binario
posicional: recorrido pre-orden, recorrido in-orden y recorrido post-orden. Las subrutinas para cada uno
de estos recorridos se muestran a continuacin, en forma de seudocdigo.
A. Recorrido pre-orden o anterior o jerrquico
Subrutina Anterior(T ,v)
1. Visitar raz (v)
2. Si vI existe llamar Anterior(T (vI ),vi )
3. Si vD existe llamar Anterior(T (vD ),vD )
Fin subrutina
B. Recorrido in-orden o interior o simtrico
Subrutina Interior(T ,v)
1. Si vi existe llamar Interior(T (vi ),vi )
2. Visitar raz (v)
3. Si vD existe llamar Interior(T (vD ),vD )
Fin subrutina
C. Recorrido post-orden o posterior
Subrutina Posterior(T ,v)
1. Si vi existe llamar Posterior(T (vi ),vi )
2. Si vD existe llamar Posterior(T (vD ),vD )
3. Visitar raz (v)
Fin subrutina
De estas tres formas de recorrer un rbol binario, la ms usual y prctica es el recorrido in-orden, el cual
se puede describir en la siguiente forma:
Para cada vrtice en el rbol, comenzando por la raz, imprima todos los elementos del subrbol izquierdo, comenzando por la hoja izquierda. Luego imprima el vrtice. Despus imprima todos los vrtices del
subrbol derecho del vrtice, empezando por la hoja derecha.
Ejemplo 15
Aplicar el recorrido in-orden al rbol de la gura 22
K
B
A
T
L
Z
R
N
Figura 22.
97
Considerando K como la raz del rbol, iniciamos el recorrido por el subrbol izquierdo, visitando los
nodos K, B, A. Bajamos hasta la hoja izquierda A e imprimimos su valor (A). Visitamos la raz del
subrbol e imprimimos su valor (B); como no existe rama derecha para este subrbol, continuamos
el recorrido y visitamos la raz del rbol (K). Efectuamos el mismo proceso para el subrbol derecho.
El recorrido efectuado se muestra en la gura 22 con lneas punteadas. Siguiendo este recorrido se
obtiene: A, B, K, L, N, R, T, Z
Otra forma de visualizar este proceso es encerrar todos y cada uno de los subrboles en cajas y empezar a
imprimir lo que est contenido en cada uno de ellas, a partir de las cajas ms internas. Se analiza primero
el subrbol izquierdo y luego el derecho.
Ejemplo 16
Recorrer el rbol de la gura 23 en in-orden aplicando la metodologa de encerrar los subrboles en
cajas
x
2
2
3
+
7
y
20
9
10
8
6
4
Figura 23.
subrbol izquierdo
raz
subrbol derecho
(x y)
(2 (x (y + 20)))
Ejemplo 17
Ejecutar los recorridos PRE-ORDEN, IN-ORDEN y POST-ORDEN al siguiente rbol
r
d
g
i
Figura 24.
98
RBOLES
= r, a, c, d, Tg , Th , Ti , Tb
= r, a, c, d, g, h, i, b, Te , Tf
= r, a, c, d, g, h, i, b, e, f
d
g
Figura 25.
Nota: la lnea punteada indica el sentido del recorrido. La cabeza de echa indica que se lee dicho
nodo. La raz se lee de primero.
El recorrido pre-orden tambin es llamado recorrido RAICES-HOJAS porque para cada subarbol
primero se lee la raz y luego las hojas
B) Recorrido IN-ORDEN o interior
Este recorrido tambin es llamado recorrido HOJAS-RAIZ-HOJAS porque para cada subrbol
primero se leen las hojas del hijo izquierdo, luego la raz y despus las otras hojas del subrbol.
Primero se recorre el subrbol izquierdo, luego la raz y despus el subrbol derecho.
Tr = Ta , r, Tb
= Tc , a, Td , r, Tb
= c, a, Tg , d, Th , Ti , r, Tb
= c, a, g, d, h, i, r, Te , b, Tf
= c, a, g, d, h, i, r, e, b, f
d
g
Figura 26.
Notacin Polaca
99
Tr = Ta , Tb , r
= Tc , Td , a, Tb , r
= c, Tg , Th , Ti , d, a, Tb , r
= c, g, h, i, d, a, Te , Tf , b, r
= c, g, h, i, d, a, e, f, b, r
d
g
Figura 27.
7.12
Notacin Polaca
En la seccin anterior vimos que los recorridos en preorden, inorden y postorden producen formas de
listas de los nodos de un rbol enraizado ordenado. Si se etiquetan los nodos en forma tal que el rbol
represente o contenga una expresin algebraica, las listas obtenidas en cada recorrido se llama notacin
polaca de la expresin algebraica.
El recorrido preorden produce la notacin polaca directa o preja
El recorrido inorden produce la notacin inja o algebraica normal
El recorrido postorden produce la notacin polaca inversa o suja
Cuando el rbol representa una expresin algebraica, el recorrido inorden produce la expresin algebraica, pero es indispensable que cada vez que se recorra un subrbol se agrupe su contenido por medio
de parntesis o corchetes para que no se presenten ambiguedades al evaluar numricamente la expresin.
Cuando el recorrido ha sido preorden y postorden las listas no necesitan los signos de agrupamiento
porque estos listados determinan de manera nica el rbol y por lo tanto a la expresin algebraica original. Estas notaciones no son ambiguas sin parntesis.
Al evaluar las expresiones en notacin polaca se lee la expresin de izquierda a derecha, buscando cadenas
de la forma:
a. F x y, en la notacin polaca directa
b. x y F , en la notacin polaca inversa
donde F =operador algebraico, x, y =operandos (variables)
Ejemplo 18
La expresin algebraica [(x + (a b)) y] [((a (b + x)) y) x] da origen al siguiente rbol
binario
A. Caicedo B., G. Wagner de G., R. M. Mndez
100
RBOLES
b
Figura 28.
4 10
43
4 3
(2)
(6)
4/(6) = 2/3
Postorden (x y F )
3 10 2 + 4 10 2 3 + 4 3
3
+ 4 10
4 3
4 3
8
4
4
(2)
(6)
4/(6) = 2/3
7.13
101
Ejemplo 19
Sea A = {8, 45, 19, 50, 25, 30, 56, 48, 80} un arreglo. El rbol de la gura 29 es un rbol binario de
bsqueda para A.
45
>
<
19
<
8
50
>
>
25
56
>
<
30
>
48
80
Figura 29.
Bsqueda:
Para proceder a buscar un elemento k en el rbol binario se procede mediante el siguiente algoritmo:
Algoritmo de Bsqueda, insercin y ordenamiento
Supngase que k es un tem de informacin dado. N es cualquier valor del arreglo.
paso 0. Construir un rbol binario de bsqueda. Hacer el nodo raz igual a N
paso 1. a) Si k < N proceder con el hijo izquierdo de N
b) Si k > N proceder con el hijo derecho de N
paso 2. Repetir paso 1 hasta que se cumpla una de las siguientes condiciones:
a) Se encuentra un nodo N tal que k = N . Se termina la bsqueda.
b) Se encuentra un subrbol vaco, lo que indica que la bsqueda ha fallado.
Se inserta k en el lugar del subrbol vaco.
paso 3. Se recorre el rbol In-orden para hallar la lista ordenada
A. Caicedo B., G. Wagner de G., R. M. Mndez
102
RBOLES
En otras palabras lo que se hace es iniciar la bsqueda a partir de la raz R del rbol y se desciende por
uno de sus subrboles hasta que se logr encontrar a k.
Ejemplo 20
Dado el rbol de bsqueda de la gura 30, ubicar el elemento k = 20 en el arreglo A =
{17, 8, 38, 40, 26, 19, 35, 52, 45}
35
17
40
26
38
52
19
45
Figura 30.
17
40
26
38
19
52
45
20
Figura 31.
103
Ordenamiento:
Para realizar un ordenamiento usando un rbol binario, existen diversos mtodos, entre ellos los ms
conocidos son el mtodo de FOSTER y el mtodo de FLOYD, siendo el de Foster el ms fcil de
aplicar.
Algoritmo de Foster
paso 1.
paso 2.
Se recorre el rbol en in-orden para obtener la lista ordenada de los elementos del arreglo.
Ejemplo 21
Dado el arreglo {D, F, E, B, A, C, G} al aplicarle el algoritmo de Foster se obtiene el rbol de bsqueda de la gura 32.
D
Figura 32.
Se escoge D como raz. Se ubica F en el subrbol derecho porque F > D; se ubica E en el subrbol
izquierdo de F porque E < F . Se ubica B en el subrbol izquierdo de D porque B < D. Se ubica A
en el subrbol izquierdo de B porque A < B. Se ubica C en el subrbol derecho de B porque C > B.
Se ubica G en el subrbol derecho de F porque G > F
El recorrido in-orden produce el arreglo ordenado {A, B, C, D, E, F, G}
104
RBOLES
Ejercicios Captulo 7
a. Determinar cules de los grafos de la gura 33 son rboles
Figura 33.
Figura 34.
c. Para el rbol de la gura 34 establecer: a) su altura o profundidad; b) cules son sus hojas y c) la
altura de los nodos a, b y c
d. Trazar un rbol ordenado segn un orden alfabtico y de 3 niveles
e. Trazar un rbol trinario ordenado de 4 niveles
f. Trazar un rbol binario incompleto y uno completo
g. Trazar un rbol binario equilibrado o balanceado
h. Determinar si el rbol binario de la gura 35 es AVL y explique por qu.
Figura 35.
105
6
+
3
+
3
x
x
y
x
Figura 36.
t
+
u
v
a)
b)
c)
Figura 37.
. Representar en forma de listas enlazadas los tres rboles del ejercicio anterior
o. Convertir en binario el rbol de la gura 38
a
Figura 38.
106
RBOLES
e) 2 + 2 5 + 3 4 2
q. Evalue las siguientes expresiones dadas en notacin polaca inversa
a) 3 3 4 5 1 + +
b) 3 3 + 4 + 5 1
c) 3 3 4 + 5 1 +
d) 6 3 3 + 7 3
e) 3 2 4 2 + 5 2
r. Escriba en notacin polaca directa e inversa las siguientes expresiones
a) (5x + 9)3
b) (x + 2y)/(x 2y)
c) (a b) (c + (d e))
s. Construir el rbol de bsqueda para el siguiente arreglo: {35, 20, 12, 40, 60, 18, 38, 26}
t. Mediante el algoritmo BUSQUEDA, insertar el elemento k = 22 en el arreglo del ejercicio anterior.
u. Dado el arreglo {C, F, B, A, G, H, E} aplicar el algoritmo de FOSTER para ordenarlo ascendentemente.
v. Determinar si k = 2 se encuentra en el siguiente arreglo, usando un algoritmo de bsqueda binaria
M {18, 4, 18, 40, 17, 15, 2, 9, 14, 7, 9, 8}
w. Mediante un rbol binario de bsqueda insertar el valor k = 2 en el siguiente arreglo y ordenar el
arreglo
R = {7, 7, 8, 22, 1, 6, 9, 18, 14, 0, 15, 5, 5}
x. Ordenar ascendentemente el arreglo A = {x, a, p, m, b, c, t, y, d, o, q} usando el algoritmo de Foster
y. Construir un rbol de bsqueda para el siguiente arreglo
B = {35, 72, 2, 12, 8, 4, 18, 30, 32, 3, 26}
e insertar k = 22 usando el algoritmo de bsqueda e insercin.
Ca
ulo
pt
RBOLES NO DIRIGIDOS
En la unidad anterior se han estudiado rboles en los cuales se ha especicado claramente
un nodo raz, y se ha considerado su anlisis haciendo un recorrido descendente desde la raz
hasta sus hojas, ahora en esta unidad se estudiar un nuevo tipo de rbol al cual no se le
considera un nodo raz y que se puede recorrer en cualquier sentido. Esta clase de rboles son
de gran aplicacin en el estudio de redes elctricas, de redes locales de comunicacin entre
computadores, sistemas de riego, etc.
8.1
rbol No Dirigido
Denicin 8.1
Un rbol no dirigido es aquel en el que todas las aristas son bidireccionales, no posee un nodo raz
especco y no se analiza teniendo en cuenta niveles de ubicacin de sus nodos
Ejemplo 1
Los dos rboles de la gura 1 son no dirigidos
Figura 1.
Un rbol no dirigido sigue siendo un grafo conexo sin ciclos pero con la propiedad de que corresponde a
una relacin simtrica puesto que si a y b son dos nodos del rbol y existe la arista (a, b) entonces tambin
existe la arista (b, a).
Los siguientes teoremas ayudan a comprender el vnculo que hay entre relacin simtrica y rbol no
dirigido
107
108
RBOLES NO DIRIGIDOS
Teorema 1
Si es una relacin simtrica en un conjunto N entonces los siguientes enunciados son equivalentes:
a. es un rbol no dirigido con n 1 arcos
b. es conexa y acclica
Nota: Una relacin simtrica es conexa si existe una trayectoria en desde cualquier nodo a
cualquier otro nodo.
Teorema 2
Sea una relacin simtrica en N . Entonces es un rbol no dirigido si y slo si cualquiera de los
siguientes enunciados es verdadero
a. es acclica y si se aade a cualquier arista no dirigida, la nueva relacin no ser acclica.
b. es conexa y si cualquier arista no dirigida se remueve de , la nueva relacin no ser conexa.
c. es acclica con n 1 arcos
8.2
Denicin 8.2
Si es una relacin simtrica conexa en un conjunto N , se dice que un rbol T en N es un rbol
generado por si T
En otras palabras, un rbol generado T es un rbol con exactamente los mismos nodos que y que se
puede obtener de al suprimir algunas aristas hasta que quede sin ciclos y siga siendo conexa.
Un rbol generado a partir de un grafo G tambin es llamado rbol expansor de G o rbol generador de G o rbol de comunicacin de G porque hace que todos los nodos del grafo G queden
intercomunicados entre s.
Teorema 3
Un grafo G contiene un rbol generador si y solo si es conexo. Si el grafo es disconexo contiene un
rbol generador para cada componente conexa
Para vericar que un grafo conexo contiene un rbol generador se pueden seguir dos metodologas diferentes:
Primera: comenzar con un grafo conexo y remover arcos sucesivamente en forma tal que en cada etapa
A. Caicedo B., G. Wagner de G., R. M. Mndez
109
el subgrafo resultante sea conexo. Eventualmente al borrar algn arco el subgrafo se desconecta. Por el
enunciado b) del teorema 2, el subgrafo que se tiene hasta el momento es un rbol generador. Este rbol
tendr n 1 arcos, donde n es el nmero de nodos del grafo original.
Segunda: Esta segunda forma de trabajar es totalmente opuesta a la primera. Se comienza suponiendo
un rbol vaco, sin arcos, y se adiciona luego un arco cada vez, teniendo en cuenta que el arco adicionado
no forme un ciclo con los anteriores. Eventualmente la adicin de un arco ms crear un ciclo. El grafo
construido hasta ese paso ser un rbol.
Ejemplo 2
En la gura 2 se muestra una secuencia grca de los pasos seguidos para obtener un rbol generador
a partir de un grafo dado, aplicando la primera metodologa.
Figura 2.
paso 1.
Hacer T = {N, }
paso 2.
8.3
Denicin 8.3
Un grafo G con una funcin w = A(G) R+ es llamado un grafo pesado. Si a es un arco en
A(G) entonces w(a) ser el peso de a
A. Caicedo B., G. Wagner de G., R. M. Mndez
110
RBOLES NO DIRIGIDOS
Por lo general los valores asignados a los arcos representan costos, capacidad, longitud o algn otro
parmetro de inters en la vida real.
Denicin 8.4
Sea G un grafo conexo. Un rbol generador de G de mnimo peso es un rbol no dirigido tal que la
trayectoria nica que une cualquier par de nodos es de mmino valor
Cuando se tiene un grafo conexo pesado, es de mucha utilidad determinar cul es el rbol generador de
mnimo peso, puesto que con l queda determinada la forma de intercomunicar todos los nodos del grafo
con el mnimo costo o la mnima distancia, etc. Una aplicacin tpica ocurre en el diseo de redes de
comunicacin donde los nodos representan ciudades y las aristas son las posibles lneas de comunicacin
entre las ciudades. El valor asociado a cada arco representa el costo de seleccionar esa lnea para la red.
Se han diseado diversos algoritmos que hallan el rbol generador de mnimo peso, entre ellos se destacan
el de Sollin, el de Kruskal y el de Prim, siendo el ms conocido el de Kruskal que fue presentado en
1956. Este problema de hallar el rbol de mnimo peso ya haba sido estudiado por otros matemticos
anteriores a los ya citados, como es el caso del ingeniero electricista ruso Otakar Boruvka quien formul
un algoritmo bastante eciente cuando enfrent el trabajo de la electricacin del sureste de Moravia en
1928.
8.4
Supngase N = {1, 2, 3, . . . , n}. El algoritmo de Prim comienza con un conjunto U inicializado con
cualquier nodo, por ejemplo {1}. Luego se hace crecer un rbol generador, arco por arco. En cada paso
se encuentra el arco ms corto (u, v) que conecta a U y N U y luego se adiciona v, el nodo en N U ,
a U . Se repite este paso hasta que U = N .
El algoritmo es resumido en los siguientes pasos:
Algoritmo de Prim
paso 0.
paso 1.
Seleccionar el arco (i, j) cuya longitud es la menor entre todos aquellos arcos adyacentes a T .
Adicionar este arco (i, j) a T y j al conjunto de nodos de T
paso 2.
Preguntar si T ya es un rbol que contiene todos los nodos de G y detenerse. En caso contrario
repetir el paso 1.
Algoritmo de Kruskal
111
Ejemplo 3
Aplicar el algoritmo de Prim para hallar el rbol de mmino peso a partir del grafo de la gura 3.
a
10
7
20
b
8
d
14
16
17
e
Figura 3.
Solucin
paso 0.
paso 1.
paso 2.
paso 1.
paso 2.
paso 1.
paso 2.
paso 1.
paso 2.
8.5
A = . U = {e}. T = ({e}, )
De los arcos adyacentes a T , el arco (e, c) es el de menor peso. Adicionar (e, c) a A
nodo c a U . T = ({e, c}, {(e, c)})
T todava no es un rbol. Repetir paso 1.
De los arcos adyacentes a T , el arco (c, b) es el de menor peso. Adicionar (c, b) a A
nodo b a U . T = ({e, c, b}, {(e, c)(c, b)})
T an no es un rbol. Repetir paso 1.
De los arcos adyacentes a T , el arco (b, d) es el de menor peso. Adicionar (b, d) a A
nodo d a U . T = ({e, c, b, d}, {(e, c)(c, b)(b, d)})
T an no es un rbol. Repetir paso 1
De los arcos adyacentes a T , el arco (d, a) es el de menor peso. Adicionar (d, a) a A
nodo a a U . T = ({e, c, b, d, a}, {(e, c)(c, b)(b, d)(d, a)})
T ya es un rbol porque U = N . Parar
y el
y el
y el
y el
Algoritmo de Kruskal
Supngase que se tiene un grafo pesado G = (N, A) con N = {1, 2, . . . , n} nodos. Se inicia con T = (N, )
consistente de n nodos y sin arcos. Cada nodo es una componente conexa de s mismo. Cuando el algoritmo procede siempre se tendr una coleccin de componentes conexas y para cada componente se
seleccionarn aristas que formen un rbol. Para construir progresivamente las componentes se examinan
los arcos de A en orden creciente de peso. Si el arco conecta dos nodos en dos componentes diferentes,
entonces el arco se adiciona a T . Si conecta dos nodos en la misma componente se descarta pues podra
causar un ciclo. Cuando todos los nodos estn en una componente, T ser el rbol generador de mnimo
peso.
Algoritmo de Kruskal
paso 0. Iniciar T con n nodos y sin arcos. T = {1, 2, . . . , }.
paso 1.
Crear una lista L de arcos, desde G, en orden ascendente de peso. Los arcos con el mismo
peso son ordenados arbitrariamente.
paso 2.
Seleccionar el arco (i, j) del comienzo de L. Si este arco forma un circuito en T se borra de L
y se repite el paso 2; en caso contrario se transere de L a T .
paso 3.
112
RBOLES NO DIRIGIDOS
Ejemplo 4
Aplicar el algritmo de Kruskal para hallar el rbol generador de mnimo peso al grafo de la gura 4.
1
2
8
10
10
7
Figura 4.
Solucin
paso 0.
paso 1.
paso 2.
paso 3.
paso 2.
paso 3.
paso 2.
paso 3.
paso 2.
El arco (3, 5) no se puede pasar de L a T porque forma un ciclo con arcos que ya estn
en T . El arco (3, 5) se borrar de L. El arco (1, 3) se pasa de L a T , entonces:
L = {(1, 5)(2, 3)}. T = ({1, 2, 3, 4, 5}, {(3, 4)(1, 2)(4, 5)(1, 3)}). El arco (1, 3) no forma
un ciclo en T
paso 3.
8
3
4
Figura 5.
8.6
113
En un grafo pesado conexo G la distancia entre dos nodos cualquiera x e y se denota por d(x, y) y es
el mnimo valor de w(P ) tomado sobre todas las trayectorias P desde x a y, w(P ) es el peso de una
trayectoria P y es la suma de los pesos de todas las aristas de P . w(P ) tambin es llamada la longitud
de la trayectoria P .
En un rbol generador tambin se puede jar un nodo como nodo origen y hablar entonces de distancias entre ese nodo y cualquier otro nodo.
Denicin 8.5
Un rbol generador de mnima distancia con nodo origen r es un rbol T que contiene una trayectoria
de mnima distancia desde r a cada nodo.
Denicin 8.6
Un rbol generador de mnimo peso en un grafo conexo G con nodo origen r, es un rbol T tal que
para cada nodo v de G, la longitud de la trayectoria nica en T desde r a v es igual a d(r, v)
Ejemplo 5
El rbol a) de la gura 6 es un rbol de mnima distancia y el rbol b) es un rbol de mnimo peso,
generados a partir del grafo G.
8
r
4
2
9
3
5
7
7
G
r
a)
b)
Figura 6.
8.7
Como el problema de establecer un rbol generador a partir de un nodo origen en un grafo conexo G
se presenta frecuentemente al tratar de intercomunicar una central de comunicaciones con una serie de
puntos, es conveniente contar con un algoritmo rpido que establezca cul es el conjunto de aristas que se
A. Caicedo B., G. Wagner de G., R. M. Mndez
114
RBOLES NO DIRIGIDOS
deben tener en cuenta para formar el rbol de comunicacin. El algoritmo propuesto por E.W. Dijkstra,
que se presenta a continuacin, es muy adecuado para este tipo de problema.
Algoritmo de Dijkstra
paso 0.
paso 1.
paso 2.
Hacer T = {r}
paso 3.
paso 5.
end
paso 6.
Imprimir T y PARAR.
Ejemplo 6
Aplicar el algoritmo de Dijkstra al grafo de la gura 7 a) para obtener el grafo generador de mnima
distancia, considerando el nodo r como nodo origen.
r
2
r
2
x
3
5
1
1
1
2
2
3
3
4
4
5
5
x
x
s
s
u
u
v
v
w
v
3
w
Figura 7.
a) Grafo inicial
paso
2
4
5
4
5
4
5
4
5
4
5
N (T )
r
A(T )
(r, x)
{r, x}
{(r, x)}
(r, s)
{r, x, s}
{r, x, s, u}
{r, x, s, u, v}
{r, x, s, u, v, w}
115
Ejemplo 7
Aplicar el algoritmo de Dijkstra al grafo de la gura 8 a) para obtener el rbol generador de mnima
distancia que se muestra en la gura 8 b). Usar el nodo a como nodo raz
5
3
4
2
f
a)
paso
2
3-4
2
3
{a, f, b, c}
4
{a, f, b, c, g}
5
{a, f, b, c, g, e}
6
5
3-4
A(T )
(a, b)
5
3-4
{(a, f )}
{a, f, b}
5
3-4
(a, f )
5
3-4
b)
Figura 8.
{a, f }
5
3-4
{a}
5
3-4
arco (e)
N (t)
{a, f, b, c, g, e, d}
7
{a, f, b, c, g, e, d, h}
116
RBOLES NO DIRIGIDOS
Ejercicios Captulo 8
a. Aplicar el algoritmo de remover aristas para hallar un rbol generador en cada uno de los grafos de
la gura 9.
Figura 9.
b. Para el grafo de la gura 10 hallar grcamente los 16 rboles generadores distintos que posee.
Figura 10.
c. Aplicar el algoritmo de Kruskal para hallar el rbol generador de valor mnimo en cada uno de los
grafos de la gura 11.
4
9
g
12
10
11
9
12
d
10
3
3
11
20
3
10
15
11
12
10
5
9
15
i
j
10
Figura 11.
d. Aplicar el algoritmo de Prim para hallar el rbol generador de valor mnimo en cada uno de los
grafos de la gura 11.
e. Aplicar el algoritmo de Dijkstra para hallar un rbol generador de mnima distancia para cada uno
de los grafos de la gura 12. Considrese el nodo 1 como nodo raz.
A. Caicedo B., G. Wagner de G., R. M. Mndez
11
5
2
6
9
4
117
Figura 12.
f. Dada la matriz de costos C, donde cij es el costo de tender una lnea de transmisin de energa
entre las ciudades xi y xj , encontrar la red de transmisin de costo mnimo.
x1
x1
x2
x3
x
M = 4
x5
x6
x7
x8
x2
5
x3
x4
4
8
2
x5
7
9
5
x6
6
x7
6
7
5
9
7
x8
g. Una empresa constructora se encuentra realizando 3 obras que requieren ciertas cantidades de
cemento y se dispone de 2 fbricas que pueden satisfacer estas necesidades. Existe comunicacin
entre las dos fbricas y las 3 obras. El costo cij = cji de transportar una unidad (tonelada) de
cemento del lugar i al j se muestra sobre los arcos del grafo de la gura 13.
2
7
6
1
9
3
5
4
Figura 13.
Figura 14.
118
RBOLES NO DIRIGIDOS
Bibliografa
[1] Garnier R. y John T. Discrete Mathematics. Adam Hilger. Editorial Philadelphia 1992.
[2] Grassmann W. y Jean- Paul T. Matemtica Discreta y Lgica. Editorial Prentice Hall. Espaa 1996.
[3] Brassard y Bratley P. Fundamentos de Algoritmia. Editorial Prentice Hall. Espaa 1997.
[4] Gorcbtov V. A. Fundamentos de Matemtica Discreta. Editorial Mir Mosc. URSS 1988.
[5] Skvarcius y Robinson. Discrete Mathematics whit Computer Sciencie Applications. Editorial Benjamin
Diummings. California 1986.
[6] Ross K. A. Y Charles R.B. Matemticas Discretas. Prentice Hall. Mxico 1988.
[7] Kolman B, Robert C. y Sharon R. Estructuras de Matemticas Discretas para la Computacin. Prentice Hall. Mxico 1997.
[8] Wirth N. Algoritmos y Estructura de Datos. Prentice Hall. Mxico 1986.
[9] Knuth D. E. Clasicacin y Bsqueda. Editorial Revert. Espaa 1987.
[10] Johnsonbaugh J. Matemticas Discretas. Editorial Prentice Hall. Mxico 1999.
[11] Cormen T. H, Charles E. L. y Ronald L. R. Introduction to Algoritms. Editorial McGraw-Hill. New
York 1989.
[12] Toranzas F.A. Introduccin a la Teora de Grafos. OEA. Washington 1976.
[13] Aho A, John E. H. y Jerey D. U. The Desing and Analysis of Computer Algorithms. Editorial
Addison Wesley. USA 1974.
[14] Tenenbaum A. y Moshe J. A. Estructura de Datos en Pascal. Editorial Prentice Hall. Colombia 1983.
[15] Aho A, John E. H. y Jerey D. U. Estructura de Datos y Algoritmos. Editorial Addison Wesley.
USA 1988.
[16] Jaured F. y otros. Mtodos de Optimizacin. Centro Regional de ayuda tcnica, agencia para el
desarrollo internacional. Mxico 1971.
[17] Kaufmann A. Mtodos y modelos de la investigacin de operaciones. Compaa Editorial Continental.
Mxico 1972.
[18] Phillips D.T. y Alberto G.D. Fundamentals of Network Analysis. Editorial Prentice Hall. USA
1981.bur Me
[19] Minieka E. Optimization Algorithms for Networks and graphs. Editorial Marcel Dekker. New York
[20] Bazaraa M. y John J.J. Programacin lineal y ujo en redes. Editorial Limusa. Mxico 1981
119