1. Introducción
En nuestro entorno existe una gran variedad de tipos de red, de diferente naturaleza y diversas estructuras. Los estudios realizados sobre redes han permitido entender varios fenómenos naturales y sociales, así como proponer soluciones a varios problemas. En 1998 Watts y Strogatz [6] introdujeron un modelo matemático de red llamado “small world”, el mismo que sostiene que dada una red R en la que se encuentran los nodos a, b y c, separados por una distancia d, en donde, d(a, b) > d(a, c) ≥ 1 y, d(a, b) > d(c, b) ≥ 1, es posible mediante la construcción de una red small world, establecer un enlace unidireccional entre a y c que defina una distancia d’(a, c) = 1, por lo que la distancia d’(a, b) = 1 + d(c, b) ≤ d(a, b), es decir, se ha acercado el nodo a al nodo b, mediante un camino de longitud d’(a, b) = d(a, b) − d(a, c) + 1, sin embargo, esto no implica que el nodo b se ha acercado al nodo a, puesto que el nodo b no ha creado ningún enlace diferente a los que tenía inicialmente. También es evidente que d’(a, c) ≤ d(a, c), por lo que también el nodo a se ha acercado al nodo c, siempre y cuando d(a, c) > 1. Cuando se crea un enlace unidireccional entre un nodo a y un nodo c, se dice que c es un vecino lejano de a. Este concepto se utiliza para crear redes de tipo small world, y para entender diferentes fenómenos que suceden en la redes [7]. Una manera de crear redes small world es mediante el algoritmo de Kleinberg [1, 3, 4, 13] y mediante el algoritmo de Biased Selection [2].
La implementación de algoritmos que permitan establecer vecinos lejanos de manera aleatoria entre los nodos de una red es un tema de gran importancia para la computación, y es de interés general debido a la variedad de áreas en las que se los puede aplicar, por ejemplo: reducción del valor promedio de consumo de energía, y conservación de la energía en redes tipo Ad-hoc [8, 9]; ayuda a la detección de inconvenientes que pueden complicar la aplicación de algoritmos y software diseñados para estudios sociales [10]; estudios sobre fenómenos de redes sociales de tipo small world [11].
Este trabajo muestra los resultados de un estudio comparativo entre los dos algoritmos luego de haber generado redes small world utilizando las dos técnicas. Se concluye que Biased Selection (BS) puede generar una small world con una distribución semejante a la de Kleinberg, pero otorgando a los nodos más alejados una mejor probabilidad de ser escogidos como vecinos lejanos que la que otorga Kleinberg.
2. Descripción de los algoritmos
Este trabajo muestra una comparativa entre el clásico algoritmo de Kleinberg y Biased Selection, ambos permiten crear redes small world mediante la generación de enlaces unidireccionales entre un nodo y un vecino lejano; para ello se ha trabajado sobre un grafo con la estructura de un toroide completo de dimensiones 100x100, que es una estructura de red en forma de grilla, el grafo está conformado por diez mil nodos, todos los nodos tienen inicialmente cuatro vecinos, cada nodo i posee un identificador que es un número secuencial entre 0 y 9999, además, cada nodo i tiene una ubicación de coordenadas (xi, yi) dentro del grafo (Figura 1).
El Algoritmo de Kleinberg
El algoritmo de Kleinberg, para crear un enlace a un vecino lejano desde un nodo determinado, propone primeramente calcular la sumatoria del inverso en las distancias Euclidianas elevadas a la segunda potencia, desde dicho nodo a todos los demás nodos, como se muestra en (1).
donde m es el número total de nodos que tiene el toroide, y d es la distancia Euclidiana entre el nodo origen u y el nodo vi, (si u = vi, entonces d(u, vi) = 0). El cálculo de la distancia Euclidiana entre dos nodos viene dado por (2):
donde (x1, y1) representa la ubicación del nodo u en el toroide, y (x2, y2) representa la ubicación del nodo vi en el toroide.
La figura 2. Muestra la variación de la inversa distancias Euclidiana entre el nodo 0 (u = nodo 0) y los demás nodos del grafo, elevadas al cuadrado. En esta figura se puede apreciar un gráfico de tipo “cola larga”.
Este algoritmo propone generar un número p de manera aleatoria con probabilidad uniforme entre 0 y S, finalmente vuelve a calcular la sumatoria del inverso de las distancias Euclidianas elevadas a la segunda potencia S’ entre el nodo origen y los demás nodos pero solamente hasta que se cumpla (3):
El vecino lejano será el nodo que el algoritmo haya tomado como muestra cuando se cumpla (3). Por ejemplo, Si S’ ≥ p cuando en la sumatoria definida en (1) sea i = j, entonces el valor de S’ estaría definida por (4), y el vecino lejano escogido para el nodo u sería el nodo vj [5]:
Se han realizado experimentos tomando 500000, 1000000 y hasta 2000000 de vecinos lejanos para el nodo 0 (nodo origen).
El algoritmo de Biased Selection
Otra manera de obtener un vecino lejano para un nodo es mediante la implementación del algoritmo Biased Selection (BS) [2]. Este algoritmo alcanza la distribución de probabilidad deseada cuando la distribución estacionaria del proceso de Markov es alcanzada [12].
El funcionamiento de este algoritmo se describe a continuación: se toma un nodo determinado como nodo origen (nodo u), y se obtiene dos nodos aleatorios x e y escogidos con probabilidad uniforme distintos al nodo origen (u ≠ x ≠ y), de los cuales, inicialmente el nodo escogido como vecino lejano de u es x, la probabilidad de que el nodo y sea finalmente escogido como vecino lejano de u viene dada por la probabilidad resultante de (5):
donde:
Luego se genera un número aleatorio q entre 0 y 1 de manera uniforme, el nodo escogido como vecino lejano de u es y cuando se cumple (8), en cualquier otro caso el vecino lejano de u es x; hay que tener en cuenta que BS es un algoritmo iterativo, por lo cual para establecer un vecino se debe realizar este proceso un determinado número de rondas:
El número de muestras obtenido fue el mismo para los dos algoritmos, con el fin de poder hacer la comparativa correspondiente.
Se puede notar entonces que en los dos casos, un nodo v tendrá mayor posibilidad de ser escogido como vecino lejano de un nodo u, (para u ≠ v) mientras de(u, v) sea más pequeña, es decir, los nodos que se encuentren en el lado opuesto del toroide tendrán menor probabilidad de ser escogidos.
La Figura 3 muestra la frecuencia con la que cada nodo fue escogido como vecino lejano, ordenando los nodos según su identificador, desde 1 hasta 9999.
El objetivo de la Figura 3 es determinar los nodos que tendrían menos probabilidad de ser escogidos como vecinos lejanos del nodo 0, según la gráfica se puede ver que los nodos ubicados en la mitad de la numeración secuencial han sido muestreados menor cantidad de veces, pudiendo definir que para el nodo 0 el nodo más lejano es el que tenga la posición dentro de la grilla de (50, 50), es decir el nodo cuyo identificador es 5050; al aplicar (2), se obtiene que:
por lo tanto, P(0, 5050) = 0.0002, siendo esta la probabilidad menor de todas las posibles en el experimento, esto da una pauta para determinar el número mínimo de muestras necesarias para el experimento. Determinaremos que el número de muestras sea tal que le permita al nodo con menor probabilidad ser muestreado cien veces, entonces:
Aplicando (10), el número de muestras requerido para el experimento fue de 500,000, sin embargo, para dar mayor credibilidad al trabajo, se tomó una cantidad de muestras de hasta dos millones en cada experimento.
Para la ejecución de este trabajo se ha utilizado un grafo generado y cargado en memoria, dicho grafo representa un toroide completo de dimensiones 100 x 100.
Además se puede decir que el grafo es conexo, originalmente es no dirigido, y que sus aristas no tienen peso.
3. Discusión de resultados
Para los experimentos con los dos algoritmos se ha establecido al nodo 0 como nodo origen, esto sería irrelevante, ya que en el toroide completo todos los nodos tienen igual centralidad y grado.
Algoritmo de Kleinberg: en este algoritmo prevalece por completo la probabilidad de cada nodo candidato a ser escogido como vecino largo, ya que la distribución del muestro tiene la forma de una “cola larga”, en la que los nodos escogidos como vecinos lejanos del nodo 0 se “ordenan ascendentemente” según su distancia Euclidiana al nodo origen, como se puede apreciar en la figura 4. Al comparar la figura 4 y la figura 2 se nota la similitud de las curvas, lo que corrobora esta deducción.
Algoritmo Biased Selection: Los experimentos realizados con el algoritmo BS fueron ejecutados con un número de rondas que varía de forma incremental, con ello se ha notado que mientras mayor es el número de rondas, la distribución de la frecuencia del muestreo resulta ser más parecida a la distribución de la frecuencia del muestreo de Kleinberg, a continuación se muestra los resultados más relevantes. Desde la figura 5 hasta la figura 11, se puede observar la similitud que adquiere la distribución obtenida con la distribución expuesta en la figura 4.
Desde la figura 8 hasta la figura 11, las curvas obtenidas no muestran variaciones significativamente importantes, sin embargo todas estas curvas ya han alcanzado la distribución de Kleinberg, que es semejante a la curva visualizada en la figura 2 (efecto “cola larga”).
Al graficar los resultados obtenidos luego de haber ejecutado los dos algoritmos con los que se han establecido hasta dos millones de vecinos lejanos para el nodo 0 de un toroide de tamaño 100x100, y en el caso de BS con diferentes números de rondas, hemos podido verificar que el algoritmo BS alcanza la distribución de Kleinberg aproximadamente con un número de rondas igual a 100.
En la distribución generada por el algoritmo de Kleinberg la frecuencia de la aparición de los nodos obtenidos como muestra mantiene un orden que coincide con la ordenación ascendente de las distancias Euclidiana de dichos nodos al nodo origen, es decir, esta probabilidad se mantiene.
En la distribución generada por BS, este orden se mantiene desde los nodos vecinos que tienen una distancia Euclidiana con respecto al nodo origen igual a 1, hasta los que tienen una distancia Euclidiana con respecto al nodo origen igual a 8, los nodos que tienen distancias mayores con respecto al nodo origen empiezan a ser escogidos como vecinos lejanos de manera aleatoria, es decir, el algoritmo BS da oportunidad a que el nodo origen alcance un vecino lejano que esté ubicado a una distancia mayor y de manera aleatoria con mayor frecuencia cuando el número de rondas se incrementa. BS puede ser una mejor opción que Klienberg cuando se desea que la distribución de las frecuencias del muestreo tenga una mayor uniformidad.
En la figura 12 se puede comparar las dos distribuciones de frecuencia obtenidas, en ella hay evidencia de que la frecuencia con la que los nodos más cercanos al nodo origen han sido escogidos con el algoritmo BS es mucho menor que la frecuencia con la que los mismos nodos fueron escogidos al utilizar Kleinberg.
La figura 13 muestra la gráfica del error relativo de la selección de los vecinos lejanos escogidos por BS, comparado con la selección de los vecinos lejanos escogidos por Kleinberg, la gráfica permite observar el error relativo obtenido versus el número de rondas que se realizaron antes de escoger el vecino con BS. Se evidencia que el valor del error se estabiliza luego de 100 rondas. BS no intenta simular un muestreo idéntico al de Kleinberg con un error relativo bajo, sino crear una red small world similar a la generada por el algoritmo de Kleinberg, pero con una distribución de frecuencia de muestro con uniformidad mayor.
La Tabla 1 muestra los resultados de tres experimentos realizados con el algoritmo de Kleinberg sobre el mismo toroide, en los cuales se seleccionaron 500.000, 1′000.000 y 2′000.000 de vecinos lejanos para el nodo 0 (nodo origen), la tabla muestra nodos que han sido seleccionados como vecino lejano con mayor frecuencia y los que han sido seleccionados como vecinos lejanos con menor frecuencia; los nodos que han sido seleccionados una mayor cantidad de veces como vecino lejano son los más cercanos al nodo origen (nodo 0), es decir, aquellos cuatro nodos que se encuentran a un distancia Euclidiana igual a 1; y los nodos que han sido seleccionados una menor cantidad de veces como vecino lejano son aquellos que están más alejados del nodo origen, es decir aquellos que se encuentran en el lado opuesto del toroide (el nodo 5050 es el menos escogido).
Se puede evidenciar que en los tres experimentos se han escogido los mismos nodos tanto con la mayor frecuencia como con la menor frecuencia, además, mientras más vecinos lejanos se obtengan para el nodo origen, más veces se seleccionan los nodos que se encuentran a distancia Euclidiana igual a 1, mostrando un incremento de la frecuencia de muestreo muy apreciable. En cambio, a pesar de que en cada experimento se ha incrementado el tamaño de la muestra de manera considerable, los nodos menos seleccionados como vecinos lejanos experimentan un incremento en su frecuencia de muestreo demasiado pequeño.
En la Tabla 2 se puede ver que en ningún caso el nodo menos elegido por BS ha sido el nodo 5050 que es el nodo más alejado con respecto al nodo origen (nodo 0).
La Tabla 3 muestra resultados obtenidos por el algoritmo de Kleinberg y por BS en un experimento en el que se seleccionaron 2′000.000 de vecinos lejanos para el nodo origen (nodo 0), en la primera columna se muestra el identificador del nodo, en la segunda columna se muestra la cantidad de veces que el nodo ha sido muestreado por el algoritmo de Kleinberg, en las cuatros primeras filas se muestran los nodos más elegidos, estos son los nodos que están a una distancia Euclidiana igual a 1, es decir los cuatro nodos adyacentes al nodo origen dentro del toroide original.
Desde la fila quinta hasta la octava se encuentran los resultados de los nodos menos elegidos por Kleinberg, estos son los nodos que más alejados se encuentran con respecto al nodo origen, la distancia de cada nodo al nodo origen se muestra en la tercera columna de la Tabla 3; como se puede notar esto corresponde estrictamente con la probabilidad que el algoritmo de Kleinberg otorga a cada nodo de ser escogido como vecino lejano, a menor distancia mayor es la probabilidad, y es evidente que no puede existir una distancia menor a 1.
Desde la cuarta columna hasta la décima columna se muestran los resultados obtenidos por BS para los mismos nodos, para ejecuciones del algoritmo con 3 rondas, 13 rondas, 23 rondas, 100 rondas, 200 rondas, 1000 rondas y 2000 rondas.
Los resultados coinciden en cuanto a los nodos que han sido elegidos una mayor cantidad de veces, pues con BS los nodos que han obtenido una mayor frecuencia de elección como vecino lejano son también los que se encuentran a una distancia Euclidiana igual a 1, pero esta frecuencia es significativamente mayor con respecto a los resultados otorgados por Kleinberg, teniendo en cuenta que con los dos algoritmos se han obtenido el mismo número de muestras, lo cual implica que esa diferencia se encuentra repartida en frecuencias de muestreo de otros nodos más lejanos, lo cual implica que la distribución de la frecuencia de muestreo de BS tiene una uniformidad mayor que la frecuencia de muestreo de Kleinberg.
En cuanto a los nodos que han sido elegidos menos veces por Kleinberg, se puede notar que con BS también han sido escogidos un número mucho menor de veces, sin embargo no son precisamente los nodos menos muestreados en cada uno de los experimentos; los cuatro nodos menos elegidos por BS en cada uno de los experimentos se muestran en la Tabla 2, en ella se puede ver que los nodos menos muestreados son diferentes en cada experimento, esto evidencia que BS otorga una mayor probabilidad a los nodos más lejanos de ser elegidos como vecinos lejanos de manera aleatoria con respecto a la probabilidad otorgada por Kleinberg.
4. Conclusiones
El algoritmo Biased Selection puede alcanzar mediante la construcción de una red small world, una distribución de frecuencia de muestreo semejante a la que genera el algoritmo de Kleinberg. La distribución de la frecuencia de muestreo generada por el algoritmo de Kleinberg dentro de un toroide es directamente proporcional a la variación de las distancias Euclidiana desde todos los nodos al nodo origen ordenadas en forma ascendente. La distribución de la frecuencia de muestreo generada por BS en un toroide será más semejante a la distribución de Kleinberg a medida que se aumente el número de rondas, sin embargo existirá un número de rondas suficiente, este número dependerá de las dimensiones del toroide sobre el que se trabaje.
El algoritmo del Kleinberg mantiene la frecuencia del muestreo para todos los nodos a pesar de que se lo ejecute con tamaños diferentes de muestra dentro de un toroide, en cambio BS a pesar de que considera la distancia Euclidiana para tomar muestras, otorga una mayor aleatoriedad al momento de seleccionar un vecino lejano, lo que posibilita a los nodos más lejanos al origen ser seleccionados con una frecuencia mayor que la otorgada por Kleinberg. El tiempo de ejecución de BS es mucho menor obteniendo el mismo número de muestras en comparación con el algoritmo de Kleinberg.