Você está na página 1de 76

UNIVERSIDAD SIMN BOLVAR

DECANATO DE ESTUDIOS PROFESIONALES


COORDINACIN DE MATEMTICAS

CADENAS DE NACIMIENTO Y MUERTE EN ARBOLES FINITOS

Por:
Daniel Adolfo Quiroz Brito

PROYECTO DE GRADO
Presentado ante la Ilustre Universidad Simn Bolvar
como requisito parcial para optar al ttulo de
Licenciado en Matemticas

Sartenejas, Marzo de 2012


UNIVERSIDAD SIMN BOLVAR
DECANATO DE ESTUDIOS PROFESIONALES
COORDINACIN DE MATEMTICAS

CADENAS DE NACIMIENTO Y MUERTE EN ARBOLES FINITOS

Por:
Daniel Adolfo Quiroz Brito

Realizado con la asesora de:


Jos Luis Palacios

PROYECTO DE GRADO
Presentado ante la Ilustre Universidad Simn Bolvar
como requisito parcial para optar al ttulo de
Licenciado en Matemticas

Sartenejas, Marzo de 2012


RESUMEN

Se prueba que cualquier cadena de nacimiento y muerte ergdica en un rbol finito se


puede representar como un paseo aleatorio en dicho rbol, dotado de conductancias apropiadas.
Para esto se presenta un algoritmo que halla dichas conductancias. Luego, usando el mtodo de
redes elctricas, se encuentran la distribucin estacionaria de dicha cadena y el tiempo de llegada
entre dos vrtices cualquiera de rbol. Se demuestra que, a diferencia de los mtodos clsicos, los
mtodos aqu propuestos hallan la distribucin estacionaria y un tiempo de llegada en forma
lineal en el nmero de vrtices y que no presentan inestabilidad numrica.

iv
AGRADECIMIENTOS

A mi familia (incluyendo a Danny, Csar y Mam Ynes).

A mi tutor.

A mis amigos y profesores.

A manera de esbozo, gracias por la confianza, la paciencia y el cario.

A Dios, la Virgen Mara y Santo Toms de Aquino.

v
NDICE GENERAL

RESUMEN iv

AGRADECIMIENTOS v

NDICE DE TABLAS viii

NDICE DE FIGURAS ix

LISTA DE SMBOLOS x

Smbolos castellanos x

Notacin simblica xi

INTRODUCCIN 1

Objetivo General 1

Objetivos Especficos 1

CAPTULO 1 MARCO TERICO 3

1.1 Teora de Grafos 3

1.2 Cadenas de Markov 4

1.4 Distribucin estacionaria 7

1.5 Tiempos de llegada en rboles 8

1.6 El mtodo de redes elctricas 9

CAPTULO 2 MARCO METODOLGICO 12

2.1 Algoritmo para la asignacin de conductancias: 14

2.2 Obtencin de la distribucin estacionaria y los tiempos de llegada: 18

2.3 Detalles de la implementacin del algoritmo para asignacin de conductancias: 21

2.4 Detalles sobre la implementacin del algoritmo de obtencin de un tiempo de llegada 31

2.5 Linealidad de las implementaciones de los algoritmos 41

CAPTULO 3 RESULTADOS Y ANLISIS 43

3.1 Sobre la precisin en el clculo de la distribucin estacionaria: 44


vi
3.2 Sobre la precisin del clculo de los tiempos de llegada: 46

3.3 Sobre la linealidad experimental: 52

3.4 Sobre la distribucin del valor de las conductancias a distancia fija de la hoja inicial: 54

CONCLUSIONES Y RECOMENDACIONES 62

REFERENCIAS BIBLIOGRFICAS 64

vii
NDICE DE TABLAS

Tabla 3.1: Error relativo mximo en el clculo de la distribucin estacionaria. ........................... 45


Tabla 3.2: Tiempos de llegada en Figura 1.1 ................................................................................ 46
Tabla 3.3: Tiempos de llegada va mtodo propuesto, para n = 20. ............................................. 47
Tabla 3.4: Tiempos de llegada va mtodo clsico, para n = 20................................................... 48
Tabla 3.5: Tiempos de llegada va mtodo propuesto, para n = 100. ........................................... 48
Tabla 3.6: Tiempos de llegada va mtodo clsico, para n = 100................................................. 49
Tabla 3.7: Tiempos de llegada va mtodo propuesto, para n = 500. ........................................... 50
Tabla 3.8: Tiempos de llegada va mtodo clsico, para n = 500................................................. 50
Tabla 3.9: Tiempos de corrida conductancias + tiempos de llegada ............................................. 52

viii
NDICE DE FIGURAS

Figura 1.1: Ejemplo de cadena de nacimiento y muerte en un rbol............................................... 7


Figura 2.1: Ejemplo de cadena de nacimiento y muerte en un grafo estrella, con N = 4. ............ 13
Figura 2.2: Conductancias asignadas a la cadena de la Figura 1.1, comenzando en la hoja 1. ..... 16
Figura 2.3: Conductancias asignadas a la cadena de la Figura 1.1, comenzando en la hoja 5. ..... 16
Figura 3.1: Linealidad experimental .............................................................................................. 53
Figura 3.2: Histograma Ejemplo 1 ................................................................................................ 55
Figura 3.3: Histograma Ejemplo 1. Datos menores a 10000. ........................................................ 56
Figura 3.4: Histograma Ejemplo 1. Datos menores a 1000. .......................................................... 57
Figura 3.5: Histograma Ejemplo 1. Datos menores a 100. ............................................................ 57
Figura 3.6: Histograma Ejemplo 2 ................................................................................................ 59
Figura 3.7: Histograma Ejemplo 2. Datos menores a 5 E+11 ....................................................... 59
Figura 3.8: Histograma Ejemplo 2. Datos menores a 5 E+07 ....................................................... 60
Figura 3.9: Histograma Ejemplo 2. Datos menores a 5 E+06 ....................................................... 60
Figura 3.10: Histograma Ejemplo 2. Datos menores a 200. .......................................................... 61
Figura 3.11: Histograma Ejemplo 2. Datos menores a 50. ............................................................ 61

ix
LISTA DE SMBOLOS

Smbolos castellanos

ai Probabilidad de que el estado inicial sea i.

Cx Siendo x un vrtice en el camino entre los vrtices b y c, representa la suma de las


C(i) para i en la componente conexa que se genera al quitar los lados de x que lo
unen al camino.

C(i) Suma de las conductancias incidentes en el vrtices i.

Ci Conductancia i-sima.

Cij Conductancia entre el vrtice i y el vrtice j.

d(u) Grado del vrtice u.

E(G) Conjunto de lados del grafo G.

EiTj Tiempo de llegada partiendo de i de llegar a j.

Gx Siendo x un vrtice en el camino entre los vrtices b y c, representa la componente


conexa que se genera al quitar los lados de x que lo unen al camino

M(i,j) Elemento en la fila i y la columna j de la matriz M.

P(X | Y) Probabilidad del evento X dado el evento Y.

pij Probabilidad de transicin del estado i al estado j.

Probabilidad de transicin del estado i al estado j en exactamente k pasos.

Rij Resistencia efectiva entre los vrtices i y j.

rij Resistencia entre los vrtices i y j.

V(G) Conjunto de vrtices del grafo G.

Vect(i) Elemento i-simo del vector Vect

x
Notacin simblica

Pertenece a.

Contenido en.

j k j es vecino de k.

xi
1

INTRODUCCIN

Dos elementos que aportan informacin relevante sobre una cadena de nacimiento y muerte
determinada, son su distribucin estacionaria y los tiempos de llegada entre sus estados. Para las
cadenas de nacimiento y muerte ergdicas en rboles, cadenas en las que se centra este trabajo, la
distribucin estacionaria es nica y representa el conjunto de las probabilidades de estar en cada
estado una vez que el proceso se ha estabilizado y ha perdido la influencia de la distribucin
inicial. Por su parte, el tiempo de llegada entre los estados i y j, representa la esperanza del
nmero de transiciones en las cuales se llega al estado j si se parte del estado i.

El mtodo de redes elctricas, que ha crecido en relevancia desde la aparicin del libro de
Doyle y Snell (1984), ha permitido el desarrollo de frmulas compactas para el clculo de la
distribucin estacionaria y de los tiempos de llegada en paseos aleatorios en rboles. Adems,
aportes como el de Palacios y Tetali (1996), han demostrado la posibilidad de representar
procesos de nacimiento y muerte en ciertos rboles como paseos aleatorios en dichos rboles,
mediante la asignacin apropiada de conductancias entre los vrtices. Esto ha permitido la
aplicacin de las mencionadas frmulas a los procesos en estos rboles, simplificando la
obtencin de la distribucin estacionaria y de los tiempos de llegada, que de otro modo
necesitaran para su obtencin el uso de algoritmos de complejidad ms que cuadrtica en el
nmero de vrtices.

Objetivo General
El objetivo general de este trabajo es la creacin e implementacin de un algoritmo que, de
manera lineal en el nmero de vrtices, asigne a un proceso de nacimiento y muerte ergdico en
un rbol cualquiera las conductancias apropiadas para representarlo como un paseo aleatorio en el
rbol y, as, poder obtener de manera lineal la distribucin estacionaria de dicha cadena y tiempos
de llegada entre estados.

Objetivos Especficos
Con el fin de cumplir el objetivo general de este trabajo, se plantean los siguientes objetivos
especficos:
2

1. Aprender acerca de los mtodos clsicos para la obtencin de la distribucin estacionaria


y tiempos de llegada entre estados.
2. Aprender acerca de la resolucin de problemas similares por la va del mtodo de redes
elctricas.
3. Familiarizarse con el lenguaje FORTRAN con el que se realizar la implementacin.
4. Implementar un algoritmo que dadas, las conductancias, encuentre de manera lineal un
tiempo de llegada utilizando la frmula que para ello se propone en Palacios (2009).
5. Analizar el comportamiento de los algoritmos para verificar su linealidad, su estabilidad
al trabajar con rboles de gran tamao y su precisin numrica.

El informe cuenta con tres captulos, que buscan mostrar, de manera estructurada, el trabajo
realizado durante el proyecto. As, en el primer captulo se hace un recuento de las bases tericas
que sustentan y permiten una mayor comprensin del trabajo; en el segundo captulo se muestra
detalladamente el algoritmo de asignacin de conductancias y el algoritmo de obtencin de
tiempos de llegada, junto con algunas de sus caractersticas tericas; en el tercer captulo se
muestran resultados numricos sobre el comportamiento de los algoritmos y sus ventajas en
comparacin con algoritmos ya existentes.
3

CAPTULO 1
MARCO TERICO

1.1 Teora de Grafos

Definicin: Un grafo G es una tripleta formada por un conjunto de vrtices V, un conjunto de


lados E y una relacin de incidencia que asigna a cada lado e un par, no-ordenado, de vrtices (no
necesariamente distintos), que llamaremos extremos de e.

Se dice que dos vrtices son vecinos, si son extremos de un mismo lado. Llamaremos grado
del vrtice u, denotado por d(u), al nmero de vecinos de u. Una hoja es un vrtice u tal que
d(u)= 1.

Definicin: Un paseo en G es una secuencia de vrtices y lados w=v0e1v1e2v2ekvk tal que, para
1 i k, los extremos del lado ei son vi-1 y vi.

Definicin: Un camino es un paseo que no repite vrtices. Un u,v-camino es un camino que


comienza en u y termina en v.

Definicin: Un grafo T es un rbol ssi para todo par u,v V existe un nico u,v-camino.

Definicin: Un subgrafo de un grafo G es un grafo H tal que V(H) V(G), E(H) E(G) y la
asignacin de extremos a los lados de H es la misma que en G.
4

Definicin: Un grafo G es conexo si existe al menos un camino entre u y v si u, v V(G).

Definicin: Las componentes conexas de un grafo G, son sus subgrafos conexos maximales.

Definicin: Un digrafo D es una tripleta formada por un conjunto de vrtices V, un conjunto de


lados E y una relacin de incidencia que asigna a cada lado e un par ordenado, de vrtices (no
necesariamente distintos), que llamaremos extremos de e.

Para mayores detalles con respecto a estas definiciones se recomienda el libro de D. B. West
(2001).

1.2 Cadenas de Markov

Definicin: Una Cadena de Markov (Lalley), en un espacio finito o contable de estados X , es

una sucesin de variables aleatorias X0, X1, con valores en X tal que para todo k=0,1,2, se
cumple

P(Xk+1= xk+1 | Xk= xk, Xk-1= xk-1,, X0= x0)= P(Xk+1= xk+1 | Xk= xk) (1.1)

Es usual (Feller, 1968), y as se har en este trabajo, hablar del evento Xk= i diciendo que el
estado i se alcanza en el paso k-simo.

A la probabilidad P(Xk+1= j | Xk= i) la llamaremos probabilidad de transicin entre el estado i


y el estado j. En este trabajo se tratarn cadenas de Markov con probabilidades de transicin
estacionarias, es decir, tales que P(Xk+1= j | Xk= i) sea independiente de k.
5

Siendo as, a la probabilidad P(Xk+1= j | Xk= i) la denotaremos simplemente por pij. Con esta
notacin y llamando ai a la probabilidad de que X0=i, por (1.1) tenemos que

P(X0= xo, X1= x1,, Xk= xk)= axo pxox1 px1x2 pxk-2xk-1 pxk-1xk-2

Queda claro que, si hay un nmero finito de estados, digamos 1,2,, n, entonces

P(X1= j)= ipij para 1 j n

y, en general,

P(Xk= j)= (Xk-1= i)pij para 1 j n. (1.2)

Denotaremos por a la probabilidad de transicin entre el estado i y el estado j en

exactamente k pasos, es decir, a P(Xk= j | Xo= i). En particular tenemos que = pij, que

ivpvj

Y, en general,

iv . (1.3)

A partir de ahora, consideraremos cadenas de Markov con un nmero finito de estados 1,, n.
6

Definicin: La matriz de probabilidades de transicin P, asociada a una cadena de Markov,


es una matriz de tamao nxn que en la posicin (i,j) contiene a la probabilidad de transicin pij,
para todo par i, j.

Gracias a (1.3), se puede ver el elemento (i,j) de Pk es .

Sea k el vector (fila) que en la posicin i tiene la probabilidad P(Xk= i) para 1 i n.

Entonces, por (1.2), tenemos que

k+1= kP. (1.4)

1.3 Cadenas de nacimiento y muerte en rboles

Las cadenas de Markov se pueden representar como digrafos, donde cada estado es
simbolizado por un vrtice y donde la probabilidad de transicin pij se representa como el peso
del lado asociado al par ordenado (i,j).

Definicion: Una cadena de nacimiento y muerte (Panconesi, 2005), es una cadena de Markov
que, comenzando en el estado k, despus de un paso se estar en el estado k-1, k, o k+1. Esto dice
que, para todo k, pik= 0 si i {k-1, k, k+1} y que pk,k-1+pkk+pk,k+1= 1.

Si consideramos un rbol y pensamos en sus vrtices como estados de una cadena de Markov,
entonces una cadena de nacimiento y muerte en ese rbol, es una cadena de Markov tal que pik=0
si i k y vk =1, donde j k significa que j es vecino de k.
7

A continuacin, la Figura 1.1, muestra un ejemplo de una cadena de nacimiento y muerte en un


rbol.

Figura 1.1: Ejemplo de cadena de nacimiento y muerte en un rbol

Para evadir trivialidades, las cadenas que consideraremos son cadenas de nacimiento y muerte
ergdicas, es decir, que existen probabilidades no nulas de ir de un vrtice dado a cualquier
vrtice vecino y luego volver al vrtice original.

1.4 Distribucin estacionaria

Definicin: la distribucin estacionaria de una cadena de Markov con n estados y matriz de


probabilidades de transicin P, es un vector fila , con entradas no negativas, que cumple que
i= 1, donde i es el elemento i-simo de , y que

= P.
8

Si consideramos que 0= , es decir, que P(X0= i)= i para 1 i n, entonces por (1.4)
obtenemos que 1= 0P= 0 y haciendo induccin obtenemos que k= 0 para todo k. Esto
quiere decir que, con tal distribucin inicial 0, la probabilidad de alcanzar el estado i en el paso
k-simo es la misma para todo k.

En las cadenas de nacimiento y muerte ergdicas se cumple que P= n


es una matriz
cuyas filas son todas iguales a . Esto implica que para cualquier distribucin inicial 0,

n= , es decir, que la influencia que ejerce la distribucin inicial se va perdiendo y la


probabilidad de estar en determinado estado se va estabilizando.

Por tanto, el clculo de la distribucin estacionaria se puede realizar de dos formas: una es
resolviendo el sistema de ecuaciones = P con la ecuacin adicional i= 1, mientras que la
otra es realizando sucesivas multiplicaciones de P por s misma. Es sabido la complejidad
computacional que conlleva la resolucin de un sistema de ecuaciones es aproximadamente
cbica mientras que para la multiplicacin de matrices es ms que cuadrtica.

1.5 Tiempos de llegada en rboles

Definicin: el tiempo de llegada al vrtice j partiendo del vrtice i, es el valor esperado de


Tj=inf{k 0 : Xk= j} dado que X0= i. Se denota por EiTj.

Para obtener los tiempos de llegada, se calcula la matriz fundamental Z dada por

Z = (I- P- W)-1

donde W es la matriz cuyas filas son todas iguales a . Una vez calculada dicha matriz se tiene
que (Grinstead y Snell, 1997):
9

EiTj = .

Como se aprecia, este mtodo conlleva la inversin de una matriz, proceso cuya complejidad
computacional es aproximadamente cbica y que es numricamente inestable.

Adems, el mtodo obliga a invertir la matriz as se desee obtener un solo tiempo de llegada.

1.6 El mtodo de redes elctricas

Desde la aparicin del libro de Doyle y Snell (1984), se ha dedicado mucha atencin a la
relacin existente entre redes elctricas y paseos aleatorios en grafos. En particular, el clculo de
las distribuciones estacionarias y de los tiempos de llegada se simplifican mediante el mtodo
elctrico, que consiste en pensar en los ejes entre vrtices i y j como un resistor con resistencia
rij (o conductancia Cij= 1/rij); entonces se puede definir un paseo aleatorio en el grafo conexo
(no dirigido) G= (V, E), como la cadena de Markov Xn, n 0, que desde el vrtice actual i salta a
un vrtice vecino j con probabilidad pij= Cij/C(i), donde C(i)= ij, donde j i significa que
j es vecino de i. Se puede asignar una conductancia (ficticia) Ckk desde el vrtice k a s mismo,
generando la probabilidad de transicin de k a s mismo.

En este contexto tenemos el siguiente

Teorema 1: Para un paseo aleatorio en un rbol T se cumple que, para cualquier vrtice i

i = (1.5)

y que, para cualquier i,j V y siendo Q el nico camino entre i y j se tiene que
10

x
EiTj = xjC (1.6)

donde Rxj es la resistencia efectiva entre x y j (en este caso, la suma de las resistencias en el
camino entre x y j), Cx= y Gx es la componente conexa de G E(Q) (G sin los lados
en Q) que contiene a x.

La obtencin de (1.5) y (1.6) puede encontrarse, respectivamente, en Doyle y Snell (1984) y


Palacios (2009).

Debe tenerse claro que no cualquier cadena de Markov finita y ergdica puede representarse
como un paseo aleatorio en un grafo finito. Una cadena de Markov circular tiene como espacio de
estados a los enteros {1, 2, , n} y las transiciones desde el estado i slo son permitidas a los
estados i-1, i, i+1, 1 i n, con adicin mdulo n. Siendo pi, qi, y si las probabilidades de
transicin de partiendo de i llegar, respectivamente, a i+1, i-1 e i para 1 i n, este tipo de
cadenas se pueden representar como un paseo aleatorio en el grafo crculo si y solo si (Palacios,
2000)

i = i

En dicho caso, se pueden definir las conductancias Ci = Ci,i+1 del siguiente modo: C1 0 es
arbitraria,

Cj = C1 2 j n,

Cjj = Cj 1 j n,
11

Por otro lado, en Palacios y Tetali (1996) se muestra que toda cadena de nacimiento y muerte
ordinaria, se puede representar como un paseo aleatorio en el grafo lnea con vrtices 0, 1, , n y
conductancias Ck, 1 k n, entre los vrtices k-1 y k dadas por

Ck = C1 2 j n, (1.7)

donde C1 0 es arbitraria y C00 = ;y

Ckk = Ck 1 j n. (1.8)
12

CAPTULO 2
MARCO METODOLGICO

Antes de desarrollar el algoritmo que asigne conductancias adecuadas a una cadena de


nacimiento y muerte en un rbol, se debe contar con el siguiente resultado:

Lema 1: Cualquier cadena de nacimiento y muerte en el grafo estrella con centro N y hojas
1,2,,N-1, y probabilidades de transicin

P(N,i) = pi, p(i,N) = qi, 1 i N-1, p(i,i) = si, 1 i N

se puede representar como un paseo aleatorio en el grafo estrella con conductancias

CNi = , 1 i N-1, CNN = , (2.1)

Cii = , 1 i N-1,

donde C1 0 es arbitraria.

Antes de proceder con la demostracin, se muestra en la Figura 2.1 una cadena de nacimiento y
muerte en un grafo estrella, para que el lector tenga claro a qu se hace referencia.
13

Figura 2.1: Ejemplo de cadena de nacimiento y muerte en un grafo estrella, con N = 4.

Demostracin:

Partiendo de que pi = , 1 i N-1, y a signando CN1 = C1, donde C1 0 es arbitrario, se

obtiene el siguiente sistema de N-1 ecuaciones y N-1 incgnitas:

p1CN2 + p1CN3 + + p1CN,N-1 + p1CNN = C1 p1C1


(p2 1) CN2 + p2CN3 + + p2CN,N-1 + p2CNN = p2C1
p3CN2 + (p3 1) CN3 + + p3CN,N-1 + p3CNN = p3C1

pN-1CN2 + pN-1 CN3 + + (pN-1 1) CN,N-1 + pN-1CNN = pN-1C1

Trabajando con la matriz expandida asociada al sistema y tras hacer las operaciones de fila
necesarias para que la primera columna sea (1,0,0,,0)T, de las N-3 ltimas filas se obtiene que

CNi = piC1 + pi = = 3 i N-1.

Luego, sustituyendo estos resultados en la ecuacin que deriva de la segunda fila, se tiene que
14

CNN = p2C1 + (1 p2) = = 3 i N-1,

y, de la primera fila,

CN2 = =

Adems, partiendo de que para 1 i N-1, se obtiene que

Cii= = 1 i N-1

Con este resultado, especficamente teniendo las frmulas en (2.1), podemos pasar a enunciar el

2.1 Algoritmo para la asignacin de conductancias:

Paso preliminar: Escoja una hoja cualquiera y asgnele un valor mayor que 0 a la
conductancia que une a esta hoja con su nico vecino. Asigne el valor apropiado a la
conductancia que va de la hoja a ella misma, considerando que pii= Cii/C(i). El vrtice
actual es el nico vecino de la hoja.

Lazo:

- Si el vrtice actual tiene dos vecinos (distintos de s mismo): utilizar las


frmulas (1.7) y (1.8) para asignar la conductancia que va desde el vrtice a s
mismo y la que va desde el vrtice a su vecino no visitado. Dicho vecino pasa a
ser el vrtice actual.
15

- Si el vrtice actual tiene ms de dos vecinos (distintos de s mismo): utilizar las


frmulas en (2.1) para asignar la conductancia que va desde el vrtice a s mismo
y las que van desde el vrtice a sus vecinos no visitados. Se escoge un vecino no
visitado como vrtice actual.

- Si el vrtice actual es una hoja: utilizar la frmula (1.8) para asignar la


conductancia que va del vrtice a s mismo. Se retorna al ltimo vrtice de grado
mayor a 2 que tenga algn vecino sin visitar. Uno de estos vecinos sin visitar
pasar a ser el vrtice actual. Si no existe un vrtice de grado mayor a 2 con algn
vecino sin visitar entonces salir del lazo.

Fin del Lazo

Fin del Algoritmo

Las siguientes figuras (Figura 2.2 y Figura 2.3) muestran cmo el algoritmo puede asignar
distintas conductancias sobre una misma cadena de nacimiento y muerte. Aunque aparentemente
distintas, estas asignaciones corresponden a un mismo paseo aleatorio donde pij= Cij/C(i)
mantiene el mismo valor para cada par i, j. Debe tenerse en cuenta que, sin importar las
conductancias asignadas, las frmulas (1.5) y (1.6) siempre arrojarn el mismo resultado para el
tipo de cadenas que estamos trabajando.
16

Figura 2.2: Conductancias asignadas a la cadena de la Figura 1.1, comenzando en la hoja 1.

Figura 2.3: Conductancias asignadas a la cadena de la Figura 1.1, comenzando en la hoja 5.


17

De la manera en que se present, es claro que el algoritmo termina, pues pasa a un vrtice sin
visitar en cada iteracin, as el nmero de iteraciones es igual al nmero de vrtices y, como se ha
dicho, se tratarn nicamente grafos finitos. Adems, de aqu se desprende que, dado que cada
iteracin tiene un nmero mximo de operaciones fijo, el algoritmo tiene, en teora, una
complejidad lineal. Ms adelante se verificar su linealidad con mayor detalle.

Concentrmonos en revisar la correctitud del algoritmo. Como se ve en el punto 1.6 del Marco
Terico, el objetivo del algoritmo es asignar conductancias de modo que, para cualquier vrtice
i, se cumple la condicin pij= Cij/C(i), para todo j vecino de i.

Esta es una manera de ver el algoritmo: parado uno en el vrtice actual, se asignan las
conductancias que conectan con los vecinos y, una vez construido el puente necesario, se cruza a
un vrtice al cual no se ha visitado. Cuando se llega a una hoja, se vuelve a un vrtice desde el
cual an quedan puentes sin cruzar y se contina el recorrido.

Las conductancias asociadas a la hoja inicial cumplen la condicin por construccin.

Supongamos que el vrtice actual tiene dos vecinos distintos de s mismo. Sabemos que las
frmulas en (1.7) y (1.8) cumplen la condicin para cualquier vrtice en grafo lnea. En
particular, la cumplen para el vrtice 1 del grafo lnea, sin importar cunto vale la conductancia
C1. El vrtice 1 del grafo lnea tiene dos vecinos (si asumimos que la lnea tiene ms de dos
vrtices), as como el vrtice actual en el rbol. Adems, en el grafo lnea C2 y C11 siempre
tendrn el mismo valor sin importar cuntos vrtices tenga la lnea, es decir, sin importar la
estructura que exista despus del vrtice 1. De este modo, queda claro que las frmulas (1.7) y
(1.8) asignan conductancias que cumplen la condicin para el vrtice actual, sin importar cunto
vale la conductancia que nos llev a l.

Supongamos que el vrtice actual tiene ms de dos vrtices distintos de l mismo. Sabemos que
las frmulas en (2.1) cumplen la condicin para el vrtice centro N del grafo estrella, siendo N
2 y C1 0 arbitraria. Tomemos N igual al nmero de vecinos del vrtice actual ms 1. As, el
18

centro N del grafo estrella tiene el mismo nmero de vecinos que el vrtice actual, por lo cual,
para encontrar las conductancias que cumplan la condicin en el vrtice actual se debe resolver el
mismo sistema de ecuaciones resuelto en la demostracin del Lema 1. Por tanto, las frmulas en
(2.1) asignan conductancias que cumplen la condicin para el vrtice actual, sin importar cunto
vale la conductancia que nos llev a l.

Por ltimo, supongamos que el vrtice actual es una hoja. Sabemos que la frmula (1.8) se
cumple para cualquier grafo lnea. En particular para la lnea con dos vrtices. El vrtice 1 en la
lnea de dos vrtices, es una hoja, y (1.8) cumple la condicin en ese vrtice sin importar cunto
valga C1. As, la frmula (1.8) cumplir la condicin para el vrtice actual, sin importar cunto
vale la conductancia que nos llev a l.

Lo nico que faltara por comprobar es que la conductancia entre dos vrtices es siempre mayor
que 0, pues de esto dependen las frmulas (1.7), (1.8) y (2.1).

La conductancia que va de la hoja inicial a su vecino es mayor que 0 por construccin.


Asumiendo entonces que se llega al vrtice actual mediante una conductancia mayor que 0,
tenemos que las frmulas (1.7), (1.8) y (2.1), al slo multiplicar y dividir dicha conductancia por
probabilidades mayores que cero (pues estamos considerando cadenas de nacimiento y muerte
ergdicas), siempre generan conductancias mayores que 0. Queda entonces probada la
correctitud del algoritmo.

2.2 Obtencin de la distribucin estacionaria y los tiempos de llegada:

Una vez asignadas las conductancias la obtencin de la distribucin estacionaria se simplifica


enormemente. Como indica la frmula (1.5) del Teorema 1, lo nico que hay que hacer es sumar
todos los C(i) y luego dividir cada C(i) entre la suma obtenida. Es decir, se deben hacer n sumas
y n divisiones, lo cual es, evidentemente, un nmero de operaciones que crece linealmente (con
pendiente 2) cuando n aumenta. De modo que el algoritmo de asignacin de conductancias
seguido por la aplicacin de la frmula (1.5), representan un mtodo lineal, en el nmero de
19

vrtices, de obtener la distribucin estacionaria para cadenas de nacimiento y muerte en rboles,


cosa que hasta el momento no se conoca.

Con respecto a los tiempos de llegada, el Teorema 1 tambin ofrece una frmula para
calcularlos, una vez que se han asignado las conductancias. Si se quiere obtener EbTc, para
obtener la sumatoria de (1.6), que es la frmula de la cual estamos hablando, es necesario, en
primer lugar, obtener las resistencias efectivas entre c y todos los vrtices del camino entre b y c.
La resistencia efectiva entre c y el nico de sus vecinos, llammoslo x1, que est en el camino
mencionado, es el inverso de la conductancia que los une. x1 tiene un nico vecino distinto de c,
llammoslo x2, que est en el camino. La resistencia efectiva entre x2 y c es la suma de la
resistencia entre x1 y c ms el inverso de la conductancia entre x1 y x2. Similarmente, si el camino
entre b y c es c = x0, x1, x2,, xk-1, xk = b entonces podemos encontrar la resistencia efectiva entre
xi y c como la resistencia efectiva entre xi-1 y c ms el inverso de la conductancia entre xi y xi-1.
Teniendo en cuenta que la resistencia efectiva entre c y c es nula, hemos visto que slo hay que
realizar una suma y una divisin por cada elemento distinto de c que tenga el camino. Como el
camino no repite vrtices, el mximo nmero de vrtices que puede abarcar es n, en el caso del
grafo lnea. Esto dice que el clculo de las resistencias efectivas genera, a lo ms, 2(n-1)
operaciones.

Por otro lado, para calcular Cx para cada x vrtice en el camino entre b y c, lo que hay que hacer
es sumar todos los C(i) tal que i Gx. Obtener C(i), para un vrtice i cualquiera, requiere a lo ms
d(i) sumas (se debe sumar Cii). Como los Gx representan una particin de los vrtices del grafo, el
nmero de operaciones necesarias para calcular Cx para todo x en el camino es, la suma de todos
los grados. Y es un resultado bien conocido (Euler) que la suma de los grados en un rbol es igual
a dos veces el nmero de arcos, es decir, 2(n-1).

Entonces, hemos visto que el total de operaciones necesarias para calcular un tiempo de llegada
dadas las conductancias, requiere 4(n-1) operaciones, con lo cual, el algoritmo de asignacin de
conductancias seguido por la aplicacin de la frmula (1.6), representan una manera lineal de
20

obtener un tiempo de llegada para una cadena de nacimiento y muerte en rboles, cosa que hasta
el momento no se conoca.

No obstante, a la hora de implementar la aplicacin de la frmula (1.6), uno se encuentra con el


detalle tcnico de cmo recorrer cada Gx para obtener Cx, con x en el camino entre b y c. Por esto
se debi crear un algoritmo que halle la sumatoria de la frmula (1.6), a partir de las
conductancias. Dicho algoritmo contar con dos lazos anidados. En cada iteracin del lazo
externo se pasar a un nuevo vrtice x en el camino entre b y c, se calcular Rxc, se definir el
nmero de vecinos de x que no estn en el camino y se pasar a un lazo interno ir recorriendo Gx
de manera anloga a como se recorre el rbol completo en el algoritmo. Por tanto, en cada
iteracin se estar calculando un trmino de la sumatoria en (1.6).

Algoritmo de obtencin de un tiempo de llegada.

Paso preliminar: Halle el camino entre b y c. Sea ste c = x0, x1, x2,, xk-1, xk = b. Se
asigna Rx0c = 0 y EbTc = 0.

Lazo Externo: Desde i = 1 hasta i = k hacer:

Se asigna Cxi = C(xi). Se asigna Rxic = Rxi-1c + 1/Cxixi-1. Si xi tiene m vecinos fuera
del camino entre b y c, se dir que d(xi) = m (grado de xi igual m) y durante lo que
resta del lazo externo se ignorarn los vecinos de xi en el camino. Se escoge un
vecino de xi como el vrtice actual. Si no tiene vecinos (fuera del camino) se omite
el lazo interno.

Lazo Interno: Llamemos nex al vrtice actual. Cxi = Cxi + C(nex).

- Si d(nex) = 2, se escoge el nico vecino no visitado de nex como el


prximo vrtice actual.
21

- Si d(nex) >2, se escoge uno de los vecinos no visitados de nex como


el prximo vrtice actual.

- Si d(nex) = 1, se retorna al ltimo vrtice de grado mayor a 2 que


tenga algn vecino sin visitar. Uno de estos vecinos sin visitar pasar a
ser el vrtice actual. Si no existe un vrtice de grado mayor a 2 con
algn vecino sin visitar entonces salir del lazo interno.

Fin Lazo Interno

Se asigna EbTc = EbTc + RxicCxi.

Fin Lazo Externo

Fin del Algoritmo

En cada iteracin del lazo externo se recorre Gxi para un xi distinto. Como hemos dicho los Gx
particionan al rbol. Por lo cual, en cada iteracin del Lazo Interno se recorre un vrtice distinto,
con lo que queda claro que el nmero de iteraciones del Lazo Interno es a lo ms n-1 (si c es una
hoja del rbol) Esto asegura la finitud del algoritmo. Adems, como cada iteracin de los lazos
Externo e Interno tiene un nmero mximo de operaciones fijo, el algoritmo tiene, en teora, una
complejidad lineal. Ms adelante se verificar su linealidad con mayor detalle.

El lector puede fcilmente verificar que este algoritmo es correcto.

2.3 Detalles de la implementacin del algoritmo para asignacin de conductancias:


22

Dada la longitud de la implementacin del algoritmo, se ha decidido explicar verbalmente sus


caractersticas, haciendo uso de seudocdigos slo en los casos donde sea necesario.

El input inicial del algoritmo es n (el nmero de vrtices del rbol) y la matriz de
probabilidades de transicin. Como estamos trabajando con rboles, la matriz de transicin es
una matriz rala (se alcanza un mximo de 3n-2 datos no nulos cuando, pii 0 para todo i V).
Para aprovechar este hecho, se utilizar la siguiente representacin compacta de una matriz, en
forma de tres vectores:

Vector de Informacin: contiene todos los datos no nulos de la matriz, ordenados por
fila.

Vector de Filas: de longitud n+1, en la primera casilla tiene un 1. El elemento i-simo,


para 2in+1, es el elemento (i-1)-simo menos el nmero de datos no nulos en la fila i-1
de la matriz.

Vector de Columnas: tiene la misma longitud que el Vector de Informacin. El


elemento i-simo es la columna de la matriz de la cual proviene el elemento i-simo del
Vector de Informacin.

As, el input inicial ser un archivo de texto que contenga el nmero de vrtices n, seguido por
los tres vectores correspondientes a la matriz de probabilidades de transicin puestos uno tras
otro en una sola columna (si la longitud de esta columna es d, las longitudes de los vectores
correspondientes a la matriz de probabilidades de transicin sern (d-n-1)/2, n+1, (d-n-1)/2,
respectivamente).

Una vez ledos los datos, se procede a separar y guardar los tres vectores que se llamarn IP,
FP y CP respectivamente.
23

Con respecto a esta manera de almacenar la matriz, se debe tener en cuenta que los elementos
de IP y CP correspondientes a la fila j estn en las posiciones FP(j) a la FP(j+1) 1, donde FP(j)
es el elemento j-simo de FP.

A medida que se vayan obteniendo, las conductancias se irn almacenando en una matriz, que
llamaremos matriz de conductancias C, que ser una matriz triangular superior. Es decir, se
guardar la conductancia entre el vrtice i y el vrtice j en la posicin (i, j), si i j, o en la
posicin (j, i) si i j. Esta matriz ser representada mediante la forma compacta explicada
anteriormente y los vectores se llamarn IC, FC, CC respectivamente.

De una vez podemos llenar los vectores FC y CC, vectores que nos indican cuntas
conductancias habr en cada fila y a qu columna corresponde. Si en P hay una probabilidad no
nula de volver a un vrtice i, entonces habr una conductancia no nula que va de i a i y est
conductancia deber ser agregada a los vectores de la matriz. Por otro lado, si existe una
probabilidad no nula de ir a al vrtice j desde el vrtice i, con i j, habr tambin una
probabilidad no nula de ir al vrtice i desde el vrtice j, pero habr una nica conductancia que
una a i y j. Es as como conociendo la matriz P, especficamente, conociendo cuntos elementos
tiene en la diagonal y sobre ella, conoceremos cuantas conductancias inciden sobre cada vrtice y
dnde deben colocarse estas conductancias en la matriz C, triangular superior. Para mostrar esto
con mayor claridad, introduciremos aqu un primer seudocdigo. Para evitar confusiones, los
seudocdigos se escribirn en letra cursiva y, si se llega a hacer un comentario en una lnea
donde tambin haya seudocdigo, este ser precedido por el signo % y no estar en cursiva.
Debe tenerse en cuenta, que para los seudocdigos no se asumir que un salto de lnea es un
cambio de prrafo y que, por cuestiones visuales y para una mejor comprensin, no se incluir los
3 espacios de sangra al comenzar el seudocdigo.

l=1 % l es un contador que indica cul elemento de CC corresponde llenar.


FC(1)=1
Hacer para i=1,n
k=0 % k contar para cuntas conductancias se asigna espacio en la fila i de C
24

Hacer para j=FP(i),FP(i+1)-1 % Recorriendo la fila i-sima


Si (CP(j) i) % Como C es triangular superior asignamos
CC(l)=CP(j) % espacio para la conductancia (i, CP(j))
l=l+1 % slo si i CP(j).
k=k+1
fin Si
fin Hacer para
FC(i+1)=FC(i)+k
fin Hacer para

Llenados FC y CC, lo nico necesario para completar la matriz C es el vector IC.

Para asignar la primera conductancia, se debe escoger una hoja, por lo que el programa dar al
usuario una lista con todas las hojas para que pueda escoja una. Esta hoja, ser el vrtice actual
(cur) y su nico vecino ser el prximo vrtice (nex). A la conductancia entre estos dos
vrtices, cuyo valor es arbitrario, se le asignar como valor 1. De este modo se obtiene el primer
elemento de IC.

Dado que pii= Cii/C(i), despejando se obtiene la conductancia que va de cur a cur y la
agregamos al vector IC si es distinta de 0 (esto es, si la probabilidad de ir de cur a cur es distinta
de 0).

Ahora que tenemos las conductancias relacionadas a la hoja inicial, podemos dar inicio al lazo
que generar todas las dems conductancias. La manera en que se implementa el lazo dista de
como se enunci en el algoritmo en el siguiente aspecto: al llegar a un vrtice de ms de dos
vecinos (tipo de vrtice al cual llamaremos de interseccin) slo se asignarn la conductancia que
va de l a s mismo y la que va de l al uno slo de sus vecinos. El resto de las conductancias
asociadas al vrtice de interseccin se asignarn una a una cuando, al llegar a una hoja, se deba
retornar al vrtice de interseccin y cruzarse a un vecino no visitado. Para implementar este lazo,
necesitamos crear los siguientes tres vectores:
25

IV: este vector guarda aquellos vrtices de interseccin (grado mayor a 2) para los
cuales se ha visitado alguno de sus vecinos, pero no todos.

NVN: para el vrtice en la posicin i de IV, la posicin i de NVN, contiene el nmero de


vecinos aun no visitados.
PN: la posicin i de PN, guarda el vrtice a partir del cual se lleg, por primera vez, al
vrtice en la posicin i de IV (este vrtice previo se necesitar, entre otras cosas, para
poder obtener con facilidad a lo que equivaldra a C1 en la primera frmula en (2.1), a la
hora de volver al vrtice de interseccin y querer asignar un valor conductancia que lo une
a un vecino no visitado).

El escalar u, almacenar cul es la ltima posicin de IV, NVN, PN en haber sido actualizada
(estos vectores, de tamao n-2 sern inicializados en 0). Ser inicializado en 1.

Adems, se crearn 2 vectores adicionales que irn recogiendo informacin que ser usada,
posteriormente, para el clculo de los tiempos de llegada.

gen: de tamao n, guarda en la posicin i la generacin del vrtice i, asumiendo que la


hoja inicial es el ancestro comn a todos, la raz del rbol, de generacin 1.

pater: de tamao n, guarda el ancestro ms cercano, si se toma a la hoja inicial como


raz (el ancestro de la raz ser el inexistente vrtice 0).

Con todo esto, ya se puede dar inicia al lazo principal del algoritmo.

HACER
26

Lo primero dentro del lazo es distinguir si nex tiene una probabilidad no nula de volver a s
mismo. Si la tiene, a=0, sino a=1.

El resto de la iteracin depender de un condicional (Si) que, basado en el nmero de vecinos


de nex, ofrecer tres posibilidades:

Caso 1: nex es vrtice de interseccin (tiene ms de dos vecinos distintos de s mismo)

Condicin:

(FP(nex+1)-FP(nex)>3 y a=0) (a=1 y FP(nex+1)-FP(nex)>2)

Este caso tiene 3 sub casos:

- Subacaso 1.1: llego a la interseccin por primera vez.

Condicin: IV(u) nex

Esto basta pues cuando se llega a un vrtice de interseccin, el no est en la lista


IV o est en la posicin u de dicha lista (Ver caso 3).

En primer lugar, agregamos informacin a gen y pater:

gen(nex)=gen(cur)+1
pater(nex)=cur

Procedemos, ahora, a actualizar:

u=u+1
IV(u)=nex
27

PN(u)=cur
NVN(u)=FP(nex+1)-FP(nex)-3+a

Aqu, FP(nex+1) FP(nex) es la cantidad de elementos en la fila nex de P, es


decir, el nmero de vecinos de nex. A este nmero se le resta uno por el vrtice del
cual se lleg a nex (PN(u)) y otro por el vrtice al cual voy inmediatamente. Se
resta uno ms, si nex tiene lazo.

Si a=0, es decir, si nex tiene lazo, se obtienen de la matriz P y de la matriz C


aquellos datos necesarios para calcular Cnex,nex. Hay que tener en cuenta que estas
matrices estn almacenadas de forma compacta.

Subcaso 1.2: no es la primera vez que llego a la interseccin y me faltan 2 o


ms vecinos de nex por visitar.

Condicin: Dado que no se entr en el caso 1.1, basta verificar que NVN(u) 2.

NVN(u)=NVN(u)-1

- Subcaso 1.3: solo falta un vecino de nex por visitar.

Condicin: Basta no haber entrado en los otros dos subcasos.

Como enseguida saltaremos al nico vecino de nex sin visitar, ya no


consideraremos a nex como un vrtice de interseccin.

IV(u)= 0
NVN(u)=NVN(u)-1
PN(u)= 0
28

Una vez cubiertos los subcasos, se procede a escoger el prximo vecino que se visitar.

Se procede de la siguiente manera:

k=0
Hacer para i=FP(nex),FP(nex+1)-1
Si (CP(i)nex y CP(i)cur)
k=k+1
Si (k=FP(nex+1)-FP(nex)-2-NVN(u)+a)
temp=CP(i)
Salir de Hacer para
Fin Si
Fin Si
Fin Hacer para

Aqu lo que se est haciendo es, de entre los vecinos de nex que sean distintos de nex y
del vrtice desde el cual se lleg a nex, escoger a uno que no se haya visitado, tomndolos
en el orden en el que aparecen en la matriz. A este vrtice se le llama, momentneamente,
temp.

La posicin FP(nex+1) FP(nex) 2 NVN(u) + a aumenta en uno cada vez que


visitamos a un nuevo vecino de nex, pues NVN(u) disminuye en uno. Entindase, (todos
los conectados a nex) (cur y nex) (los no visitados) + (nex si no tiene lazo).

De las matrices, se obtienen P(nex, temp); P(nex, cur); C(cur, nex) ( C(cur, nex)); y
con estos datos, utilizando la primera formula de (2.1), se obtiene C(nex, temp) (
C(temp, nex)).

A manera ilustrativa, se muestra como se obtiene C(cur, nex) ( C(cur, nex)).


29

Si (cur>nex)
Hacer para i=FC(nex),FC(nex+1)-1
Si (CC(i)=cur)
cij=IC(i)
Salir de Hacer para
Fin Si
Fin Hacer para
Si no y si (nex>cur)
Hacer para i=FC(cur),FC(cur+1)-1
Si (CC(i)=nex)
cij=IC(i)
Salir de Hacer para
Fin Si
Fin Hacer para
Fin Si

En este seudocdigo se guarda C(cur, nex) C(cur, nex) en el escalar cij.

Una vez conseguida C(nex, temp) C(temp, nex), actualizamos:

cur=nex
nex=temp

y, si se haba entrado por el subcaso 3:

u=u-1

pues, en dicho caso, se habrn visitado todos los vecinos del vrtice que ocupaba la
posicin u de IV.
30

Caso 2: nex no es ni interseccin ni hoja (tiene exactamente dos vecinos distintos de s


mismo)

Condicin:

(FP(nex+1)- FP(nex)=3 y a=0) (a=1 y FP(nex+1)- FP(nex)=2)

Se agrega informacin a gen y pater:

gen(nex)= gen(cur)+1
pater(nex)= cur

Se busca el nico vecino de nex distinto de nex y de cur. Se le llama temp. Se buscan
P(nex, temp); P(nex, cur); P(nex, nex); C(cur, nex) ( C(nex, cur)). Con estos datos, y con
la frmulas (1.7) y (1.8) respectivamente, se calculan C(nex, temp) ( C(temp, nex)) y
C(nex, nex).

Por ltimo, se actualiza

cur=nex
nex=temp

Caso 3: nex es hoja (solo tiene un vecino distinto de s mismo)

Condicin:

(FP(nex+1)- FP(nex)=2 y a=0) (a=1 y FP(nex+1)- FP(nex)=1)

Se agrega informacin a gen y pater:


31

gen(nex)=gen(cur)+1
pater(nex)=cur

Si a=0, se buscan P(nex, nex); P(nex, cur); C(cur, nex) ( C(nex, cur)) para calcular
C(nex, nex) con la frmula (1.8).

Se coloca el siguiente condicional:

Si IV(u) 0 % Si aun hay vrtices de interseccin con vecinos sin visitar


cur=PN(u)
nex=IV(u)
Si no
Salir de HACER
Fin Si

Este condicional nos lleva al vrtice de interseccin que tiene an vecinos sin visitar y
que se visit ms recientemente, o nos saca del lazo.

Fin HACER

2.4 Detalles sobre la implementacin del algoritmo de obtencin de un tiempo de llegada

Sean b y c los vrtices tales que queremos encontrar EbTc. Lo primero que se debe chequear es
si b = c en cuyo caso el tiempo es EbTc = 0. Si son distintos debemos encontrar es el nico
camino entre ellos dos. Usando los vectores gen y pater, obtenidos mediante el algoritmo de
asignacin de conductancias, se encuentra, en primer lugar la longitud de este camino, de la
siguiente manera:

cont=0 %cont es un contador que almacenara la longitud del camino (el nmero de lados)
temp1=b
32

temp2=c
Hacer mientras (temp1temp2)
Si (gen(temp1)>gen(temp2))
cont=cont+1
temp1=pater(temp1)
Si no y si (gen(temp1)<gen(temp2))
cont=cont+1
temp2=pater(temp2)
Si no
cont=cont+2
temp1=pater(temp1)
temp2=pater(temp2)
fin Si
fin Hacer mientras

Este algoritmo, que forma parte del folklore, lo que hace es, tomando la hoja inicial del
algoritmo de asignacin de conductancias como raz, chequear en primer lugar si b y c estn en la
misma generacin o nivel con respecto a la raz. Si no es as, se cuenta cuantas generaciones los
separan y luego cuantas generaciones separan al ms viejo del antecesor comn a b y c, ms
cercano. El camino entre b y c es el camino de b hasta este progenitor, unido al camino desde el
progenitor hasta c. As la longitud del camino ser el nmero de generaciones entre b y c ms dos
veces el nmero de generaciones entre el ms viejo y el antecesor comn (Si b y c estn en la
misma generacin, la longitud es slo el doble del nmero de generaciones entre ellos y su
antecesor comn ms cercano).

Una vez que se tiene la longitud del camino se crea un vector, llamado cam, de tamao cont +1,
en el cual se guardaran los vrtices del camino entre b y c, de manera ordenada tal que cam(1)=b
y cam(cont+1) = c. Para llenar este vector se sigue un proceso anlogo al que se us para
encontrar la longitud del camino.
33

De los trminos de la sumatoria en (1.6) se obtendr primero aquel asociado al x ms cercano a


c y, en cada iteracin, nos alejaremos un vrtice con respecto a c. Otro modo de verlo, es que se
recorrer el vector cam desde la casilla cont a la casilla 1 de uno en uno. La razn para esto es el
hecho de que Rcam(i),c= Rcam(i+1),c + Rcam(i),cam(i+1). Esto permite conseguir Rcam(i),c a partir de
Rcam(i+1),c con solo buscar el elemento (i, i+1) de la matriz de conductancias, invertirlo y sumarlo.
Debe tenerse en cuenta que Rc,c = 0, a pesar de que pueda existir una conductancia que vaya de c
a c. Como se dijo en el punto 1.6 del Marco Terico, las conductancias que van de un vrtice a si
mismo son ficticias.

Sea r el escalar donde se almacena la resistencia entre el vrtice para el cual estamos calculando
el Rxc y el vrtice c. Como hemos dicho, r se obtendr iterativamente y se inicializar de la
siguiente forma:

Si (cam(cont+1)>cam(cont))
Hacer para i=FC(cam(cont)),FC(cam(cont)+1)-1
Si (CC(i)==cam(cont+1))
r=1/IC(i)
Salir del Hacer para
Fin Si
Fin Hacer para
Si no y si (cam(cont+1)<cam(cont))
Hacer para i=FC(cam(cont+1)),FC(cam(cont+1)+1)-1
Si (CC(i)==cam(cont))
r=1/IC(i)
Salir de Hacer para
Fin Si
Fin Hacer para
Fin Si
34

Se incluye este seudocdigo, pues de manera anloga se encontrarn las resistencias que habr
que ir sumando iterativamente a r.

Dada esta facilidad de clculo para Rxc el problema principal ser el clculo de Cx, cuya
obtencin se dar por medio de un algoritmo muy similar al de asignacin de conductancias. Ms
especficamente, se tendrn dos lazos anidados, el externo nos mover desde cam(cont) hasta b y
el interno recorrer Gx (ver Teorema 1), de manera similar a como se hizo en el algoritmo de
asignacin de conductancias, para el vrtice que corresponda segn el lazo externo.

Se inicializan IV, NVN, PN en 0.

El escalar ET, en donde se ir almacenando la sumatoria, se inicializa en 0.

Llamaremos al lazo externo HACER 1 PARA y al lazo interno HACER 2. Comenzamos el


primer lazo.

HACER 1 PARA i=1,cont

Antes de iniciar el lazo interno se har un paso inicial que tiene por objetivo calcular el nmero
de vecinos que tiene cam(cont+1-i) fuera del camino entre b y c y, en caso de que ste sea mayor
que cero, sentar las bases para el clculo de Ccam(cont+1-i). De no tener vecinos fuera del camino,
veremos que el clculo de Ccam(cont+1-i) es inmediato y no necesitar correrse el lazo interno
(Ccam(cont+1-i) = C(cam(cont+1-i))).

cur=cam(cont+1-i) % pues, como se ha dicho, se recorrer cam en sentido inverso.


nex=0 % nex cambiar de valor slo si cur tiene algn vecino fuera del camino entre b y c.

Si nex tiene lazo a=0, si no a=1.


35

Para calcular el nmero de vecinos fuera del camino entre b y c que tiene el vrtice cur, se debe
tener en cuenta que los vrtices internos del camino tienen siempre dos vecinos en el camino,
mientras que b slo tiene uno. Para esto se introducen los escalares op y op2 que tendrn los
siguientes valores:

Si (i=cont)
op=-1
op2=1
Si no
op=cam(cont-i)
op2=0
Fin Si

La razn para esto ser aclarada ms adelante.

Dependiendo del nmero de vecinos que tenga cur fuera del camino se tendrn dos casos
Caso 1.1: cur tiene dos o ms vecinos fuera del camino.

Condicin:

(FP(cur+1)-FP(cur)>4-op2 y a=0)
(a=1 y FP(cur+1)-FP(cur)>3-op2)

Ntese que si i=cont, op2 vale 1 y esto reduce en uno el nmero total de vrtices que
debe tener cur para cumplir la condicin.

u=2
IV(u)=cur
NVN(u)=FP(cur+1)-FP(cur)-4+op2+a
36

Aqu, FP(cur+1)-FP(cur) es el numero de vrtices con los que nex est conectado. A
esto se le resta uno por el vrtice anterior en el camino, uno por el siguiente en el camino
(si i=cont esto no se resta) y otro por el vecino externo al camino al cual voy
inmediatamente y uno ms, si tiene lazo.

PN(u)=cam(cont+2-i)

Se escoge nex como el primer vecino de cur tal que es distinto a cur, cam(cont+2-i) y
op, es decir, el primero que no est en el camino. Como los vrtices solo toman valores
naturales, todo vecino de cur es distinto de op, cuando i=cont.

Caso 1.2: cur tiene exactamente un vecino fuera del camino.

Condicin:

(FP(cur+1)-FP(cur)=4-op2 y a=0)
(a=1 y FP(cur+1)-FP(cur)=3-op2)

Se escoge nex como el nico vecino de cur tal que es distinto a cur, cam(cont+2-i) y op,
es decir, el nico que no est en el camino.

Se crea el escalar, que se llamar delta donde se ir almacenando Cx. Se le asigna

delta=distest(cur)

donde distest es un vector que guarda la distribucin estacionaria multiplicada por , es


decir, la posicin i de distest guarda C(i).

Si cur tiene algn vecino fuera del camino comenzamos el lazo interno
37

Si nex0:

HACER 2 % tendr criterio de parada igual al del lazo del algoritmo asignacin conductancias

Si nex tiene lazo a=0, si no a=1.

La iteracin depender de un condicional (Si) que, basado en el nmero de vecinos de nex,


ofrecer tres posibilidades:

Caso 2.1: nex es vrtice de interseccin (tiene ms de dos vecinos distintos de s


mismo)

Condicin:

(FP(nex+1)-FP(nex)>3 y a=0) (a=1 y FP(nex+1)-FP(nex)>2)

- Subacaso 2.1.1: llego a la interseccin por primera vez.

Condicin:

IV(u)nex

Se realiza:

u= u+1
delta=delta+distest(nex) % se suma a delta C(nex)
IV(u)= nex
PN(u)=cur
NVN(u)= FP(nex+1)-FP(nex)-3+a
38

Aqu, FP(nex+1)-FP(nex) es la cantidad de elementos en la fila nex de P, es


decir, el numero de vrtices con los que nex est conectado. A este nmero se le
resta uno por el vrtice anterior (PN(u)) y otro por el vrtice al cual voy
inmediatamente. Se resta uno ms si nex tiene lazo.

- Subcaso 2.1.2: no es la primera vez que llego a la interseccin y me faltan 2 o


ms vecinos de nex por visitar.

Condicin: No se entr en el Caso 1.1 y NVN(u) 2.

NVN(u)=NVN(u)-1

- Subcaso 2.1.3: solo me falta un vecino de nex por visitar.

Condicion: No haber entrado en los otros dos subcasos.

Como enseguida saltaremos al nico vecino de nex sin visitar, ya no


consideraremos a nex como un vrtice de interseccin.

IV(u)=0
NVN(u)=NVN(u)-1
PN(u)=0

Una vez cubiertos los subcasos, se procede a escoger el prximo vecino que se visitar,
al cual se le llamar temp. El criterio para esta escogencia ser ligeramente distinto
dependiendo de si nex es cam(cont+1i) o no (si nex es el x para el cual se est calculando
Cx o no).
39

Si nex cam(cont+1i), se ordenan los vecinos de nex que no son ni cur ni nex. Entre
estos vecinos, el que buscamos est en la posicin FP(nex+1) FP(nex) 2 NVN(u) +
a. Entindase, (todos los vecinos de nex) (cur y nex) (los no visitados) + (nex si ste
no tiene lazo).

Si nex = cam(cont+1i), se ordenan los vecinos de nex que no son cur, nex o op.
Entonces hay dos posibilidades. Si op = 1, el vecino que buscamos est en la posicin
FP(nex+1) FP(nex) 2NVN(u) +a de modo idntico a cuando nexcam(cont+1i). Si
op = cam(cont-i), el vecino que buscamos est en la posicin FP(nex+1)- FP(nex) 3
NVN(u) + a. Entindase, (todos los conectados a nex) (cur, nex y cam(cont-i)) (los no
visitados) + (nex si no tiene lazo). Por cuestiones de formato, no se pudo incluir el
seudocdigo aqu.

Si se haba entrado por el Subcaso 1.3, entonces

u=u-1

Se actualiza

cur=nex
nex=temp

Caso 2.2: nex no es ni interseccin ni hoja (tiene exactamente dos vecinos distintos de
s mismo)

Condicin:

(FP(nex+1)- FP(nex)=3 y a=0) (a=1 y FP(nex+1)- FP(nex)=2)

Se busca el nico vecino no visitado y se le llama temp.


40

delta=delta+distest(nex) % se suma C(nex) a delta


cur=nex
nex=temp

Caso 2.3: nex es hoja (solo tiene un vecino distinto de nex)

Condicin:

(FP(nex+1)- FP(nex)=2 y a=0) (a=1 y FP(nex+1)- FP(nex)=1)

delta=delta+distest(nex) % se suma a delta C(nex)


Si (PN(u)0) % Si quedan vrtices de interseccin por revisitar
cur=PN(u)
nex=IV(u)
Si no
Salir de HACER 2
Fin Si

Fin HACER 2

Para este momento el escalar delta cumple delta = Ccam(cont+1-i).

Se actualiza ET,

ET=ET+r*delta

Excepto si i = cont, se actualiza r como sigue

Si (cam(cont+1-i)<cam(cont-i))
r=r+1/C(cam(cont+1-i),cam(cont-i))
41

Si no y si (cam(cont+1-i)>cam(cont-i))
r=r+1/C(cam(cont-i),cam(cont+1-i))
Fin Si
Fin HACER PARA 1

2.5 Linealidad de las implementaciones de los algoritmos

Con respecto al algoritmo de asignacin de conductancias, la manera en que se implementa el


lazo dista de como se enunci en el algoritmo en el siguiente aspecto: al llegar a un vrtice de
ms de dos vecinos, slo se asignarn la conductancia que va de l a s mismo y la que va de l a
uno slo de sus vecinos. El resto de las conductancias asociadas al este vrtice de interseccin se
asignarn, una a una, cuando, al llegar a una hoja, se deba retornar al vrtice de interseccin y
cruzarse a un vecino no visitado. Esto obligar a retornar a cada vrtice de interseccin u, d(u) 2
veces despus de la primera visita, es decir, debido a u haremos d(u) 1 iteraciones. Como las
hojas y los vrtices de grado 2 se recorren slo una vez, tenemos que el nmero de iteraciones del
lazo es menor que la suma de los grados de todos los vrtices. Como se ha mencionado antes, es
un resultado muy conocido (Euler) que la suma de los grados de los vrtices es igual a 2 |E|,
donde |E| es el nmero de lados del grafo. Esto nos dice que, como estamos trabajando con
rboles, el nmero de iteraciones ser menor que 2(n 1). Adems, como hemos visto cada
iteracin tiene un nmero mximo de iteraciones fijo. Este hecho, sumado a que antes del lazo el
nmero de operaciones crece de forma lineal en n (el llenado de los vectores asociados a P, que
tienen tamao a lo ms de 3n-2, implica un igual nmero de asignaciones), nos aseguran la
linealidad del algoritmo en el sentido del nmero de operaciones a realizar.

La situacin es similar, con respecto al algoritmo de obtencin de un tiempo de llegada. La


diferencia que presenta la implementacin con respecto al enunciado, es que en lugar de visitarse
una vez a cada vrtice, cada vrtice de interseccin u se visita un total de d(u) 1 veces, es decir,
produce d(u) 1 iteraciones del Lazo Interno. Mientras tanto los vrtices de grado 1 o 2 slo
producen una iteracin del Lazo Interno. Por lo cual el nmero de iteraciones del Lazo Interno es
42

menor que 2(n 1). Aqu tambin el nmero de operaciones en cada iteracin del Lazo Interno
tiene un mximo fijo de operaciones, mientras que, fuera del Lazo Interno, el Lazo Externo tiene
un nmero fijo de operaciones. Antes del lazo externo el nmero de operaciones crece
linealmente a medida que crece el nmero de vrtices (el llenado de los vectores asociados a P y
la bsqueda del camino entre b y c, que puede tener a lo ms n pasos cuando b y c son los
extremos del grafo lnea). As la implementacin del algoritmo es lineal en cuanto al nmero de
operaciones a realizar.

Lo nico que faltara por revisar es si los algoritmos son lineales en cuanto al almacenamiento.
Esto es claro, pues ambos utilizan un nmero finito de vectores (tres asociados a P, tres asociados
a C, IV, NVN, PN, gen, pater y cam) de longitud lineal en n (los que ms pueden medir son IP y
CP que pueden llegara a almacenar 3n-2 datos). De resto, se utilizan un nmero finito de
escalares.
43

CAPTULO 3
RESULTADOS Y ANLISIS

En este captulo se har referencia a resultados que tengan que ver con la precisin en el clculo
de la distribucin estacionaria, y de los tiempos de llegada, as como con la linealidad de los
algoritmos de asignacin de conductancias y obtencin de tiempos de llegada. Por ltimo, se har
un pequeo comentario sobre la distribucin que tiene el valor de las conductancias para lados
lejanos a la hoja inicial. Es claro que en estos casos nos referimos a la precisin numrica del
algoritmo pues ya hemos demostrado su correctitud terica. La implementacin de los algoritmos
presentados en el captulo anterior y otros que sern nombrados en este captulo se realiz en
FORTRAN 95.

Para probar los algoritmos del captulo anterior se crearn rboles aleatoriamente utilizando los
mtodos encontrados en Fast Random Generation of Binary, t-ary and Other Types of Trees de
A. J. Quiroz (1989). Se modificaron ligeramente los mtodos de dicho trabajo para que en lugar
de producir nicamente rboles de manera aleatoria, produzcan cadenas de nacimiento y muerte
en rboles, de manera aleatoria. Es decir, adems de asignar aleatoriamente la incidencia de los
lados, el algoritmo modificado genera aleatoriamente probabilidades de transicin entre los
vecinos de manera de tener una cadena ergdica. Adems, para cada vrtice, con probabilidad
se asignar una probabilidad no nula de volver al mismo vrtice en un paso.

Con base en esta referencia, cuando hablamos de tipo de rbol nos referimos a restricciones
sobre el grado de los vrtices del rbol. Si el tipo es 2, el rbol ser binario, si el tipo es 3 el rbol
ser terciario y as en adelante. Ntese, que si el tipo es 1, el grafo es un grafo lnea y si el tipo es
n-1, el grafo es una estrella. Tendremos por grafo de tipo 0 a aquel para el cual no se imponen
restricciones sobre los grados de los vrtices.
44

3.1 Sobre la precisin en el clculo de la distribucin estacionaria:

Como se ha dicho en el punto 1.4 del Marco Terico, la distribucin estacionaria es un vector
fila , con entradas no negativas, que cumple que i= 1, y = P. Tambin se ha dicho que
para las cadenas de nacimiento y muerte ergdicas en rboles, la distribucin estacionaria es
nica.

Como = P, sabemos que cualquier mltiplo de , digamos a cumple a=aP.


Inversamente, si tenemos un vector x tal que x=xP y tal que existe un escalar b que cumple que
bx tiene entradas no negativas y b i= 1, entonces bx es la distribucin estacionaria.

Por otro lado, sabemos que, habiendo representado una cadena de nacimiento y muerte con
conductancias adecuadas, podemos obtener la distribucin estacionaria mediante la frmula

i = . Por esto, para chequear la precisin numrica en el clculo de la distribucin

estacionaria basta chequear la diferencia entre el vector cuya i-sima entrada es C(i), es decir,
y el producto de ese vector por P, es decir, P, pues si este vector cumple que
la diferencia P es casi nula entonces la diferencia P ser pequea,
numricamente.

La razn para dar esta vuelta y no comparar directamente P es que, al no contar con una

computadora de mayor precisin, en algunos casos, la divisin genera errores numricos

que alteran esta comparacin.

Dicho esto, pasaremos a mostrar una Tabla 3.1 donde se calcula el error relativo mximo
obtenido de la resta P, es decir,
, donde ( P)i representa la posicin i-sima de
P. Esto se calcular para rboles de distintos tipos y distintos tamaos. Adems, para
que el lector vaya teniendo una idea del tiempo de corrida del algoritmo, se muestran el tiempo
45

que tarda el algoritmo en asignar las conductancias, calcular la distribucin estacionaria y


calcular el error relativo mximo.

Tabla 3.1: Error relativo mximo en el clculo de la distribucin estacionaria.

Tamao del rbol Tipo Tiempo de corrida Error relativo


(nmero de vrtices) (seg.) mximo
1,001 0 0.094 1.886698 E-07
5,431 0 0.499 2.340293 E-07
15,823 0 1.451 2.375891 E-07
60,393 0 5.710 2.648704 E-07
1,989 1 0.156 1.761177 E-07
3,165 2 0.140 2.218519 E-07
10,007 2 0.437 2.314552 E-07
103,059 2 4.508 2.324671 E-07
50,686 3 2.418 2.575698 E-07
251,773 3 12.012 2.605825 E-07
24,893 7 1.513 2.372057 E-07
75,545 24 7.613 3.573981 E-07
11,608 73 2.605 4.867244 E-07
5,684 5,683 86.378 6.680588 E-07

La cuarta columna de la tabla, deja poco que decir. Que para todos los casos el error relativo
mximo haya sido del orden de las millonsimas, incluidos grafos con 251,773 vrtices habla de
una gran precisin numrica y de que no se estn arrastrando errores mayores an cuando cada
conductancia depende de la anterior.

Como resultados interesantes tenemos el hecho de que para un grafo binario con 103,059
vrtices el tiempo de corrida haya sido slo de 4.508 segundos y que para un grafo terciario de
251,773 vrtices, el tiempo haya sido de 12.012 segundos. Que para grafos de tan inmenso
tamao, el programa corra en menos de un cuarto de minuto, habla de lo til que puede ser el
algoritmo al enfrentar problemas grandes.
46

Llama la atencin tambin la ltima fila de la tabla: el grafo estrella de tamao 5,683 genera un
tiempo de corrida mayor, incluso, que el doble de la suma de todos los dems tiempos de corrida.
Esto tiene su explicacin en el hecho de por a cada vrtice de interseccin u, el lazo del algoritmo
hace d(u) 1 iteraciones. Pero en el caso de la estrella, hay un nico vrtice de interseccin pero
su grado es n 1. Esto, junto con las n 1 iteraciones que generan las n 1 hojas, dan lugar a
2n 3 iteraciones, que dista en slo una iteracin de la cota que pusimos para el nmero de
iteraciones (2n 2).

3.2 Sobre la precisin del clculo de los tiempos de llegada:

En primer lugar utilizaremos el algoritmo para calcular tiempos de llegada para la cadena de
nacimiento y muerte de la Figura 1.1, partiendo de diferentes hojas iniciales para la asignacin de
conductancias. Los resultados se muestran en la Figura 1.1.

Tabla 3.2: Tiempos de llegada en Figura 1.1

Hoja inicial E5T2 E3T1


1 44.5001 135
5 44.5001 135
6 44.5001 135

Como se ha dicho, el valor de los tiempos de llegada no debe cambiar si cambian las
conductancias debido a hojas iniciales distintas. Se invita al lector a comprobar manualmente que
los tiempos de llegada de la Tabla 3.2 son, en efecto, 44.5 y 135.

Tras haber revisado este pequeo ejemplo manualmente, se pasar a chequear ejemplos de
mayor tamao cuya revisin manual sera muy tediosa. Para esta revisin se implement tambin
el mtodo clsico de obtencin de tiempos de llegada, al cual se hizo referencia en la seccin 1.5
del Marco Terico y aprovecharemos para comparar ambos mtodos con respecto a la estabilidad
numrica.
47

El mtodo clsico necesita para la formacin de la matriz fundamental, la distribucin


estacionaria. Esta distribucin la obtendremos gracias al algoritmo de asignacin de
conductancias. De este modo ambos mtodos dependern de los resultados que arroje el
algoritmo de asignacin de conductancias y as podremos comparar cmo reaccionan ambos ante
cambios en la hoja inicial del mencionado algoritmo.

La comparacin se har entonces mediante tablas (Tablas 3.3, 3.4, 3.5, 3.6, 3.7, 3.8) que, para
grafos de diferentes tamaos, tendrn la doble funcin de, por un lado comparar las variaciones
que presentan cada mtodo dadas hojas iniciales distintas y comparar tiempos de llegada
obtenidos por ambos mtodo para ver si son similares.

En estas tablas, cada columna corresponde a un par de vrtices, entre los cuales se calcular el
tiempo de llegada (y de los cuales se especifica su posicin en el rbol). Cada fila corresponde a
una hoja distinta, desde la cual se empezaron a asignar las conductancias, necesarias para la
posterior obtencin de los tiempos de llegada. La ltima fila de cada tabla, contiene las
diferencias relativas mximas entre un par de datos, para cada columna.

Los grafos utilizados son grafos aleatorios, sin restricciones en el grado de sus nodos. Para cada
n el grafo ser siempre el mismo. Lo que variar sern las hojas iniciales.

n = 20 (seed: 516232)

Tabla 3.3: Tiempos de llegada va mtodo propuesto, para n = 20.

Hoja inicial E7T11 E13T18 (hoja el E5T15 (hoja el E3T16


(ambas hojas) vrtice de salida) vrtice de llegada) (ninguna hoja)
1 43226.5 362563 883372 2157.72
6 43226.5 362563 883373 2157.72
8 43226.5 362563 883373 2157.72
11 43226.5 362563 883372 2157.72
48

12 43226.5 362563 883372 2157.72


15 43226.5 362563 883373 2157.72

Dif. Rel. Max. 0 0 1.132024 e-06 0

Tabla 3.4: Tiempos de llegada va mtodo clsico, para n = 20.

Hoja inicial E7T11 E13T18 (hoja el E5T15 (hoja el E3T16


(ambas hojas) vrtice de salida) vrtice de llegada) (ninguna hoja)
1 43226.5 362563 883372 2157.72
6 43226.5 362563 883372 2157.72
8 43226.5 362563 883372 2157.72
11 43226.5 362563 883372 2157.72
12 43226.5 362563 883372 2157.72
15 43226.5 365443 883372 2157.72

Dif. Rel. Max. 0 0 0 0

Para n = 20, ninguno de los mtodos present variaciones significativas dadas hojas distintas.
Adems, los tiempos de llegada obtenidos por ambos mtodos fueron esencialmente los mismos.

n = 100 (seed: 378)

Tabla 3.5: Tiempos de llegada va mtodo propuesto, para n = 100.

Hoja inicial E1T63 E87T33 (hoja el E76T64 (hoja el E45T82


(ambas hojas) vrtice de salida) vrtice de llegada) (ninguna hoja)
1 13617.4 728119 2.954695 E+08 4.829499 E+06
9 13617.4 728119 2.954694 E+08 4.829498 E+06
49

24 13617.4 728119 2.954694 E+08 4.829498 E+06


52 13617.4 728119 2.954694 E+08 4.829498 E+06
63 13617.4 728119 2.954695 E+08 4.829498 E+06
87 13617.4 728119 2.954695 E+08 4.829500 E+06

Dif. Rel. Max. 0 0 3.384444 E-07 4.141215 E-07

Tabla 3.6: Tiempos de llegada va mtodo clsico, para n = 100.

Hoja inicial E1T63 E87T33 (hoja el E76T64 (hoja el E45T82


(ambas hojas) vrtice de salida) vrtice de llegada) (ninguna hoja)
1 12765.3 663070 2.954721E+08 4.832034E+06
9 12764.2 662902 2.954721E+08 4.832037E+06
24 12738.0 663349 2.954720E+08 4.832016E+06
52 12790.2 666835 2.954719E+08 4.831876E+06
63 12733.4 662839 2.954720E+08 4.832030E+06
87 12760.2 666096 2.954719E+08 4.831901E+06

Dif. Rel. Max. 4.4409 E-03 5.992486 E-03 6.768828 E-07 3.331928 E-05

Para n = 100, se observa que el mtodo propuesto no presenta mayores cambios al variar la
hoja inicial: el mayor cambio fue de 4.141215 E-07. Por su parte, el mtodo clsico s present
diferencias considerables: 4.4409 E-03 y 5.992486 E-03.

En este caso, se evidenciaron importantes diferencias entre los tiempos de llegada obtenidos
por ambos mtodos. El caso ms resaltante fue el clculo de E87T33 donde la diferencia relativa
mxima entre los resultados obtenidos por ambos mtodos fue de 0.089656, casi un 9%.
50

n = 500 (seed: 625)

Tabla 3.7: Tiempos de llegada va mtodo propuesto, para n = 500.

Hoja inicial E432T304 E192T314 (hoja el E340T113 (hoja el E157T468


(ambas hojas) vrtice de salida) vrtice de llegada) (ninguna hoja)
69 3.655572 E+18 15611.8 2.184577 E+20 2.081775 E+25
163 3.655571 E+18 15611.8 2.184577 E+20 2.081774 E+25
291 3.655573 E+18 15611.8 2.184577 E+20 2.081774 E+25
309 3.655574 E+18 15611.8 2.184577 E+20 2.081775 E+25
358 3.655572 E+18 15611.8 2.184576 E+20 2.081775 E+25
414 3.655572 E+18 15611.8 2.184576 E+20 2.081775 E+25

Dif. Rel. Max. 8.206652 E-07 0 4.577545 E-07 4.803593 E-07

Tabla 3.8: Tiempos de llegada va mtodo clsico, para n = 500.

Hoja inicial E432T304 E192T314 (hoja el E340T113 (hoja el E157T468


(ambas hojas) vrtice de salida) vrtice de llegada) (ninguna hoja)
69 3.645635E+18 -3.733803E+12 2.100382E+20 2.081862E+25
163 3.645635E+18 -3.733803E+12 2.100382E+20 2.081862E+25
291 3.645635E+18 -3.733803E+12 2.100382E+20 2.081861E+25
309 3.645635E+18 -3.733803E+12 2.100382E+20 2.081862E+25
358 3.645635E+18 -3.733803E+12 2.100382E+20 2.081862E+25
414 3.645634E+18 -3.733803E+12 2.100382E+20 2.081862E+25

Dif. Rel. Max. 2.743006 E-07 0 0 4.803392 E-07


51

Para n = 500, ningn mtodo se ve afectado notoriamente por el cambio en la hoja inicial,
siendo la mayor diferencia relativa mxima de 8.206652 E-07.

Con respecto a la diferencia entre los tiempos de llegada obtenidos por ambos mtodos, vemos
que, en las columnas 1 y 4 la diferencia no es mucha, en la columna 3 vemos que la diferencia
relativa mxima es de 0.038541, casi 4%. En la columna 2, observamos que el tiempo de llegada
por el mtodo clsico es negativo. Esto como sabemos, es tericamente imposible.

Estas tablas muestran que para todos los grafos estudiados, los tiempos de llegada obtenidos
por el mtodo propuesto no se ven alterados por las distintas conductancias con las que se pueda
representar el proceso de nacimiento y muerte. Para n = 20, muestran que los resultados
obtenidos por ambos mtodos son los mismos. Para n = 100 que las variaciones que presenta el
mtodo clsico ante ligeros cambios numricos en la distribucin estacionaria pueden llegar a ser
considerables, y tambin evidencia diferencias en los tiempos de llegada obtenidos por ambos
mtodos. Para n = 500, muestran tambin algunas diferencias entre los tiempos de llegada
obtenidos por ambos mtodos, pero muestran un hecho de mayor importancia, la posibilidad de
obtener tiempos de llegada negativos mediante el mtodo clsico. Este hecho muestra de manera
muy elocuente lo poco confiable numricamente que puede ser un mtodo que involucra la
inversin de una matriz. Ante esto y viendo que para el caso de n = 20, un caso pequeo, los
resultados de ambos mtodos coinciden, se puede considerar que las diferencias que pueden
haber entre los tiempos de llegada obtenidos por ambos mtodos para tamaos mayores, se deben
ms a la inestabilidad numrica del mtodo clsico, que ha imprecisiones del mtodo propuesto,
el cual se muestra muy estable.

Cabra preguntarse si esta comparacin es justa, pues al evaluar la precisin del clculo de la
distribucin estacionaria se ha dado toda una vuelta para evitar errores numricos en la obtencin
de sta. Se podra decir que estos errores numricos podran estar afectando negativamente el
desempeo del mtodo clsico. Por esto, hay que aclarar que los errores numricos en la
obtencin de la distribucin estacionaria empiezan a aparecer cuando los rboles sobrepasan la
barrera de los 10000 nodos. As la comparacin que hacemos aqu es justa, pues para rboles con
52

una cantidad de nodos de 500 el error en relativo mximo en el clculo directo de la distribucin
estacionaria se mantiene en siempre en el orden de las millonsimas.

Por otro lado, debe entenderse que, con respecto al tiempo de corrida, el mtodo clsico no se
puede comparar de manera justa con el mtodo que se propone en este trabajo pues es un mtodo
que calcula siempre todos los tiempos de llegada entre vrtices del rbol mientras que el que aqu
se propone es capaz de calcular un nico tiempo de llegada sin necesidad de encontrar otros.
Mientras que el mtodo propuesto ser de clara mayor velocidad al calcular un nico tiempo de
llegada, es probable que el mtodo clsico sea de mayor velocidad si se han de calcular todos los
tiempos de llegada.

3.3 Sobre la linealidad experimental:

Ya se ha dicho, que los algoritmos desarrollados son lineales tericamente pero viene bien
observar que realmente tienen este comportamiento en la prctica. Para esto debemos estudiar los
tiempos de corrida al variar el nmero de vrtices (el tamao del problema).

La siguiente tabla (Tabla 3.9) contiene tiempos de corrida para la asignacin de conductancias
y el clculo de un tiempo de llegada, para distintos grafos binarios, con el mismo nmero de
nodos en cada fila.

Tabla 3.9: Tiempos de corrida conductancias + tiempos de llegada

n Tiempos de corrida Promedio


(asignacin de conductancias + clculo tiempo de llegada)
101 0.000 0.016 0.016 0.016 0.031 0.0158
1001 0.078 0.078 0.062 0.125 0.078 0.0842
10001 0.967 0.967 0.92 0.952 0.983 0.9578
100001 9.454 9.532 9.391 9.266 9.36 9.4006
53

En esta tabla, ya se aprecia la linealidad de los algoritmos, sobretodo en la relacin de los


ltimos dos promedios. Pero para dar una imagen ms clara de esto, a continuacin se muestra un
grfico (Figura 3.1) que en el eje x tiene al logaritmo de n, el nmero de nodos, y en el eje y, tiene
el logaritmo de t, el promedio de tiempo de corrida.

Figura 3.1: Linealidad experimental

Se puede apreciar a simple vista que la pendiente de la recta que forman los puntos es
aproximadamente 1. Por lo tanto el grfico evidencia la linealidad de ambos procesos corridos
uno tras el otro. Esto implica su linealidad individual. La figura 3.1 fue obtenida mediante el
paquete estadstico R.
54

3.4 Sobre la distribucin del valor de las conductancias a distancia fija de la hoja inicial:

Retrnese a la Figura 2.2 y ntese que la conductancia ms alejada de la hoja inicial, la


conductancia entre los vrtices 4 y 5, tiene un valor de 12. Ahora vase la Figura 2.3. En ella la
conductancia ms alejada de la hoja inicial, la conductancia entre 1 y 2, tiene tamao 1/12. Ms
an, ntese que en la Figura 2.2, si se recorre el camino entre 1 y 5, veremos cmo las
conductancias van aumentando a medida que nos alejamos de la hoja inicial, mientras que en la
Figura 2.3, si recorremos ese mismo camino, notaremos que las conductancias van disminuyendo
a medida que nos alejamos de la hoja inicial.

El comportamiento opuesto, en este caso, del valor de las conductancias al alejarnos de la hoja
inicial, junto con observaciones similares en otros grafos de pequeo tamao, inspiraron un ligero
estudio sobre la distribucin del valor de las conductancias.

Para este estudio se implement un programa que dado n, tamao de rbol, k, nmero de
rboles, y t, tipo de rbol, generara aleatoriamente k cadenas de nacimiento y muerte en rboles
de tamao n y tipo t, les asignara conductancias a partir de una hoja, tambin escogida al azar, y
creara un vectores que en la posicin i-sima guardar el promedio de las conductancias a una
determinada distancia de la hoja inicial, para la cadena i-sima.

Se escogieron como distancia, mltiplos de porque, para fracciones de n, los vectores


podan aportar datos para tamaos pequeos y luego dar como salida un vector vaco para
tamaos grandes. Los mltiplos de tienen la ventaja de crecer ms lento que las fracciones de
n, a medida que n crece, lo cual dificulta que al aumentar el n obtengamos vectores sin datos.

Se realizarn dos mostrarn dos ejemplos que ilustrarn los hallazgos realizados:

Ejemplo 1: constar de 100 rboles binarios de tamao 101. no es entera y tomamos su


piso, 10. 10/2 = 5 se tomar como la distancia a la cual estarn las conductancias a ser estudiadas.
55

Una vez corrido el programa se procede a hacer un histograma de los promedios para cada rbol.
Se obtuvo lo siguiente (Figura 3.2),

Figura 3.2: Histograma Ejemplo 1

Vemos que todos los datos estn agrupados por debajo de 10000, que hay pocos datos entre
10000 y 20000, que no hay datos entre 20000 y 60000 y que hay pocos datos entre 60000 y
70000. Para ver el comportamiento de la mayora de los datos se hizo un histograma para datos
menores a 10000. Se obtuvo (Figura 3.3),
56

Figura 3.3: Histograma Ejemplo 1. Datos menores a 10000.

Este segundo histograma es casi idntico al primero: Una gran acumulacin de datos por debajo
de 1000, unos pocos datos en la unidad de mil siguiente, un largo intervalo sin datos y un
pequeo intervalo con pocos datos. Veamos cmo se comportan los datos por debajo de 1000
(Figura 3.4),
57

Figura 3.4: Histograma Ejemplo 1. Datos menores a 1000.

y los datos menores que 100 (Figura 3.5),

Figura 3.5: Histograma Ejemplo 1. Datos menores a 100.


58

Sin bien no podemos distinguir la distribucin de las conductancias, hay algo que se aprecia
inmediatamente: la distribucin es autosimilar, forma un fractal.

Hay otro hecho que se puede distinguir, si se presta un poco ms de atencin. La Figura 3.5 nos
seala que ms de 80 de los promedios se encuentran entre 0 y 20, pero las Figuras 3.2 y 3.3 nos
muestran que a pesar de haber grandes intervalos sin datos los valores promedios de las
conductancias a distancia 5 de la hoja inicial pueden alcanzar valores entre 90000 y 10000, entre
10000 y 20000 y entre 60000 y 70000. Esto sugiere que la distribucin de estos promedios tiene
una mediana cercana al cero (pues la mediana muestral tiende a la mediana terica) y una cola
sumamente pesada.

Ejemplo 2: se generarn 100 cadenas de nacimiento y muerte en rboles binarios de tamao


1001. El piso de , 31, se tomar como la distancia a la hoja inicial para la cual se tomarn
los promedios de los valores de las conductancias. Por medio de los histogramas, se podr
distinguir lo mismo que en el Ejemplo 1, en cuanto a autosimilaridad y cola muy pesada. Sin
embargo aqu la mediana no parece estar cerca de 0. El anlisis es termina aqu y se dejan los
histogramas (Figuras 3.6, 3.7, 3.8, 3.9, 3.10, 3.11) como evidencia de estas propiedades. Lo
ltimo que se dir es que en este caso la cola es tan pesada que mostrar todos los histogramas
hasta llegar cerca del 0 ocupara demasiado espacio y por eso habr saltos entre los valores
mximos en el eje x y los puntos hasta donde se acumulan los datos en el histograma anterior.
59

Figura 3.6: Histograma Ejemplo 2

Figura 3.7: Histograma Ejemplo 2. Datos menores a 5 E+11


60

Figura 3.8: Histograma Ejemplo 2. Datos menores a 5 E+07

Figura 3.9: Histograma Ejemplo 2. Datos menores a 5 E+06


61

Figura 3.10: Histograma Ejemplo 2. Datos menores a 200.

Figura 3.11: Histograma Ejemplo 2. Datos menores a 50.


62

CONCLUSIONES Y RECOMENDACIONES

En el presente trabajo se propuso un algoritmo para la asignacin de conductancias mediante


las cuales una cadena de nacimiento y muerte en rboles puede ser representada como un paseo
aleatorio en dicho rbol. Gracias a un estudio terico del algoritmo se obtuvo que ste es finito y
es correcto. Adems se mostr que el algoritmo tiene complejidad lineal en el nmero de nodos
del rbol.

Tambin se dise un algoritmo mediante el cual, a partir de las conductancias asignadas por el
primer algoritmo, se puede encontrar un tiempo de llegada en una cadena de nacimiento y muerte
en un rbol. Este algoritmo busca aplicar una frmula previamente existente para el clculo de
estos tiempos de llegada. Mediante un estudio terico se demostr que el algoritmo tiene
complejidad lineal en el nmero de nodos del rbol. De este modo, utilizando ambos algoritmos
consecutivamente, se tiene una forma de encontrar un tiempo de llegada de manera lineal, cosa
que hasta ahora no se conoca.

Adems del clculo de tiempos de llegada, otra utilidad de representar una cadena de
nacimiento y muerte en un rbol como un paseo aleatorio en dicho rbol, es la posibilidad de
calcular con facilidad su distribucin estacionaria. Los mtodos conocidos para calcular la
distribucin estacionaria tienen complejidad ms que cuadrtica en el nmero de vrtices. Al
presentar un algoritmo que asigna conductancias de manera lineal, y existiendo frmulas que
dadas estas conductancias obtienen la distribucin estacionaria con un nmero lineal de
operaciones, el presente trabajo aporta la manera ms rpida conocida de obtener dicha
distribucin.

Al evaluar numricamente el clculo de la distribucin estacionaria mediante el mtodo


propuesto, se evidenci que tiene una alta precisin tanto en grafos binarios, terciarios y t-arios
para otros t, como para vrtices sin restricciones en los grados de sus vrtices.
63

Mediante una comparacin numrica del mtodo clsico de obtencin de tiempos de llegada
con el mtodo propuesto en este trabajo, se evidenci que el mtodo propuesto tiene la propiedad
de ser numricamente estable, es decir, que sus resultados no se ven afectados por pequeas
distorsiones en la entrada, propiedad que el mtodo clsico no prob tener. Por esta razn, se
recomienda el uso del mtodo propuesto por sobre el mtodo clsico, cuando se necesite
precisin en los clculos.

Como el mtodo propuesto para hallar tiempos de llegada no se puede comparar con el mtodo
clsico, se recomienda, para futuros trabajos, la bsqueda de un nmero k, tal que para buscar
menos de k tiempos de llegada sea mejor utilizar el mtodo propuesto y para buscar ms de k
tiempos de llegada sea recomendable usar el mtodo clsico.

Por ltimo, dado el atractivo que presenta la distribucin de las conductancias a una distancia
fija de la hoja inicial del algoritmo de asignacin de conductancias, se recomienda un estudio ms
detallado sobre esta que defina no slo la familia a la que pertenece sino sus parmetros.
64

REFERENCIAS BIBLIOGRFICAS

1. Doyle, P. G., Snell, J. L., Random Walks and electric networks. Version 3.02. Free
Sofware Foundation. 2000.
2. Feller, W. An Introduction to Probability Theory and Its Applications. Volume I. Third
Edition. John Wiley & Sons, Inc. 1968.
3. Grinstead, C. M. y Snell, J. L., Introduction to Probability. Second Edition. American
Mathematical Society, Providence, RI. 1997.
4. Hoel, P., Port, S. y Stone, C. Introduction to Stochastic Processes. Houghton Mifflin
Company. 1972.
5. Lalley, S. Markov Chains. Basic Theory. Disponible en Internet:
http://galton.uchicago.edu/~lalley/Courses/312/MarkovChains.pdf, consultado el 11 de
Febrero de 2012.
6. Palacios, J. L. y Tetali, P. A note on expected hitting times for birth and death chains.
Statistics & Probability Letters, 1996, 30, 119-125.
7. Palacios, J. L. The ruin problem via electrical networks. The American Statistician, 1999,
52, 67-70.
8. Palacios, J. L. A note on circular Markov chains, Statistics & Probability Letters, 2000,
47, 201-306.
9. Palacios, J.L. On hitting times of random walks on trees. Statistics & Probability Letters.
2009, 79, 234-236.
10. Panconesi, A. 2005. The Stationary Distribution of a Markov Chain. Disponible en
Internet: http://www.dis.uniroma1.it/~leon/didattica/webir/pagerank.pdf, consultado el 9
de Febrero de 2012.
11. Quiroz, A. J. Fast Random Generation of Binary, t-ary and Other Types of Trees. Journal
of Classification, 1989, 6, 223-231
12. West, D. B.. Introduction to Graph Theory. Pearson Education, Inc. 2001.
65

Você também pode gostar