Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LD 84790864169882038
LD 84790864169882038
TD
TEXTOSDOCENTES
PUBLICACIONES
Universidad de Alicante
los autores
de la presente edicin
Publicaciones de la Universidad de Alicante
Campus de San Vicente s/n
03690 San Vicente del Raspeig
Publicaciones@ua.es
http://publicaciones.ua.es
ISBN: 84-7908-641-6
Depsito Legal: A-1480-2001
Edicin electrnica:
Espagrafic
Indice
Portada
Crditos
Prlogo
1 Introduccin a MaGraDa
1.1 Introduccin . . . . . . . . . . . . . . . . . . . . .
1.2 El modo de texto . . . . . . . . . . . . . . . . . .
1.2.1 Introduccin de un grafo . . . . . . . . .
1.2.2 Borrando un grafo ya existente . . . . . .
1.2.3 Seleccionando un grafo . . . . . . . . . .
1.2.4 Uso de ficheros para abrir o guardar un
grafo . . . . . . . . . . . . . . . . . . . . .
1.2.5 Modificacin de un grafo . . . . . . . . .
1.2.6 Salir de MaGraDa . . . . . . . . . . . . .
1.2.7 Prctica 1 . . . . . . . . . . . . . . . . . .
1.3 El modo grfico . . . . . . . . . . . . . . . . . . .
1.3.1 El lienzo . . . . . . . . . . . . . . . . . . .
1.3.2 Introduccin de un grafo . . . . . . . . .
1.3.3 Prctica 2 . . . . . . . . . . . . . . . . . .
9
13
13
17
19
23
23
24
25
27
28
31
33
34
41
2 Fundamentos
45
2.1 Introduccin . . . . . . . . . . . . . . . . . . . . . 45
2.2 Clculos bsicos . . . . . . . . . . . . . . . . . . 46
Indice
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.3 Matriz
2.3.1
Grado . . . . . . . . . . . . . . . . . . . .
Ver . . . . . . . . . . . . . . . . . . . . . .
Grafo (simple, cclico, completo y conexo)
Grafo no dirigido asociado . . . . . . . .
Grafos isomorfos . . . . . . . . . . . . . .
Prctica 3 . . . . . . . . . . . . . . . . . .
de adyacencia . . . . . . . . . . . . . . .
Prctica 4 . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
46
50
50
52
53
57
68
70
.
.
.
.
.
.
.
.
73
73
73
73
76
78
81
89
94
.
.
.
.
.
107
107
107
112
119
123
Indice
5.3 Arboles
con raz . . . . . . . . . .
5.3.1 Prctica 10 . . . . . . . . .
5.4 Notacin polaca . . . . . . . . . .
5.4.1 Prctica 11 . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
129
129
129
132
140
142
149
153
Indice
7.2.3 Prctica 14 . . . . . . . . . . . .
7.3 Arboles
generadores de peso mnimo .
7.3.1 Algoritmo de Kruskal . . . . . . .
7.3.2 Algoritmo de Prim . . . . . . . .
7.3.3 Prctica 15 . . . . . . . . . . . .
Bibliografa
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
204
219
219
222
227
237
Prlogo
ste libro va dirigido al alumnado de las titulaciones de
informtica de la Universidad de Alicante y cubre parte
de las prcticas de la asignatura Matemtica Discreta.
Para la realizacin de estas prcticas se ha elegido el paquete
de software MaGraDa (Grafos para Matemtica Discreta). Esta aplicacin se ha realizado en el Departamento de Ciencia
de la Computacin e Inteligencia Artificial, inicialmente como
proyecto de la asignatura Sistemas Informticos, por el in
geniero informtico Manuel Angel
Caballero Palomino y bajo
el asesoramiento de la profesora Violeta Migalln Gomis y el
profesor Jos Penads Martnez.
MaGraDa ha sido diseado especficamente para fines docentes y cubre gran parte de los conceptos de la teora de grafos que se estudian en la asignatura de Matemtica Discreta,
pretendiendo automatizar el trabajo con grafos y adems que
quin utilice MaGraDa se familiarice con ellos de manera eficaz. Los objetivos que se pretenden alcanzar con la realizaINDICE
Prlogo
10
INDICE
11
Prlogo
INDICE
12
1. Introduccin a MaGraDa
1.1 Introduccin
El paquete de software MaGraDa (Grafos para Matemtica
Discreta) es una aplicacin informtica programada en lenguaje Java y diseada especficamente para trabajar con grafos.
MaGraDa trabaja con grafos tanto dirigidos como no dirigidos
y ponderados como no ponderados, pero por el momento, slo
se trabajar con grafos no ponderados. Ms adelante, en el
captulo 6, introduciremos los grafos ponderados. Segn la
filosofa de MaGraDa podramos trabajar con un nmero ilimitado de vrtices, pero hemos credo conveniente slo permitir
trabajar con grafos de hasta un mximo de x( vrtices. Este paquete es sencillo y cmodo de manejar, est basado en
menes sobre pantalla y consta de dos pantallas de visualizacin:
(i) El modo de texto: Llammoslo de esta forma para diferenciarlo del otro. Permite trabajar con los grafos de forma
analtica. Es decir, trabajaremos en todo momento con
INDICE
13
Introduccin a MaGraDa
14
nos ofrece la utilidad de obtener su correspondiente grafo no dirigido asociado. Para grafos no dirigidos obtiene
un rbol generador de los muchos que pueda tener. Podemos estudiar, tambin desde este men, si dos grafos
son isomorfos, ver qu vrtices alcanzan a otros, as como qu vrtices son alcanzados por otros. Nos indica
adems si el grafo es simple, cclico, completo o conexo.
Otra aplicacin de gran inters es el clculo de componentes conexas.
T Algoritmos: Esta ltima parte es la ms importante de
la aplicacin. Dispone de algoritmos muy conocidos en
el mundo de los grafos, tales como los algoritmos de
Warshall, Fleury, caminos ms cortos en grafos acclicos, PERT (Program Evaluation and Review Technique),
Dijkstra, Floyd y Warshall, Kruskal y Prim. Sin duda lo
ms importante aqu es que MaGraDa los aplica sobre
los grafos en curso, de manera que podamos ver los
resultados intermedios para as entender mejor el funcionamiento del correspondiente algoritmo.
Una de las ventajas que ofrece MaGraDa es que puede
tener en memoria varios grafos al mismo tiempo. De esta
forma, se puede seleccionar aquel que ms convenga en cada
momento, sin tener que preocuparse por guardarlo en disco
INDICE
15
Introduccin a MaGraDa
16
17
Introduccin a MaGraDa
18
\ ) \\y, yi, \y, Ki, \y, i, \K, i, \K, Qi, \, Qii3
19
Introduccin a MaGraDa
20
INDICE
21
Introduccin a MaGraDa
Ahora si pulsamos V|}u, volveremos a la pantalla inmediatamente anterior. Pulsando de nuevo V|}u nos pedir el
nombre que le vamos a dar al grafo, por ejemplo sPBd. Una
INDICE
22
vez dado el nombre y pulsando de nuevo V|}u nos aparecer en pantalla un resumen de las caractersticas del grafo
creado. Recordemos no obstante que aunque el grafo est
disponible en memoria, no ha sido guardado en un fichero.
Si el grafo hubiera sido dirigido, la forma de proceder sera
similar, no obstante tendramos que indicrselo en la pantalla
correspondiente y seran arcos lo que tendramos que introducir en el grafo. La manera de hacerlo es igual que antes. La
diferencia es que aqu s que importa el orden de los vrtices
a la hora de formar el arco. As, el vrtice de origen ser el
vrtice inicial del arco y el vrtice de destino el vrtice final
del arco.
1.2.2 Borrando un grafo ya existente
Cuando queramos borrar un grafo de memoria, slo hay
que situarse encima de la opcin #Cu del men ruQC. Aparecer inmediatamente a la derecha un nuevo submen con
los nombres de todos los grafos que tengamos. No hay ms
que situarse encima del deseado y pulsar. Lo habremos eliminado. Tambin habr una opcin suplementaria, sCICR, por
si queremos borrar todos los grafos de memoria.
1.2.3 Seleccionando un grafo
Para poder trabajar con un grafo, tiene que ser el actual.
Para ello tenemos la opcin 6l||%Cvu. Es similar a la anteINDICE
23
Introduccin a MaGraDa
24
t ) \~, \i, ~ ) \y, K, i, \ ) \wy, KD, wy, D, wK, D, w, KDi3
25
Introduccin a MaGraDa
26
INDICE
27
Introduccin a MaGraDa
1.2.7 Prctica 1
En esta prctica nos vamos a familiarizar con la creacin
y manipulacin de grafos desde el modo de texto, al mismo
tiempo que empezamos a retener la terminologa bsica de
grafos.
Problema 1.1. Consideremos el siguiente grafo:
28
T El grafo es no dirigido.
T El grafo es mixto.
T Los vrtices 8 y j son adyacentes, pero los vrtices
0 y ` no lo son.
vrtices.
aristas.
.
29
Introduccin a MaGraDa
INDICE
30
31
Introduccin a MaGraDa
\ ) \\y, yi, \y, Ki, \y, i, \K, i, \K, Qi, \, Qii3
32
1.3.1 El lienzo
Sobre el lienzo mostraremos los grafos de la siguiente forma:
T Vrtices: Los representaremos mediante crculos negros. Dentro de cada uno colocaremos su nmero en
blanco. Cuando apliquemos ciertos algoritmos, pueden
cambiar de color para resaltarlos. Tambin, cuando el
grafo sea ponderado, podrn alojar en su interior un segundo nmero correspondiente al peso. Ya lo explicaremos ms adelante.
T Aristas: Las representaremos mediante lneas rojas.
Unirn dos vrtices distintos, o bien el mismo formando un bucle. Entre dos vrtices podrn existir varias
aristas, apareciendo paralelas entre s, conforme se van
aadiendo.
T Arcos: Los representaremos mediante flechas azules.
Tambin podr haber ms de un arco entre el mismo
par de vrtices (en cualquier sentido).
T Pesos: Cuando el grafo sea ponderado, mostraremos
los pesos de las aristas (o arcos) en blanco sobre cuadrados de color morado. Para evitar posibles colisiones, los cuadrados no se dibujarn en los centros de las
INDICE
33
Introduccin a MaGraDa
Existen algoritmos que resaltan de color blanco determinadas aristas (o arcos) del grafo con diferentes intenciones.
Ya lo explicaremos ms adelante. Otro aspecto importante
es que muchos mtodos o algoritmos son bloqueados al ser
activados otros y no se podr acceder a ellos hasta pulsar fin.
1.3.2 Introduccin de un grafo
Es desde el men ruQC, como en el modo de texto, desde
donde se crearn o modificarn grafos en el modo grfico. Para crear un grafo nos situaremos en la opcin WY'C. Veamos
una pantalla con dicha opcin activada:
INDICE
34
Como se puede observar, la pantalla que presenta la opcin WY'C del modo grfico es anloga a su correspondiente en el modo de texto. Cabe destacar, no obstante, que
en este caso, se puede decidir dnde poner los vrtices o
si se prefiere, disponerlos de forma concntrica en forma de
crculo en el centro del lienzo (activando la opcin -%R%BY%
Yv%QC99v). Veamos con un ejemplo cmo proceder: Supongamos que se desea introducir el siguiente grafo dirigido
t ) \~, \i, ~ ) \y, K, , Q, i,
INDICE
35
Introduccin a MaGraDa
\ ) \wy, KD, wK, yD, w, KD, w, yD, w, QD, w, D, wQ, yD, w, Di3
Para ello realizamos los siguientes pasos:
Paso 1. Se rellena la ventana anterior con los datos del grafo.
Es decir, especificaremos el tipo de grafo que queremos
crear y el nmero de vrtices que tendr dicho grafo.
En caso de que queramos que sea MaGraDa quien disponga los vrtices en el lienzo activaremos la opcin
-%R%BY% Yv%QC99v. Pulsaremos V|}u e introduciremos el nombre del grafo, por ejemplo sPB;.
Paso 2. Si se ha activado la opcin -%R%BY% Yv%QC9T
9v, aparecern los vrtices en el lienzo. En caso
contrario nos situaremos sobre el lugar donde queramos
que est cada vrtice y pulsaremos el botn izquierdo
del ratn para que ste aparezca. Hacemos esto hasta
introducir todos los vrtices deseados. Como se puede observar, dentro de cada vrtice aparece un nmero, que es el nombre que por defecto le da MaGraDa a
cada vrtice. Si hemos dado nombres a los vrtices y
queremos verlos hay que activar la opcin z@
%|R |Cv
vC9B. Si deseamos que vuelvan a desaparecer sus
nombres activaremos la opcin z@
%|R R%v vC9B.
Paso 3. Una vez introducidos todos los vrtices, MaGraDa
pasa directamente al modo de introduccin de aristas o
INDICE
36
INDICE
37
Introduccin a MaGraDa
38
INDICE
39
Introduccin a MaGraDa
INDICE
40
1.3.3 Prctica 2
Una vez entendida la forma de crear un grafo desde el modo grfico, vamos a familiarizarnos con las distintas opciones
del men ruQC de este modo. Para ello, se ha de realizar la
siguiente prctica. A la finalizacin de la misma, se estar en
disposicin de abordar problemas de grafos ms complicados.
Problema 1.2. Visualiza desde el modo grfico los grafos guardados en los ficheros }Bd y }B8Bd, respectivamente,
que se crearon desde el modo de texto en la prctica 1. Indica que sea MaGraDa quien site los vrtices y que veamos
sus nombres. Presenta el resultado obtenido en tu prctica,
dibujndolos a mano.
T }Bd
INDICE
41
Introduccin a MaGraDa
T }B8Bd
INDICE
42
Este grafo es
grafo) porque
(simple o multi-
.
(iii) Elimina, desde el modo grfico, el vrtice d y la arista
incidente con los vrtices n y ;. Presenta el resultado
obtenido en tu prctica, dibujndolo a mano y completa
la siguiente frase:
INDICE
43
Introduccin a MaGraDa
Este grafo es
grafo) porque
(simple o multi-
INDICE
44
2. Fundamentos
2.1 Introduccin
En este captulo vamos a ver gran parte de las posibiliul|YlCR B@
uR%|CR de MaGraDa,
dades que ofrece el men `@
tanto desde el modo de texto como desde el modo grfico.
Este men es el segundo de los tres menes ms importantes del programa. Como se puede apreciar en la siguiente
figura, nos ofrece mltiples opciones.
INDICE
45
Fundamentos
La caracterstica que comparten todas ellas es que las operaciones que tienen que hacer con los grafos son, en principio,
ms sencillas que si les aplicamos los algoritmos del tercer
men. En la seccin 2.2 comentaremos algunas de estas opciones con un poco de profundidad, y la seccin 2.3 estar
dedicada a la matriz de adyacencia de un grafo.
2.2 Clculos bsicos
Las opciones del men `@
ul|YlCR B@
uR%|CR que se van a
estudiar en esta seccin son:
T Grado.
T Ver (aristas o arcos).
T Grafo (simple, cclico, completo y conexo).
T Grafo no dirigido asociado.
T Grafos isomorfos.
En el resto de la seccin vamos a comentar un poco cada
una de estas opciones.
2.2.1 Grado
Para ilustrar esta opcin dibujaremos con MaGraDa el siguiente grafo dirigido:
INDICE
46
47
Fundamentos
48
49
Fundamentos
2.2.2 Ver
Cuando seleccionamos un grafo desde el modo grfico, dicho grafo aparece en el lienzo. Sin embargo, desde el modo
de texto slo nos aparece informacin general sobre l, pero
no cules son las aristas o arcos del grafo. Para ver dichas
aristas o arcos simplemente ejecutaremos, desde el modo de
texto, la opcin z. Las pantallas que nos mostrar sern
similares a las que el programa nos ofreci a la hora de introducir estos datos desde el modo de texto, aunque ahora
son pantallas informativas. Si el grafo tiene nombrados sus
vrtices, MaGraDa nos mostrar la informacin usando estos
nombres. En otro caso, usar los nmeros.
2.2.3 Grafo (simple, cclico, completo y conexo)
Son cuatro caractersticas importantes de los grafos.
Cuando las ejecutamos, tanto desde el modo de texto como
desde el modo grfico, el programa realizar clculos internos
sobre el grafo actual para ofrecernos la informacin de forma
inmediata. Si la respuesta es afirmativa, as nos lo har saber
en cada caso. Si no es as, tambin lo har y adems nos
dir la razn que le ha llevado a dar esa respuesta. As por
ejemplo, supongamos que se ha introducido con MaGraDa el
siguiente grafo no dirigido:
INDICE
50
51
Fundamentos
Esta
es una opcin slo vlida para grafos dirigidos. Se
trata de que el programa genere un nuevo grafo, no dirigido,
a partir del grafo dirigido que tengamos seleccionado. Conservar todas sus caractersticas con la diferencia de que los
arcos los transformar en aristas. Cuando ejecutemos la opcin, el programa nos preguntar qu nombre queremos darle
al nuevo grafo, si dicho nombre es vlido lo guardar en memoria y lo seleccionar como actual y a partir de ah, si no
hacemos otra cosa, trabajaremos con este grafo.
INDICE
52
men `@
ul|YlCR B@
uR%|CR. Esta
es la nica opcin del programa que permite trabajar con ms de un grafo al mismo
tiempo. Puede ser que el grafo que MaGraDa tiene seleccionado no sea usado. Para ello, tanto desde el modo de texto
como desde el modo grfico, lo primero que hace MaGraDa
es pedirnos dos grafos no ponderados de los que dispone en
memoria. As, nos ofrecer una pantalla como sta:
Seleccionaremos dos grafos, por ejemplo los siguientes grafos, $RB8Bd e $RB8B1 dibujados previamente con MaGraDa, que
representan la letra ~ y ., respectivamente.
INDICE
53
Fundamentos
INDICE
54
Por tanto, si nos fijamos en los nombres dados a los vrtices de ambos grafos, obtenemos que una aplicacin biyectiva
INDICE
55
Fundamentos
INDICE
56
2.2.6 Prctica 3
Con la ayuda de MaGraDa se han de realizar los siguientes
ejercicios relacionados con los fundamentos de grafos.
Problema 2.1. Consideremos el grafo no dirigido que aparece en la siguiente figura:
a
b
c
d
g
e
f
(ii) Relaciona el grado de los vrtices con el nmero de aristas. Exprsalo tambin de forma matemtica para cualquier grafo.
INDICE
57
Fundamentos
(Continuacin)
INDICE
58
INDICE
59
Fundamentos
(ii) Relaciona el grado de los vrtices (tanto de entrada como de salida) con el nmero de arcos. Exprsalo tambin de forma matemtica para cualquier grafo.
INDICE
60
INDICE
61
Fundamentos
Problema 2.3. La siguiente figura nos da dos grafos dibujados como las letras F y T.
a
INDICE
62
(Continuacin)
INDICE
63
Fundamentos
INDICE
64
INDICE
65
Fundamentos
(iii) Desde MaGraDa, elimina de tu grafo el vrtice que tiene grado ;. Razona, sin que el dibujo del grafo te sirva
para tu explicacin, cuntas aristas te quedarn en el
grafo y comprueba que sigue cumplindose la relacin
matemtica entre vrtices y aristas. Comprueba con MaGraDa que tus razonamientos han sido vlidos.
Problema 2.5. Consideremos que se tiene un grafo no dirigido que tiene x aristas y slo tiene vrtices de grado n y de
grado 1.
66
(Continuacin)
INDICE
67
Fundamentos
INDICE
68
INDICE
69
Fundamentos
2.3.1 Prctica 4
En esta prctica vamos a familiarizarnos con el concepto
de matriz de adyacencia y sus propiedades.
Problema 2.6. Consideremos el grafo dirigido de la siguiente figura:
v2
v3
v1
v6
v4
v5
INDICE
70
(ii) Usando dicha matriz explica cunto vale el grado de salida y de entrada del vrtice 8n .
INDICE
71
Fundamentos
INDICE
72
73
Desde el modo de texto, MaGraDa nos ofrecer una pantalla que nos da una relacin de todos los vrtices del grafo
con los vrtices a los que cada uno de ellos puede alcanzar.
Si los vrtices tuvieran nombre, stos apareceran referenciados con ellos. Si no es as muestra los nmeros y ya est.
INDICE
74
75
z
7
l
p ) > Hd
7i
7,i
b )
7i
d si ? alcanza a ?
(
en otro caso
7
76
En este caso si denotamos por <w8D al conjunto de vrtices que alcanzan al vrtice 8, obtenemos que <wdD ) \d, ;i,
<w1D ) \d, 1, n, ;, xi, <wnD ) \d, 1, n, ;, xi, <w;D ) \d, ;i,
<wxD ) \d, ;, xi, <wED ) \d, ;, Ei.
Recordemos ahora el concepto de matriz de acceso:
Definicin 3.2. Sea t ) w~, \D un grafo dirigido tal que
~ ) \? i )d . Llamamos matriz de acceso asociada al grafo t
a la matriz cuadrada de orden z definida por
7
z
7
l
< ) >R Hd
7i
INDICE
7,i
b R )
7i
d si ? es alcanzable desde ?
(
en otro caso
7
77
m
NN
NN
<)N
NN
t
d
d
d
d
d
d
(
d
d
(
(
(
(
d
d
(
(
(
d
d
d
d
d
d
(
d
d
(
d
(
(
(
(
(
(
d
u
U
U
U
U
U
3
U
U
{
INDICE
78
>
7i
7,i
z
w D
) d hp
Z
7i
w>dD
7i
>
w>dD
7>
)d
w dD
)
)d
>
>i
> ) d, 1, 3 3 3 , z3
As, por ejemplo, consideremos un grafo simple t con cuatro vrtices, cuya matriz de adyacencia es:
m
u
( d ( (
Nd ( d (U
Nt ( ( ( d U
U
\)N
{ ) p( 3
( ( ( (
m
u
m
u
d d d d
d d d d
NN d d d d U
N
U
Nd d d dU
U3
U
, p; ) N
pn ) N
t( ( ( d{
t( ( ( dU
{
( ( ( (
INDICE
( ( ( (
79
T Por pasos: Nos indica los distintos pasos, presentando la sucesin de matrices correspondientes, cada una
de ellas, a cada iteracin del algoritmo. El ltimo paso
consistir en transformar en d, los elementos diagonales
nulos de p , para as, obtener la matriz de accesibilidad
p tal y como se ha definido aqu, ya que por convenio
todo vrtice es alcanzado por l mismo por un camino
de longitud 0. Para una mejor lectura, MaGraDa indica
los elementos nulos de esta matriz con la palabra cero.
z
T Resultado final: Slo muestra la matriz de accesibilidad, obtenida a partir de dicho algoritmo.
INDICE
80
3.2.4 Prctica 5
A continuacin, con la ayuda de la siguiente prctica, vamos a profundizar en los conceptos de accesibilidad y acceso,
y en la utilizacin del algoritmo de Warshall.
Problema 3.1. Consideremos un grafo dirigido con el conjunto de vrtices ~ ) \d, 1, n, ;, x, Ei y cuya matriz de adyacencia es la siguiente:
m
NN
NN
\)N
NN
t
(
(
(
d
(
(
d
(
(
(
(
(
(
d
(
(
d
(
(
(
(
(
(
(
(
(
(
(
(
d
(
d
d
d
(
(
u
U
U
U
U
U
3
U
U
{
INDICE
81
(Continuacin)
82
y el
(ii) Con la ayuda del apartado anterior explica cmo se puede obtener la matriz de accesibilidad y escrbela en tu
prctica.
INDICE
83
(iii) Calcula razonadamente, con la ayuda del apartado anterior, la matriz de acceso.
(iv) Calcula razonadamente, con la ayuda del apartado anterior, <w8D, para 8 ) d, 1, n, ;, x, E, y completa la frase.
84
m
NN
NN
N
\)N
NN
Nt
(
(
(
(
(
(
(
d
d
(
(
(
(
(
(
(
(
(
(
d
d
(
(
d
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
d
(
(
(
u
U
U
U
U
U
U
3
U
U
U
{
(i) Calcula a mano y de forma razonada la matriz de accesibilidad del grafo, usando el algoritmo de Warshall.
Asegrate que el resultado es correcto con MaGraDa.
INDICE
85
(Continuacin)
INDICE
86
(Continuacin)
INDICE
87
INDICE
88
METODO
1.
Etapa 1. Inicializar 7
d, ~ wdD ) ~ .
Etapa 2. Tomar 8 ; ~ w D .
7
89
90
METODO
2.
Para calcular las componentes conexas mediante este
mtodo lo que se hace es calcular p <, donde representa
un producto elemento a elemento. Entonces la componente
conexa de un vrtice ? se calcula viendo que columnas tienen
un d en la fila 7.
Este algoritmo lo resuelve MaGraDa desde la opcin
`C9}CvvR |Cv0uR del men `@
ul|YlCR B@
uR%|CR. Desde el
modo de texto, en esta opcin, aparecen dos subopciones:
7
T Por pasos: Nos mostrar cmo calcula las componentes conexas por pasos. Primero la matriz de accesibilidad p, luego su traspuesta <, y luego la matriz p <,
INDICE
91
m
NN
NN
p)N
NN
t
INDICE
d
(
(
d
(
(
d
d
d
d
d
(
d
d
d
d
d
(
d
(
(
d
(
(
d
(
(
d
d
(
d
(
(
d
(
d
u
U
U
U
U
U
,
U
U
{
m
N
N
N
N
<)N
N
N
t
92
d
d
d
d
d
d
(
d
d
(
(
(
(
d
d
(
(
(
d
d
d
d
d
d
(
d
d
(
d
(
(
(
(
(
(
d,
u
U
U
U
U
U
,
U
U
{
m
N
N
N
N
p<)N
N
N
t
d
(
(
d
(
(
(
d
d
(
(
(
(
d
d
(
(
(
d
(
(
d
(
(
(
(
(
(
d
(
(
(
(
(
(
d
u
U
U
U
U
U
3
U
U
{
Para calcular, por ejemplo, la componente conexa que contiene al vrtice d, nos situamos en la primera fila, como slo
aparecen unos en la primera y cuarta columna de dicha fila,
la componente conexa estar formada por los vrtices \d, ;i.
De forma anloga se obtendran el resto de componentes conexas, que como ya vimos son \1, ni, \xi y \Ei.
INDICE
93
3.3.1 Prctica 6
En esta prctica vamos a tratar el concepto de conectividad
y el clculo de las componentes conexas de un grafo.
Problema 3.3. Consideremos el siguiente grafo dirigido:
1
INDICE
94
(Continuacin)
INDICE
95
(ii) Calcula por pasos, con la ayuda de MaGraDa, las componentes conexas de dicho grafo usando el mtodo 2.
Explica el procedimiento seguido y comprueba que el
resultado coincide con el del apartado anterior.
INDICE
96
INDICE
97
INDICE
98
(Continuacin)
INDICE
99
te:
a
INDICE
100
(Continuacin)
INDICE
101
3
1
Muestra con la ayuda de MaGraDa si el grafo de la figura tiene vrtices de corte. Dibuja las componentes conexas
resultantes en tu prctica.
INDICE
102
(Continuacin)
INDICE
103
(i) El grafo
.
(ii) El grafo
INDICE
fo porque
.
(iii) Un grafo de este tipo con z vrtices debera tener
aristas porque
INDICE
105
INDICE
106
4.1 Introduccin
En este captulo, vamos a ver cmo utilizar MaGraDa para
estudiar los problemas de recorrido de aristas y de vrtices. La
seccin 4.2 est dedicada al problema de recorrido de aristas y en concreto al algoritmo de Fleury. En la seccin 4.3
estudiaremos el problema de obtencin de caminos y ciclos
hamiltonianos.
4.2 Problema de recorrido de aristas
Durante el siglo XVIII, Knigsberg fue una populosa y rica ciudad de la zona oriental de Prusia. Esta ciudad estaba
dividida en cuatro zonas por el ro Pregel. Siete puentes comunicaban estas zonas, como se muestra en la figura:
INDICE
107
Se cuenta que los habitantes destinaban sus paseos dominicales intentando hallar un punto inicial para poder pasear
por toda la ciudad, cruzando cada puente exactamente una
vez y regresando a dicho punto.
Leonardo Euler, un matemtico suizo natural de Basilea dio
la solucin a este problema. Para ello represent las cuatro
zonas de la ciudad y los siete puentes como el multigrafo de
la siguiente figura:
a
d
c
INDICE
108
Entonces, Euler plante el problema en los siguientes trminos. Es posible, partiendo de un vrtice cualquiera, dibujar
la figura volviendo siempre al mismo punto de partida, sin
repasar ninguna lnea ya trazada y sin levantar el lpiz del
papel? La respuesta fue no, ya que la figura representa un
grafo no dirigido que tiene vrtices de grado impar, de hecho
INDICE
109
INDICE
110
INDICE
111
4.2.1 Prctica 7
A continuacin vamos a familiarizarnos con los conceptos
relativos a recorrido de aristas realizando la siguiente prctica.
Problema 4.1. Consideremos el grafo de la siguiente figu-
ra:
a
INDICE
112
(ii) Utilizando el teorema de caracterizacin de un grafo euleriano y con la ayuda de MaGraDa, razona si dicho grafo
es euleriano.
INDICE
113
(iii) Si la respuesta al apartado anterior es afirmativa, construye razonadamente y por pasos un tour euleriano desde el modo grfico y escrbelo en tu prctica.
INDICE
114
(iii) Si la respuesta al apartado anterior es afirmativa, construye razonadamente y por pasos un camino euleriano
desde el modo grfico y escrbelo en tu prctica.
INDICE
115
Problema 4.3. Queremos saber si es posible que un insecto camine por las aristas de un cubo de manera que slo
pase una vez por cada arista. Para ello se deben seguir los
siguientes pasos:
INDICE
116
m
NN
NN
NN
Nt
(
1
(
(
(
(
(
(
d
d
(
(
d
(
(
d
(
d
d
(
(
(
d
d
(
(
d
(
(
(
(
(
(
d
d
(
u
U
U
U
U
U
U
U
{
INDICE
117
(ii) Comprueba con la ayuda de MaGraDa y el teorema correspondiente, si el grafo tiene un tour euleriano o camino euleriano.
INDICE
118
entonces un camino
Regla 2. Si t es un grafo con z vertices,
hamiltoniano debe tener exactamente z d aristas, y un ciclo
hamiltoniano z aristas.
INDICE
119
Este grafo es conexo pero, segn la regla 4, no es hamiltoniano, es decir no contiene un ciclo hamiltoniano ya que no
INDICE
120
121
INDICE
122
4.3.1 Prctica 8
A continuacin se plantean algunos problemas que ayudarn a comprender las reglas bsicas para construir caminos y
ciclos hamiltonianos.
Problema 4.5. Consideremos el grafo de la siguiente figu-
ra:
1
INDICE
123
INDICE
124
Problema 4.6. Consideremos un grafo cuya matriz de adyacencia viene dada por la siguiente matriz:
m
NN
NN
NN
NN
Nt
(
d
d
d
(
(
(
d
(
d
(
d
d
(
d
d
(
d
(
d
(
d
(
d
(
(
d
d
(
d
(
(
(
d
(
(
d
d
d
d
(
d
(
(
(
d
(
d
(
u
U
U
U
U
U
U
3
U
U
U
{
INDICE
125
(Continuacin)
INDICE
126
INDICE
10
127
11
INDICE
10
128
INDICE
129
(i) psPB s:
a
c
b
(ii) psPB A:
c
d
e
h
INDICE
130
INDICE
131
5.2.1 Prctica 9
Para la realizacin de la siguiente prctica, se deben conocer y haber entendido el concepto de rbol y los teoremas
relacionados con este concepto.
Problema 5.1. Consideremos los grafos de las siguientes
figuras:
T psPB VU
a
T psPB U
a
c
b
e
d
INDICE
132
T psPB ]U
a
b
T psPB *U
T psPB eU
a
c
b
e
d
INDICE
133
y K Q
134
10
(ii) Contesta a la pregunta anterior pero sin usar la definicin, es decir, aplicando los teoremas conocidos sobre
INDICE
135
rboles. Hazlo de dos formas distintas, usando MaGraDa, si lo crees conveniente, para ayudarte a comprobar
las condiciones de los teoremas utilizados.
(iv) Desde MaGraDa, obtn un rbol generador de dicho grafo. Dibjalo en tu prctica y explica por qu lo es.
INDICE
136
(ii) Di, razonndolo, cuntos vrtices debe tener necesariamente este rbol.
INDICE
137
(v) Crees que para volver a conseguir un rbol, sera siempre suficiente quitar tambin un vrtice. Razona la respuesta.
INDICE
138
INDICE
139
5.3 Arboles
con raz
Recordemos que si x es un rbol, podemos elegir un vrtice ( de dicho rbol y al ser conexo definir un grafo dirigido
x w( D donde todos los arcos sean extremos finales de un camino que se inicia en ( . A este grafo se le llama rbol enraizado
en ( . Veamos un ejemplo. Consideremos el rbol de la figura:
x
c
w
y
b
s
140
z
Queremos hacer notar que por comodidad, al dibujar un
rbol enraizado, se suelen obviar las flechas de los arcos.
A la vista de este rbol podemos decir, por ejemplo, que
los vrtices y y K son hijos del vrtice , que los vrtices
y, K, X, 0, Q, 8, ?, F no tienen descendientes y por tanto son terminales y que los vrtices , , `, j, r son internos.
INDICE
141
5.3.1 Prctica 10
A continuacin vamos a familiarizarnos con los conceptos
relacionados con los rboles enraizados.
Problema 5.5. Consideremos el grafo de la siguiente figu-
ra:
14
13
10
11
12
INDICE
142
. Los hermanos
del vrtice x son
porque en la matriz de adyacencia observamos que
.
INDICE
143
ra:
1
144
T A la vista del apartado anterior, explica cuntos vrtices tendr terminales. Adems, usando la matriz
de accesibilidad, indica de forma razonada, cules
son.
INDICE
145
INDICE
146
Problema 5.7. El primer domingo del ao 1((d, Hctor inicio una cadena de cartas, enviando una carta a cada uno de
sus dos amigos. Cada persona que reciba una carta debe enviar 1 copias a 1 personas, el domingo siguiente a la llegada
de la carta. Despus de los n primeros domingos, contesta a
las siguientes cuestiones:
INDICE
147
INDICE
148
wr L 1D
3
x
149
150
151
polaca directa (o prefija) y notacin polaca inversa (o postfija), respectivamente. Como ejemplo, podemos decir que para
nuestro rbol inicial se obtiene:
T Notacin polaca directa: ? d n b L r 1 x.
T Notacin polaca inversa: ? d n r 1 L x b .
INDICE
152
5.4.1 Prctica 11
Ahora se realizarn algunos ejercicios relacionados con la
notacin polaca.
Problema 5.8. Dibuja un rbol enraizado, a partir del cual
se pueda obtener la expresin dada en notacin polaca inversa: E 1 b d x n L . Dibjalo en tu prctica. A partir de
dicho rbol calcula por pasos su notacin polaca directa.
INDICE
153
INDICE
154
Problema 5.10. Dibuja un rbol enraizado que corresponda con la expresin algebraica
?
L wF xD 3
n
r
INDICE
155
Problema 5.11. Dibuja un rbol enraizado que corresponda con la expresin algebraica
w?1 dDn
rx
~w
;F L
3
M0
INDICE
156
Introduccin
157
INDICE
158
INDICE
159
6.2.1 Prctica 12
Para familiarizarnos con la creacin de grafos ponderados
se plantean los siguientes ejercicios.
Problema 6.1. La siguiente figura representa un grafo
ponderado.
4
2
5
f
1
3
c
INDICE
160
Problema 6.2. Supongamos que tenemos un grafo ponderado dirigido, cuya matriz de pesos es:
m
NN
NN d
NN n
NN
Nt
INDICE
1
d
d
n
d
M
d
d
d
x
;
161
1
d
d
d
n
u
U
U
U
U
d U
U
U
U
U
d {
(ii) Razona cules son las similitudes entre la matriz de adyacencia y la matriz de pesos.
INDICE
162
nos ocuaristas y
n es ad. El vry
, res-
.
ms los arcos de mayor peso son los arcos
y
, cuyo peso es
.
INDICE
163
Ade-
`d ) (,
INDICE
164
` ) 8$t\` L j i, i ) 1, n, 3 3 3 , z3
i
>ci
>
>i
165
co, sin embargo la numeracin actual de los vrtices no permite aplicar las ecuaciones de Bellman. As por ejemplo, existe
un arco del vrtice n al 1 y sin embargo n no es menor que 1.
Por tanto, para aplicar dichas ecuaciones debemos renumerar los vrtices. Esto lo hace MaGraDa, tanto desde el modo
grfico como desde el modo de texto en la opcin kvY9u
de `u9%vCR 9@
uR |CCR v uQCR u|@
|l%|CR. Si aplicamos
dicha opcin, MaGraDa presenta una pantalla con la renumeracin que va a usar y el vrtice origen de los caminos que
va a buscar, que ser el d, segn su numeracin.
Si observamos los resultados que aparecen en dicha pantalla, vemos que ha realizado slo los siguientes cambios: El
vrtice 1 ha pasado a ser el n y viceversa, y el vrtice x ha pasado a ser el E y viceversa. Notemos que sin embargo esto lo
hace internamente. Es decir el grafo que presenta MaGraDa
en pantalla sigue siendo el mismo.
Si ahora aplicamos el algoritmo al grafo con la nueva renumeracin, que viene representada en la siguiente figura:
INDICE
166
3
5
1
10
10
7
5
5
8
2
2
7
6
7
9
9
9
11
10
se obtiene lo siguiente:
`d ) (3
`1 ) 8$t\`d L jd1 i ) 8$t\( L xi ) x3
`n ) 8$t\`d L jdn i ) 8$t\( L xi ) x3
`; ) 8$t\`d L jd; i ) 8$t\( L xi ) x3
`x ) 8$t\`n L jnx , `; L j;x i ) 8$t\x L d(, x L ;i ) 3
`E ) 8$t\`n L jnE , `x L jxE i ) 8$t\x L d(, L Ei ) dx3
` ) 8$t\`; L j; , `x L jx i ) 8$t\x L ;, L Ei ) 3
`M ) 8$t\`E L jEM i ) 8$t\dx L ni ) dM3
` ) 8$t\`E L jE , ` L j i ) 8$t\dx L n, L i ) dM3
INDICE
167
) 8$t\dM L 1, dM L M, dM L ;i ) 1(3
Hacemos notar que, segn las ecuaciones de Bellman, por
ejemplo, `x ) 8$t\`d L jdx , `1 L j1x , `n L jnx , `; L j;x i, pero
como jdx ) j1x ) , hemos obviado los correspondientes
valores `d L jdx y `1 L j1x , en el clculo del mnimo realizado
anteriormente. Esto es vlido en todos los casos.
Una vez que tenemos los pesos de cada uno de los caminos ms cortos del vrtice d a los restantes, vamos a identificar
los caminos:
T `d ) (, el peso del camino ms corto del vrtice d al d
tiene peso cero porque es de longitud cero.
T `1 ) x, el peso del camino ms corto del vrtice d al 1
es x y dicho camino est formado por el arco wd, 1D.
T `n ) x, el peso del camino ms corto del vrtice d al n
es x y dicho camino est formado por el arco wd, nD.
T `; ) x, el peso del camino ms corto del vrtice d al ;
es x y dicho camino est formado por el arco wd, ;D.
INDICE
168
169
decir, por los arcos wd, nD, wn, ED y wE, D. Notemos que en
este caso podramos haber elegido tambin el camino
ms corto del vrtice d al ms el arco w, D, porque el
peso es el mismo.
T `d( ) dM, el peso del camino ms corto del vrtice d al
d( es dM y dicho camino est formado por el camino ms
corto del vrtice d al ms el arco w, d(D. Es decir, por
los arcos wd, ;D, w;, D y w, d(D.
T `dd ) 1(, el peso del camino ms corto del vrtice d al
dd es 1( y dicho camino est formado por el camino ms
corto del vrtice d al M ms el arco wM, ddD. Es decir, por
los arcos wd, nD, wn, ED, wE, MD y wM, ddD.
Una vez obtenidos los caminos ms cortos del vrtice d a los
restantes en el grafo renumerado, hay que cambiar de nuevo
la renumeracin para obtener dichos caminos en el grafo inicial. Es decir, hay que cambiar de nuevo el vrtice n por el 1
y viceversa, y el E por el x y viceversa, en todos los resultados. De est forma se obtiene el resultado final, que presenta
MaGraDa, cuando se utiliza la opcin V}l%|u del algoritmo.
Es decir, MaGraDa desde el modo de texto da la pantalla explicativa que mostramos a continuacin en dos partes:
INDICE
170
171
Como se puede observar los caminos ms cortos se indican con flechas blancas, y dentro de cada vrtice aparece,
adems de su nmero, el peso del camino ms corto del vrtice d a dicho vrtice.
6.3.2 Secuenciacin de actividades (PERT)
Se denomina camino ms largo entre dos vrtices dados,
al camino de peso mximo entre dichos vrtices. Un ejemplo
tpico de obtencin de un camino ms largo en un grafo dirigido, es la secuenciacin de actividades, tambin llamada red
de actividades.
As por ejemplo, un proyecto de construccin grande se
INDICE
172
INDICE
173
>ci
>
>i
174
INDICE
175
6.3.3 Prctica 13
A continuacin se propone una serie de ejercicios que ayudarn a comprender los algoritmos vistos en esta seccin.
Problema 6.3. Deseamos calcular los caminos ms cortos
del vrtice y a los restantes en el grafo de la siguiente figura:
5
b
3
a
e
6
1
2
3
f
8
h
INDICE
176
(Continuacin)
INDICE
177
INDICE
178
179
INDICE
180
(ii) Usa MaGraDa para renumerar los vrtices, si es necesario, y poder aplicar el PERT. Dibuja en tu prctica el
grafo con la nueva renumeracin.
INDICE
181
INDICE
182
(Continuacin)
INDICE
183
(iv) A la vista de los resultados obtenidos en el apartado anterior y teniendo en cuenta la numeracin inicial de vrtices, explica cunto tiempo se necesitar como mnimo
para tener hecha la comida e identifica razonadamente
el camino crtico. Aydate de los resultados que obtiene
MaGraDa.
INDICE
184
Problema 6.5. Vamos a analizar un PERT sobre la construccin de una casa, abarcando slo las primeras actividades
tpicas. Empezamos haciendo una descripcin de las actividades primeras y el tiempo estimado para cada una de ellas.
T Pedido de los ladrillos (d da).
T Pedido del equipo y entrega ( das).
T Pedido del hormign (d da).
T Explanacin del solar (d da).
T Excavaciones (1 das).
T Entrega del hormign (n das).
T Realizacin de los cimientos (n das).
T Entrega de los ladrillos (1( das).
T Diseo y pedido de la carpintera (d; das).
T Construccin de los muros (dd das).
T Entrega de la carpintera (dn das).
(i) Estudia las dependencias existentes entre estas actividades y dibuja en tu prctica el grafo resultante de esta
parte del proyecto de realizacin de una casa. Introdcelo con MaGraDa.
INDICE
185
(Continuacin)
INDICE
186
(Continuacin)
(iii) Completa las siguientes frases: El tiempo mnimo necesario para poder realizar los cimientos es de
das. El tiempo que se puede retrasar la construccin de
cimientos sin retrasar todo el proyecto es de
das.
INDICE
187
Problema 6.6. La tabla siguiente es una lista de las actividades \, 4 , g , ;, o ,B , t, I , { , de un proyecto y para cada
una de ellas, el tiempo en das necesario y las actividades
que deben completarse antes de poder iniciarse.
Actividad
\ 4 g
; o B t I {
Tiempo necesario n E M
x dd n n 1
Prerrequisitos
\, 4 g, o 4 o ; B, t 4
(i) Dibuja el grafo resultante.
188
(Continuacin)
INDICE
189
INDICE
190
191
los vertices
del grafo. En algun
tener etiquetas variables y el resto etiquetas fijas. Depodran
al conjunto de vertices
con etiqueta variable por x . Con estas consideraciones dicho algoritmo puede ser definido de la
siguiente forma:
7i
ALGORITMO DE DIJKSTRA
Paso 1. Inicializacion.
h ) \di, x ) \1, n, 3 3 3 , zi
`d ) (
INDICE
192
` ) jd , i ; wdD
i
` )
i
, i W; wdD
de d a i, i ) 1, n, 3 3 3 , z
Paso 3. Actualizacion.
i ; w>D x, ` U) 8$t\` , ` L j i
i
>
>i
Ir al paso 2.
Queremos hacer notar que con este algoritmo realmente
se pueden calcular los caminos ms cortos entre todos los
pares de vrtices tomando como origen, en cada caso, cada
uno de los vrtices del grafo. Por otro lado, cabe mencionar
que cuando un vrtice i est etiquetado con etiqueta fija, la
correspondiente variable ` ya indica el peso del camino ms
corto del vrtice d al i. As, si quisieramos aplicar este algoritmo para calcular un slo camino ms corto entre, por ejemplo,
los vrtices d y i, el algoritmo finalizara cuando i ; h .
MaGraDa resuelve este algoritmo tanto desde el modo de
texto como desde el modo grfico, en la opcin -%b/Ru del
i
INDICE
193
men VlC%9CR. Para comprender la forma en que MaGraDa presenta los resultados, vamos a considerar el siguiente
grafo que ha sido previamente creado con MaGrada.
194
>
INDICE
195
aparece en la casilla, tiene como vrtice inicial el d, el camino ms corto del vrtice d al ; est formado nicamente por
el arco wd, ;D y su peso es 1. Con esta informacin tendramos que h ) \d, ;i y x ) \1, n, x, Ei. Como x W) !, debemos
continuar con el paso 3 de actualizacin. Para ello debemos
calcular para todo i ; w>D x , ` ) 8$t\` , ` L j i. Como
w>D x ) w;D x ) \1, xi \1, n, x, Ei ) \1, xi, slo tenemos
que actualizar `1 y `x . Los pesos del resto de vrtices con
etiqueta variable (el n y el E) se mantienen igual, por tanto
en este caso, seguirn siendo . Observamos en la segunda
iteracin que los pesos obtenidos son `1 ) 8$t\`1 , `; Lj;1 i )
8$t\n, 1 L Mi ) n y `x ) 8$t\`x , `; L j;x i ) 8$t\ , 1 L ;i ) E.
Por tanto, como muestra MaGraDa, en la segunda iteracin,
si volvemos al paso 2, la etiqueta que ahora va a pasar a fija
es > ) 1 y en este caso, el peso `1 ) n, se ha obtenido con
el arco wd, 1D. Por tanto, el camino ms corto del vrtice d al
1 es el arco wd, 1D. Siguiendo el proceso, ahora tendramos
h ) \d, ;, 1i y x ) \n, x, Ei. La actualizacin de los pesos
aparece ahora en la iteracin n. De ella se deduce que la
nueva etiqueta que va a pasar de variable a fija es > ) x y
`x ) E. Para obtener el camino ms corto del vrtice d al x
debemos fijarnos en el par que aparece al lado del nmero.
En este caso dicho arco es el w;, xD. Como el vrtice inicial del
arco no es d, para obtener el camino ms corto debemos ir
i
INDICE
196
>
>i
197
198
de
del camino mas corto del vertice
7 al i con la restriccion
7i
7i
INDICE
199
) j ,
7i
7i
wELdD
7i
7, i
wED
) 8$t `
7i
wED
wED
,`
L`
7E
Ei
7, i,
E ) d, 1, 3 3 3 z3
Es posible ver que
wzLdD
` )`
7i
7i
) >
wED
7i
Hd ,
7,i
wED
donde
representa el vertice
anterior al i en el camino mas
E.
corto del vrtice 7 al i en la iteracion
wdD
wdD
Inicialmente ) 7, si ` c L , y
7i
7i
wELdD
7i
7i
l
)
wED
w
7i
Ei
INDICE
wELdD
si `
w
si `
7i
7i
200
LdD
wED
)`
w
c`
7i
7i
7i
201
202
INDICE
203
7.2.3 Prctica 14
A continuacin presentamos una serie de ejercicios relativos a la bsqueda de caminos ms cortos entre vrtices utilizando los algoritmos vistos en esta seccin.
Problema 7.1. Introduce con MaGraDa, el siguiente grafo
ponderado:
3
4
6
2
2
4
3
3
1
5
5
5
6
3
1
2
INDICE
204
(Continuacin)
INDICE
205
do:
b
2
a
e
3
2
c
f
7
3
5
1
h
INDICE
206
(Continuacin)
INDICE
207
do:
3
6
4
7
3
INDICE
208
(Continuacin)
INDICE
209
INDICE
210
INDICE
211
(i) Usando MaGraDa, aplica el algoritmo de Floyd y Warshall y obtn, de forma razonada, el camino ms corto
entre los vrtices n y x y su peso.
INDICE
212
(Continuacin)
INDICE
213
INDICE
214
2
3
1
E
Se sabe adems, que los enlaces en los puntos 4 y ; fallan en ocasiones, es decir, cuando este fallo se produce un
mensaje no puede pasar por los puntos 4 y ;.
Se desea saber qu ruta deben seguir los mensajes entre
cada par de puntos para que el tiempo de transmisin sea
mnimo, en los siguientes casos:
T Cuando los enlaces en los puntos 4 y ; no fallan (ruta
inicial).
T Cuando los enlaces en los puntos 4 y ; fallan (ruta
alternativa).
INDICE
215
INDICE
216
(Continuacin)
INDICE
217
(Continuacin)
INDICE
218
7.3
Arboles
generadores de peso mnimo
es un arbol
generador de peso mnimo, si x es un arbol
generador tal que la suma de los pesos asociados a sus aristas
es mnima.
En esta seccin vamos a ver cmo utilizar los algoritmos
de Kruskal y Prim para obtener rboles generadores de peso
mnimo. Este tipo de algoritmos nos permiten resolver problemas reales cuya solucin sea la obtencin de dicho rbol,
como por ejemplo la construccin de un sistema de carreteras
de coste mnimo que enlace una serie de ciudades, la creacin
de un sistema de interconexin de coste mnimo entre ordenadores o el problema de enviar un mensaje desde un punto
de una red informtica a los dems en un tiempo mnimo.
7.3.1 Algoritmo de Kruskal
Dado t ) w~, \D, un grafo no dirigido con z vrtices y con
pesos j asociados a cada arista ; \, 7 ) d, 1, 3 3 3 , E, el algoritmo de Kruskal, para la obtencin de rboles generadores
de peso mnimo, consiste en lo siguiente:
7
INDICE
219
Paso 1. x ) !.
Paso 2. Ordenar en orden creciente las aristas de t atendiendo a sus pesos, es decir,
d , 1 , 3 3 3 , b jd j1 N N N j 3
E
Paso 3. Anadir
aristas en x de forma ordenada siempre que
no se formen ciclos hasta tener en x , z d aristas.
MaGraDa resuelve este algoritmo desde la opcin YR/ul
del men VlC%9CR. La solucin que nos da es clara. Nos
dir qu aristas del grafo son las que pertenecen al rbol generador de peso mnimo. Desde el modo de texto lo hace con
dos pantallas. En una nos ofrece una relacin de las aristas
del grafo con sus pesos ordenados de menor a mayor y nos
dice de cada una de ellas si la puede coger para el rbol o no,
porque forma ciclo. En la otra pantalla nos dice claramente
qu aristas va a coger y cul es el peso del rbol obtenido.
Desde el modo grfico la primera pantalla es la misma pero
la segunda presenta el rbol de forma grfica resaltando las
aristas en color blanco.
As por ejemplo, para el siguiente grafo creado con MaGraDa,
INDICE
220
INDICE
221
Uw`D ) j
`8
8 ; ~ wtD,
T
si W arista) ` ; ~ wtD.
222
Paso 3. Anadir
`T a J , es decir, J U) J \`T i.
Anadir
la arista incidente con `T con peso Uw`T D a
x , es decir, x U) x \i.
Paso 4. Si cardwJ D ) z, STOP.
Si cardwJD c z, hacer
Uw`D U) 8$t \Uw`D, j`T ` i ,
` W; J,
e ir al paso 2.
Para resolver este algoritmo mediante MaGraDa debemos
seleccionar la opcin a%9 del men VlC%9CR. Tanto desde
el modo de texto como desde el modo grfico nos permite
elegir el vrtice a partir del cual vamos a construir el rbol
generador de peso mnimo, es decir, el vrtice 8 T . La solucin
nos la presenta en dos pantallas. La primera, la 9u%: I
%u|%CvR, resume los pasos del algoritmo mediante los que
se va a obtener el rbol. As, para nuestro ejemplo, partiendo
del vrtice d obtendramos la siguiente pantalla:
INDICE
223
224
Estas aristas que forman el rbol generador de peso mnimo se mostrarn luego de forma ms clara desde el modo de
texto en otra pantalla de la siguiente forma:
INDICE
225
INDICE
226
7.3.3 Prctica 15
A continuacin presentamos una seria de ejercicios relativos a la obtencin de rboles generadores de peso mnimo.
Problema 7.6. Se desea construir una red de ordenadores
acoplada sin precisin para un sistema de ocho ordenadores.
El grafo de la siguiente figura muestra la situacin:
5
1
6
7
7
3
2
2
INDICE
227
INDICE
228
INDICE
229
Granada
nEn
nxn
;n;
xd
MxM
Albacete
dd
1xd
dd
x;(
Alicante
;11
dEE
xdx
Madrid
nx1
E1d
Valencia
n;
Se va a construir un sistema de carreteras que comunique estas seis ciudades y se desea determinar que carre construirse para que el coste de construccion
teras deberan
INDICE
230
(Continuacin)
INDICE
231
INDICE
232
2
4
1
3
1
4
8
3
3
(i) Usa el algoritmo de Prim, de forma razonada y ayudndote de MaGraDa, para determinar qu lneas deben
construirse para que el coste total sea mnimo.
INDICE
233
(Continuacin)
INDICE
234
(ii) Por otro lado se prev que el trafico entre los puntos yn
y yx sea muy intenso, por lo que se desea saber qu
lneas deben construise de manera que exista una comunicacin directa entre yn y yx y con coste mnimo.
Modifica el algoritmo de Prim (explicando dicha modificacin) y aplcalo para resolver esta cuestin. Aydate
de MaGraDa para comprobar tu solucin.
INDICE
235
(Continuacin)
INDICE
236
Bibliografa
[1] Manuel Abellanas y Dolores Lodares. Anlisis de algoritmos y teora de grafos. Ra-ma, 1990.
[2] Manuel Abellanas y Dolores Lodares. Matemtica discreta. Ra-ma, 1990.
[3] Norman L. Biggs. Matemtica discreta. Vicens Vives,
1994.
[4] John A. Bondy y Uppaluri S. Murty. Graph theory with
applications. Mc Millan Press, 1976.
[5] Nicos Christofides. Graph theory. An algorithmic approach. Academic Press, 1975.
[6] Pedro M. Cuenca. Programacin en Java. Anaya, 1998.
[7] Paul F. Dierker y William L. Voxman. Discrete mathematics. HBJ, 1986.
INDICE
237
Bibliografa
Graph algorithms.
Computer Science
[9] Agustn Froufe. JAVA 2: Manual de usuario y tutorial. Ra-Ma, Segunda edicin, 2000. Disponible en
Y}U\\ZRZs$BR$}BIR\PBZP\.
[10] Ronald Gould. Graph theory. The Benjamin/Cummings
Publishing Company, INC., 1988.
[11] Ralph P. Grimaldi. Matemticas discreta y combinatoria. Una introduccin con aplicaciones. Tercera edicin.
Addison-Wesley Longman, 1998.
[12] Jonathan Gross y Jay Yellen. Graph theory and its applications. CRC Press, 1999.
[13] Richard Johnsonbaugh. Matemticas discretas. Grupo
Editorial Iberoamericana, 1988.
[14] Bernard Kolman y Robert Busby. Estructuras de matemtica discreta para la computacin. Prentice Hall Hispanoamericana, 1986.
[15] Seymour Lipschutz. Matemtica discreta. McGraw-Hill,
1990.
[16] Russell Merris. Graph theory. Wiley-Interscience, 2000.
INDICE
238
INDICE
239