• Nenhum resultado encontrado

Isomorfismo entre Agentes Biologicos e Agentes Artifici ais

Roteamento Baseado em Agentes

3.3 Isomorfismo entre Agentes Biologicos e Agentes Artifici ais

A aplicação da meta-heurística a redes de comunicação é relativamente simples. A tabela 3.1 lista as analogias entre agentes reais e artificiais na aplicação de roteamento de redes de comunicação. Dessa forma, algoritmos que tomam como inspiração o comportamento das formigas para encontrar o caminho mais curto definem um conjunto de formigas artificiais que se movem sobre um grafo que representa a instância do problema. Enquanto se movem elas constroem soluções e modificam a representação do problema pela adição de informações coletadas.

Tabela 3.1 - Analogias entre agentes biológicos e agentes artificiais [1].

Agentes biológicos Agentes artificiais

Formigas Pacotes com informação

Trilhas Enlaces da rede

Intersecções da trilha Nós da rede Concentração de feromônio Pesos probabilísticos

Deposição de feromônio Incremento no peso Evaporação de feromônio Decremento do peso

Assim, o feromônio natural de estigmergia é substituído por uma estigmergia artificial que pode ser modelada por computadores. A estigmergia artificial pode ser definida como a comu- nicação indireta que ocorre por modificações númericas no estado do ambiente que é somente

acessível localmente pelos agentes de comunicação. Para os algoritmos de roteamento, a es- tigmergia artificial é armazenada nas tabelas de roteamento.

3.3.1 Agentes Inteligentes

Apesar de no AntNet, que será estudado adiante, os agentes se comportarem como pacotes, existe uma importante diferença conceitual entre os agente e os pacotes de dados: os agentes simulam pacotes com o objetivo de explorar a rede de uma maneira controlada (descobrindo e testando seus caminhos). Agentes não pertencem a aplicações de usuários, e são portanto livres para explorar a rede. A abordagem clássica é baseada normalmente na observação passiva de tráfego da rede: os nós observam o fluxo local dos dados, constrõem estimativas locais dessas observações e propagam essas estimativas para outros nós. Os algoritmos baseados em agentes complementam a observação passiva do tráfego local com uma exploração ativa baseada nas repetidas simulações de Monte Carlo realizadas pelos agentes. Dessa maneira, as tabelas de roteamento são construidas e mantidas com base na observação do comportamento dos pacotes de dados e dos agentes gerados pelo próprio controle do sistema.

3.3.2 Tabelas de Roteamento e Tabelas de Feromônio

Uma tabela de roteamento é uma tabela convencional com linhas e colunas que pertence a um vértice da rede. Cada vértice da rede possui uma tabela de roteamento local armazenada. Para cada vértice vizinho que pode ser alcançado de um vértice a tabela possui uma coluna. E para cada vértice da rede exceto ele mesmo a tabela possui uma linha. As entradas na tabela são númericas com valores entre 0 e 1, que correspondem à probabilidade de se alcançar outros vértices representados pelas linhas através de um determinado vértice vizinho.

As probabilidades na tabela de roteamento podem ser comparadas com a concentração da trilha de feromônios. Quanto mais alta a probabilidade, mais forte a trilha de feromônios. Perceba que as tabelas de roteamento possuem somente informações locais sobre as melhores rotas e nenhuma informação global.

Apesar de normalmente se utilizar uma única tabela de roteamento tanto para os pacotes de dados quanto para os agentes, uma outra possibilidade é separar a política de roteamento de dados da poítica de roteamento dos agentes. Dessa forma, os agentes utilizam sua própria tabela de rotamento (tabela de feromônio), enquanto os pacotes são roteados utilizando a tabela

18

de roteamento para dados, que é derivada da tabela de feromônio de tal forma que o fluxo de dados utilize somente os melhores caminhos descobertos até o momento. Dessa forma a política de exploração dos caminhos fica convenientemente separada da política de utilização dos caminhos.

3.3.3 Calculo das Probabilidades

Ainda é necessário determinar como as probabilidades nas tabelas de roteamento são calcu- ladas. Na natureza as formigas depositam os feromônios e assim produzem trilhas entre o formigueiro e a fonte de comida. Em um computador o feromônio é substituído por uma estig- mergia artificial, as probabilidades em uma tabela de roteamento. Para se calcular e atualizar essas probabilidades, agentes inteligentes são introduzidos para substituir as formigas. A maio- ria dos algoritmos inspirados em formigas se diferenciam pelo número de diferentes agentes e pelas diferentes funções realizadas por esses agentes ao passar pelos vértices. Eles se movem através da rede de vértice em vértice e através dos enlaces existentes, comunicando-se entre si de uma forma indireta através da leitura e escrita das tabelas de roteamento.

De uma perspectiva de engenharia, é desejavel também aumentar os agentes artificiais com características adicionais não possuidas pelos agentes biológicos, para se evitar certas defici- ências dos sistemas naturais.

Como exemplo [1], considerando o experimento da ponte dupla, descrito na seção 3.1, a reali- mentação positiva que serve para favorecer a escolha do caminho mais curto é essencialmente um efeito transitório, derivado do fato de que a concentração de feromônio aumenta a uma taxa maior no caminho mais curto. Uma vez estabelecido esse caminho, caso um caminho mais curto torne-se disponível, nem sempre as formigas conseguem trocar, e continuam a viajar no mesmo caminho. Esse efeito de estagnação pode ser evitado caso os agentes tenham a habilidade de depositar o feromônio em quantidades que refletem o comprimento do caminho sobre o qual estão viajando.

Este comportamento está claramente além da capacidade das formigas naturais, mas pode ser facilmente introduzido em agentes artificiais, onde, ao invés de depositar o feromônio artificial a uma taxa constante, os agentes artificiais depositam o feromônio em quantidades que são inversamente proporcionais ao comprimento associado ao caminho utilizado. Isso é realizado programando os agentes para refazerem os seus passos e depositarem o feromômio somente

apósum caminho ter sido completado, e a métrica do caminho ser conhecida.

Apesar do fato de a arquitetura dos algoritmos ser relativamente simples, é necessário que o projeto de cada componente do algoritmo (avaliação dos caminhos, utilização das informações heurísticas, atualização do feromônio, etc.) sejam cuidadosamente realizados para se obter um algoritmo que não seja somente uma prova de conceito, mas um algoritmocapaz de fornecer performances comparáveis ou melhores que os outros algoritmos em condições realistas para um grande conjunto de cenários.

Documentos relacionados