Sunteți pe pagina 1din 107

UNIVERSIDAD POLITCNICA DE MADRID

FACULTAD DE INFORMTICA

TRABAJO FIN DE CARRERA

PROBLEMAS DE OPTIMIZACIN

EN RBOLES GENERADORES

---

ESTUDIO TERICO

AUTOR: Mara Dolores Rodrguez Glvez

TUTOR: Gregorio Hernndez Pealver


A mi familia, con todo mi cario
AGRADECIMIENTOS

Agradezco a mi tutor, Gregorio Hernndez Pealver, su inestimable ayuda, no


slo por sus conocimientos sino por su paciencia, disponibilidad a lo largo de todo
el proyecto y su amabilidad, algo difcil hoy en da. Sin su apoyo este trabajo no
hubiera sido posible.

Tambin quiero mencionar a todas las personas que siempre han estado
presentes y que nunca duraron que lo conseguira. A ellas quiero dedicar este
momento y todo lo que significa:

Gracias a Antonio por toda la ayuda y apoyo que me ha dado siempre.

Gracias a Pilar, mi suegra, por tanta insistencia en que pese a todas las
dificultades surgidas, acabara esta iniciativa que ya tena en marcha.

Gracias a mi hermana M Jess por todos los nimos y apoyos dados en


momentos tan complicados para m.

Y, por supuesto, regalo este da y dedico todo este trabajo a los que sin duda lo
han dado todo por m, me han acompaado y apoyado con su amor incondicional,
gracias pap y mam.

M Dolores Rodrguez Glvez

Madrid, Enero de 2009


NDICE

1 OBJETIVO DEL PROYECTO...................................................................... 1


2 RBOLES GENERADORES MNIMOS ...................................................... 2
2.1 INTRODUCCIN ................................................................................. 2
2.2 ALGORITMO DE BORVKA ............................................................... 5
2.3 ALGORITMO DE PRIM ........................................................................ 7
2.4 ALGORITMO DE KRUSKAL ................................................................ 9
2.5 APLICACIONES................................................................................. 12
2.5.1 Televisin por cable .................................................................... 13
2.5.2 Diseo de circuitos...................................................................... 13
2.5.3 Conexin de islas........................................................................ 13
2.5.4 Agrupacin de Datos de Expresin Gentica.............................. 13
2.5.5 Aproximaciones Basadas en MST .............................................. 14
3 RBOL GENERADOR MXIMO (MaxST) ................................................ 15
3.1 Ejemplo de aplicacin del algoritmo de MaxST.................................. 15
3.2 Problema de la Fiabilidad de la Red................................................... 15
3.3 Problema del Cuello de Botella .......................................................... 16
4 RBOLES DE CAMINO MNIMO .............................................................. 17
4.1 INTRODUCCIN ............................................................................... 17
4.2 ALGORITMO DE DIJKSTRA.............................................................. 19
4.3 ALGORITMO DE BELLMAN-FORD................................................... 29
4.4 ALGORITMO DE WARSHALL-FLOYD .............................................. 34
4.5 APLICACIONES................................................................................. 36
4.5.1 Multidifusin ................................................................................ 36
4.5.2 Aproximaciones Basadas en SPT............................................... 37
5 PROBLEMAS DE RBOLES GENERADORES NP-COMPLETOS .......... 38
5.1 RBOL MNIMO K-GENERADOR ..................................................... 38
5.2 MINIMUM DEGREE SPANNING TREE............................................. 38
5.3 ARBOL GENERADOR MNIMO GEOMTRICO DE GRADO 3 ........ 38
5.4 RBOL GENERADOR DE MXIMAS HOJAS................................... 38
5.5 RBOL K-GENERADOR DE MTRICA MXIMA Y MNIMA ............ 39
5.6 SUBGRAFO GENERADOR DE MNIMO DIMETRO ....................... 39
5.7 RBOL GENERADOR CON MNIMO COSTE DE COMUNICACIN39
5.8 RBOL MNIMO DE STEINER .......................................................... 40
5.9 RBOL DE STEINER GEOMTRICO MNIMO ................................. 40
5.10 RED DE STEINER MNIMA GENERALIZADA................................... 40
5.11 RBOL DE CONGESTIN DE MNIMO RUTEO (MRCT)................. 41
5.12 RBOL GENERADOR MXIMO MNIMO BORRANDO K ARISTAS 41
5.13 RBOL GENERADOR DE MNIMA MODIFICACIN........................ 41
6 RBOLES GENERADORES CON COSTE DE RUTEO MNIMO............. 43
6.1 INTRODUCCIN ............................................................................... 43
6.2 APROXIMACIN POR RBOL DE CAMINOS MNIMOS ................. 47
6.2.1 Algoritmo 2-Aproximacin basado en la mediana ....................... 48
6.2.2 Algoritmo 2-Aproximacin basado en el centroide ...................... 50
6.3 APROXIMACIN POR UNA ESTRELLA GENERAL......................... 50
6.3.1 Algoritmo de 15/8-Aproximacin ................................................. 55
6.3.2 Algoritmo de 3/2-Aproximacin ................................................... 56
6.3.3 Mejora Adicional.......................................................................... 57
6.4 REDUCCION AL CASO METRICO.................................................... 59
6.5 ESQUEMA DE APROXIMACIN EN TIEMPO POLINMICO .......... 64
6.5.1 -Spine de un rbol ..................................................................... 69
6.5.2 De rboles a Estrellas................................................................. 72
6.5.3 Un Mtodo ms rpido ................................................................ 77
6.6 APLICACIONES................................................................................. 80
6.6.1 Diseo de Redes......................................................................... 80
6.6.2 Biologa Computacional .............................................................. 80
7 RBOLES DE STEINER ........................................................................... 83
7.1 rbol mnimo de Steiner..................................................................... 83
7.1.1 Aproximacin por MST................................................................ 84
7.1.2 Algoritmo de Aproximacin propuesto por Alexander Zelikovsky 88
7.2 RBOLES y DIMETROS ................................................................. 92
7.2.1 Excentricidades, dimetros y radios............................................ 92
7.2.2 Algoritmo: EXCENTRICIDAD(Tr) ................................................ 93
7.2.3 Algoritmo DIMETRO DE UN ARBOL ........................................ 94
7.2.4 Algoritmo MSDT.......................................................................... 98
8 CONCLUSIONES.................................................................................... 101
9 BIBLIOGRAFIA........................................................................................ 102
OBJETIVO DEL PROYECTO

1 OBJETIVO DEL PROYECTO

La finalidad de este proyecto es recopilar los algoritmos ms significativos para


los problemas de optimizacin de rboles generadores. Para ello inicialmente se
realiza un estudio de las propiedades de los rboles, de los algoritmos bsicos en
los que se apoyan los algoritmos de optimizacin de rboles generadores y sus
aplicaciones. A continuacin se expone cada uno de los algoritmos tratados
estudiando su estrategia y complejidad.

Dado que el carcter de este proyecto es fundamentalmente acadmico, se ha


realizado una aplicacin que implementa varios de los algoritmos analizados,
mostrando grficamente los pasos en la resolucin de cada una de estos
algoritmos de optimizacin.

La primera recoge los resultados obtenidos durante el estudio terico de los


algoritmos de optimizacin para rboles generadores.

La segunda parte describe la aplicacin, su arquitectura, el diseo, la


implementacin de los algoritmos y el manual de usuario.

Pgina 1 de 102
RBOLES GENERADORES MNIMOS

2 RBOLES GENERADORES MNIMOS

2.1 INTRODUCCIN

Supongamos que una empresa tiene negocios en diferentes oficinas y que quiere
contratar lneas de telfono para conectarlas todas. El objetivo es conectar todas
las oficinas con el coste total mnimo. La conexin resultado debera ser un rbol
generador ya que si no es un rbol, podramos eliminar algunas aristas sin perder
la conectividad para ahorrar dinero.

Un rbol generador mnimo (MST) de un grafo G con pesos es un rbol generador


de G cuya suma de pesos de las aristas es mnima. En otras palabras, un rbol
generador mnimo es un rbol constituido por un subconjunto de aristas de un
grafo no dirigido, con dos propiedades:

1. Expande el grafo, es decir, incluye todos los vrtices del grafo

2. Es mnimo, es decir, el peso total de todos las aristas es lo ms pequeo


posible

El problema del rbol generador mnimo se incluye siempre en los libros de texto
porque tiene muchas aplicaciones, es un ejemplo importante donde algoritmos
ambiciosos siempre alcanzan una solucin ptima, y se necesitan estructuras de
datos inteligentes para que funcionen eficientemente.

Un rbol generador mnimo no es necesariamente nico.

En todo este captulo se va a llamar rbol generador mnimo al de peso mnimo.

Figura 1: Grafo con pesos;

a b c
4 3

2
d
5 4
1 1
e f
2 1 2

g 1 h

Pgina 2 de 102
RBOLES GENERADORES MNIMOS

La figura 2 muestra algunos de los rboles generadores posibles del grafo de la


figura 1. Todos ellos tienen un peso total de 14.

Figura 2: Algunos rboles generadores mnimos

a b c a b c
3 4 3

2 2
d d

1
f e f
2 1 2

g 1 h g 1 h

a b c a b c
4 3 4 3

2 2
d d

1 1 1
e f e f
1 2 2

g 1 h g 1 h

Antes de explorar los algoritmos de MST, se expondrn algunos hechos


importantes sobre los rboles generadores. Mediante G + e se denotar el grafo
que se obtiene al insertar la arista e en G.

Pgina 3 de 102
RBOLES GENERADORES MNIMOS

LEMA 1

Cualquier par de vrtices de un rbol estn conectados por un camino nico.

Demostracin:

Dado que el rbol es conexo, cualquier par de vrtices en el rbol estn


conectados por al menos un camino. Sea T un rbol, y se asume que hay dos
caminos distintos P1 y P2 desde el vrtice u al vrtice v. Existe una arista e = (x, y)
de P1 que no es una arista de P2. Se puede ver que (P1 P2) e es conexo y
contiene el camino Pxy desde el vrtice x al vrtice y. Pero entonces Pxy + e es un
ciclo. Lo cual es una contradiccin. As, debe de haber al menos un camino entre
los dos vrtices en el rbol.

LEMA2

Sea T un rbol generador de un grafo G, y sea e una arista de G que no est en


T.

Entonces, T + e contiene un nico ciclo.

Demostracin:

Sea e = (u, v). Dado que T no contiene ciclos, cada ciclo de T + e contiene a e.
Adems, X es un ciclo de T + e si y slo si X e es un camino de u a v en T. Por
el lema 1, tal camino es nico en T. De esta manera, T + e contiene un nico
ciclo.

En este captulo se van a estudiar tres algoritmos que se conocen muy bien para
resolver el problema del rbol generador mnimo:

 Algoritmo de Borvka

 Algoritmo de Prim

 Algoritmo de Kruskal

TEOREMA 1

Sea F1, F2,, Fk un bosque de rboles generadores de G, y sea (u, v) el ms


pequeo de todas las aristas con solamente un punto final u V(F1). Entonces
hay un rbol generador ptimo de entre todos los rboles generadores que
k
contiene a (u, v) y que contiene todas las aristas en U E ( Fi ) .
i =1

Pgina 4 de 102
RBOLES GENERADORES MNIMOS

Demostracin:

Por reduccin al absurdo. Suponiendo que hay un rbol generador T de G con


k
U E ( Fi ) E(T), y (u, v) E(T), el cual es el ms pequeo de todos los rboles
i =1
k
generadores que contienen U E ( Fi ) {(u, v)}. Por el lema 2, T + (u, v) contiene
i =1
un ciclo nicamente. Dado que v V(F1), este ciclo contiene algunos vrtices
fuera de F1. De esta forma existe una arista (u, v), diferente de (u, v), sobre este
ciclo tal que u V(F1) y v V(F1). Ya que esta arista no es ms pequeo que (u,
k
v), y no pertenece a U E ( Fi ) , T + (u, v) + (u, v) es un nuevo rbol generador con
i =1
peso total no superior a T. Lo cual es una contradiccin. Por consiguiente, hay un
rbol generador ptimo que contiene (u, v) entre todos los rboles generadores
k
que contiene todas las aristas en U E ( Fi ) .
i =1

2.2 ALGORITMO DE BORVKA

En cada paso de Borvka, cada supervrtice selecciona su arista adyacente ms


pequeo.

Estas aristas se aaden al MST, evitando ciclos. Entonces los nuevos


supervrtices, por ejemplo, los componentes conexos se calculan contrayendo el
grafo sobre las aristas que se aaden al MST. Este proceso se repite hasta que
solamente queda un supervrtice. En otras palabras se contraen n-1 aristas. La
unin de estas aristas forma un rbol generador mnimo.

Algoritmo: BORVKA

Entrada: Un grafo no dirigido y con peso G = (V, E, w)

Salida: Un rbol generador mnimo T.

Mientras |T| < n -1 hacer

F Un bosque formado por las aristas ms pequeos que inciden en cada


vrtice de G

G G\ F

T T F

Pgina 5 de 102
RBOLES GENERADORES MNIMOS

Ejemplo:

Figura 3: Ejecucin del algoritmo de BORVKA sobre el grafo de la figura 1

a c
4 3 (a, b, c, d, e, f)

2
d
5 4 2
1 1
e f
2 1 2
(g,
h)
g 1 h

(a) (b)

a b c
4 3

(a, b, c, d, e, f)
2
d
5 4
1 1
2
e f
(a, b, c, d, e, f, g, h) 2 1 2

(g, h) g 1 h

(c) (d) (e)

La figura 3 ilustra la ejecucin del algoritmo de BORVKA sobre el grafo de la


figura 1. En la figura 3(a), cada vrtice elegido es la arista ms pequeo que
incide si causar ciclos. En la figura 3(b), los vrtices a, b, c, d, e y f se contraen en
un supervrtice, y los vrtices g y h se contraen en otros supervrtices. En la
figura 3(d), los dos supervrtices se contraen en un supervrtice. Todas las

Pgina 6 de 102
RBOLES GENERADORES MNIMOS

aristas contradas constituyen un rbol generador como se muestra en la figura


3(e).

Ntese que en cada paso de Borvka se reduce el nmero de vrtices en un


factor de al menos dos. Por lo tanto, el bucle while se ejecutar al menos O(log n)
veces. En cada iteracin, todas las contracciones se pueden realizar en tiempo
O(m). En total, el algoritmo de Borvka se ejecuta en tiempo O(m log n).

2.3 ALGORITMO DE PRIM

Se elige un vrtice arbitrariamente y se trabaja con un rbol generador mnimo


parcial. En cada paso se aade una arista que conecte con el vrtice ms cercano
pero que no est todava en el actual rbol generador mnimo parcial. As se va
formando el rbol generador hasta que el rbol incluye todos los vrtices del grafo
dado. Esta estrategia es voraz en el sentido de que en cada paso el rbol
generador parcial crece aadindole la arista ms pequea entre todas las aristas
vecinas posibles.

Algoritmo: PRIM

Entrada: Un grafo no dirigido y con peso G = (V, E, w)

Salida: Un rbol generador mnimo T.

Sea r un vrtice elegido arbitrariamente del conjunto V.

U {r}

Mientras |U| < n hacer

Encontrar un u U y v V U tal que la arista (u, v) sea la arista mnimo


entre U y V U.

T T {(u, v)}

T T {v}

Ejemplo

La figura 4 ilustra la ejecucin del algoritmo de PRIM sobre el grafo de la figura 1.


Se empieza por el vrtice a. Dado que (a, b) es la arista mnimo que incide sobre
a, se incluye en el rbol generador que se est construyendo (figura 4(a)). En la
figura 4(b), se aade la arista (b, d) porque es la arista ms pequea entre {a, b} y
V {a, b}. Cuando hay un empate, como en la figura 4(c), cualquier arista ms

Pgina 7 de 102
RBOLES GENERADORES MNIMOS

pequea podra funcionar bien. Se procede de esta forma hasta que se expanden
todos los vrtices. El rbol generador mnimo definitivo se muestra en la figura
4(h).

Figura 4: Ejecucin del algoritmo de Prim sobre el grafo de la figura 1

a b c a b c
4 3 4 3

2 2
d d
5 4 5 4
1 1 1 1
e f e f
2 1 2 2 1 2

g 1 h g 1 h

(a) Se aade (a, b) (b) Se aade (b, d)

a b c a b c
4 3 4 3

2 2
d d
5 4 5 4
1 1 1 1
e f e f
2 1 2 2 1 2

g 1 h g 1 h

(c) Se aade (d, e) (d) Se aade (d, f)

Pgina 8 de 102
RBOLES GENERADORES MNIMOS

a b c a b c
4 3 4 3

2 2
d d
5 4 5 4
1 1 1 1
e f e f
2 1 2 2 1 2

g 1 h g 1 h

(e) Se aade (f, h) (f) Se aade (g, h)

a b c a b c
4 3 4 3

2 2
d d
5 4
1 1 1 1
e f f
2 1 2 2

g 1 h g 1 h

(g) Se aade (b, c) (h) rbol generador mnimo

El algoritmo de Prim parece que pasa la mayor parte de su tiempo buscando la


arista ms pequea para crecer. Un mtodo ms directo para encontrar una arista
ms pequea consiste en buscar en las listas de adyacentes de los vrtices de V;
entonces cada iteracin cuesta un tiempo del orden O(m). Produciendo un tiempo
total de ejecucin del orden de O(mn). Utilizando pilas binarias, se puede mejorar
a un orden O(m log n). Utilizando pilas de Fibonacci, el algoritmo de Prim se
ejecuta en tiempo O(m + n log n).

2.4 ALGORITMO DE KRUSKAL

Se crea un bosque donde cada vrtice del grafo es inicialmente un rbol. Luego
se ordenan segn el peso todas las aristas del grafo. Para cada arista (u, v), se
realiza lo siguiente: Si el vrtice u y v pertenecen a dos rboles diferentes,
entonces se aade (u, v) al bosque, combinando los dos rboles en un nico
rbol. Se procede as hasta que todas las aristas hayan sido procesadas.

Pgina 9 de 102
RBOLES GENERADORES MNIMOS

Algoritmo: KRUSKAL

Entrada: Un grafo no dirigido y con peso G = (V, E, w)

Salida: Un rbol generador mnimo T.

Ordenar las aristas en E en orden no decreciente de pesos.

Crear un conjunto para cada vrtice.

Para cada arista (u, v) clasificado en orden hacer

x FIND(u)

y FIND(v)

Si x y entonces

T T {(u, v)}

UNION(x, y)

Ejemplo

La figura 5 ilustra la ejecucin del algoritmo de Kruskal sobre el grafo de la figura


1. Inicialmente, cada vrtice es un rbol del bosque. Las aristas clasificadas en
orden son: ((d, e), (g, h), (e, f), (d, f), (b, d), (e, g), (f, h), (b, c), (a, b), (c, h), (a, g)).
Como (d, e) une dos rboles distintos en el bosque, de ese modo se combinan los
dos rboles (Ver figura 5(a)). A continuacin se considera (g, h). El vrtice g y el
vrtice h pertenecen a dos rboles diferentes, por lo tanto se aade la arista (g, h)
al bosque como se muestra en la figura 5(b). En la figura 5(d), cuando se procesa
(d, f), ambos d y f pertenecen al mismo rbol, por lo tanto, no se hace nada con
esa arista. El mnimo rbol generador final se muestra en la figura 5(h).

Pgina 10 de 102
RBOLES GENERADORES MNIMOS

Figura 5: Ejecucin del algoritmo de Kruskal sobre el grafo de la figura 1

a b c a b c
4 3 4 3

2 2
d d
5 4 5 4
1 1 1 1
e f e f
2 1 2 2 1 2

g 1 h g 1 h

(a) Se aade (d, e) (b) Se aade (g, h)

a b c a b c
4 3 4 3

2 2
d d
5 4 5 4
1 1 1 1
e f e f
2 1 2 2 1 2

g 1 h g 1 h

(c) Se aade (e, f) (d) Se aade (b, d)

Pgina 11 de 102
RBOLES GENERADORES MNIMOS

a b c a b c
4 3 4 3

2 2
d d
5 4 5 4
1 1 1 1
e f e f
2 1 2 2 1 2

g 1 h g 1 h

(e) Se aade (e, g) (f) Se aade (b, c)

a b c a b c
4 3 4 3

2 2
d d
5 4
1 1 1
e f e f
2 1 2 2 1

g 1 h g 1 h

(g) Se aade (a, b) (h) Arbol generador mnimo

Ordenar las aristas en orden no decreciente se realiza en tiempo O(m log m). El
tiempo total de ejecucin para determinar si una arista junta dos rboles
diferentes en el bosque se realiza en tiempo O(m (m, n)), donde es la funcin
inversa de Ackermann. Por lo tanto, el tiempo de ejecucin asinttico del
algoritmo de Kruskals es O(m log m), el cual es el mismo que O(m log n) ya que
log m = (log n), a esta conclusin se llega observando que m= O(n2) y m= (n).

2.5 APLICACIONES

Los rboles generadores mnimos son tiles en la construccin de redes, para


describir la manera de conectar un conjunto de sitios utilizando la menor cantidad
total de cable. La mayor parte del trabajo de los rboles generadores mnimos ha
sido conducido por las compaas de comunicacin.

Pgina 12 de 102
RBOLES GENERADORES MNIMOS

2.5.1 Televisin por cable

Un ejemplo es una compaa de televisin por cable instalando cable a un nuevo


vecino. Si se est obligado a enterrar el cable solamente a lo largo de
determinados caminos, entonces habra un grafo que represente qu puntos se
conectan por esos caminos. Algunos de esos caminos podran ser ms caros
porque son ms largos o requiere que el cable se entierre a mayor profundidad.
Un rbol generador para esos grafos podra ser un subconjunto de esos caminos
que no tenga ciclos pero que conecte cada casa.

Habra varios rboles generadores posibles. Un rbol generador mnimo podra


ser uno con el mnimo coste total.

2.5.2 Diseo de circuitos

En el diseo de un circuito electrnico, a menudo es necesario para cablear


algunas clavijas juntas para hacerlas elctricamente equivalentes. Un rbol
generador mnimo necesita la menor cantidad de cable para interconectar un
conjunto de puntos.

2.5.3 Conexin de islas

Supongamos un grupo de islas que queremos conectar con puentes para que sea
posible viajar de una isla a cualquier otra del grupo. Ms all, supongamos que el
gobierno desea gastarse el mnimo dinero en este proyecto. Los ingenieros son
capaces de calcular el coste de un puente de conexin para cada par de islas
posibles. El conjunto de puentes que te permiten viajar de una isla a cualquier otra
con el mnimo coste para el gobierno es el rbol generador mnimo.

2.5.4 Agrupacin de Datos de Expresin Gentica

Los rboles generadores mnimos tambin proporcionan una manera razonable


de agrupar puntos en el espacio en grupos naturales. Por ejemplo, Ying Xu y sus
colaboradores describen un nuevo marco para representar un conjunto de genes
multi-dimensionales expresando los datos como un rbol generador mnimo. Una
propiedad clave de esta representacin es que la expresin de datos de cada
agrupacin de genes corresponde a un subrbol del MST, el cul rigurosamente
convierte un problema de agrupamiento multidimensional en un problema de
particin del rbol. Ellos han demostrado que aunque en las relaciones entre
datos estn muy simplificadas en la representacin MST, no se pierde informacin
esencial en el caso de agrupaciones. Observaron que hay dos ventajas claves en
la representacin de un conjunto multidimensional de datos sobre un MST. Uno
es que la estructura simple de rbol facilita eficientemente la implementacin con

Pgina 13 de 102
RBOLES GENERADORES MNIMOS

rigor de algoritmos de agrupacin, los cuales de otra manera exigen mucho


esfuerzo computacional. La otra es que pueden superar muchos de los problemas
con los que se enfrentan los algoritmos de agrupacin clsicos ya que un MST
basado en agrupaciones no depende del detalle de la forma geomtrica de la
agrupacin. Una nueva herramienta de software llamada EXCAVATOR
(Expresin data Clustering Analyse and Visualization Resource) se ha
desarrollado basndose en este nuevo marco. Los resultados del agrupamiento
sobre datos de expresin gentica (1) de levadura de cerveza (2) en la respuesta
de los fibroblastos humanos al suero (3) Arabidopsis en respuesta a la obtencin
de quitina es muy prometedor.

2.5.5 Aproximaciones Basadas en MST

La construccin del rbol generador mnimo (MST) de un grafo es el primer paso


para la obtencin de soluciones aproximadas a otros problemas. Un ejemplo es el
Problema del Viajante (TSP). El enunciado es: Dado G, grafo completo con pesos
en las aristas, se desea hallar un ciclo hamiltoniano, es decir que pase una vez
por cada vrtice, de peso mnimo. Este problema se clasifica como NP-Completo
incluso cuando la funcin de peso satisfaga la desigualdad triangular, por ejemplo,
para todos los vrtices x, y, z V, w(x, z) w(x, y) + w(y, z). La desigualdad
triangular se presenta en muchas situaciones prcticas. Se puede ver que la
estrategia siguiente ofrece un algoritmo aproximado con factor 2 de aproximacin
para el problema del vendedor viajante con la desigualdad triangular.
Primeramente, se encuentra un rbol generador mnimo T para el grafo dado.
Luego se dobla el MST y se construye un trayecto T. Finalmente, se aaden
atajos para que ningn vrtice sea visitado ms de una vez, lo cual se hace
recorriendo en rbol en preorden. El camino resultante tiene longitud de no ms
de dos veces el ptimo. Ms adelante se ver que las aproximaciones basadas en
MST proporcionan una buena aproximacin para los problemas de rboles de
Steiner.

Pgina 14 de 102
RBOL GENERADOR MXIMO (MaxST)

3 RBOL GENERADOR MXIMO (MaxST)

Para algunos problemas prcticos, es necesario considerar los rboles


generadores mximos: Si queremos determinar un rbol generador cuyo peso es
mximo entre todos los rboles generadores para una red (G, w) dada.
Evidentemente, un rbol generador T para (G, w) es mximo si y slo si T es
mnimo para para (G, -w). De ah que se pueda encontrar un rbol generador
mximo reemplazando w por w y utilizando uno de los algoritmos de Prim,
kruskal o Borvka. Alternativamente, se podra tambin quedarse con w y
solamente reemplazar mmino por mximo en los algoritmos de Prim, Kruskal o
Borvka. Para el algoritmo de Kruskal, se necesita ordenar las aristas en orden
decreciente de pesos.

3.1 Ejemplo de aplicacin del algoritmo de MaxST

Se considera el problema de enviar informacin confidencial a n personas. Se


define un grafo G con n vrtices correspondiente a n personas; dos vrtices i y j
son adyacentes si es posible enviar informacin directamente desde i a j. para
cada arista ij, sea pij la probabilidad de que la informacin enviada sea oda por
casualidad; supongamos que estas probabilidades son independientes para cada
uno. Ahora se sustituye qij = 1 pij, es decir, por la probabilidad de que la
informacin enviada no sea escuchada por casualidad. A fin de enviar informacin
a todas las n personas, se busca un subgrafo generador de G para el que la
produccin de los qij (sobre las aristas que inciden en el subgrafo) es mxima.
Reemplazando qij por w(ij) = log qij se reduce el problema a encontrar un rbol
generador de mximo peso.

3.2 Problema de la Fiabilidad de la Red

Se consideran los vrtices del ejemplo anterior como los nodos de una red de
comunicacin y sea interpretado pij como la probabilidad de que la conexin entre
i y j falle. Entonces un rbol generador mximo es un rbol en que maximiza la
probabilidad de que la comunicacin no sea interrumpida entre todos los nodos de
la red.

Pgina 15 de 102
RBOL GENERADOR MXIMO (MaxST)

3.3 Problema del Cuello de Botella

Sea (G, w) una red, donde G es un grafo conexo, y sea

e1 e2 en
W = V0 V1 V2 Vn ,

Un camino. Entonces c(W) = min {w(ei): i = 1, , n} se le llama capacidad del


camino W. Para cada par de vrtices (u, v) de G, se quiere determinar el camino
de u a v con mxima capacidad.

El siguiente teorema de Hu reduce el problema del cuello de botella a encontrar


un rbol generador mximo. As, los algoritmos de Prim, Kruskal y Borvka
modificados para encontrar el rbol generador mximo- se pueden utilizar para
resolver el problema del cuello de botella.

Teorema

Sea (G, w) una red sobre un grafo conexo G, y sea T un rbol generador mximo.
Entonces, para cada par (u, v) de vrtices, el nico camino desde u hacia v en T
es un camino de mxima capacidad en G.

Pgina 16 de 102
RBOLES DE CAMINO MNIMO

4 RBOLES DE CAMINO MNIMO

4.1 INTRODUCCIN

Dado un mapa de carreteras de un pas en el que se marca la distancia entre


cada par de intersecciones adyacentes, Cmo podra determinar un conductor la
distancia ms corta desde una ciudad determinada a otra ciudad determinada? La
forma de determinarlo mediante la fuerza bruta es generar todas las rutas
posibles desde la ciudad de origen a la ciudad destino y seleccionar la ms corta
entre ellas. Esta propuesta aparentemente genera demasiadas rutas que no
merecen la pena considerar. En este captulo se introducen algunos algoritmos
eficientes para encontrar todos los caminos mnimos desde un lugar de origen
determinado.

Se considera una red no dirigida y conexa con un nodo especial llamado origen o
raz. A cada arista se le asocia una distancia, un nmero no negativo. El objetivo
es encontrar el conjunto de aristas que conecten todos los nodos tal que la suma
de las longitudes de las aristas desde el origen a cada nodo es mnimo. Le
llamamos rbol de camino mnimo (SPT) que tiene como raz el origen.

Para minimizar las longitudes totales de los caminos, el camino desde la raz a
cada nodo debe ser el camino de conexin mnimo. De otra manera, se sustituye
tal camino por el camino mnimo y se consigue un rbol generador menos
pesado cuyas longitudes totales del camino desde la raz a todos los nodos son
ms pequeas. MST no siempre es un rbol de caminos mnimos.

Los rboles de caminos mnimos no son necesariamente nicos. La figura 1


muestra dos rboles de camino mnimo con origen el vrtice a para el grafo de la
figura 0. La figura 1(a) va desde a a g, y luego desde g a e. En la figura 1(b), se va
desde a a b, desde b a d, y desde d a e. Todos estos caminos son de longitud 7,
que es la longitud del camino mnimo de a a e. Ntese que el peso total de las
aristas de los dos rboles de camino mnimo puede que no sea la misma. Por
ejemplo, el peso total de las aristas del rbol de camino mnimo en la figura 1(a)
es 18, mientras que el rbol de caminos mnimos en la figura 1(b) es 17. (El peso
total de las aristas del rbol generador mnimo es 14).

Siempre y cuando todos los pesos de las aristas sean no negativos, el rbol de
camino mnimo est bien definido. Desafortunadamente, las cosas se complican
cuando se tienen aristas con pesos negativos. Para un grafo no dirigido, un
camino se vuelve mnimo cuando repetidamente se aade una arista con peso
negativo a l. En esta situacin, un camino mnimo que contiene una arista con
peso negativo no est bien definido ya que siempre se puede encontrar un
camino con menor peso yendo hacia atrs y as sucesivamente sobre aristas de
peso negativo. Se considera la arista de la figura 2. En este grafo, la arista (d, e)
tiene peso negativo. Como en un grafo no dirigido una arista puede ser
atravesado en ambos sentidos, un camino que repetidamente utiliza (d, e)
reducir su longitud. Sin embargo, para un grafo dirigido, siempre y cuando no
existan ciclos con peso negativo que se puedan alcanzar desde la raz, los pesos
del camino mnimo estn bien definidos. As, cuando se habla sobre tpicos
relacionados con caminos mnimos, habitualmente se centran en resolver

Pgina 17 de 102
RBOLES DE CAMINO MNIMO

problemas sobre grafos dirigidos. Sin embargo, la mayor parte de los algoritmos
pueden ser fcilmente adaptados a grafos no dirigidos.

A continuacin se describen algoritmos para construir rboles de caminos


mnimos. El algoritmo de Dijkstra asume que todos los pesos del grafo son no
negativos. Sin embargo, el algoritmo de Bellman-Ford permite pesos negativos en
las aristas del grafo. Si no hay ciclo con pesos negativos, el algoritmo de Bellman-
Ford genera el camino mnimo y sus pesos. De lo contrario, el algoritmo detecta
ciclos negativos e indica que no existe solucin.

Figura 0: Ejemplo de grafo no dirigido y con pesos

a 4 b 3 c

2
d
5 4
1 1
e f
2 1 2

g 1 h

Figura 1: rboles de caminos mnimos con raz en el vrtice a para el grafo de la


figura 0.

a b c a b c
4 3 4 3

2 2
d d
5 4 5 4
1 1 1 1
e f e f
2 1 2 2 1 2

g 1 h g 1 h

(a) (b)

Pgina 18 de 102
RBOLES DE CAMINO MNIMO

Figura 2: Grafo no dirigido con una arista con peso negativo.

a 4 b 3 c

2
d
5 4
-1 1
e f
2 1 2

g 1 h

4.2 ALGORITMO DE DIJKSTRA

El algoritmo de Dijkstra resuelve el problema de encontrar el camino mnimo


desde un origen a un destino. Resulta que uno puede encontrar el camino mnimo
desde un origen dado a todos los vrtices de un grafo al mismo tiempo; de ah,
este problema a veces se llama el problema del camino mnimo con un origen
nico. De hecho, este algoritmo se puede utilizar para entregar el conjunto de
aristas que conectan todos los vrtices tal que la suma de las longitudes de las
aristas desde el origen hasta cada nodo sea mnimo.

Para cada vrtice v V, el algoritmo de Dijkstra mantiene un atributo [v], el cual


es un lmite superior del peso del camino mnimo desde el origen a v. Se llama
[v] al camino mnimo estimado. Inicialmente, el camino mnimo estimado de todos
los vrtices restantes al vrtice origen se fija a . El algoritmo de Dijkstra tambin
mantiene el conjunto S de vrtices cuyos pesos del camino mnimo definitivo
desde el origen todava no se ha determinado. El algoritmo selecciona
repetidamente el vrtice u S con el mnimo camino mnimo estimado y reevala
el camino mnimo estimado de los vrtices adyacentes a u. La reevaluacin es a
menudo referida a un paso de generacin. Una vez que el vrtice se elimina de S,
se determina el peso del camino mnimo desde el origen y el algoritmo termina.

Algoritmo: DIJKSTRA

Entrada: Un grafo dirigido y con peso G = (V, E, w); Un vrtice origen s.

Salida: Un rbol generador T con el camino mnimo con raz s.

Pgina 19 de 102
RBOLES DE CAMINO MNIMO

Para cada vrtice v V hacer

[v]

[v] NIL

[s] 0

SV

Mientras S hacer

Elegir u S con el mnimo [u]

S S - {u}

Si u s entonces T T {( [u], u)}

Para cada vrtice v adyacente a u hacer

Si [v] > [u] + w(u, v) entonces

[v] [u] + w(u, v)

[v] u

Ejemplo:

Figura 3: Grafo dirigido y con pesos

a b c
4 3

1
d
5 4
1 1
e f
2 1
2

g 1 h

Pgina 20 de 102
RBOLES DE CAMINO MNIMO

Figura 4: Se elige el vrtice a, y las aristas (a, b) y (a, g) se expanden.

a b c
4 3
0 4

1
d
5 4
1 1
e f
2
2 1
5
1
g h

Figura 5: Se elige el vrtice b, y las aristas (b, c) y (b, d) se expanden. La arista


(a, b) se aade al rbol de camino mnimo.

a b c
4 3
4 7

1
d
5 5 4
1 1
e f
2
2 1
5
g 1
h

Pgina 21 de 102
RBOLES DE CAMINO MNIMO

Figura 6: Se elige el vrtice g, y las aristas (g, e) y (g, h) se expanden. La arista


(a, g) se aade al rbol de camino mnimo.

a b c
4 3
7

1
d
5 5 4
1 1
e f
7 2
2 1
5
1
g h

Figura 7: Se elige el vrtice d, y la arista (d, e) se expande. La arista (b, d) se


aade al rbol de camino mnimo.

a b c
4 3
7

1
d
5 5 4
1 1
e f
6 2
2 1
5 6
1
g h

Pgina 22 de 102
RBOLES DE CAMINO MNIMO

Figura 8: Se elige el vrtice h. La arista (g, h) se aade al rbol de camino


mnimo.

a b c
4 3
7

1
d
5 4
1 1
e f
6 2
2 1
5 6
g 1
h

Figura 9: Se elige el vrtice e, y la arista (e, f) se expande. La arista (d, e) se


aade al rbol de camino mnimo.

a b c
4 3
7

1
d
5 4
1 1
e f
6 7 2
2 1
5
g 1 h

Pgina 23 de 102
RBOLES DE CAMINO MNIMO

Figura 10: Se elige el vrtice c, y la arista (c, h) se expande. La arista (b, h) se


aade al rbol de camino mnimo.

a b c
4 3
7

1
d
5 4
1 1
e f
7
2
2 1
5
g 1 h

Figura 11: Se elige el vrtice f, y las aristas (f, d) y (f, d) se expanden. La arista
(e, f) se aade al rbol de camino mnimo.

a b c
4 3

1
d
5 4
1 1
e f
7 2
2 1
5
1
g h

Pgina 24 de 102
RBOLES DE CAMINO MNIMO

Figura 12: Arbol de camino mnimo construido mediante el algoritmo de Dijkstra


para el grafo de la figura 3.

a b c
4 3

1
d
5
1
e f
1

g 1 h

Figura 13: Grafo dirigido, con pesos y con una arista con peso negativo

a b c
2 2

1
d
5 4
1 1
e f
1
-3 2

g 1 h

Pgina 25 de 102
RBOLES DE CAMINO MNIMO

Figura 14: Fallo con el algoritmo de Dijkstra.

a b c
2 2

1
d
5 4
1 1
e f
5 2
-3 1
5 6
1

Figura 15: rbol de camino mnimo errneo.

a b c
2 2

1
d
5
1
e f
1

g 1 h

Pgina 26 de 102
RBOLES DE CAMINO MNIMO

Figura 16: rbol de camino mnimo correcto.

a b c
2 2

1
d
5

e f
1
-3 2

g h

Se considera el grafo de la figura 3. La siguiente figura ilustra como funciona el


algoritmo de Dijkstra al construir el rbol de camino mnimo con raz en el vrtice
a. Inicialmente, todos los valores [.] son , excepto [a] = 0. El conjunto S
contiene todos los vrtices del grafo. El vrtice a, que se muestra como vrtice
sombreado en la figura 4, tiene el mnimo valor y se elige como vrtice u en el
bucle while. Se elimina a de S. Entonces las aristas (a, b) y (a, g), que se
muestran con lneas de puntos, se expanden.

En la figura 5, el vrtice sombreado b tiene el mnimo valor entre todos los


vrtices de S y se elige como vrtice u en el bucle while. Se elimina b de S. La
arista en negro (a, b) se aade al rbol de camino mnimo que se est
construyendo, y las aristas (b, c) y (b, d) se expanden.

Ambos vrtices d y g en la figura 6 tienen el mnimo valor entre todos los


vrtices de S. Se elige g como vrtice u en el bucle while. Se elimina g de S. La
arista en negro (a, g) se aade al rbol de camino mnimo, y las aristas con lneas
discontinuas (g, e) y (g, h) se expanden.

Dado que el vrtice d en la figura 7 tiene un valor mnimo entre todos los
vrtices de S, se elige el vrtice u en el bucle while. Se elimina d de S. La arista
en negro (b, d) se aade al rbol de camino mnimo, y la arista (d, e) con lneas
discontinuas se expande.

Ambos vrtices e y h en la figura 8 tienen el mnimo valor entre todos los


vrtices de S. Ahora se elige h como vrtice u en el bucle while. Se elimina h de
S. La arista en negro (g, h) se aade al rbol de camino mnimo. Ninguna arista
se expande.

Ahora el vrtice e en la figura 9 tiene el mnimo valor entre todos los vrtices de
S. Se elige u como vrtice en el bucle while. Se elimina e de S. La arista en negro
(d, e) se aade al rbol de camino mnimo que se est construyendo y la arista de
lneas discontinuas (e, f) se expande.

Pgina 27 de 102
RBOLES DE CAMINO MNIMO

Ambos vrtices c y f en la figura 10 tienen el mnimo valor entre todos los


vrtices de S. Se elige c como vrtice u en el bucle while. Se elimina c de S. La
arista en negro (b, c) se aade al rbol de camino mnimo y la arista de lneas
discontinuas (c, h) se expande.

Ahora el vrtice f es el nico vrtice en S (figura 11), y se elige como vrtice u en


el bucle while. Se elimina f de S. La arista en negro (e, f) se aade al rbol de
camino mnimo, y las aristas (f, d) y (f, h) con lneas discontinuas se expanden.

En la figura 12 se muestra el rbol de camino mnimo construido mediante el


algoritmo de Dijkstra.

Se puede observar en el ejemplo anterior que una vez que el vrtice se elimina de
S, su valor permanece invariable. Esto es cierto siempre y cuando todos los
pesos de las aristas sean no negativos. El fundamento detrs de esto es muy
directo porque siempre se elige el vrtice en S con el mnimo valor . Sin
embargo, esto puede no mantenerse en grafos dirigidos con pesos negativos
entre aristas.

El algoritmo de Dijkstra selecciona el vrtice u S con el mnimo camino mnimo


estimado y reevala el camino mnimo estimado para todos los vrtices
adyacentes a u. En el caso peor, la complejidad mediante el algoritmo de Dijkstra
depende de la manera de encontrar el nodo con el mnimo camino mnimo
estimado. Una implementacin sencilla que examina todos los nodos de S para
encontrar la mnima ejecucin en tiempo O(n2). Una modificacin del algoritmo de
Dijkstra, donde el mnimo se puede encontrar usando pilas binarias con tiempo
O(log n), por lo que el tiempo de la ejecucin total es del orden de O(m log n).
Usando pilas de Fibonacci, se puede conseguir un tiempo de ejecucin del orden
de O(m + n log n).

La figura 13 muestra un ejemplo de un grafo no dirigido con aristas con peso


negativo que para el que el algoritmo de Dijkstra produce una respuesta
incorrecta.

Al aplicar el algoritmo de Dijkstra al grafo de la figura 13, se alcanzar el estado


que se muestra en la figura 14. Dado que la arista (g, e) es de peso negativo -3, el
peso del camino (a, g, e) es 5 - 3 = 2. El cual es mejor que el peso del camino
mnimo final (a, b, d, e), que es de peso total 4. Adems, la arista (e, f) se ha
expandido. No hay manera mediante el algoritmo de Dijkstra de volver a expandir
todas las aristas afectados por un efecto domin.

El grafo del la figura 15 muestra el rbol de camino mnimo errneo que se ha


obtenido mediante el algoritmo de Dijkstra. Ntese que (g, e) es de peso negativo,
y est ausente en el rbol de camino mnimo construido mediante el algoritmo de
Dijkstra.

El rbol de camino mnimo correcto se muestra en la figura 16.

Pgina 28 de 102
RBOLES DE CAMINO MNIMO

4.3 ALGORITMO DE BELLMAN-FORD

Los algoritmos de caminos mnimos aprovechan generalmente la propiedad de


que un camino mnimo entre dos vrtices contiene otros caminos mnimos dentro
de l. Esta propiedad de subestructura ptima admite ambas; la programacin
dinmica y el mtodo voraz. Se ha visto que el algoritmo de Dijkstra puede fallar
cuando se calcula el rbol de caminos mnimos cuando el grafo tiene alguna
arista con peso negativo. El algoritmo de Bellman-Ford funciona de una forma
ms general que el algoritmo de Dijkstra: resuelve el problema del rbol de
camino mnimo incluso cuando el grafo tiene aristas negativos. Si hay un ciclo con
pesos negativos, el algoritmo indica que no existe solucin.

Recalcar que el algoritmo de Dijkstra nicamente extiende aquellas aristas que


inciden en los vrtices elegidos con el mnimo camino estimado. El fallo del
algoritmo de Dijkstra para grafos con aristas con pesos negativos se debe al
hecho de que no se calcula el efecto domin causado por aristas negativas. Si se
revisa la figura 14 otra vez, y se promocionara el efecto de la arista negativa hacia
delante, se podra haber construido un rbol de camino mnimo correcto. Esto
sirve de ejemplo al diseo del algoritmo de Bellman-Ford el cual expande todas
las aristas en cada iteracin.

Inicialmente, el camino mnimo estimado del resto de vrtices excepto el origen se


asignan . Luego el algoritmo realiza n-1 pasadas sobre todas las aristas del
grafo. En cada pasada, si [v] > [u] + w(u, v), entonces se asigna a el valor de
[v] a [u] + w(u, v) y se modifica el predecesor del vrtice v. Una importante
caracterstica del algoritmo de Bellman-Ford es que en la iteracin kesima, el
camino mnimo estimado para el vrtice v, por ejemplo, [v], es igual a la longitud
del camino mnimo desde el origen a v con k aristas como mximo. Si despus de
n -1 pasadas, existe una arista (u, v) tal que [v] > [u] + w(u, v), entonces se ha
detectado un ciclo negativo. De otra forma, para todos los restantes vrtices
excepto el origen, se construye el rbol de camino mnimo aadiendo las aristas a
partir de su predecesor a ellos.

Pgina 29 de 102
RBOLES DE CAMINO MNIMO

Algoritmo: BELLMAN-FORD

Entrada: Un grafo dirigido y con peso G = (V, E, w); Un vrtice origen s.

Salida: Un rbol generador T con el camino mnimo con raz s.

Para cada vrtice v V hacer

[v]

[v] NIL

[s] 0

Para i 0 hasta n 1 hacer

Para cada (u, v) E hacer

Si [v] > [u] + w(u, v) entonces

[v] [u] + w(u, v)

[v] u

Para cada (u, v) E hacer

Si [v] > [u] + w(u, v) entonces

Output Existe un ciclo negativo

Exit

Para cada v V s hacer

T T {( [v], v)}

El algoritmo de Bellman-Ford se ejecuta en tiempo O(m n) ya que hay O(n)


iteraciones, y cada iteracin se realiza en tiempo O(m). La correccin obedece al
hecho de que en la iteracin kesima, el camino mnimo estimado para cada vrtice
es igual a la longitud del camino mnimo desde el origen a ese vrtice con k
aristas como mximo. Ya que un camino simple en G contiene al menos n-1
aristas, el camino mnimo estimado se estabiliza despus de n-1 iteraciones a
menos que exista un ciclo negativo en el grafo.

Pgina 30 de 102
RBOLES DE CAMINO MNIMO

Las siguientes figuras muestran como funciona la ejecucin del algoritmo de


BELLMAN-FORD. En la figura 13, las aristas con lneas oscuras registran que
aquellos que causan algn efecto en la generacin. Inicialmente, [a] = 0. En la
figura 17, la generacin de la arista (a, b) cambia [b] de a 2; y la generacin
de la arista (a, g) cambia [g] de a 5. El camino mnimo estimado [a], [b] y
[g] estn finalizados. El camino mnimo estimado [c], [d], [e], [f] y [h] son
todava ya que sus correspondientes vrtices no pueden ser alcanzados desde
el vrtice a por un camino con slo una arista.

En la figura 18, la generacin de la arista (b, c) cambia [c] de a 4; la


generacin de la arista (b, d) cambia [d] de a 3; la generacin de la arista (g,
e) cambia [e] de a 2; y la generacin de la arista (g, h) cambia [h] de a 6.
Hasta esta etapa, el camino mnimo estimado [a], [b], [c], [d], [e] y [g]
estn finalizados. El camino mnimo estimado [f] es todava ya que el vrtice f
no puede ser alcanzado desde el vrtice a por un camino con al menos dos
aristas, y el camino mnimo estimado [h] ser modificado posteriormente.

En la figura 19, la generacin de la arista (e, f) cambia [f] de a 3.

En la figura 20, la generacin de la arista (f, h) cambia [h] de 6 a 5.

La figura 21 muestra el rbol final de camino mnimo construido mediante la


aplicacin del algoritmo de Bellman-Ford.

Ejemplo:

Figura 17: Los caminos mnimos estimados [b] y [g] se modifican.

a b c
2 2
0 2

1
d
5 4
1 1
e f

-3 1 2
5
1
g h

Pgina 31 de 102
RBOLES DE CAMINO MNIMO

Figura 18: Los caminos mnimos estimados [c], [d], [e] y [h] se modifican.

a b c
2 2
0 2 4

1
d
5 3 4
1 1
e f
2
-3 1 2
5 6
g 1 h

Figura 19: El camino mnimo estimado [f] se modifica.

a b c
2 2
0 2 4

1
d
5 3 4
1 1
e f
2 3
-3 1 2
5 6
g 1 h

Pgina 32 de 102
RBOLES DE CAMINO MNIMO

Figura 20: El camino mnimo estimado [h] se modifica.

a b c
2 2
0 2 4

1
d
5 3 4
1 1
e f
2 3
-3 1 2
5 5
g 1 h

Figura 21: rbol de camino mnimo construido mediante el algoritmo de Bellman-


Ford.

a b c
2 2
0 2 4

1
d
5 3 4
1 1
e f
2 3
-3 1 2
5 5
g 1 h

Pgina 33 de 102
RBOLES DE CAMINO MNIMO

4.4 ALGORITMO DE WARSHALL-FLOYD

El algoritmo de Floyd-Warshall compara todos los posibles caminos a travs grafo


entre cada par de vrtices. Se permiten aristas con pesos negativos y se supone
que no hay ciclos de peso negativo para poder aplicar el aplicar este algoritmo.

El algoritmo es capaz de hacer esto con slo V3 comparaciones (esto es notable


considerando que puede haber hasta V2 aristas en el grafo, y que cada
combinacin de aristas se prueba). Lo hace mejorando paulatinamente una
estimacin del camino mnimo entre dos vrtices, hasta que se sabe que la
estimacin es ptima.

Sea un grafo G con conjunto de vrtices V, numerados de 1 a N. Sea adems una


funcin caminoMinimo(i,j,k) que devuelve el camino mnimo de i a j usando
nicamente los vrtices de 1 a k como puntos intermedios en el camino. Ahora,
dada esta funcin, nuestro objetivo es encontrar el camino mnimo desde cada i a
cada j usando nicamente los vrtices de 1 hasta k + 1.

Hay dos candidatos para este camino: un camino mnimo, que utiliza nicamente
los vrtices del conjunto (1...k); o bien existe un camino que va desde i hasta k +
1, despus de k + 1 hasta j que es mejor. Sabemos que el camino ptimo de i a j
que nicamente utiliza los vrtices de 1 hasta k est definido por
caminoMinimo(i,j,k), y est claro que si hubiera un camino mejor de i a k + 1 a j, la
longitud de este camino sera la concatenacin del camino mnimo de i a k + 1
(utilizando vrtices de (1...k)) y el camino mnimo de k + 1 a j (que tambin utiliza
los vrtices en (1...k)).

Por lo tanto, podemos definir caminoMinimo(i,j,k) de forma recursiva:

caminoMinimo(i, j, k) = min(caminoMinimo(i, j, k-1),

caminoMinimo(i, k, k-1) + caminoMinimo(k, j, k-1));

caminoMinimo(i, j, 0) = pesoArista(i, j);

Esta frmula es la base del algoritmo Floyd-Warshall. Funciona ejecutando


primero caminoMinimo(i,j,1) para todos los pares (i,j), usndolos para despus
hallar caminoMinimo(i,j,2) para todos los pares (i,j)... Este proceso contina hasta
que k = n, y habremos encontrado el camino mnimo para todos los pares de
vrtices (i,j) usando algn vrtice intermedio.

Pgina 34 de 102
RBOLES DE CAMINO MNIMO

Algoritmo Warshall Floyd

Convenientemente, cuando calculamos el k-esimo caso, se puede sobrescribir la


informacin salvada en la computacin k -1. Esto significa que el algoritmo usa
memoria cuadrtica. Hay que cuidar la inicializacin de las condiciones:

/* Suponemos que la funcin pesoArista devuelve el coste del camino que va de i


a j (infinito si no existe).

Tambin suponemos que n es el nmero de vrtices y pesoArista(i,i) = 0 */

int camino[ ][ ];

/* Una matriz bidimensional. En cada paso del algoritmo, camino[i][j] es el camino


mnimo de i hasta j usando valores intermedios de (1k-1). Cada camino[i][j] es
inicializado a pesoArista(i,j) */

procedimiento FloydWarshall ()

para k: = 0 hasta n 1

para todo (i,j) en (0...n 1)

camino[i][j] = mn ( camino[i][j], camino[i][k]+camino[k][j]);

Comportamiento con Ciclos Negativos

Para que haya coherencia numrica, Floyd-Warshall supone que no hay ciclos
negativos (de hecho, entre cualquier pareja de vrtices que forme parte de un
ciclo negativo, el camino mnimo no est bien definido porque el camino puede
ser infinitamente pequeo). No obstante, si hay ciclos negativos, Floyd-Warshall
puede ser usado para detectarlos. Si ejecutamos el algoritmo una vez ms,
algunos caminos pueden decrementarse pero no garantiza que, entre todos los
vrtices, caminos entre los cuales puedan ser infinitamente pequeos, el camino
se reduzca. Si los nmeros de la diagonal de la matriz de caminos son negativos,
es condicin necesaria y suficiente para que este vrtice pertenezca a un ciclo
negativo.

Pgina 35 de 102
RBOLES DE CAMINO MNIMO

4.5 APLICACIONES

El problema del rbol de caminos mnimos aparece en la prctica y se presenta


como un subproblema en muchos algoritmos de optimizacin de redes. El rbol
de camino mnimo se utiliza mucho en multidifusin de IP y en algunas de las
aplicaciones a nivel de multidifusin para algoritmos de ruteo.

4.5.1 Multidifusin

La multidifusin es uno de los mecanismos por el que el poder de Internet puede


ser ms utilizado de una manera eficiente. Cuando ms de un receptor est
interesado en recibir una transmisin desde un remitente o un conjunto de
remitentes, la multidifusin es el mecanismo ms eficiente y viable.

El ruteo de la multidifusin se refiere a la construccin de un rbol con raz en el


origen y que se extiende a todos los destinatarios. Generalmente, hay dos tipo de
rboles; rboles de Steiner y rboles de caminos mnimos. Los rboles de Steiner
o rboles de grupos compartidos, tienden a minimizar el coste total del rbol
resultante. Los rboles de caminos mnimos o rboles basados en el origen
tienden a minimizar el coste de cada camino desde el origen a cualquier destino.

A continuacin, se describe brevemente los dos protocolos muy conocidos de


ruteo: Protocolo de Ruteo de Informacin y Primer Camino mnimo Abierto
(OSPF).

RIP es un protocolo de vector de distancias que permite el ruteo para intercambiar


informacin sobre destinos para rutas de computacin a travs de la red. Los
destinos pueden ser redes o un destino especial utilizado para convertir a una ruta
por defecto. En RIP, los algoritmos de Bellman-Ford hacen que cada router
peridicamente realice un broadcast de sus tablas de ruteo a todos sus vecinos.
Por lo tanto, el router conoce las tablas de sus vecinos y decide a qu vecino
destino remite un paquete.

OSPF es un protocolo de ruteo desarrollado por el Protocolo de Internet (IP) para


redes. OSPF se cre porque a mediados de los 80, RIP fue cada vez ms incapaz
de servir a las extensas y heterogneas redes de Internet. Como la mayor parte
de los algoritmos que unen estados, OSPF utiliza un modelo de grafo terico de
red topolgica para calcular los caminos mnimos. Cada router peridicamente
publica informacin acerca del estado de sus conexiones. OSPF propaga
informacin sobre las adyacencias a todos los routers de la red donde cada router
localmente calcula los caminos mnimos por el algoritmo de Dijkstra.

Pgina 36 de 102
RBOLES DE CAMINO MNIMO

4.5.2 Aproximaciones Basadas en SPT

Adems de las aplicaciones a problemas de ruteo en redes, los algoritmos de


rboles de caminos mnimos podran tambin servir como una buena
aproximacin para algunos problemas NP-Completos. Por ejemplo, para rboles
de caminos mnimos con raz en algn vrtice es una 2-aproximacin para el
problema del rbol generador con coste mnimo de ruteo (MRCT), el cual es un
problema NP-Completo.

Pgina 37 de 102
PROBLEMAS DE RBOLES GENERADORES NP-COMPLETOS

5 PROBLEMAS DE RBOLES GENERADORES NP-COMPLETOS

5.1 RBOL MNIMO K-GENERADOR

Datos iniciales. Un grafo G = (V, E)., un entero k n, y una funcin de peso w: E


N.

Objetivo. Encontrar un rbol k-generador mnimo T G con al menos k nodos. T


debe tener el mnimo peso del rbol: eT w(e) .

Resultados. Se ha obtenido una 3-aproximacin. Es un problema APX-completo


(Existe una r-aproximacin en tiempo polinomial siendo r una constante r 1).

5.2 MINIMUM DEGREE SPANNING TREE

Datos iniciales. Un grafo G = (V, E).

Objetivo. Encontrar un rbol generador para G con el mnimo grado.

Complejidad. Existe una aproximacin con un error absoluto garantizado de 1. Sin


embargo no es aproximable dentro de (3/2)- para cualquier > 0 .

5.3 ARBOL GENERADOR MNIMO GEOMTRICO DE GRADO 3

Datos iniciales. Un conjunto P Z x Z de puntos en el plano.

Objetivo. Encontrar un rbol generador T para P en el que ningn vrtice tenga


grado mayor de 3. T debe minimizar el peso total, (u , v )T d (u , v) , donde d(u, v) es
la distancia Eucldea entre u y v.

Complejidad. Admite un PTAS.

5.4 RBOL GENERADOR DE MXIMAS HOJAS

Datos iniciales. Un grafo G = (V, E).

Objetivo. Un rbol generador para G con el mximo nmero de hojas.

Complejidad. Es un problema APX-completo pero existe una aproximacin de 3.

Pgina 38 de 102
PROBLEMAS DE RBOLES GENERADORES NP-COMPLETOS

5.5 RBOL K-GENERADOR DE MTRICA MXIMA Y MNIMA

Datos iniciales. Un grafo G = (V, E). La longitud l(e) N para cada e E satisface
la desigualdad triangular.

Objetivo. Encontrar un subconjunto V V tal que | V |= k . El coste del mnimo


rbol generador del subgrafo producido por V .

Complejidad. Es un problema APX-completo y no aproximable en 2 - para


cualquier > 0. Tiene un aproximacin de 4.

5.6 SUBGRAFO GENERADOR DE MNIMO DIMETRO

Datos iniciales. Un grafo G = (V, E), el peso W (e) Z + y la longitud l(e) N para
cada e E y un entero positivo B.

Objetivo. Encontrar un subgrafo generador E E tal que la suma de los pesos


de las aristas en E no excedan B y tenga el mnimo dimetro.

Complejidad. No existe una aproximacin en 2 - para cualquier > 0.

5.7 RBOL GENERADOR CON MNIMO COSTE DE COMUNICACIN

Datos iniciales. Un grafo G = (V, E), el peso W (e) N para cada e E y el


requisito r ({u , v}) N para cada par de vrtices de V.

Objetivo. Encontrar un rbol generador T que minimice la suma de los pesos del
camino entre cada par de vrtices, es decir, u ,vV W (u , v).r ({u , v}) donde W(u, v)
denota la suma de los pesos de las aristas en el camino que une u y v en T.

Complejidad. Aproximable en O (log 2 | V |) si la funcin de peso satisface la


desigualdad triangular.

Pgina 39 de 102
PROBLEMAS DE RBOLES GENERADORES NP-COMPLETOS

5.8 RBOL MNIMO DE STEINER

Datos iniciales. Un grafo G = (V, E), una mtrica dada por los pesos de las aristas
s: E N y un subconjunto S V de vrtices.

Objetivo. Encontrar un rbol de Steiner, es decir, un subrbol de G que incluye


todos los vrtices de S y minimiza la suma de los pesos de las aristas en el
subrbol.

Complejidad. Es un problema APX-Completo. Existe una aproximacin en 1+


(ln3)/2 = 1,55.

Este problema se estudia con mayor profundidad en el captulo 7.

5.9 RBOL DE STEINER GEOMTRICO MNIMO

Datos iniciales. Un conjunto P Z x Z de puntos en el plano.

Objetivo. Encontrar un conjunto finito de puntos de Steiner, por ejemplo, Q Z x


Z, que minimiza el peso total del mnimo rbol generador para el conjunto de
vrtices P U Q, donde el peso de la arista {(x1, y1), (x2, y2)} es la longitud Eucldea
discreta.

2
[ ( x1 x 2) + ( y1 y 2) ]
2

Complejidad. Admite un PTAS.

5.10 RED DE STEINER MNIMA GENERALIZADA

Datos iniciales. Un grafo G = (V, E), una funcin de peso w: E N, una funcin de
capacidad c: E N y una funcin de requisito r: V x V N.

Objetivo. Encontrar una red de Steiner sobre G que satisfaga todos los requisitos
y obedezca todas las capacidades, es decir, una funcin f: E N tal que para
cada arista e se cumple que f(e) c(e) y, para cualquier par de nodos i y j
disjuntos, el nmero de caminos de aristas disjuntas entre i y j es al menos r(i, j)
donde, para cada arista e estn disponibles f(e) copias de e.

La funcin de coste a minimizar es la del coste de la red: eE w(e) f (e) .

Pgina 40 de 102
PROBLEMAS DE RBOLES GENERADORES NP-COMPLETOS

Complejidad. Existe una aproximacin 2H(R), donde R es el mximo requisito y,


1
para cualquier n, H(n) = in=1 .
i

5.11 RBOL DE CONGESTIN DE MNIMO RUTEO (MRCT)

Datos iniciales. Un grafo G = (V, E), una funcin de peso w: E N.

Objetivo. Un rbol de ruteo T para G, es decir, un rbol T en el que cada vrtice


interno tiene grado 3 y las hojas se corresponden a los vrtices de G. El rbol T
debe minimizar la congestin, es decir, para cualquier arista e, de:

w(u , v)
( u ,v )E ,uS ,vS

donde S es uno de los dos componentes conexos obtenidos al borrar e de T.

Complejidad. No es APX-Completo, pero tiene una aproximacin log|V| .

Este problema se estudia con mayor profundidad en el captulo 7.

5.12 RBOL GENERADOR MXIMO MNIMO BORRANDO K ARISTAS

Datos iniciales. Un grafo G = (V, E), una funcin de peso w: E N.

Objetivo: Encontrar un subconjunto E E de k aristas y un rbol generador


mnimo T en el grafo (V , E E ) . La funcin de coste a optimizar es el peso de T.

Complejidad. Existe una aproximacin log k.

5.13 RBOL GENERADOR DE MNIMA MODIFICACIN

Datos iniciales. Un grafo G = (V, E), tres funciones de peso d2(e) d1(e) d0(e),
para cada e E, donde di(e) denota el peso de la arista e si i de sus puntos
finales se actualizan, el coste del vrtice actualizado c(v) para cada v E, un
valor umbral D para el peso de un rbol generador mnimo.

Pgina 41 de 102
PROBLEMAS DE RBOLES GENERADORES NP-COMPLETOS

Objetivo: Una conjunto actualizado W V de vrtices tales que el peso de un


rbol generador mnimo en G con respecto a los pesos de la arista dado por dw
esta limitada por D. Aqu, dw denota la funcin de peso resultante de actualizar el
vrtice en W. Por ejemplo, dw(u, v) = di(u, v), donde |W I {u, v}| = i

Debe minimizar el coste de actualizar el conjunto, por ejemplo, c( w) = vW c(v) .

Complejidad. Al menos tan difcil de aproximar como el problema Conjunto


Dominado por el Mnimo.

Se aproxima a O(log|V|) si la diferencia del peso de la arista ms largo D0 =


max{d0(e) : e E} y el peso de la arista ms pequeo D2 = min{d2(e) : e E} se
encuentra acotado por un polinomio dependiente de |V|.

Pgina 42 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

6 RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

6.1 INTRODUCCIN

Se considera el siguiente problema en el diseo de redes: Dado un grafo no


dirigido con retardos no negativos sobre las aristas, el objetivo es encontrar un
rbol generador tal que el promedio de retardo de comunicacin entre cualquier
par de vrtices del rbol se minimice. El retardo entre un par de vrtices es la
suma de los retardos de las aristas en el camino entre ellos en el rbol. Minimizar
el retardo promedio es equivalente a minimizar el retardo total entre todos los
pares de vrtices usando el rbol.

En general, cuando el coste sobre una arista representa un precio para el ruteo de
mensajes entre sus puntos extremos, el coste de ruteo para un par de vrtices en
un rbol generador dado se define como la suma de los costes de las aristas en el
nico camino en el rbol entre ellos. El coste de ruteo del rbol es la suma de
todos los costes de ruteo de todos los pares de vrtices del rbol. Por ejemplo,
C(T) = u, v dT (u, v), donde dT (u, v) es la distancia entre u y v en T. Para un grafo
no dirigido, el coste de ruteo mnimo de un rbol generador (MRCT) es el que
tiene menor coste de ruteo entre todos los posibles rboles generadores.

En este captulo, se asume que G es un grafo simple y no dirigido y que los pesos
de las aristas son no negativos.

Encontrar un MRCT en un grafo no dirigido y aristas con pesos es un problema


NP-completo. Por lo que nos centraremos en algoritmos de aproximacin. Antes
de entrar en detalles, se introducir el trmino coste de ruteo el cual nos
proporciona una frmula alternativa para computar el coste de ruteo de un rbol.

DEFINICIN 1

Sea T un rbol y e E(T). Se asume que X e Y son los dos subgrafos que
resultan de eliminar e de T. El coste de ruteo sobre la arista e se define como:

l(T, e) = 2 |V(X)| |V(Y)|.

Para cualquier arista e E(T), sean x e y (x y) los nmeros de vrtices en los


dos subrboles que resultan de eliminar e. El coste de ruteo sobre e es 2xy = 2x
(|V(T)| - x). Ntese que x n/2, y que el coste de ruteo incrementa cuando x
aumenta. La siguiente propiedad se puede fcilmente deducir a partir de esta
definicin.

Pgina 43 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

PROPIEDAD 1:

Para cualquier arista e E(T), si el nmero de vrtices a ambos lados de e son al


menos |V(T)|, el peso de la asignacin de la ruta sobre e es al menos 2(1-
)|V(T)|2. Adems, para cualquier arista del rbol T, el peso de la asignacin de
| V (T ) | 2
ruta est limitado superiormente por: .
2

Para un grafo G y u, v V(G), se utiliza SPG(u, v) para denotar el camino mnimo


entre u y v en G. En el caso de que G sea un rbol, SPG(u, v) denota el camino
simple y nico entre dos vrtices. Por definicin de peso de asignacin de ruta, se
tiene la siguiente frmula.

LEMA 1

Para un rbol T con aristas de longitud w, C(T) = eE(T) l(T, e) w(e). Adems, C(T)
se puede computar en tiempo O(n).

Ejemplo 1:

Figura 1: Ejemplo que ilustra los pesos de ruteo.

V1 10 V2

5
3 1

V3 V4 V5

Se considera el rbol T en la Figura 1. Las distancias entre los vrtices son las
siguientes:

dT (v1, v2) = 10 dT (v1, v3) = 5 dT (v1, v4) = 13

dT (v1, v5) = 11 dT (v2, v3) = 15 dT (v2, v4) = 3

d T (v2, v5) = 1 dT (v3, v4) = 18 dT (v3, v5) = 16

dT (v4, v5) = 4

Pgina 44 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

El coste de la ruta de T es dos veces la suma de las distancias anteriores, ya que


para vi y vj, ambas dT (vi, vj) y dT (vj, vi) se han de contabilizar en el coste. Por
tanto, se tiene que C(T) = 192.

Por otro lado, el peso de la asignacin de ruta de la arista (v1, v2) se calcula de la
siguiente manera:

l(T, (v1, v2)) = 2 x 2 x 3 = 12

Ya que hay dos y tres vrtices a ambos lados de la arista, respectivamente.

Similarmente, el peso de la asignacin de ruta de las otras aristas son los


siguientes:

l(T, (v1, v3)) = 8 l(T, (v2, v4)) = 8 l(T, (v2, v5)) = 8

Por tanto, por el lema 1, se tiene:

C(T) = 12 x 10 + 8 x 5 + 8 x 3 + 8 x 1 = 192.

A primera vista, la definicin C(T) = u , v d T (u , v) , uno puede pensar que los pesos
de las aristas del rbol es lo ms importante del coste de la asignacin de ruta en
un rbol. Por otro lado, por el lema 1, se puede ver que el peso de asignacin de
ruta tambin desempea un papel importante. El peso de la asignacin de ruta
est determinado por la topologa del rbol. Por tanto, la topologa es importante
para construir un rbol de coste de ruteo pequeo. El siguiente ejemplo ilustra el
impacto de la topologa considerando dos casos extremos.

Pgina 45 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Ejemplo 2

Figura 2: Dos rboles extremos que ilustran el impacto de la topologa.

V4
5 5
V1 V1 V2 V3 Vn-1 Vn
5 5
V3 1 1 1
5 5
Vn V2

T1 T2

Sea T1 una estrella (un rbol con slo un nodo interno) en el que cada arista tiene
peso 5, y sea T2 un camino en el que cada arista tiene peso 1 (Figura 2).
Supongamos que ambos rboles son rboles generadores de un grafo con n
vrtices. En el aspecto de peso de las aristas total, se puede ver que T2 es mejor
que T1. Computemos el coste de asignacin de ruta. Para T1, el peso de
asignacin de ruta de cada arista es 2(n-1) ya que cada arista es una hoja. Por
tanto, por el lema 1, C(T1) = 10(n-1)2.

Sea T2= (v1, v2,..., vn). Eliminando una arista (vi, vi+1) resultarn dos componentes
de i y n-i vrtices. Por tanto, el coste de asignacin de ruta es:

2(n-1), 2 2 (n-2),... ,2 i (n-i),, 2(n-1).

Por el lema 1:

n(n 1)(2n 1) n(n 1)(n + 1)


C(T2)= 2i(n i) = n2 (n-1)
1i n 1 3
=
3
.

Por tanto, T2 es mucho ms costoso que T1 cuando n es grande.

En las siguientes secciones, se discutir la complejidad y diferentes algoritmos de


aproximacin para el problema MRCT. Con MRCT(G) se denotar el coste
mnimo de un rbol generador sobre el grafo G. Se asume que G = (V, E, w) es un
grafo simple conexo y no dirigido.

Pgina 46 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

6.2 APROXIMACIN POR RBOL DE CAMINOS MNIMOS

UN ANLISIS SENCILLO

Ya que todas las aristas son de longitud no negativa, la distancia entre dos
vrtices no disminuye al eliminar aristas del grafo. Obviamente, dT (u, v) dG (u, v)
para cualquier rbol generador T de G. Se puede obtener un lmite inferior trivial
del coste de ruteo.

DEFINICIN DE C-APROXIMACIN

Un algoritmo aproximado para un problema de optimizacin es un algoritmo que


alcanza una solucin del problema pero que no garantiza la solucin ptima.
Cmo medir cunto nos acercamos a ella?

Si S* es la solucin ptima con coste c(S*), un algoritmo -aproximado es un


algoritmo que devuelve una solucin S tal que:

c(S) c(S*) (para un problema de minimizacin)

c(S*) c(S) (para un problema de maximizacin)

PROPIEDAD 2

C( T ) u,vV dG (u, v).

Sea r la mediana del grafo G = (V, E, w), es decir, el vrtice con mnima distancia
total a todos los vrtices. En otras palabras, r minimiza la funcin f(v) = uV dG (u,
v). Se puede demostrar que el rbol de camino mnimo con origen en r es una 2-
aproximacin de un MRCT.

TEOREMA 1

El rbol de camino mnimo con origen en la mediana de un grafo es una 2-


aproximacin de un MRCT del grafo.

Pgina 47 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Demostracin:

Sea r la mediana de un grafo G = (V, E, w) y sea Y cualquier rbol de caminos


mnimos que empieza en r. Ntese que la desigualdad del tringulo mantenida por
la distancia entre vrtices de cualquier grafo sin aristas de peso negativos. Por la
desigualdad triangular se tiene: dY (u,v) dY (u, r) + dY (v, r) para cualquier vrtice
u y v. En resumen, para todos los pares de vrtices se obtiene:

C(Y) = uv dY (u, v) n u dY (u, r) + n v dY (v, r) = 2n v dY (v, r).

Ya que r es la mediana, v dG (r, v) v dG (u, v) para cualquier vrtice u, por lo


tanto:

v dG (r, v) 1/n u, v dG (u, v)

En un rbol de caminos mnimos el camino desde la raz a cualquier vrtice es el


camino mnimo en el grafo original. Por tanto dY (r, v) = dG (r, v) para cada vrtice
v, y consecuentemente,

C(Y) 2n v dG (r, v) 2 u,v dG (u, v).

Por la propiedad 2, Y es una 2-aproximacin de un MRCT.

6.2.1 Algoritmo 2-Aproximacin basado en la mediana

La mediana de un grafo se puede encontrar fcilmente una vez que se conocen


las distancias entre todos los pares de vrtices. Por el teorema 1, se puede tener
un algoritmo con una 2-aproximacin y el tiempo de complejidad viene
determinado por encontrar las longitudes del camino mnimo entre todos los pares
del grafo de entrada.

COROLARIO 1

Un MRCT de un grafo puede ser aproximado con factor 2 de aproximacin en


tiempo O(n2 log n + mn).

El factor de aproximacin en el teorema 1 es rigurosa en el sentido de que existe


un caso extremo para la desigualdad asinttica. Se considera un grafo completo
con longitud unitaria sobre cada arista. Cualquier vrtice es una mediana del grafo
y el rbol de camino mnimo que empiece en la mediana es una estrella. El coste
de ruteo de la estrella se puede calcular mediante la siguiente frmula:

2(n-1)(n-2)+2(n-1) = 2(n-1)2.

Ya que la distancia total sobre el grafo es: n(n-1). El radio es: 2 (2/n).

Pgina 48 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Sin embargo, el anlisis del caso extremo no implica que el factor de


aproximacin no pueda ser mejorado. Slo significa que no se puede conseguir
un anlisis ms preciso mediante la comparacin con el lmite inferior trivial.

Se puede fcilmente verificar que, para el caso anterior, la estrella es adems una
solucin ptima. El problema es que podramos comparar la solucin aproximada
con la ptima, pero no con el lmite inferior trivial. Ahora introducimos otra prueba
del factor de aproximacin del rbol de camino mnimo. La tcnica de anlisis que
se utiliza se llama descomposicin de la solucin, la cual es ampliamente utilizada
en el diseo de algoritmos, especialmente para la aproximacin de algoritmos.

DESCOMPOSICION DE LA SOLUCION

Figura 3: Centroide de un rbol

r r1 r2

(a) (b)

Para disear un algoritmo de aproximacin para un problema de optimizacin,


primeramente se supone que X es una solucin ptima. Luego se descompone X
y se construye otra solucin factible Y. Para nuestro propsito, Y es diseada
para ser una buena aproximacin de X y pertenece a algn subconjunto
restringido de soluciones factibles, de la cual, la mejor solucin puede ser
encontrada eficientemente. El algoritmo es diseado para encontrar la solucin
ptima del problema restringido, y el factor de aproximacin se determina
utilizando Y. Y juega un papel solamente en el anlisis del factor de aproximacin,
pero no en el diseo del algoritmo. Ms adelante se indicar como disear el
algoritmo 2-aproximacin que utiliza este mtodo.

Para cualquier rbol, siempre se puede cortar por un nodo r tal que cada rama
contiene como mucho la mitad de los nodos. Tal nodo se le suele llamar el
centroide del rbol. Por ejemplo, en la figura 3(a), el vrtice r es un centroide del
rbol. El rbol tiene nueve vrtices. Eliminando r del rbol se obtienen tres
subrboles y cada subrbol no tiene ms que cuatro vrtices. Se puede
fcilmente verificar que r es el nico centroide del rbol de la figura 3(a). Sin
embargo, para el rbol 3(b), r1 y r2 son los centroides del rbol.

Pgina 49 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Suponiendo que r es el centroide de el MRCT T . Si se construye rbol de


caminos mnimos Y tomando como raz el centroide r, el coste de la ruta ser
como mucho dos veces el de T . Se puede demostrar fcilmente a continuacin.
Primeramente, si u y v son dos nodos en distintas ramas, d T (u,v) = d T (u,r) +
d T (v,r). Se considera la distancia total de todos los pares de nodos de T . Para
cualquier nodo v, ya que cada rama no contiene ms que la mitad de los nodos, el
trmino d T (u,r) se contar en la distancia total al menos n veces, n/2 veces desde
v al resto y n/2 veces del resto a v. Se tiene que C( T ) n v d T (v,r). Ya que
como en la prueba del teorema 1, C(Y) 2n v d G (v,r), por consiguiente C(Y) 2
C( T ). Se ha descompuesto la solucin ptima T y construido una 2-aproximacin
Y. Por supuesto, no es determinar el rbol Y ya que no se conoce el ptimo T .
Pero se tienen los siguientes resultados que se describen a continuacin.

LEMA 2

Existe un vrtice tal que cualquier rbol de camino mnimo que tenga como raz
ese vrtice es una 2-aproximacin del MRCT.

6.2.2 Algoritmo 2-Aproximacin basado en el centroide


Por el lema 2, se puede disear un algoritmo de 2-aproximacin que construye un
rbol de caminos mnimos con raz en cada vrtice y se elige el mejor de ellos.

Ya que hay solamente n vrtices y un rbol de caminos mnimos se puede


construir en tiempo O(n log n + m), el algoritmo se ejecuta en tiempo polinomial.
Por el lema 1, el coste de ruteo del rbol se puede ejecutar en tiempo O(n).
Consecuentemente, el algoritmo tiene una complejidad O(n2 log n + m n), el
mismo resultado que se indica en el Corolario 1.

6.3 APROXIMACIN POR UNA ESTRELLA GENERAL

SEPARADORES Y ESTRELLAS GENERALES

Un punto clave en la 2-aproximacin es la existencia del centroide, el cual permite


dividir un rbol en componentes suficientemente pequeos. Para generalizar la
idea, se va a definir el concepto de separador de un rbol.

DEFINICIN 2: SEPARADOR DE UN ARBOL.

Sea T un rbol generador de G y S un subgrafo conexo de T. Una rama de S es


un componente conexo del subgrafo que resulta de borrar S de T.

Pgina 50 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

DEFINICIN 3

Sea 1/2. Un subgrafo conexo S es un separator de T si |B| |V(T)|


para cada rama B de S.

Un separator S es mnimo si cualquier subgrafo estricto de S no es un -


separador de T.

Ejemplo 3:

Figura 4: Ejemplo de un separador mnimo de un rbol.

v4 v2 v1 v3 v4 v2 v1 v3

v5 v5

(a) (b)

v4 v2 v1 v3 v4 v2 v1

v5 v5

(c) (d)

Pgina 51 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Figura 5: separador y ramas de un rbol. La lnea en negrita es el separador S


y cada tringulo es una rama de S.

S
<= kn
i
B1

<= kn <= kn <= kn <= kn


<= kn
B3
B2

<= kn <= kn

El rbol de la figura 4(a) tiene 26 vrtices en el cual v1 es un centroide. El vrtice


v1 es un mnimo 1/2-separador. Como se muestra en la figura 4(b), cada rama
contiene no ms de 13 vrtices. Pero v1 o incluso la arista (v1 ,v2), no es 1/3-
separador porque existe un subrbol cuyo nmero de vrtices es nueve, que es
mayor que 26/3. El camino entre v2 y v3 es 1/3-separador mnimo (figura 4(c)), y el
subgrafo formado por v1 ,v2 , v3 ,v4 y v5 es 1/4-separador mnimo (figura 4(d)).

El separador se puede ver como una generalizacin del centroide de un rbol.


Obviamente un centroide es 1/2-separador el cual contiene solamente un nico
nodo.

Intuitivamente un separador es como un centro de ruteo del rbol. Empezando por


cualquier nodo, hay muchos nodos los cuales slo pueden ser alcanzados
despus de alcanzar el separador. Para dos vrtice i y j de diferentes
componentes separados por S, el camino entre ellos se puede dividir en tres
subcaminos: Desde i a S, un camino S y desde S a j. Ya que cada componente no
contiene ms de n vrtices, la distancia dT(i, S) se contar al menos 2(1- )n
veces ya que se computa el coste de ruteo de T. Para cada arista e de S, ya que
hay al menos n vrtices sobre cada lado de la arista, por el corolario 1, el coste
de ruteo sobre e es al menos 2 (1- )n2. Algunas anotaciones se exponen a
continuacin y se ilustra en la figura 5.

Pgina 52 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

DEFINICIN 4

Sea T un rbol generador de G y S un subgrafo conexo de T. Sea u un vrtice en


S. El conjunto de ramas de S conectada a u mediante una arista de T se denota
mediante brn(T, S, u), mientras que brn(T, S) es para el conjunto de todas las
ramas de S. El conjunto de vrtices en las ramas conectadas a u se denota como
VB(T, S, u) = {u} U {v|v B brn(T, S, u)}.

COROLARIO 3

Sea S un mnimo -separador de T. Si v es una hoja de S, entonces

|VB(T, S, v)| > |V(T)|.

Una estrella es un rbol con slo un vrtice interno (centro).

DEFINICIN 5

Sea R un rbol contenido en el grafo en negrita G.

Un rbol generador T es una estrella general con ncleo R si cada vrtice se


conecta a R por el camino mnimo.

Para un ejemplo extremo, un rbol de caminos mnimos es en general una estrella


cuyo ncleo contiene solamente un vrtice. Mediante star(R), denotamos el
conjunto de todas las estrellas generales con ncleo R. La intuicin de utilizar
estrellas generales para aproximar un MRCT se describe a continuacin: Se
asume que S es un -separador de un rbol ptimo T. El separador rompe el
rbol en componentes suficientemente pequeos (ramas). El coste de ruteo de T
es la suma de las distancias de los n (n-1) pares de vrtices. Si dividimos el coste
de ruteo en dos trminos, la distancia total de los vrtices en diferentes ramas y la
distancia total de los vrtices en la misma rama, entonces, la distancia entre
ramas es la fraccin mas larga del coste total de ruteo. Adems, la fraccin se
hace ms larga cuanto menor sea el que se elija. Si se construye una estrella
general con ncleo S, el coste de ruteo ser ms cercano al ptimo.

Dado un ncleo, para construir una estrella general slo hay que encontrar el
camino mnimo del bosque, el cual puede encontrarse en tiempo O(n log n + m).
Sin embargo, se puede hacer ms eficientemente si se precalculan todos los
pares de caminos mnimos.

Pgina 53 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

LEMA 3

Sea G un grafo y sea S un rbol contenido en G. Un rbol generador T star(S)


se puede encontrar en tiempo O(n) si para cada v V(G) se precalcula el camino
mnimo SPG(v,S).

LEMA 4

Sea G un grafo y S un rbol contenido en G. Si T star(S), C(T) 2nv V(G)


dG(v,S) + (n2/2) w(S).

Ahora establecemos un lmite inferior del coste de ruteo mnimo. Sea S un mnimo
-separator de un rbol generador T y X denota el conjunto de los pares
ordenados de vrtices que no estn en la misma rama de S. Para cualquier par de
vrtices (u, v) X,

dT (u, v) = dT (u, S) + d TS (u, v) + dT (v, S)

Resumiendo para todos los pares en X, se tiene un lmite inferior para C(T).

C(T) (u,v) X dT (u,v) = (u,v) X (dT (u,S) + dT (v,S)) + (u,v) X d TS (u, v).

Ya que S es un separador, hay al menos (1- ) n vrtices no en la misma


rama para cualquier vrtice v, y se tiene:

(u,v) X (dT (u,S) + dT (v,S)) 2(1- ) n v V dT (v,S).

Ya que d TS (u, v) = 0 si v y u estn en la misma rama,

(u,v) X d TS (u, v) = vu d TS (u, v).

Por definicin, este es el coste total de ruteo de las aristas de S. Reescribiendo


esto en trminos de pesos de ruteo se tiene lo siguiente:

v u d TS (u, v) = e E(S) l(T, e) w(e).

Aplicando los lemas 5, 6 y 4, se obtiene lo siguiente:

C(T) 2(1- ) n v V dT(v,S) + e E(S) l(T, e) w(e).

Pgina 54 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Dado que S es un -separador mnimo, para cualquier arista de S hay al menos


n vrtices sobre cada lado de la arista. Por lo tanto, l(T, e) 2 (1- ) n2 para
cualquier e E(S). Consecuentemente,

e E(S) l(T, e) w(e) 2 (1- ) n2 e E(S) w(e) = 2 (1- ) n2 w(S).

Combinando lemas 7 y 8, se obtiene:

C(T) 2(1- ) n v V dT(v,S) + 2 (1- ) n2 w(S).

Particularmente, para el MRCT T se tienen los siguientes lemas.

LEMA 5

Si S es un -separator mnimo de T , entonces:

C( T ) 2(1- ) n v V d T (v,S) + 2 (1- ) n2 w(S).

6.3.1 Algoritmo de 15/8-Aproximacin


Un 1/2-separator se utiliza para obtener el algoritmo de 2-aproximacin.

La idea ahora es generalizar para explicar que una proporcin de aproximacin


mejor se consigue utilizando un 1/3-separator. Ntese que el camino puede
contener solamente un vrtice.

LEMA 6

Para cualquier rbol T, hay un camino P T tal que P es un 1/3-separator de T.

COROLARIO 2

Si P es un camino separador de T , entonces,

C(T) 4n/3 v V dT (v,P) + 4n2/9 w(S).

LEMA 7

Existen r1, r2 V tal que si R = SPG(r1, r2) y T star(R), C(T) (15/8) C( T ).

Pgina 55 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

LEMA 8

Sea G = (V, E, w). Hay un algoritmo el cual construye una estrella general T
star(SPG(r1, r2)) para cada par de vrtices r1 y r2 en tiempo 0(n3).

TEOREMA 2

Hay un algoritmo de 15/8-aproximacin para el problema del MRCT con tiempo


de complejidad 0(n3).

ALGORITMO DE 15/8-APROXIMACIN

Por el lema 7 se puede tener un algoritmo de 15/8-aproximacin para el problema


del MRCT. Para cada r1 y r2 en V, se puede construir un camino mnimo R =
SPG(r1, r2) y una estrella general T star(R) incluyendo los casos particulares r1 =
r2 .El camino con el mnimo coste de ruteo puede ser una 15/8-aproximacin del
MRCT. Todos los pares de caminos mnimos se pueden encontrar en tiempo de
complejidad 0(n3). Un mtodo directo lleva un tiempo de O(n log n + m) para cada
par r1 y r2, y por lo tanto, un tiempo total de 0(n3 log n + n3 m). Por el lema 8 se ve
que ste se puede realizar en tiempo de complejidad 0(n3).

6.3.2 Algoritmo de 3/2-Aproximacin

Sea P un camino separador de un rbol ptimo. Por el lema 4, si X star(P),


entonces,

C(X) 2n v V dG (v, P) + (n2/2) w(P).

Dado que dG (v, P) d T (v, P) para cualquier vrtice v, se puede demostrar que X
es una solucin con 3/2-aproximacin por el lema 2. Sin embargo, tiene coste
exponencial al intentar todos los caminos posibles. A continuacin se demostrar
que se puede encontrar una solucin con 3/2-aproximacin si, adems de los dos
puntos extremos de P, se conoce un centroide de un rbol ptimo.

Sea P = (p1, p2,, pk) un camino separador de T , Vi = VB(T, P, pi), y ni = |Vi| para
1 i k. Es fcil observar que el centroide debe de estar en V(P). Sea pq un
centroide de T . Construir R = SPG (p1, pq) U SPG (pq, pk). Asumimos que R no
tiene ciclos. De lo contrario, arbitrariamente se eliminan aristas para romper los
ciclos. Obviamente w(R) w(P).

Pgina 56 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

LEMA 9

Sea T star(R), se puede demostrar que C(T) (3/2) C( T ).

TEOREMA 3

Hay un algoritmo de 3/2-aproximacin con complejidad O(n4) para el problema


MRCT.

ALGORITMO DE 3/2-APROXIMACIN

Para cada tripoleta (r1, r0, r2) de vrtices, se puede construir R = SPG (r1, r0) U SPG
(r0, r2) y T star(R) incluyendo el caso particular en que ri = rj .Por el lema 9, al
menos una de estas estrellas es una solucin con 3/2-aproximacin del problema
del MRCT, y podemos elegir la que tenga el mnimo coste de ruteo. Respecto al
tiempo de complejidad, se puede ver que cada estrella se construye en tiempo
O(n). Por el lema 3, T star(R) se puede construir en tiempo O(n) si para cada v
V, se encuentra un camino mnimo desde v a R. Se define A(i, j, k) = dG (i, SPG
(j, k)) y B(i, j, k) como los vrtices en SPG (j, k) que est ms cerca de i. Es
sencillo ver que A(i, j, k) y B(i, j, k) se pueden computar en tiempo O(n4). Para
cualquier R = SPG (r1, r0) U SPG (r0, r2), ya que

dG (v, R) = min { A(v, r1, r0), A(v, r0, r2)},

dG (v, R) as como los vrtices de R ms prximos a v se pueden calcular en


tiempo total O(n4) para todo v V y para todo R en un paso de preprocesamiento.
Finalmente, para cualquier rbol generador T, se puede calcula C(T) en tiempo
O(n). Por lo tanto, la complejidad total es del orden O(n4).

6.3.3 Mejora Adicional

Sea S un mnimo -separator de T . La estrategia de los algoritmos mostrados en


esta seccin es adivinar la estructura de S y construir una estrella general con la
estructura supuesta como ncleo. Si T star(S), por el lema 4 y 5,

C(T) 2n v V(G) dG(v, S) + (n2/2) w(S),

C( T ) 2(1- ) n v V d T (v,S) + 2 (1- ) n2 w(S).

Pgina 57 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

El factor de aproximacin mediante la comparacin de las dos desigualdades es


el siguiente:

Max{ 1/(1- ), 1/(4 (1- )) }.

El radio consigue su mnimo cuando los dos trminos coinciden. Es decir, para
=1/4, y el mnimo radio es 4/3. De hecho, al usar la estrella general y un (1/4)-
separator, es posible aproximar un MRCT con radio (4/3) + para cualquier
constante > 0 en tiempo polinomial. El error adicional es debido a la diferencia
entre los separadores supuesto y el real.

Mediante esta estrategia, el factor de aproximacin es limitado incluso si S fuese


conocido exactamente. El lmite del factor de aproximacin puede en gran parte
deberse a que se consideran nicamente estrellas generales. En una estrella
general, los vrtices son siempre conectados a los vrtices ms cercanos del
ncleo. En casos extremos, aproximadamente la mitad de los vrtices estaran
conectados a cada lado de una arista de alto coste. El coste de una estrella
general como mximo es (n2/2) w(S). Para realizar un gran avance, la restriccin
de que cada vrtice se conecte al vrtice ms prximo del ncleo necesita ser
relajada.

Un grafo mtrico es un grafo completo con una desigualdad triangular, es decir,


cada arista es el camino mnimo de sus dos vrtices. Recordando la prueba del
lema 9. Si la entrada al grafo es un grafo con pesos, el ncleo tendr un camino
con dos aristas, y cada vrtice es adyacente a uno de los vrtices crticos un
centroide y los dos vrtices del camino separador. Se define k-estrellas a los
rboles con al menos k vrtices internos. La solucin aproximada que se ha
construido es un 3-estrella. Ms importante, k-estrella no tiene tal restriccin como
una estrella general y puede ser utilizada para aproximar un MRCT con ms
precisin.

Sin embargo, k-estrella funciona solo para grafos con coste. La clase de grafos
con coste es una subclase importante de grafos. Resolviendo el problema del
MRCT sobre grafos con coste es significativo por s mismo. Antes de considerar el
problema de aproximacin sobre grafos con coste, dos cuestiones vienen a
nuestra mente:

 Cul es la complejidad computacional del problema MRCT sobre grafos


con coste, NP-hard o solucionable en tiempo polinomial.

 Si es NP-hard, su aproximacin es diferente a la del problema general.

Pgina 58 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

6.4 REDUCCION AL CASO METRICO

Se demostrar que el problema MRCT sobre entradas en general puede ser


reducido al mismo problema que con entradas con coste. La reduccin se realiza
mediante la transformacin del algoritmo.

DEFINICIN 6

El cierre mtrico de un grafo G= (V, E, w) es el grafo completo G = (V, VV, w )


en el cual w (u, v) = dG(u, v) para todo u, v V.

Sea G = (V, E, w) y G = (V, VV, w ) su cierre mtrico. Cualquier arista (a, b) en


G es una mala arista si (a, b) E o w(a, b) > w (a, b). Para cualquier mala arista
e = (a, b), debe existir un camino P = SPG(a, b) e tal que w(P) = w (a, b). Dado
cualquier rbol generador T de G , el algoritmo puede construir otro rbol
generador Y sin ninguna mala arista tal que C(Y) C(T). Ya que Y no tiene aristas
malas, w (e) = w(e), e E(Y), y Y puede considerarse como un rbol generador
de G con el mismo coste de ruteo. El algoritmo se especifica de la siguiente
manera:

Algoritmo: BORRAR_MALOS

Input: Un rbol generador T de G

Output: Un rbol generador Y de G tal que C(Y) C(T).

Se computan todos los pares de caminos mnimos de G.

(I) Mientras exista una mala arista en T

Elegir una mala arista (a, b). Tomar como raz a en T.

/* Se asume SPG(a, b) = (a, x, , b) y y es el padre de x */

Si b no es un ascendiente de x entonces

Y* T U (x, b) (a, b);

Y** Y* U {(a, x)} {(x, y)};

Si no

Y* T U (a, x) (a, b);

Y** Y* U {(b, x)} {(x, y)};

Pgina 59 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Si C(Y*) < C(Y**) entonces Y Y* si no Y Y**

(II) TY

El algoritmo calcula iterativamente Y sustituyendo las aristas malas hasta que no


queden aristas malas. Por lo que el coste nunca se incrementa en cada iteracin y
no se realizan ms de O(n2) iteraciones. Se asume que el camino mnimo que se
obtiene en el primer paso tiene las siguientes propiedad: Si SPG(a, b) = (a, x, ,
b), entonces SPG(a, b) = (a, x) U SPG(x, b).

Esta suposicin no es fuerte ya que casi todos los algoritmos para todos los pares
de caminos mnimos llegan como resultado a esa solucin.

PROPUESTA 1

El bucle while en el algoritmo BORRAR_MALOS se ejecuta al menos O(n2) veces.

Demostracin:

Para cada arista mala e = (a, b), sea h(e) el nmero de aristas de SPG(a, b) y f(T)
= bad e h(e). Dado que h(e) n-1, f(T) < n2 inicialmente. Ya que (a, x) no es una
arista mala, es fcil comprobar que f(T) disminuye al menos 1 en cada iteracin.

PROPUESTA 2

Antes de que la instruccin II sea ejecutada, C(Y) C(T).

Demostracin:

Figura 6: BORRAR_MALAS arista (a, b)

Pgina 60 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

a a
b
b
y
y

x
x

(a) Caso 1 (b) Caso 2

Para cualquier nodo v, sea Sv = V(Tv). Como se muestra en la figura 6, hay dos
casos. El caso 2 es idntico al caso 1 si el rbol tomara como raz b y los roles de
a y b se intercambiaran. Por lo tanto, solamente la desigualdad para el caso 1
necesita ser probada, es decir, x Sa Sb.

Si C(Y*) C(T), el resultado se deduce. De lo contrario, sea U1 = Sa Sb y U2 =


Sa Sb Sx . Dado que la distancia no cambia para cualquier par de vrtices
ambos en U1 ( o ambos en Sb ), se tiene:

C(Y) < C(Y*)

=> uU
1
vS b dT (u, v) < uU 1
vS b dY* (u, v).

Dado que para todo u U1 y v Sb, dT (u, v) = dT (u, a) + w (a, b) + dT (b, v) y

dY* (u, v) = dT (u, x) + w (x, b) + dT (b, v),

uU 1 vS b ( dT (u, a) + w (a, b) + dT (b, v) )

< uU
1
vS b ( dT (u, x) + w (x, b) + dT (b, v) ) =>

Pgina 61 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

=> | Sb | uU dT (u, a) + | U1 | | Sb | w (a, b)


1

< | Sb | uU dT (u, x) + | U1 | | Sb | w (x, b)


1

=> uU dT (u, a) + | U1 | w (a, b)


1

< uU dT (u, x) + | U1 | w (x, b)


1

Ntese que Sb por lo que la desigualdad se mantiene. Por definicin de cierre


mtrico, w (a, b) = w (a, x) + w (x, b), y entonces,

uU 1 ( dT (u, a) - dT (u, x) ) < - | U1 | w (a, x) (4.13)

Ahora consideremos el coste de Y**:

( C(Y**) C(T) ) / 2 = uU
2
vS x ( dY** (u, v) - dT (u, v) )

+ uU
1
vS b ( dY** (u, v) - dT (u, v) ).

Como dY** (u, v) dT (u, v) para u U1 y v Sb, el segundo trmino es no


positivo. Observando que dT (u, v) = dT (u, x) + dT (x, v) y dY** (u, v) = dT (u, a) +
w (a, x) + dT (x, v) para cualquier u U2 y v Sx, obtenemos:

( C(Y**) C(T) ) / 2

uU vS x ( dT (u, a) + w (a, x) - dT (u, x) )


2

= | Sx | uU ( dT (u, a) + w (a, x) - dT (u, x) )


2

= | Sx | uU ( dT (u, a) - dT (u, x) ) + | U2 | | Sx | w (a, x)


2

| Sx | uU ( dT (u, a) - dT (u, x) ) + | U2 | | Sx | w (a, x) (4.14)


1

< - | U1 | | Sx | w (a, x) + | U2 | | Sx | w (a, x) (4.15)

0.

Pgina 62 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

(4.14) se obtiene observando que U1 U2 = Sx y dT (u, a) > dT (u, x) para


cualquier u Sx. (4.15) se obtiene aplicando (4.13). Por lo tanto, C(Y**) < C(T) y
el resultado queda demostrado.

LEMA 10

Para cualquier rbol generador T de G , puede transformarse en un rbol


generador T de G en tiempo O(n3) y C(T) C( T ).

Este lema implica que C(mrct(G)) C(mrct( G )). Es fcil ver que C(mrct(G))
C(mrct( G )). Por lo tanto, tendramos el siguiente corolario.

COROLARIO 3

C(mrct(G)) = C(mrct( G ))

TEOREMA 4

Sea MRCT que denota el problema de MRCT con mtrica de entrada.

Si hay un algoritmo (1+ )-aproximacin para el MRCT con complejidad O(f(n)),


entonces hay un algoritmo (1+ )-aproximacin para el MRCT con complejidad
O(f(n) + n3).

Demostracin:

Sea G el grafo de entrada para el problema MRCT. El cierre mtrico G se puede


construir en tiempo O(n2 log n + mn). Si hay un algoritmo (1+ )-aproximacin para
el problema MRCT, un rbol generador T de G se puede computar en tiempo
O(f(n)) tal que C(T) (1+ ) C(mrct( G )). Utilizando el algoritmo de
BORRAR_MALOS, se puede construir un rbol generador Y de G de forma que:

C(Y) C(T) (1+ ) C(mrct( G )) = (1+ ) C(mrct(G)).

La complejidad total es: O(f(n) + n3).

COROLARIO 4

El MRCT es un problema NP-completo.

Pgina 63 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

6.5 ESQUEMA DE APROXIMACIN EN TIEMPO POLINMICO

Un esquema de aproximacin en tiempo polinmico (PTAS) es un tipo de


algoritmo de aproximacin para problemas de optimizacin (con frecuencia, para
optimizacin de problemas NP-completos). En esencia, un PTAS es un algoritmo
que permite aproximar la solucin ptima con un factor de 1+epsilon, para
cualquier epsilon.

Se va a mostrar una estrategia de aproximacin en tiempo polinomial (PTAS) para


el problema del MRCT. El principal resultado es el siguiente teorema.

TEOREMA 5

Hay un PTAS para encontrar un rbol de coste de ruteo mnimo para un grafo no
dirigido y con pesos. Especficamente, se puede encontrar una solucin de (1+ )-
aproximacin en tiempo O(n2[2/] -2).

Como se describi previamente, el hecho de que el coste w pueda no obedecer al


la desigualdad triangular es irrelevante, ya que se puede simplificar reemplazando
los costes por su cierre mtrico. Por lo tanto, en esta seccin se puede asumir
que G = (V, E, w) es un grafo con costes.

Se usan k-estrellas, es decir, rboles con no ms de k nodos internos, como base


de la estrategia de aproximacin. Ms adelante se ver como para cualquier
constante k, se puede determinar en tiempo polinomial una k-estrella con coste de
ruteo mnimo. Para demostrar que una k-estrella consigue una (1+ )-
aproximacin, se demostrar que para cualquier rbol T y constante 1/2:

1. Es posible determinar un -separator, y el separador se puede dividir en


varios -caminos tal que el nmero total de nodos y hojas eliminadas del
separador es al menos [2/ ] 3 (Lema 11)

2. Usando el separador, T se puede convertir en una ([2/ ] - 3)-estrella X,


cuyos nodos internos son justamente los nodos y hojas eliminados. El coste de
ruteo X satisface C(X) (1 + ( / 1- ) ) C(T) (Lema 13)

Usando T = T = mrct(G), = /1+ y encontrando la mejor ([2/] - 3)-estrella K, se


obtiene la aproximacin deseada:

C(K) (1 + ( / 1- ) ) C( T ) = (1+) C( T ).

Pgina 64 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Antes de entrar en detalles del caso general, veremos como encontrar una 3/2-
aproximacin de un MRCT y el desarrollo de su anlisis.

Recordar que un centroide de un rbol es el vrtice cuyos eliminados cortan el


rbol en componentes con no mas de n/2 vrtices. Sea T un MRCT de un grafo G
con costes. Tomemos como raz de T su centroide r. Para una arista (u, v) con
padre v, el peso de ruteo de la arista es 2x(n-x), en el que x es el nmero de
descendientes de u. (Por comodidad, se asume que el vrtice es tambin un
descendiente de si mismo). Para el valor positivo <= 1/2, eliminando todos los
vrtices con nmero de descendientes no mayor a n, se puede obtener un
subgrafo conexo S de T. El subgrafo S es un -separator mnimo. En el caso de
= 0.5, S contiene solamente el centroide. Si se facilita el separator S del MRCT,
para cada vrtice que no est en S, tambin se conoce su menor antecesor en S,
por lo que se puede fcilmente construir un 1/(1-)-aproximacin Y del MRCT
como se muestra a continuacin:

 SY

 Para cada vrtice u que no est en S, se conecta a su menor antecesor v


en S aadiendo la arista (u, v).

El factor de aproximacin de Y se puede mostrar por las siguientes dos


observaciones:

 Para cada arista en S, el coste de la ruta en Y es la misma que en T .

 Para cada arista (u, v) que no est en S, el coste de ruteo en Y es 2(n-1).


Sin embargo, hay un camino de u a v en T , el cual cada arista tiene un
peso de ruteo no inferior a 2(1- )n, y la longitud del camino es al menos la
misma que la arista (u, v).

Por ejemplo, se considera el caso ms simple en el que = 1/2. Un 1/2-separator


contiene solamente un vrtice. Se asume que r es tal vrtice en el MRCT T . Para
todos los vrtices restantes, el antecesor en es el separador r. Conectando todos
los nodos restantes a r, se obtiene una estrella Y. El coste de ruteo de Y es la
suma de todas las aristas (v, r) multiplicado por su peso 2(n-1). Para cada vrtice
v, hay un camino de v a r en T . Ya que r es un 1/2-separator de T , el peso de
ruteo del camino es al menos n y el camino no es mnimo que la arista (v, r) por la
desigualdad triangular. Consecuentemente, Y es una 2-aproximacin del MRCT
T . Ya que el separador contiene solamente un vrtice, se pueden intentar todos
los vrtices posibles y ello conduce a una aproximacin en tiempo O(n2) del
problema del MRCT sobre grafos con mtrica.

Pgina 65 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Cuando < 1/2, el separador puede contener tantos (n) vrtices, y es


demasiado costoso enumerar todos los posibles separadores. Sin embargo, en
lugar del separador entero, se puede conseguir el mismo radio conociendo
solamente algunos vrtices crticos del separador. A continuacin, se tomar =
1/3 como ejemplo para mostrar que solamente se necesita conocer el vrtice
crtico del separador para construir una 3/2-aproximacin.

La raz del MRCT T es el centroide r. Hay al menos dos subrboles que contienen
ms de n/3 nodos. Sea a y b los vrtices ms profundos con al menos n/3
descendientes. Se ignoran los casos donde r = a o r = b. Para tales casos, el radio
podra demostrarse igualmente. Sea P un camino de a a b. Obviamente, el
camino contiene a r y es un 1/3-separator mnimo. Transformando T en una 3-
estrella con nodos internos a, b y r tales que su coste de ruteo no es superior a
3/2 del de T . Como se muestra en la figura 7, se toma una particin de todos los
vrtices en Va, Vb, Vr, Var, y Vbr. Los conjuntos Va, Vb y Vr contienen los vrtices
cuyo antecesor ms profundo sobre P es a, b y r, respectivamente. El conjunto
Var, (y Vbr ) se compone de los vrtices cuyo antecesor ms profundo en P est
entre a y r (y entre b y r, respectivamente).

Figura 7: MRCT y las cuatro 3-estrellas.

a r b a r b

r
Var Vbr Var Vbr Var Vbr

Vr a r b a r b
Va Vb

Var Vbr Var Vbr

Primeramente se sustituye P con las aristas (a, r) y (b, r). Para cada vrtice v en
Va (o Vb, Vr), se aade la arista (v, a) (o (v, b), (v, r), respectivamente). Para los
vrtices en Var, se consideran dos casos: O todos ellos estn conectados a a o
todos ellos estn conectados a r. Los vrtices en Vbr estn conectados de forma
similar. Las cuatro posibles 3-estrellas se muestran en la figura 7.

Pgina 66 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Ahora se considera el coste de ruteo de T . para cada vrtice v, el peso del


camino para el ruteo de v a P no es inferior a 4n/3 ya que P es un 1/3-separator.
Para cada arista e de P, ya que hay al menos n/3 nodos sobre cada lado de l. El
peso de ruteo no es inferior a 2(n/3)(2n/3) = 4n2/9. Por lo tanto, se tiene el
siguiente lmite inferior para el coste de ruteo del MRCT:

C( T ) (4n/3) v d T (v, P) + (4/9) n2 w(P).

En cualquiera de los 3-estrellas construidos arriba, para cada vrtice v en Va Vr


Vb , el coste de ruteo de la arista que incide en v es 2(n-1), y la longitud de la
arista es como mucho la misma que el camino de v a P en T. Para cada nodo v en
Var, por la desigualdad triangular, se tiene:

(w(v, a) + w(v, r)) /2 d T (v, P) + d T (a, r) /2.

Ntese que no hay ms de n/6 nodos en Var, Para la arista (a, r), el peso de ruteo
es inferior a 2(n/2) (n/2) = n2/2. (Nota: Para este caso simple en el que = 1/3, este
lmite es suficiente. Sin embargo, para un ms pequeo se requiere un anlisis
ms preciso del incremento del peso de ruteo).

Para los nodos en Vbr, se puede obtener un resultado similar. Resumiendo, el


coste mnimo de ruteo del 3-estrella construido no es superior al siguiente valor:

2(n-1)v d T (v, P) + (n2/6) (d T (a, r) + d T (b, r) ) + (1/2) n2 w(P)

2n v d T (v, P) +(2/3) n2 w(P).

El factor de aproximacin, por comparacin con el lmite inferior del ptimo es 3/2.

El mtodo se puede extender a cualquier 0.5. Sea S un -separator de T. El


conjunto de vrtices crticos se definen como conjunto de corte y hoja. Para
construir una k-estrella con 1/(1-)-aproximacin constara de los siguientes
vrtices:

 Las hojas de S como a y b en el ejemplo anterior.

 Los vrtices con ms de dos vecinos en S.

 Algunos vrtices adicionales tales como todos los vrtices crticos que
corten el separador en caminos de aristas disjuntas y el nmero de vrtices
cuyo antecesor ms profundo sobre S pertenezca al mismo camino en no
ms de n/2. Tal camino se define como un -camino en la siguiente
seccin. En el ejemplo anterior, r es tal vrtice. Los vrtices a, b y r cortan
el separador en dos caminos y el nmero de vrtices en Var o Vbr es inferior
a n/6.

Pgina 67 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Se mostrar que el nmero de vrtices crticos necesarios es al menos 2/-3 para


cualquier 0.5. Consecuentemente, existe una (2/-3)-estrella que es una
aproximacin de un MRCT con radio 1/(1-). La PTAS es para construir la (2/-3)-
estrella de coste de ruteo mnimo.

El ncleo de un rbol es el subgrafo que se obtiene al quitar todas sus hojas. El


ncleo de una k-estrella contiene no ms de k vrtices y por lo tanto el nmero de
todos los ncleos posibles es un polinomio de orden k. para cada ncleo posible,
el algoritmo encuentra la mejor manera de conectar las hojas a uno de los vrtices
del ncleo. Un vector entero de k-componentes (n1, n2, , nk) se utiliza para
indicar cuntas hojas se conectaran a cada una de los k vrtices del ncleo, en el
que i ni = n-k. Hay O(nk-1) vectores. Para cada ncleo y cada vector, el coste de
ruteo sobre cada arista del ncleo es fijo ya que el nmero de vrtices a ambos
lados de la arista vienen determinados por el ncleo y el vector. Por lo tanto la
mejor conexin para la hoja se determina por las aristas de la hoja y el nmero de
hojas que han de conectarse a los vrtices del ncleo. Este problema puede
solucionarse resolviendo un problema de asignacin en tiempo O(n3).
Consecuentemente, el coste mnimo de ruteo de una k-estrella se puede construir
en tiempo polinomial k y n.

Por ejemplo, para k=3. Para una 3-estrella, el ncleo es un camino de 3 vrtices.
Hay O(n3) ncleos posibles. Para cada ncleo posible (a, b, c), se utiliza un vector
entero con tres componentes (x, y, z) para indicar cuntas hojas se conectaran a
a, b y c, en el que x + y + z = n-3 y x, y, z son enteros no negativos. Hay O(n2)
vectores. Para un ncleo especfico y un vector especfico, el peso de ruteo sobre
cada arista del ncleo es tambin fijo. Eso es, el peso de ruteo sobre (a, b) es
2(x+1)(n-x-1) y sobre (b, c) es 2(z+1)(n-z-1). Por lo tanto, la mejor hoja de
conexin se determina por las aristas de hoja ligadas al nmero de hoja que se
conectan a a, b, c. Este problema se puede solucionar resolviendo el problema de
asignacin en tiempo O(n3). La complejidad total es del orden de O(n2k+2), el cual
es un polinomio con k constante. De hecho, no se necesita resolver el problema
de asignacin individual para la mejor hoja de conexin de cada vector. La mejor
hoja de conexin de un vector se puede encontrar a partir de la de otro vector
resolviendo el problema del camino mnimo si los dos vectores son adyacentes.
Dos vectores son adyacentes si uno se puede obtener a partir del otro
incrementando un componente uno a uno y decrementando un componente uno a
uno. Por ejemplo, (5, 4, 2) y (5, 3, 3) son adyacentes. Con este resultado, el
tiempo de complejidad se reduce a O(n2k).

Pgina 68 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

6.5.1 -Spine de un rbol

Sea P = SPT(i, j) en el que |VB(T, P, i)| |VB(T, P, j)|. Se utilizarn las siguientes
notaciones para simplificar las expresiones:

Pa = |VB(T, P, i)|.

Pb = |VB(T, P, j)|.

Pc = n - |VB(T, P, i)| - |VB(T, P, j)|.

Q(P) = | VB (T , P, r x ) | dT(rx, i), donde P = (i, r1, r2, , rh, j).


1 x h

Pa y Pa son los nmeros de vrtices que estn colgando de los dos puntos finales
del camino. Ntese que siempre se asume que Pa Pb. En el caso de que P
contenga solamente una arista, Pc = 0. Las notaciones se ilustran en la figura 8.

Figura 8: B1, B2,, B7 son ramas de P. VB(T, P, i) = {i} U V(B1) U V(B2) U V(B3).
Pc es el nmero de vrtices en {r1, r2 , r3} U V(B4) U V(B5) U V(B6).

j
r3
r1 P r2
B1 i

B7
B6
B2
B4 B5

B3

Pgina 69 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

DEFINICIN 7:

Sea 1 k n. Una k-estrella es un rbol generador de G que no tiene ms de k


nodos internos. Una k-estrella ptima es una k-estrella con el mnimo coste de
ruteo.

Informalmente, un -camino es un camino tal que no hay muchos nodos (como


mucho n/2 ) que cuelgan de sus nodos internos. Un -spine es un conjunto de -
caminos de aristas disjuntas cuya unin es un -separador mnimo. Es decir, un -
spine se obtiene cortando un -separador mnimo en -caminos. En el caso de
que el -separador mnimo contenga justo un nodo, el nico -spine es el conjunto
vaco.

DEFINICIN 8:

Dado un rbol generador T de G, y 0 < 0.5, un -camino de T es un camino P


tal que Pc n/2.

DEFINICIN 9:

Sea 0 < 0.5. Un -spine Y = {P1, P2,, Ph} de T es un conjunto de -caminos


de pares de aristas disjuntas en T tal que S = U1 i h P i es un -separador mnimo
de T. Adems, para cualquier par de caminos diferentes Pi y Pj en el spine, se
requiere que o no intersecten o, si as lo hicieran, el punto de interseccin sea un
punto final en ambos caminos.

DEFINICIN 10:

Sea Y un -spine de un rbol T. CAL(Y) (se define como el corte y el conjunto de


hojas de Y) es el conjunto de puntos finales de los caminos de Y. En el caso de
que Y sea vaco, el conjunto de corte y hojas contiene nicamente un nodo el cual
es un -separator de T. Formalmente, CAL(Y) = {u, v | P = SPT(u, v) Y} si Y no
es vaco, y en otro caso CAL(Y) = {u | u es un mnimo -separator}.

Pgina 70 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Ejemplo 4:

Figura 9: Separador, spine y CAL. Cada tringulo representa un subconjunto con


no ms de n/4 vrtices.

v1
v1 v1
S v1
S
v3 v3
v2 v2

v5
v5

>n/ v5
>n/ v4 4 Vrtices que
4 cuelgan de v2 Vrtices que
cuelga un
camino
v4

>n/
4

(a) (b)

En la figura 9, S (con lneas en negrita) es un mnimo 1/4-separator del rbol. El


vrtice v1 es un centroide, y los vrtices v2, v3, y v4 son hojas de S. En (b), el
separador se corta por un 1/4-spine del rbol. El CAL del spine es { v1, v2, v3, v4,
v5 }. El camino entre v1 y v4 se corta en el vrtice v5 para asegurar que el nmero
de vrtices que cuelgan de cada camino no es superior a n/8.

LEMA 11:

Para cualquier constante 0 < 0.5, y el rbol generador T de G, existe un -


spine Y de T tal que |CAL(Y)| [2/] -3.

Pgina 71 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Ejemplo 5:

Para cualquier rbol, existe siempre un (1/3)-spine y un (1/4)-spine cuyo conjunto


de corte y hojas no contiene ms de 3 y 5 vrtices, respectivamente, como se
ilustra en la figura 9. Tomando = 1/5, se tiene que existe un (1/5)-spine cuyo
conjunto de corte y hojas no tiene ms de 7 vrtices.

LEMA 12:

Sea Y un -spine de un rbol generador T de G y S = U pY P un -separator de T


mnimo. Entonces se cumple lo siguiente:

C(T) 2(1-)n d T (v, S ) + ( P b ( P a + P c ) w( P )) + (( P a P b)Q ( P )) .


vV pY

6.5.2 De rboles a Estrellas

Sea 1/2 y k= [2/] -3. Se va a descomponer una solucin ptima T y construir


k +3
una k-estrella cuyo coste de ruteo est limitado superiormente por: C( T ).
k +1

Sea Y = {Pi | 1 i h} un -spine de T en el que |CAL(Y)| [2/] -3. Ntese que el


conjunto de todas las aristas de Y forman un -separador de S. Se asume que Pi
= SP T (ui, vi) y |VB( T , Pi, ui)| |VB( T , Pi, vi)|. En el siguiente paso se construye
una k-estrella cuyos nodos internos son exactamente el conjunto corte y hoja del
-spine que acabamos de identificar.

1. Se conectan estos nodos mediante las aristas de corte mnimo a lo largo


del spine para construir un rbol generador de estos nodos con el mismo
esqueleto de estructura del spine.

2. Todos los vrtices en los subrboles que cuelgan en el corte y en los nodos
hojas del spine estn conectados directamente a sus nodos ms prximos
en el spine.

3. A lo largo del -camino en el spine, todos los nodos internos y nodos en el


subrbol colgando de los nodos internos estn conectados a uno de los
dos puntos finales de este camino (ntese que ambos estn en el corte y
en el conjunto de hojas del spine) en tal camino para minimizar el resultado
del coste de ruteo.

Pgina 72 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Esta es la k-estrella utilizada como lmite superior del coste de ruteo.

EJEMPLO 6:

Figura 10: Construccin de una k-estrella a partir de un rbol ptimo

D
C
D
C
B
A B
A
E E

(a) (b)

B B
A B
A
A

(c) (d) (e)

En la figura 10 se ilustra como construir la k-estrella deseada a partir de un rbol


ptimo. (a) es un rbol ptimo en el que se muestra el separador, el corte y
conjunto hoja es: {A, B, C, D, E}. (b) es el rbol generador el corte y los nodos
hoja, los cuales tienen el mismo esqueleto de estructura que el spine. (c), (d) y (e)
muestra cmo conectar otros nodos al corte y nodos hoja. (c) muestra los nodos
que cuelgan de un -camino. Estos nodos sern conectados como en (d) o (e).
Los nodos que cuelgan en los puntos finales del camino se conectarn a los

Pgina 73 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

puntos finales en cada caso. Todos los nodos internos del camino y nodos que
cuelgan en los nodos internos se conectarn a uno de los dos puntos finales.
Ntese que estn conectados al mismo punto final o como en (d) o en (e) pero no
estn conectados a los dos puntos finales parcialmente.

Ms formalmente, se construye un subgrafo R G con el conjunto de vrtices


CAL(Y) y conjunto de aristas Er = {(ui, vi)| 1 i h}. Trivialmente, R es un rbol.
Sea f(i) una variable indicadora tal que:

1 Si Si ( Pia Pbi) Pic w( Pi ) n(2Q ( Pi ) Pci w( Pi ))


f (i ) =
0 en otro caso

La variable indicadora f(i) determina el punto final de Pi al cual todos los nodos
internos y nodos que cuelgan a ese nodo interno se conectar directamente. Se
construye un rbol generador X de G donde el conjunto de aristas Ex se determina
mediante la siguiente regla:

1. R G.

2. Si q VB( T , S, r) entonces (q, r) Ex, para cualquier r { ui, vi | 1 i h }.

3. Para el conjunto de vrtices Vi = V - VB( T , Pi, ui) - VB( T , Pi, vi), si f(i) = 1,
entonces {(q, ui) | q Vi} Ex, si no {(q, vi) | q Vi} Ex. Es decir, los
vrtices de Vi estn todos conectados a ui o todos conectados a vi.

PROPUESTA 3

X es una k-estrella.

PROPUESTA 4

1
C(X) C( T ). (Esta propuesta es trivial considerando el coste de X).
1

A partir de las propuestas 3 y 4, se concluye el siguiente lema:

Pgina 74 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

LEMA 13

Una k-estrella ptima de una grafo con mtrica es una (k+3)/(k+1) aproximacin
de un MRCT.

EJEMPLO 7:

Tomando = 1/3 en el lema 13, se concluye que existe una 3-estrella la cual es
una 1.5-aproximacin de un MRCT. Tomando = 0.2, se concluye que existe una
7-estrella la cul es una 1.25-aproximacin.

En las siguientes secciones se ver que es posible determinar una k-estrella


ptima de un grafo en tiempo polinomial. De hecho, se tiene el siguiente lema:

LEMA 14

Una k-estrella ptima de un grafo G se puede construir en tiempo O(n2k).

El siguiente teorema establece el orden de complejidad del PTAS.

TEOREMA 6

Existe un PTAS para el problema MRCT, el cul se puede encontrar una


solucin con (1+ )-aproximacin, solucin con complejidad del orden O(n )
donde = 2[2/ ] -2 por el lema 14.

El resultado del teorema 5 se deduce inmediatamente del teorema 6 y 4.

ENCONTRAR UNA K-ESTRELLA PTIMA

En esta seccin se describe un algoritmo para encontrar una k-estrella ptima en


G para un valor de k dado. Como se mencion anteriormente, dado un parmetro
2
de precisin > 0, se aplica este algoritmo para k = [ - 1], y se devuelve una k-

estrella ptima como solucin con una (1+ )-aproximacin.

Para un k dado, para encontrar una k-estrella ptima, se considera todos los
subconjuntos S posibles de vrtices de tamao k, y para cada eleccin, se
encuentra una k-estrella ptima donde los vrtices restantes tiene grado uno.

Pgina 75 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

MTODO DE TIEMPO POLINOMIAL

Primeramente, se verifica que la complejidad total de este paso est limitada


polinomialmente por un k fijo. Cualquier k_estrella se puede describir por medio
de una tripleta (S, , ), donde S = {v1, , vk} V es el conjunto de k vrtices
distinguidos que pueden tener grado mayor de uno, es un rbol generador de
topologa en S, y = (L1, , Lk), donde Li V S es el conjunto de vrtices
conectados a vrtices vi S. Para cualquier r Z+, un r-vector es un vector entero
con r componentes.

Sea l =(l1, , lk) un k-vector no negativo tal que ik=1 l i = n k. Se dice que una k-
estrella (S, , ) tiene la configuracin (S, , l ), si li, = | Li | para todo 1 i k.

EJEMPLO 8:

FIGURA 11: Configuracin de una 3-estrella.

v1 v2 v3 v1 v2 v3

u1 u2 u3 u4 u5
2 4

(a) (b)

Para la 3-estrella que se muestra en la figura 11(a), S = {v1, v2, v3}, se muestra
en (b), L1 = {u1, u2, u3}, L2 = {u4}, L3 = {u5}, y l = (3, 1, 1).

Para un k fijo, el nmero total de configuraciones O(n2k-1) ya que hay

n k-2
combinaciones para S. k posibles topologas de rbol para T con k
k
vrtices, y

Pgina 76 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

n 1
posibilidades de k-vectores.
k 1

(Para ver esto, observar que cada uno de esos vectores puede corresponder con
k-1 escogidos entre n-1 elementos ordenados linealmente, y usando las
cardinalidades de los segmentos entre segmentos escogidos consecutivamente
como componentes del vector). Ntese que para cualquier dos k-estrellas con la
misma configuracin tienen el mismo coste de ruteo con sus correspondientes
aristas. Se define (S, , l) una k-estrella ptima con configuracin (S, , l).

Ntese que cualquier vrtice v en V-S que se conecte al nodo s S contribuye un


trmino de w(v, s) multiplicado por su coste de ruteo 2(n-1). Ya que todos estos
costes de ruteo son lo mismo, la mejor manera de conectar los vrtices en V-S a
nodos en S obtenidos es encontrar un camino de coste mnimo que asigne nodos
de V-S nodos de S que obedezcan los grados de restriccin sobre los nodos de S
impuesta por configuracin, y los costes son las distancias w. Este problema se
puede resolver en tiempo polinomial para una configuracin dada por una
reduccin directa a una instancia de mnimo coste de asignacin perfecta. El
anterior problema de mnimo coste de asignacin perfecta, tambin llamado
problema de asignacin, ha sido bien estudiado y se puede resolver en tiempo
O(n3). Por lo tanto, la complejidad total para encontrar una k-estrella ptima es
O(n2k+2).

6.5.3 Un Mtodo ms rpido

En el PTAS, se necesita resolver muchos problemas de asignacin, cada una


para una configuracin. Lleva un tiempo polinomial resolver estos problemas
individualmente y este resultado es suficiente para mostrar la existencia del
PTAS. Aunque no hay una manera obvia de reducir la complejidad para un
problema de asignacin. El tiempo de complejidad total se puede reducir
significativamente cuando se consideran todos estos problemas juntos. El punto
clave es que dos k-estrellas ptimas de configuracin similar compartan una
porcin comn grande en sus estructuras. Ordenando cuidadosamente los
problemas de asignacin por las configuraciones y explotando la estructura
comn de dos problemas consecutivos, se puede obtener una solucin ptima de
cualquier configuracin en este orden realizando un aumento sencillo sobre la
solucin ptima de la configuracin previa. As, se demuestra (lema 15) como
computar (S, , l ) para una configuracin dada en tiempo O(nk).

Pgina 77 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

Sea Wab el conjunto de a-vectores no negativos cuyas entradas suman una


constante b. Wab X Wab, se introduce la relacin como l l si existe 1 s, t a
tal que;

l i 1 Si i=s

l i = l i + 1 Si i=t
'

l En otro caso
i

Para un par l y l como el de abajo, se dice que l se obtiene a partir de l mediante


s y t.

a + b 1
Sea r = | Wab | = . La siguiente propuesta demuestra que los elementos
a 1
de Wab se puede ordenar linealmente como l1, , lr para que l i+1 li para todo 1 i
r-1.

PROPOSICIN 5:

Para todos los enteros positivos a, b, existe una permutacin a,b de Wab tal que
1
a,b
es el mnimo lexicogrfico, ar ,b es el mximo lexicogrfico y ia+,b1
i
a ,b
para todo i = 1,, r-1.

EJEMPLO 9:

El ordenamiento de W3,4 es el siguiente:

(0, 0, 4) (0, 1, 3) (0, 2, 2) (0, 3, 1) (0, 4, 0)

(1, 3, 0) (1, 2, 1) (1, 1, 2) (1, 0, 3) (2, 0, 2)

(2, 1, 1) (2, 2, 0) (3, 1, 0) (3, 0, 1) (4, 0, 0)

De acuerdo con la proposicin 5, se pueden ordenar los elementos de Wk,(n-k) de


n 1

la siguiente forma: l ,, l , donde r = k 1 . Ntese que l1 = (0,, 0, n-k) y lr = (n-
1 r

k, 0,, 0). Se determinar cmo obtener (S, ,li+1) a partir de (S, ,li).

Pgina 78 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

LEMA 15:

(S, ,li+1) se puede calcular a partir de (S, ,lr) en tiempo O(nk).

EJEMPLO 10:

FIGURA 12: Grafos auxiliares para el mtodo ms rpido.

10

30
v1 v2 v3 v1 v2

50
30

20 10
u1 u2 u3 u4 u5 v3
2 4

(a) (b)

Supngase que las longitudes de las aristas w(vi, uj) en la figura 11 se dan en la
siguiente matriz:

u1 u 2 u3 u4 u5

v1 10 10 30 50 50
v2 50 60 40 20 60

v3 80 70 80 30 30

La 3-estrella en la figura 11(a) es ptima para l = (3, 1, 1) y se quiere computar un


vector ptimo (2, 1, 2) que se obtiene a partir de l por v1 y v3. El digrafo auxiliar
D ( L ) se muestra en la figura 12(a) y D ( L ) se muestra en la figura 12(b). Dado
que L1 = {u1, u2, u3}, la longitud (v1, v2) se obtiene mediante:

w(v 2 , u1 ) w(v1 , u1 )

min w(v2 , u 2 ) w(v1 , u 2 ) = w(v2, u3) w(v1, u3) = 10,
w(v , u ) w(v , u )
2 3 1 3

Pgina 79 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

que corresponde al coste de mover u3 desde L1 a L2. El camino mnimo desde v1


a v3 en D (L) es (v1, v2, v3) y tiene longitud 20. Por lo tanto, la mejor hoja de
conexin de la configuracin (S, , (2, 1, 2)) es L1 = {u1, u2}, L2 = {u3} y L3 = {u4,
u5}.

6.6 APLICACIONES

6.6.1 Diseo de Redes

Una aplicacin obvia de un MRCT es el diseo de redes. La longitud de una arista


refleja el coste de ruteo a lo largo de la arista. El grafo de entrada es el grafo en
negrita en el que las aristas representan todos los enlaces posibles entre nodos.

Uno puede querer construir una red fija tal que el mensaje puede ser transportado
por la red desde los orgenes a los destinos.

Los rboles son una importante estructura de red debido a las siguientes
caractersticas:

- Los rboles son subgrafos conexos con un nmero mnimo de aristas.

- El algoritmo de ruteo sobre un rbol es muy simple.

Un MRCT es un rbol generador que minimiza el coste total de ruteo cuando los
requisitos de comunicacin para todos los pares de vrtices sean iguales. O en un
modelo estocstico, un MRCT es un rbol generador que tiene el coste de ruteo
esperado mnimo si el requisito entre cualquier par de vrtices tiene igual
probabilidad.

6.6.2 Biologa Computacional

Adems de la obvia conexin al diseo de redes, los rboles con coste de ruteo
ms pequeo tambin encuentran aplicacin en la construccin de alineamiento
de secuencias mltiples en biologa computacional. Para explicar la aplicacin, se
tiene que realizar primero una breve introduccin al concepto de alineaciones de
mltiples secuencias.

 Mltiples Alineamientos de Secuencias

Los mltiples alineamientos de secuencias son herramientas importantes para


encontrar patrones comunes a conjuntos de secuencias genticas en biologa
computacional. Un mltiple alineamiento de un conjunto de n cadenas implica
insertar huecos en las cadenas y organizar sus caracteres en columnas con n
filas, una de cada cadena. El orden de los caracteres a lo largo de la fila

Pgina 80 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

correspondiente a la cadena si es la misma que en si, posiblemente con algunos


huecos aadidos. Lo siguiente es un ejemplo de un alineamiento de tres cadenas:
TCCGATG, CCGGACG y TCGACG.

T C C G A T G
C C G G A C G
T C G A C G

El propsito de identificar patrones comunes se representa intentando en lo


posible colocar el mismo carcter en cada columna.

El problema de los mltiples alineamientos de secuencias ha sido formalizado


generalmente como un problema de optimizacin en el que una funcin objetivo
explcita es minimizada o maximizada. Una de las funciones objetivo ms
comunes para mltiples alineamientos de secuencias se basa en la
generalizacin del alineamiento de dos secuencias. El problema del alineamiento
de pares se puede definir como encontrar un camino de mnimo cambio de dos
secuencias. Formalmente, dados los costes de insertar, eliminar o sustituir un
carcter del alfabeto por otro, el problema es encontrar un camino de cambios de
una secuencia a otra con coste mnimo. El coste de este camino se conoce como
edit distance. Un alineamiento ptimo de dos secuencias de longitud l se puede
calcular de forma eficaz mediante programacin dinmica en tiempo O(l2). La
generalizacin a mltiples secuencias conduce a la suma de pares objetivo.

La suma de pares (SP) objetivo para mltiple alineamientos es minimizar la suma,


para todos los pares de secuencias, de la distancia entre pares del alineamiento
(donde la distancia de dos secuencias en un alineamiento con l columnas se
obtiene mediante la suma de los costes de los pares de caracteres de las
posiciones 1, , l).

 Algoritmos de Aproximacin mediante rboles de Coste de Ruteo.

El primer algoritmo de aproximacin para el problema del alineamiento de SP fue


desarrollado por Gusfield, con un precisin de 2 2/n donde n es el nmero de
secuencias alineadas. Este fue ligeramente mejorado a 2 3/n por Pevzner. El
algoritmo de aproximacin ms conocido para este problema fue desarrollado por
Bafna, Lawler y Pevzner, que consiguieron una aproximacin de 2r/n para
cualquier valor fijo de r. El tiempo de procesamiento es exponencial en r. Ntese
que este no es un PTAS para este problema, y no se conoce todava un esquema
de aproximacin en tiempo polinomial para el problema de alineamiento SP.

El algoritmo de aproximacin de Gusfield para el problema de alineamiento SP se


basa en una 2-aproximacin para rboles con coste de ruteo mnimo desarrollada

Pgina 81 de 102
RBOLES GENERADORES CON COSTE DE RUTEO MNIMO

por Wong. El algoritmo utiliza una aproximacin tradicional a mltiples


alineaciones guiadas por un rbol de Feng y Doolittle. Dado un rbol generador
sobre el grafo completo de las secuencias a alinear, las mltiples alineaciones
guiadas por rbol se construyen recursivamente como se explica a continuacin.
Primero se elimina una secuencia hoja l del rbol ligada a una secuencia v por
una arista (l,v), y se alinean el resto de las secuencias recursivamente. A
continuacin se inserta de nuevo la secuencia hoja en la alineacin guiada por un
alineamiento ptimo entre el par l y v. Este alineamiento ptimo produce un hueco
en v, insertando el mismo hueco en el alineamiento calculado recursivamente
para el rbol sin la hoja. Dado que el coste de alinear un hueco con otro se asume
que es cero, la alineacin resultante tiene la propiedad de que por cada par
relacionado con una arista de rbol, el coste de la alineacin inducida es igual que
su edit distance. Por la desigualdad triangular de las edit distance, el coste SP
del alineamiento derivado de este rbol generador est limitado superiormente por
el coste de ruteo del rbol.

El algoritmo de 2-aproximacin de Wong, para grafos con distancias mtricas


obedeciendo la desigualdad triangular, cada rbol de caminos mnimos es
isomrfico con una estrella. Adems, es este caso, el anlisis de Wong muestra
que la mejor estrella tiene un coste de ruteo al menos 2 veces el coste total del
grafo mismo. El coste del grafo en este caso es la suma de las edit distance
entre pares secuencias, lo cual es un lmite inferior del coste SP. Por tanto,
Gusfield coment que las alineaciones mltiples derivadas de la mejor estrella
centrada ofrecen una 2-aproximacin al problema de alineacin SP.

 rboles dirigidos por alineamiento SP.

A pesar de la popularidad de los SP-Objetivos, la mayora de los mtodos


actualmente disponibles para encontrar alineaciones utilizan una aproximacin
progresiva basada en la construccin incremental del alineamiento aadiendo
una secuencia cada vez sin rendimiento garantizado en el coste del SP.

El procedimiento Feng-Doolitle puede ser visto como un procedimiento de este


tipo. Las ventajas de tales aproximaciones es su bajo tiempo de ejecucin, pero el
inconveniente es que el orden en el que las secuencias son mezcladas en el
alineamiento, determina su coste.

Al intentar definir un trmino medio entre el SP-objetivo y los mtodos ms


prcticos y progresivos, el mtodo de alineamiento SP basado en rbol se
propuso: Aplicar el procedimiento Feng_Doolitle al mejor rbol generador posible
en el grafo completo sobre las secuencias. Mediante el razonamiento
anteriormente expuesto, el rbol que proporciona el mejor lmite superior sobre el
coste SP del alineamiento es uno con el mnimo coste de ruteo por tanto el PTAS
para rboles de coste de ruteo puede ser til la bsqueda de rboles buenos para
aplicar mtodos de alineacin progresiva tales como el procedimiento FENA-
Doolitle.

Pgina 82 de 102
RBOLES DE STEINER

7 RBOLES DE STEINER

7.1 rbol mnimo de Steiner

Mientras que un rbol generador cubre todos los vrtices de un grafo dado, un
rbol de Steiner cubre un subconjunto de vrtices dados. En el problema del rbol
mnimo de Steiner, los vrtices se dividen en dos partes: terminales y no
terminales. Los terminales sern los vrtices que se deben incluir
obligatoriamente en la solucin. El coste del rbol de Steiner se define como el
peso total de todas las aristas. Un rbol de Steiner puede contener vrtices no
terminales para reducir el coste. Sea V un conjunto de vrtices. En general, se
nos dar un conjunto L V de nodos terminales y una mtrica que defina la
distancia entre dos puntos cualesquiera de V. El objetivo es encontrar un subgrafo
conexo cubriendo todos los vrtices terminales y cuyo coste total sea mnimo. Ya
que las distancias son todas no negativas en la mtrica dada, la solucin tiene
estructura de rbol. Dependiendo de la mtrica dada, hay dos versiones del
problema del rbol de Steiner que pueden ser estudiados:

rbol mnimo de Steiner (SMT): En esta versin, el conjunto de vrtices y


la mtrica se da mediante un grafo finito.

rbol mnimo de Steiner Eucldeo (SMT Eucldeo): En esta versin, V es


el espacio eucldeo entero y por tanto infinito. Normalmente la mtrica que
se utiliza es la distancia eucldea (L2). Dados dos puntos por sus
coordenadas; (x1, y1) y (x2, y2), la distancia eucldea se define de la
siguiente manera:

2
( ( x1 x2 ) + ( y1 - y 2 ) )
2

Figura 1: Ejemplos de rboles mnimos de Steiner

(a) rbol Mnimo de Steiner Eucldeo. (b) Grafo del rbol mnimo de Steiner.

Los puntos negros son vrtices terminales y los blancos vrtices no terminales.

Pgina 83 de 102
RBOLES DE STEINER

En algunas aplicaciones tales como la asignacin de ruta VLSI, se utiliza la


distancia L1, tambin conocida como distancia Manhattan. Esta distancia se
define de la siguiente manera:

| x1 x2 | + | y1 y2 |.

7.1.1 Aproximacin por MST


Sea G = (V, E, w) un grafo no dirigido y cuyas aristas tienen pesos no negativos.

Dado un conjunto L V de nodos terminales, un rbol mnimo de Steiner es un


rbol T G con peso mnimo total entre aristas y tal que T incluye todos los
vrtices de L.

PROBLEMA: Dado un grafo, encontrar un rbol mnimo mediante el


algoritmo de Steiner.

PUNTO DE PARTIDA: Un grafo G=(V, E, w) y un conjunto L V de nodos


terminales.

META: Encontrar un rbol T con L V(T) tal que minimice w(T).

El problema expuesto es un problema NP-completo por lo que no tiene solucin


exacta y se obtendrn resultados que son aproximaciones.

Para aplicar el algoritmo MST-Steiner, primeramente se construir el cierre


transitivo de L, un grafo completo con los vrtices de L y aristas cuyos pesos son
igual a las longitudes del camino mnimo. Posteriormente, se encuentra un MST
sobre el cierre transitivo en el cual cada arista se corresponde con el camino
mnimo en el grafo original. Finalmente el MST se transforma en un rbol de
Steiner reemplazando cada arista por el camino mnimo realizando algn
procesamiento posterior para eliminar los posibles ciclos.

Pgina 84 de 102
RBOLES DE STEINER

Algoritmo MST-STEINER

Entrada: Un grafo G = (V, E, w) y un conjunto de nodos terminales L V.

Salida: Un rbol de Steiner T.

1: Construir el cierre transitivo GL sobre el conjunto de nodos terminales L.

2: Encontrar un MST TL sobre GL.

3: T .

4: Para cada arista e = (u,v) E(TL) hacer

4.1: Encontrar el camino mnimo P desde u hacia v en el grafo G.

4.2: Si P contiene menos de dos vrtices en T, entonces

Aadir P a T;

Si no,

Poner pi y pj como primero y ltimo vrtices que ya estn en T.

Aadir los subcaminos desde u hacia pi y desde pj hacia v en T.

5: Salida T.

Bsicamente, se est reemplazando cada arista en TL por el correspondiente


camino mnimo en el paso 4. Pero si hay dos vrtices que ya estn en el rbol,
aadiendo el camino, se incluiran ciclos. En este caso, solamente se insertan los
subcaminos desde los vrtices terminales que ya estn en el rbol. Esto evita que
se incluyan ciclos en la solucin y nos aseguramos de que los nodos terminales
se incluyen. Como resultado se puede ver que el algoritmo retorna un rbol de
Steiner.

Pgina 85 de 102
RBOLES DE STEINER

Ejemplo 1:

Figura 2: Ejemplo de ejecucin del algoritmo MST-STEINER

v1 8 v2 v 4 v2
8
2 2 2 u4 1 7
u2 6
u3 9 u1 1 7 8 6 5
5 5
8 4 3 8 9
v3
v4 v5 8 v5
v3 8 v4 8

(a) (b)

v 4 v2
v1
1 7 u1
6 2
5 1 u2

v3 3
v5 v4
v4

(c) (d)

v2
v1 2 5
v2 v5
v1 2 2
u1 1 u2
2
u1 1 u2
4
3
4 3 v3 v4
v3 v4

(e) (f)

Pgina 86 de 102
RBOLES DE STEINER

Figura 3:

1 1
2 2 1 1 2 2
1 1
1 1 1
2 1 1 2 1 2 2
2 2 1 1 2 2

(a) (b) (c)

3(a) Grafo en el que el vrtice blanco es no Terminal y el resto son


terminales.

3(b) Un rbol mnimo de Steiner.

3(c) Un rbol Generador mnimo del subgrafo generado con nodos


terminales.

La figura 2 muestra un ejemplo de ejecucin del algoritmo de MST-Steiner. (a) es


un grafo dado G en el que L = {vi | 1 i 5} es un conjunto de nodos terminales y
ui, 1 i 4 son vrtices no terminales. (b) y (c) son el cierre transitivo GL y un
mnimo rbol generador TL sobre GL, respectivamente. Inicialmente T est vaco.
Supongamos que la arista (v1, v4) E(TL) es la primera arista que elegimos. El
correspondiente camino mnimo en G es (v1, u1, u2, v4). Ya que todos los vrtices
sobre camino no estn en T, el camino entero se incluye en T (vista (d)). En la
segunda iteracin, se elige la arista (v2, v3) E(TL). El correspondiente camino
mnimo es (v2, u1, u2, v3). Sin embargo, u1 y u2 ya estn en T. Por lo tanto, slo
(v2, u1) y (u2, v3) se insertaran (vista (e)). En la tercera iteracin, se elige la arista
(v2, v5) y la arista (v2, v5) se inserta (vista (f)). Finalmente, el ltimo arista en TL es
(v1, v2). Ya que ambos, v1 y v2 ya estn en T, la arista no se inserta, y el rbol de
la vista (f) es el rbol resultado de aplicar el algoritmo.

Ahora estaramos interesados en cunto de bueno es el rbol que hemos dado


como salida del algoritmo. Sea GL = (L, E(GL), w ). Primeramente observamos
que w(T) w (TL) ya que al menos todos los caminos mnimos se han insertado.
Queremos comparar TL con un rbol mnimo de Steiner. Sea smt(G, L) un rbol
mnimo de Steiner. Se considera un recorrido Euleriano X sobre el rbol no

Pgina 87 de 102
RBOLES DE STEINER

dirigido. Ya que el camino atraviesa cada arista exactamente dos veces, w(X) =
2w(smt(G, L)). Por otro lado, ya que el camino visita todos los nodos terminales,
se tiene lo siguiente:

w(X) w(tsp(GL)) w(TL),

en el que tsp(GL) es un ciclo Hamiltoniano mnimo sobre GL, una solucin ptima
del problema del viajante. Por consecuencia, se tiene:

w(T) w(TL) 2w(smt(G, L)).

En la figura 3 se puede ver un ejemplo extremo en el que se supone que hay k


nodos Terminales y un nodo no Terminal. Los nodos Terminales forman un ciclo
con w(e) = 2 para cada arista e en el ciclo. Los vrtices no terminales se conectan
a cada nodo Terminal mediante una arista de longitud 1. El rbol mnimo de
Steiner es la estrella centrada en el nodo no Terminal y tiene peso k. Mientras que
un MST es el camino que consiste en los nodos terminales y tiene peso 2(k-1).
Por lo tanto el radio es: (2-2/k).

La complejidad del algoritmo es del orden: O(|V| |L|2), controlado por la


construccin del cierre transitivo. Resumiendo, se tiene el siguiente teorema:

Teorema 1:

El algoritmo MST-STEINER encuentra una 2-aproximacin de un SMT de un


grafo general en tiempo O(|V| |L|2), donde V es el conjunto de vrtices y L es el
conjunto de vrtices terminales. Adems, el radio es asintticamente ajustado.

Se define el radio de Steiner como:

= w(mst(GL)) / w(smt(G, L)).

Este teorema demuestra que el radio de Steiner con la mtrica general es 2. Ya


que el espacio Eucldeo es una versin restringida de la mtrica general, por lo
que no sorprende que el radio de Steiner con la mtrica Eucldea sea ms
pequeo que con la mtrica general. De hecho, se demuestra que el radio es 2
/ 3.

7.1.2 Algoritmo de Aproximacin propuesto por Alexander Zelikovsky

El algoritmo MST-Steiner aproxima un MST sin ayuda de vrtices no terminales.


El algoritmo propuesto por Zelikovsky, que utiliza los vrtices de Steiner, garantiza
una mejor aproximacin que la obtenida por Steiner.

Se F un grafo con pesos. Mediante F \ e se denotar el grafo resultante de


contraer la arista e, por ejemplo, reduciendo su longitud a 0. Una tripleta es una 3-

Pgina 88 de 102
RBOLES DE STEINER

tupla (u1, u2, u3) de vrtices terminales. Para una tripleta z = (u1, u2, u3), se define
F \ z como el grafo resultante al contraer las aristas (u1, u2) y (u2, u3). En otras
palabras, F \ z se obtiene contrayendo los tres vrtices terminales a un punto.
Supongamos que x es un vrtice de Steiner y (x)= w(x, u1) + w(x, u2) + w(x, u3)
es la distancia total desde x a los tres vrtices terminales. Se puede tener un rbol
de Steiner mediante la combinacin de un MST al contraer el grafo F \ z con la
estrella centrada en x y expandiendo los tres vrtices terminales. El coste es dado
por w(mst(G \ z)) + (x). Sea

Ganancia(z) = w(mst(F)) (w(mst(F \ z)) + (x)).

Si Ganancia(z) > 0, claramente podemos tener un mejor rbol de Steiner. El


algoritmo repetidamente contrae la tripleta de mayor ganancia hasta que no
existan tripletas con ganancia positiva. El rbol de Steiner resultante se realiza
mediante un MST aplicado a los vrtices terminales y los vrtices de Steiner
utilizados para contraer las tripletas. El algoritmo en detalle sera el siguiente:

Algoritmo de ZELIKOVSKY-STEINER

Entrada: Un grafo G = (V, E, w) y un conjunto de nodos terminales L V.

Salida: Un rbol de Steiner T.

1: F GL; W ;

2: Para cada tripleta z hacer

Encontrar un vrtice zmin que minimice vz w(v, zmin)

Asignar (z) vz w(v, zmin) ;

3: Repetir siempre

Encontrar una tripleta z que maximice

Ganancia(z) = w(mst(F)) w(mst(F \ z)) - (z);

Si Ganancia(z) 0, entonces ir al paso 4

FF\z

Insertar zmin en W;

4: Encontrar T = mst(G L W) y salida T.

Pgina 89 de 102
RBOLES DE STEINER

Ejemplo 2:

Figura 4: Ejemplo de ejecucin del algoritmo de ZELIKOVSKY-STEINER.

v1 6 v2 v1 6 v2
8 1 9
1
u1 3 3
4 9 u2 4
3 2 4

v3 v4 v4
v3
5 5

(a) (b)

v1, v2, v3 v1 v1 v2
4 1
v2, v3, v4 4 u
3 3 2
v4
v3 v4

(c) (d) (e)

La figura 4(a) es el grafo G de entrada, en el que L = {v1, v2, v3, v4} es conjunto de
vrtices terminales, y u1 y u2 son vrtices no terminales. La figura 4(b) es el cierre
transitivo GL. Se puede ver que el peso total de las aristas del rbol generador
mnimo es 11. En este ejemplo, hay solamente dos tripletas z1 = (v1, v2, v3) y z2 =
(v2, v3, v4) con valores finitos . Para cualquier otra tripleta, por ejemplo (v1, v2, v4),
no hay un vrtice adyacente de Steiner a todos los tres vrtices de la tripleta. Por
tanto, (v1, v2, v4) = , y podemos ignorarlo. Para z1, tenemos zmin = u1 y

( z1)= w(u1, v1) + w(u1, v2) + w(u1, v3) = 18

De forma similar para z2, zmin = u2 y ( z-2) = 6.

El grafo resultante al contraer por z1 y z2 se muestran en las figuras 4(c) y 4(d)


respectivamente.

Pgina 90 de 102
RBOLES DE STEINER

Tenemos que las ganancias seran:

Ganancia(z1) = w(mst(F)) w(mst(F \ z1)) - (z1) = 11 3 18 = -11,

Ganancia(z2) = w(mst(F)) w(mst(F \ z2)) - (z2) = 11 4 6 = 2,

Dado que Ganancia(z2) > Ganancia(z1), se elige z2 y u2 se inserta en W. Despus


de que se contrae z2, el grafo resultante contiene solamente dos vrtices y el
algoritmo pasa al paso 4. Finalmente se construye un rbol generador mnimo
para el cierre transitivo sobre el conjunto de vrtices L {v2} y la salida resultante
de aplicar el algoritmo se obtiene en la figura 4(e).

Teorema 2

Sea un grafo G = (V, E, w) y un conjunto de nodos terminales L, un rbol mnimo


de Steiner se puede aproximar con radio 11/6 en tiempo O(|V| |E| + |L|4).

El factor de aproximacin en el teorema se demuestra - de manera resumida - en


dos partes. Primeramente se demuestra que existe un conjunto de tripletas tal que
el rbol de Steiner obtenido por contraccin de las tripletas tiene un coste dentro
de un factor de 5/3 del ptimo. Es decir;

w(T1) 5/3 w(smt(G, L))

En el que T1 es el rbol de Steiner con contraccin ptima sobre las tripletas.

Por otro lado, la ganancia total de una secuencia de contraccin voraz como en el
algoritmo es al menos la mitad de cualquier conjunto de tripletas, por tanto;

w(mst(GL)) - w(T2) 1/2 ( w(mst(GL)) - w(T1) ),

En el que T2 es el rbol que se obtiene mediante una secuencia de contracciones


voraces. Por el lema 2 se tiene lo siguiente :

w(T2) 1/2 ( w(mst(GL)) + w(T1) ).

Ya que w(mst(GL)) 2 w(smt(G, L)) y w(T1) 5/3 w(smt(G, L)), por el teorema 1
se obtiene lo siguiente :

w(T2) 1/2 ( 2w(smt(G, L)) + 5/3 w(smt(G, L)) ) 11/6 w(smt(G, L)).

Pgina 91 de 102
RBOLES DE STEINER

7.2 RBOLES y DIMETROS

7.2.1 Excentricidades, dimetros y radios

Figura 5: Dimetros, centros y radios de Grafos con pesos y sin pesos.

V1 V2 x

4
6
y
5 2

2 1
2
2

7
4
V3 V4 3

(a) Grafo sin Pesos (b) Grafo con Pesos

Sea G = (V, E, w) un grafo y U V. Mediante DG(v, U), se denota la mxima


distancia desde el vrtice v a cualquier vrtice U. Para un vrtice v, la
excentricidad de v es la mxima distancia a cualquier vrtice en el grafo. Por
ejemplo, max u V { dG(v, u) } o DG(v, V). El dimetro de un grafo es la mxima de
las excentricidades de cualquier vrtice del grafo. En otras palabras, el dimetro
es la distancia ms larga entre cualquier par de vrtices en el grafo. Recordando
que la longitud entre dos vrtices es la longitud del camino mnimo entre ambos
en el grafo. (No hay que confundirlo con la longitud del camino ms largo en el
grafo).

El radio de un grafo es la mnima excentricidad entre todos los vrtices en el


grafo y el centro de un grafo es un vrtice con excentricidad igual al radio. Para
un grafo genrico, pueden haber varios centros y el centro no tiene porque estar
necesariamente sobre el dimetro. Por ejemplo, en la figura 5(a), el camino
mnimo entre v1 y v4 es un dimetro de longitud 6. Mientras tanto, v2 y v3 son
puntos finales de otro dimetro. Los cuatros vrtices representados por crculos
blancos son centros del grafo y el radio es 4. Ntese que los centros no estn en
ningn dimetro. El dimetro, radio y centro de un grafo se puede encontrar
computando las distancias entre todos los pares de vrtices. Este cmputo es del
orden de O(|V| |E| + |V|2 log |V| ) para un grafo genrico.

Pgina 92 de 102
RBOLES DE STEINER

Cualquier par de vrtices tiene un nico camino simple en un rbol. Por esta
razn, los dimetros, radios y centros de un rbol estn relacionados. Para un
rbol sin pesos T = (V, E), se puede fcilmente demostrar que :

2 radio 1 dimetro 2 radio

Para un rbol con pesos positivos T = (V, E, w), se tiene lo siguiente :

2 radio max {w(e)} dimetro 2 radio


e

La figura 5(b) ilustra un ejemplo de dimetro, radio y centro de un rbol. Los dos
vrtices representados por crculos blancos son los centros del rbol. Hay cuatro
dimetros de longitud 16 en el rbol. Los vrtices x e y son los puntos finales de
un dimetro. El radio es 9 y los centros estn sobre los dimetros.

Si el grafo fuera un rbol, hay algoritmos ms eficientes para calcular el dimetro,


radios y centros.

Sea T = (V, E, w) un rbol con raiz en un vrtice. Por Tr se denota el subrbol con
raz el vrtice r V, el cual es el subgrafo inducido sobre el vrtice r y todos sus
descendientes. Sea child(r) el conjunto de descendientes de v. La excentricidad
de la raiz de un rbol se puede computar mediante la siguiente relacin de
recurrencia :

DTr (r, V(Tr)) = max { DTs (s, V(Ts)) + w(r, s)}


schild (r )

Mediante un algoritmo recursivo o un algoritmo que visite los vrtices en


postorden, la excentricidad se puede computar en tiempo lineal ya que cada
vrtice se visita una vez. Para aclarar sto, se propone el siguiente algoritmo
recursivo ;

7.2.2 Algoritmo: EXCENTRICIDAD(Tr)


Entrada: Un rbol T = (V, E, w) con raz r.

Salida: La excentricidad de r en Tr.

1: Si r es una hoja entonces

Devolver 0 ;

2: Para cada hijo s de r hacer

Computar EXCENTRICIDAD(Ts) recursivamente ;

3: Devolver maxs child(r) {EXCENTRICIDAD(s) + w(r, s)}.

Pgina 93 de 102
RBOLES DE STEINER

Para encontrar la excentricidad de un vrtice en un rbol sin raz, se puede poner


la raz en un vrtice y utilizar el lgoritmo de la EXCENTRICIDAD. Por lo tanto, se
tiene el siguiente lema :

Lema 1

La excentricidad de un vrtice en un rbol puede ser computada en tiempo lineal.

Sean x, y, z tres vrtices en un rbol T. Fcilmente se puede verificar que los tres
caminos SPT (x,y), SPT (x,z), SPT (y,z) intersectan en un vrtice. Se define c(x, y,
z) como el vrtice interseccin. Tenemos lo siguiente:

dT (x, c(x, y, z)) = 1/2 ( dT (x, y) + dT (x, z) - dT (y, z) )

o lo que es equivalente:

dT (x, c(x, y, z)) = 1/2 ( dT (x, y) + dT (x, z) + dT (y, z) ) - dT (y, z)

Ahora se derivarn algunas propiedades que nos ayudarn a encontrar el


dimetro de un rbol.

Propiedad 1

Supongamos que SPT (v1,v2) es un dimetro de T y r es un vrtice sobre el


dimetro.

Para cualquier vrtice x, dT (x, r) max { dT (r, v1), dT (r, v2) }

Lema 2

Sea r un vrtice cualquiera sobre el rbol T. Si v es el vrtice ms lejano a r, la


excentricidad de v es el dimetro de T.

El algoritmo siguiente se utiliza para encontrar el dimetro de un rbol:

7.2.3 Algoritmo DIMETRO DE UN ARBOL

Entrada: Un rbol T = (V, E, w)

Salida: El dimetro de T.

1: Tomar como origen o raz de T un vrtice cualquiera r.

2: Usar la EXCENTRICIDAD para encontrar el vrtice v ms lejano a r.

Pgina 94 de 102
RBOLES DE STEINER

3: Tomar como origen v en T.

4: Usar la EXCENTRICIDAD para encontrar la excentricidad de v.

5: La salida de la excentricidad de v es el dimetro de T.

Ejemplo:

Figura 6:

T1 T2 v1 v2
u1
v1
u1 u2 v2

u2
v3
v4

(a) Encontrar un centro en un dimetro (b) Dos dimetros no


pueden ser disjuntos

Es obvio que este algoritmo se ejecuta en tiempo lineal. El radio y el centro se


pueden obtener a partir del dimetro. Supongamos que P = SPT(v1, v2) es un
dimetro. Se empieza por v1 y viajando a travs del camino P, se puede computar
la distancia dT(u, v1) para cada vrtice u del camino. Sea u1 el ltimo vrtice
encontrado tal que dT (v1, u1) w(P) y u2 es el siguiente vrtice a u1 (Figura
6(a)). Por definicin de u1, u2 es el primer vrtice encontrado tal que dT (v1, u2) >
w(P). Se puede afirmar que u1 o u2 son centros del rbol. Sea P1 = SPT (v1, u1) y
P2 = SPT (u2, v2). Primero, por la propiedad 1, las excentricidades de u1 y u2 son:
dT (u1, v2) y dT (u2, v1) respectivamente. De otra manera P no puede ser un
dimetro. Para cualquier vrtice x conectado a P por un vrtice de P1, se tiene
que dT (x, v2) > dT (u1, v2). Similarmente, para cualquier vrtice x conectado a P
mediante un vrtice de P2, se tiene que dT (x, v1) > dT (u2, v1). Por consecuencia,
la excentricidad de cualquier vrtice es al menos, min{ dT (u1, v2), dT (u2, v1) }, y u1
o u2 pueden ser un centro. Por tanto, el centro al igual que el radio de un rbol
puede ser determinado en tiempo lineal ya que el dimetro se calcula en tiempo
lineal.

Pgina 95 de 102
RBOLES DE STEINER

Teorema 3

El dimetro, radio y centro de un rbol pueden ser calculados en tiempo lineal.

rbol generador de dimetro mnimo

Dado un grafo G = (V, E, w), un rbol generador de mnimo dimetro de G


(MDST) es el rbol generador con el menor dimetro de entre todos los rboles
generadores posibles.

Al borrar aristas de un grafo, habitualmente se incrementa el dimetro del grafo.


En general, no se puede esperar encontrar un rbol generador con el mismo
dimetro que el grafo sealado en negrita. Por ejemplo, se considera un grafo
completo sin peso. Hay un nico dimetro en el grafo, mientras que el mnimo
dimetro para cualquier rbol generador son dos.

Ahora se van a examinar algunas propiedades de los dimetros de un rbol. Se


asume que todas las aristas tienen longitud positiva.

Propiedad 2

Dos dimetros de un rbol no pueden ser disjuntos.

Propiedad 3

Todos los dimetros de un rbol comparten al menos un vrtice comn.

Lema 3

Si el dimetro es exactamente dos veces el radio de un MDST de un grafo G,


cualquier rbol de caminos mnimos que cuya raz sea el centro de un MDST es
tambin un MDST.

Se empezar por un caso sencillo donde G es un grafo con pesos, por ejemplo,
cualquier grafo en el espacio Eucldeo. Para todos los vrtices de V(T1), se
construir una estrella centrada en u1. Similarmente se construir una estrella
centrada en u2 para todos los vrtices de V(T2). Sea X el rbol que contiene las
dos estrellas y la arista (u1, u2). Obviamente, el dimetro de X es el mismo que el
dimetro de T, y X es tambin un MDST de G.

Pgina 96 de 102
RBOLES DE STEINER

Lema 4

Dado un grafo con pesos, existe un MDST con una arista (u1, u2) tal que, para
cualquier otro vrtice v, o (u1, v) o (u2, v) estn en el rbol.

Nos podemos dar cuenta que simplemente al conectar todos los vrtices a u1 , no
nos proporcionan siempre un MDST. Es posible que existan dos vrtices v3 y v4
en T2 tal que d(v3, u1) + d(v4, u1) sea mas largo que el dimetro de T. Ahora
consideremos el caso donde G es un grafo general. De hecho, se obtiene un
resultado similar para grafos generales. La dificultad de demostrar la propiedad es
que un par de vrtices pueden no ser adyacentes y una arista puede tener mayor
longitud que el camino mnimo entre dos puntos terminales.

Se parte en dos el conjunto de vrtices V: V1 y V2, donde:

V1 = {v| d(v, u1) - d(v, u2) d(v1, u1) - d(v2, u2)}.

Para cualquier vrtice v V1 , se puede afirmar que el camino mnimo desde v a


u1 contiene solamente vrtices de V1. Sea u V(SPG(v, u1)). Si u V2 , se tiene:

d(u, u1) - d(u, u2) > d(v1, u1) - d(v2, u2),

( d(v, u) + d(u, u1) ) - ( d(v, u) + d(u, u2) ) > d(v1, u1) - d(v2, u2),

d(v, u1) - d(v, u2) > d(v1, u1) - d(v2, u2)

ya que d(v, u2) d(v, u) + d(u, u2). De forma similar, para cualquier vrtice en V2,
el camino mnimo a u2 contiene solamente vrtices de V2. Por lo tanto, existe un
rbol generador X en el que el camino desde u1 (y u2) a cualquier vrtice de V1 (y
V2, respectivamente) es un camino mnimo. Esto es obvio ya que el dimetro de X
es el mismo que el dimetro de T.

Lema 5

Dado un grafo G = (V, E, w). Existe un rbol generador de dimetro mnimo T con
una arista (u1, u2) E(T), tal que dT (v, u1) = d(v, u1) o dT (v, u2) = d(v, u2) para
cualquier vrtice v V.

El lema 5 proporciona un mtodo para construir un MDST de un grafo dado. Sea


DG(v, U) que indica max uU dG(v,u) para un vrtice v y un vrtice del conjunto U
en el grafo G. Para cada arista (u1, u2), se encuentra una biparticin (V1, V2) del
conjunto de vrtices tal que DG(u1, V1) + DG(u2, V2) es minimizado por:

d(v1, u1) - d(v1, u2) d(v2, u1) - d(v2, u2)

para cualquier vrtice v1 V1 y v2 V2. El dimetro del rbol correspondiente a


la arista (u1, u2) es w(u1, u2) + DG (u1, V1) + DG (u2, V2), y se puede encontrar un
MDST probando con todas las aristas y eligiendo el mejor.

Pgina 97 de 102
RBOLES DE STEINER

7.2.4 Algoritmo MSDT


Entrada: Un grafo G = (V, E, w)

Salida: Un rbol generador T de dimetro mnimo.

1: Computar la longitud del camino mnimo para cada par de vrtices.

2: .

3: Para cada arista (u1, u2) E hacer

4: (v) d(v, u1) - d(v, u2) para cada v V.

5: Ordenar y volver a etiquetar los vrtices de forma que ( vi) ( vi+1).

6: Para cada i, ( vi) < ( vi+1), hacer

7: V1 = {vj | j i}; V2 = {vj | j > i}

8: Si DG (u1, V1) + DG (u2, V2) + w (u1, u2) <

9: DG (u1, V1) + DG (u2, V2) + w (u1, u2)

10: (vi); (x, y) (u1, u2);

11: Reconstruir V1 y V2 a partir de (x,y) y .

12: Encontrar un rbol T1 con el camino mnimo que empiece en x y cubra V1.

13: Encontrar un rbol T2 con el camino mnimo que empiece en y y cubra V2.

14: Salida: T = T1 T2 {(x, y)}.

Teorema 4

Dado un grafo G = (V, E, w), un rbol generador de dimetro mnimo de G puede


ser computado en tiempo O(|E| |V| log|V|).

El 1-Centro Absoluto

El centro de un grafo es el vrtice cuya excentricidad es igual al radio. El 1-centro


absoluto es un concepto similar pero puede ser cualquier punto del grafo. A
diferencia del modelo de grafo normalmente utilizado, se consideran como nodos
del grafo cualquier nodo interior junto los nodos que son extremos de una arista.

Pgina 98 de 102
RBOLES DE STEINER

Sea G = (V, E, w) y A(G) denota el conjunto de puntos de las aristas de G. La


longitud de la arista induce a una funcin de distancia sobre A(G). Nosotros
reutilizaremos la notacin d(x, y) para la distancia entre dos puntos x e y en A(G).
El 1-centro absoluto de G es el punto x que minimiza la funcin:

f (x) = max d(x, v).


vV

Para un grafo general, puede haber varios 1-centro absolutos. Sin embargo, para
un rbol, el 1-centro absoluto es nico. La razn es que todos los dimetros de un
rbol no pueden ser disjuntos (Propiedad 2). Adems, el dimetro de un rbol es
exactamente dos veces la excentricidad del 1-centro absoluto. El 1-centro
absoluto de un grafo define un rbol generador de dimetro mnimo.

Teorema 5

Sea x un 1-centro de un grafo G = (V, E, w). Cualquier rbol de caminos mnimos


que empiece en x es un rbol generador de dimetro mnimo de G.

Demostracin:

Sea (H) el dimetro de un grafo H. Sea T cualquier rbol generador sobre G y u


el 1-centro absoluto de T. Tenemos lo siguiente:

(T) = 2 DT (u, V).

Asumiendo que Y es cualquier rbol de camino mnimo que empieza en x, un 1-


centro absoluto de G. Lo que implica que x es el punto medio de cada dimetro de
Y. Por tanto,

(Y) = 2 DY (x, V)

= 2 DG (x, V)

2 DG (u, V)

2 DT (u, V)

= (T)

Es decir, el dimetro de Y es menor o igual que el dimetro de cualquier rbol


generador. Se concluye, por tanto, que cualquier rbol de camino mnimo que
empiece en un 1-centro absoluto de un grafo es un rbol generador de dimetro
mnimo.

Pgina 99 de 102
RBOLES DE STEINER

El algoritmo ms eficiente para encontrar un 1-centro absoluto de un grafo tiene


tiempo de computacin del orden de O(|V| |E| + |V|2 log |V|). Tenemos el siguiente
corolario:

Corolario 1:

Dado un grafo G = (V, E, w), se puede encontrar un rbol generador de dimetro


mnimo sobre G en un tiempo del orden de O(|V| |E| + |V|2 log |V|).

Pgina 100 de 102


CONCLUSIONES

8 CONCLUSIONES

Tras la lectura de las dos partes del proyecto se puede observar que se ha
cumplido el objetivo inicial, que como sabemos consista en la recopilacin de los
algoritmos ms importantes para encontrar rboles generadores mnimos y con
un fin acadmico. Esto se ha conseguido gracias a los siguientes puntos:

1. En una primera parte se expone de manera clara, concisa y detallada los


principios de generacin de caminos mnimos sobre rboles, los algoritmos
ms importantes que se utilizan para encontrarlos y sus aplicaciones
prcticas, para que el lector disponga en todo momento de una gua de
referencia sobre el tema que estamos tratando.

A lo largo de la exposicin se ha pretendido explicar todos los conceptos


necesarios para la comprensin del texto, sin embargo, algunos conocimientos se
presuponen al lector, bien porque pertenecen a otra materia, bien porque se
consideran conocidos por aquel que pueda estar interesado en este tema.

2. Se ha desarrollado una aplicacin con una interfaz amigable para que el


usuario pueda en todo momento seguir la ejecucin, permitindole para
cada ejemplo poder aplicar los distintos algoritmos implementados y ver
as las diferencias existentes entre ellos.

En todo momento el usuario puede consultar la ayuda disponible en el men por


si le surge cualquier duda de carcter terico o sobre el manejo de la aplicacin.

Pgina 101 de 102


BIBLIOGRAFIA

9 BIBLIOGRAFIA

 Bang Ye Wu and Ku-Mao Chao. Spanning Trees and Optimization


Problems. Chapman & Hall /CRC (2004). Captulos 2, 3, 4 y 7.

 Dieter Jungnickel. Graphs, Networks, and Algorithms. Springer (2008), 3


Edicin. Pginas: 98-125.

 Sixto Ros Insua. Investigacin Operativa Optimizacin. Centro de


Estudios Ramn Areces, S.A (1998). Pginas: 224-229 y 263-265.

Informacin en Internet

 Sobre el compendio de algoritmos NP-Completos:


http://www.nada.kth.se/~viggo/wwwcompendium/

 Definicin de algoritmo PTAS o esquema de aproximacin en tiempo


polinomial:
http://en.wikipedia.org/wiki/Polynomial-time_approximation_scheme

 Sobre lista de complejidades:


http://weblog.fortnow.com/2002/08/great-books-computers-and.html

 Explicacin del algoritmo de Warshall Floyd:


http://es.wikipedia.org/wiki/Algoritmo_de_Floyd-Warshall

 Sobre principales algoritmos sobre grafos:

http://imp.act.uji.es:8080/algoritmica/repo/Tocho3

Pgina 102 de 102

S-ar putea să vă placă și