• Nenhum resultado encontrado

3.3 Roteamento como tarefa de aprendizagem por reforço

3.3.2 O algoritmo proposto: Q-routing aprimorado

Numa situação prática de RSSF, para obter a recompensa imediata e a recompensa futura estimada é necessário o envio de um pacote de feedback do nó vizinho que acabou de receber um pacote. Dessa forma, um protocolo que utilize a abordagem do Q-routing descrita anteriormente introduziria um overhead de no mínimo um pacote de roteamento para cada pacote de dados enviado. Para reduzir esse overhead, foi desenvolvida uma solução utilizando um esquema de acumulação e média, descrito a seguir.

Cada pacote de dados contém um timestamp na área comum do seu cabeçalho quando é criado. Quando um nó x recebe um pacote de dados do seu vizinho y, ele pode utilizar seu timestamp atual para calcular (qy+ sy). Cada nó x mantém uma tabela de roteamento

Q contendo as seguintes informações:

• py: número de pacotes de dados recebidos do nó y;

• avgy(qy+ sy): tempo médio de recebimento dos pacotes vindos de y.

Ambos os valores são atualizados a cada novo pacote de dados recebido. O tempo médio de recebimento é atualizado pela seguinte expressão:

avgy(qy+ sy) =

py[avgy(qy+ sy)](qy+ sy)

py+ 1

(3.7) Cada nó também define um temporizador (timer) que expira periodicamente a cada intervaloλ, fazendo com que o nó envie um pacote de controle para cada um dos vizinhos presentes na sua tabela de roteamento cujo py > 0. Este é o único pacote de controle

definido por essa solução, e o mesmo carrega consigo o tempo médio de recebimento calculado até o momento e a melhor estimativa do tempo restante até o destino. Essas duas informações são utilizadas para atualizar as estimativas dos nodos vizinhos.

O tempo de expiraçãoλé definido como um parâmetro do algoritmo, assim como a taxa de aprendizado α e a taxa de exploração ε. Esta última é utilizada para acelerar a exploração através de uma política ε-gulosa, ou seja, com probabilidade 1 −ε, o agente escolhe o nó vizinho com a melhor estimativa, e com probabilidade ε, o agente escolhe um vizinho aleatório para encaminhar o pacote.

Nesta proposta, o comportamento deλde acordo com o tráfego de dados na rede é crucial para a diminuição do overhead causado pelos pacotes de roteamento. De fato, se

x é a taxa de dados média, uma função de proporcionalidade inversa λ= f (x) = ax pode ser definida, onde a é uma constante positiva que representa o fator de decaimento do

overhead do roteamento. A figura 3.4 exemplifica o comportamento da função. Quanto

maior o tráfego de dados na rede, menor deve ser o intevalo de atualização das rotas. Ao contrário, se a taxa de dados for baixa, o intervalo de atualização pode ser elevado sem problemas. Nota-se que apenas a parte positiva da função é exibida, pois valores negativos para taxas de dados são inverossímeis.

A operação do algorimo Q-routing aprimorado resume-se nas seguintes etapas: 1. Transmissão - Sempre que um nó x deseja transmitir um pacote p para d ele:

(a) Verifica se já possui d na sua tabela de roteamento Q.

(b) Caso possua, sorteia um número aleatório uniforme, comparando-o com o limiarε:

i. Com probabilidade 1 −ε, envia para o vizinho com melhor estimativa (miny∈NxQx(d, y)).

ii. Com probabilidadeε, envia para um vizinho aleatório. (c) Caso contrário, envia o pacote p em broadcast pela rede.

2. Recepção - Sempre que um nó recebe um pacote p de um nó qualquer y:

(a) Calcula o tempo de processamento e envio de y até ele (qy+ sy) pela diferença

do timestamp do pacote e o instante atual.

(b) Verifica se possui y na sua tabela de roteamento Q.

(c) Caso possua, incrementa pye atualiza avgy(qy+ sy) = py[avgy(qy+ sy)](qy+

sy)/py+ 1 (3.7) na tabela de roteamento Q;

(d) Caso contrário, insere uma nova entrada para y na tabela de roteamento Q. 3. Atualização - Sempre que o tempo de expiraçãoλdo timer de um nó y for com-

3.3. ROTEAMENTO COMO TAREFA DE APRENDIZAGEM POR REFORÇO 25

Figura 3.4: Definição do valor deλem função da taxa de dados.

(a) Para todos os vizinhos x da tabela de roteamento Q cujo px > 0 enviar um

pacote contendo:

i. O tempo médio de recebimento (avgx(qx+ sx));

ii. A sua melhor estimativa até o destino (minz∈NyQy(d, z))

(b) Ao receber um pacote de atualização, x atualiza sua própria estimativa através da equação (3.6). Qx(d, y) = (1 +α)Qx(d, y) +α  r− min z∈Ny Qy(d, z) 

Esta abordagem possui a vantagem de permitir controlar, através da definição do va- lor apropriado da constante a, o envio de pacotes de controle do protocolo utilizados na atualização das estimativas, e, consequentemente, o próprio overhead do roteamento. Outra grande vantagem está no fato do algoritmo utilizar os próprios pacotes de dados na construção da solução.

Capítulo 4

Simulações e Análise dos Resultados

Neste capítulo são discutidas as ferramentas e metodologias utilizadas durante a rea- lização do trabalho proposto. Inicialmente é apresentado brevemente o funcionamento do simulador de redes NS-2 e suas principais características. Dentro dessa explanação, uma parte da metodologia que envolve a utilização do simulador é apresentada. Em seguida, considerações sobre o algoritmo proposto são feitas com base nos conceitos citados nos capítulos anteriores.

4.1 O Simulador de Redes NS-2

O NS-2 é um simulador de redes orientado a eventos discretos de código aberto imple- mentado nas linguagens de programação C++ e OTcl1por pesquisadores de diversas ins- tituições no contexto do projeto VINT (Virtual InterNetwork Testbed), um projeto colabo- rativo envolvendo diversas instituições de pesquisa e universidades norte-americanas. Ele consiste basicamente de um interpretador de comandos OTcl, um agendador de eventos e um conjunto de bibliotecas de componentes utilizados para construir os mais variados ambientes de simulação de redes, possuindo suporte a diversos protocolos e tecnologias de comunicação, tanto cabeadas como também sem fios.

Por ser uma ferramenta de código aberto, muitos outros pesquisadores tem contri- buído ao longo dos anos, escrevendo novos módulos que expandem as funcionalidades do simulador, permitindo-os trabalhar com novas tecnologias de redes de comunicação. A implementação do padrão IEEE 802.15.4 na ferramenta foi realizada por [Zheng & Lee 2004]. Esse módulo é amplamente utilizado no meio científico.

Uma visão simplificada da utilização do NS-2 é ilustrada na figura 4.1. Primeiro deve-se escrever o programa, basicamente um script na linguagem OTcl, que irá conter as descrições das características físicas, espaciais e temporais da simulação que se deseja realizar. As características físicas dão conta dos parâmetros de hardware dos dispositivos, tais como o modelo das antenas, tipo de propagação do rádio, tamanho dos buffers de re- cepção e transmissão, alcance do rádio, potência de transmissão e recepção, frequência de transmissão, entre outros. As características espaciais tratam da descrição da topologia da rede, com o posicionamento inicial de cada nó e os padrões de movimentação dos mes-

mos, caso trate-se de uma rede móvel. Por último, as características temporais definem todo o padrão de tráfego da rede, com os instantes e a quantidade de pacotes que cada nó irá transmitir, com seus respectivos destinos.

Figura 4.1: Visão simplificada do usuário do NS-2.

O programa utiliza uma instância do simulador, que na verdade é apenas um inter- pretador de comandos OTcl que tem disponível um agendador de eventos para controlar tudo que ocorre durante a simulação, como a movimentação dos nodos e as transmissões de pacotes, além de um conjunto de bibliotecas de componentes utilizadas na construção e configuração dos dispositivos da rede em geral. Todos os eventos gerados durante a simulação são registrados em arquivos de log que, por sua vez, podem ser utilizados para produzir animações gráficas utilizando a ferramenta NAM 2, ou ainda para extrair dados

estatísticos utilizando um script para processamento de texto.

Documentos relacionados