• No se han encontrado resultados

Capítulo II: AntNet y su aplicación al MMS

2.2 AntNet

2.2.2 Descripción del algoritmo AntNet

Los pasos que se describen a continuación detallan el comportamiento del algoritmo AntNet según aparece en (Caro and Dorigo, 1998):

1- A intervalos regulares Δt, de cada nodo s de la red, un agente móvil (hormiga forward) es

lanzado hacia un nodo destino d para descubrir un camino factible de bajo costo hacia ese nodo y para investigar el estado de carga de la red. Estos agentes comparten las mismas colas que los paquetes de datos que viajan por la red, por lo que experimentan la misma carga de tráfico. Los destinos son seleccionados localmente de acuerdo con el diseño del tráfico de datos generado por la carga de trabajo local. Si

f

sd es una medida (en bits o número de paquetes) del flujo de datos del nodo s al nodo destino d, entonces la probabilidad de crear un agente móvil de s a des:

=

=

N d sd sd d

f

f

p

1 ' ' (3)

De esta forma, las hormigas adaptan su actividad de exploración a la distribución variable del tráfico de datos.

2- Mientras viajan hacia sus nodos destinos, los agentes mantienen en memoria los caminos seguidos y las condiciones de tráfico encontradas. El identificador de cada nodo visitadok y el tiempo transcurrido desde el lanzamiento del agente hasta su arribo al k-ésimo nodo se sitúan en la pila de memoria

S

sd

( )k

.

3- En cada nodo k, cada agente viajero con destino hacia d selecciona el nodo n a moverse, escogiendo entre los vecinos que no ha visitado, o sobre todos los vecinos, en caso de que todos hayan sido visitados previamente. El vecino n es seleccionado con una probabilidad

'

nd

P

, calculada como la suma normalizada de la entrada probabilística

P

nd de la tabla de enrutamiento, con un factor de corrección heurístico

l

n tomando en cuenta el estado (la

longitud) del n-ésimo enlace de la cola del nodo actual k.

(

1

)

1 ' − − + = k n nd nd N l P P

α

α

(4)

La corrección heurística 0 ≤

l

n ≤ 1 es un valor normalizado proporcional a la longitud

q

n (en bits esperando a ser enviados) de la cola del enlace que conecta el nodo k con su vecino n:

=

=

k N n n n n

q

q

l

1 ' '

1

(5)

El valor α pesa la importancia de la corrección heurística con respecto a los valores de probabilidad almacenados en la tabla de enrutamiento.

l

n refleja el estado instantáneo de las

colas de los nodos y asume que el proceso de consumo de la cola es casi estacionario o lentamente variable.

l

n brinda una medida cuantitativa asociada con el tiempo de espera en la

cola.

Los valores de la tabla de enrutamiento son el resultado de un proceso continuo de aprendizaje y captura del estado actual y pasado de la red entera, como es vista por el nodo local. Corregir estos valores con el valor

l

n, permite que el sistema sea más reactivo, evitando al mismo tiempo todas las fluctuaciones de la red. Las decisiones de los agentes son tomadas sobre la base de la combinación de un proceso de aprendizaje a término largo y una predicción heurística instantánea.

La corrección introducida es un mecanismo efectivo. Dependiendo de las características del problema, el mejor valor a asignar al peso

α

puede variar pero si 0.2≤

α

≤0.5el rendimiento

no varía de forma considerable. Para valores menores el efecto de

l

n desaparece, mientras

que para valores mayores, la tabla de enrutamiento resultante oscila y en ambos casos el rendimiento se degrada.

4- Si se detecta un ciclo, esto es, si una hormiga es forzada a retornar a un nodo ya visitado, los nodos del ciclo son extraídos de la pila de nodos visitados de la hormiga y toda la memoria relacionada con este proceso es eliminada. Si el último ciclo es mayor que el tiempo de vida de la hormiga antes de entrar al ciclo (si el ciclo es mayor que la mitad de la edad de la hormiga) la hormiga se destruye. En este caso, el agente desperdició mucho tiempo probablemente debido a una secuencia equivocada de toma de decisiones y no a la congestión de los estados y no resulta productivo usar esta información en el proceso de actualización de las tablas de enrutamiento.

5- Cuando se alcanza el nodo destino d, el agente

F

sd transfiere toda su memoria al agente

d s

B

(hormiga backward) y muere.

6- El agente

B

sd toma el mismo camino de su correspondiente

F

sd pero en dirección opuesta. En cada nodo k a lo largo del camino, lee su pila

S

sd

( )k

para saber el próximo nodo a saltar.

Los agentes

B

sd , (hormigas que recorren los caminos obtenidos en dirección opuesta) no comparten la misma cola de enlace que los paquetes de datos; utilizan colas de prioridad superior, pues su tarea es propagar rápidamente la información acumulada por los agentes

d s

F

a las tablas de enrutamiento.

7- Arribando al nodo k, desde un nodo vecino

f

, el agente

B

sd actualiza las dos estructuras

para todas las entradas correspondientes con el nodo destino. Tomando algunas precauciones, la actualización está representada también en las entradas correspondientes a todo nodo '

k

que pertenece a

S

sd, tal que kden los subcaminos seguidos por la hormiga

d s

F

después de visitar el nodo actual k. De hecho, si el tiempo de viaje transcurrido en un subcamino es estadísticamente bueno (es menor que

μ

+l

,

σ),

donde l es un estimado del intervalo de confianza de

μ

) entonces el valor del tiempo es usado para actualizar las estadísticas correspondientes y la tabla de enrutamiento. Por el contrario, si el tiempo de viaje de los subcaminos no fue suficientemente bueno en el mismo sentido estadístico defendido anteriormente, no es usado porque no brinda una idea correcta del tiempo en ir al nodo subdestino. De hecho, todas las decisiones de los agentes

F

sd son tomadas solamente en función del nuevo destino. Con esta perspectiva, los subcaminos tienen efectos colaterales y son sub-óptimos intrínsecamente por las variaciones locales del tráfico en la red (no se puede razonar con la misma perspectiva que en la programación dinámica por lo no estacionario de la representación del problema). Obviamente, en caso de un buen subcamino, se puede utilizar: la hormiga descubrió sin costo, una ruta adicional buena.

Documento similar