• Nenhum resultado encontrado

Aplicação de algoritmos genéticos na configuração de parâmetros em técnica bioinspirada para balanceamento de carga em RSSF

N/A
N/A
Protected

Academic year: 2021

Share "Aplicação de algoritmos genéticos na configuração de parâmetros em técnica bioinspirada para balanceamento de carga em RSSF"

Copied!
55
0
0

Texto

(1)

Programa de Pós-Graduação em Computação

Dissertação

Aplicação de Algoritmos Genéticos na Configuração de Parâmetros em Técnica Bioinspirada para Balanceamento de Carga em RSSF

Matheus Lorenzato Braga

(2)

Aplicação de Algoritmos Genéticos na Configuração de Parâmetros em Técnica Bioinspirada para Balanceamento de Carga em RSSF

Dissertação apresentada ao Programa de Pós-Graduação em Computação da Universi-dade Federal de Pelotas, como requisito par-cial à obtenção do título de Mestre em Ciência da Computação

Orientador: Prof. Dr. Paulo Roberto Ferreira Junior Coorientadora: Prof. Dr. Lisane Brisolara Brisolara

(3)

BRAGA, Matheus Lorenzato.Aplicação de Algoritmos Genéticos na Configuração de Parâmetros em Técnica Bioinspirada para Balanceamento de Carga em RSSF. 2018. 54 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Computação, Centro de Desenvolvimento Tecnológico, Univer-sidade Federal de Pelotas, Pelotas, 2018.

Em Redes de Sensores Sem Fio (RSSF) reativas a redundância necessária para cobrir a área de interesse que a configuração dos sensores exige faz com que mais de um sensor possa detectar um mesmo evento, em uma mesma área, ao mesmo tempo. Esta redundância motiva a adoção de técnicas de coordenação estáticas e dinâmicas para alcançar um balanceamento no processamento dos eventos por parte dos nodos de maneira a aumentar o tempo de vida da rede. Este trabalho trata do desenvolvimento de uma estratégia de seleção automatizada de parâmetros em um algoritmo de balanceamento de carga para RSSF bioinspirado, denominado Ant-based. Um algoritmo genético foi desenvolvido e uma técnica de aceleração deste algoritmo foi implementada. Os resultados mostraram que para redes em que os nodos são distribuídos aleatoriamente no espaço de interesse foi possível obter parâmetros mais eficientes. Os novos parâmetros de configuração do algoritmo obtidos obtiveram um desempenho melhor que os parâmetros originais para uma rede fortemente conectada de 7,4% e em uma rede fracamente conectada de 4,7%.

Palavras-chave: Redes de Sensores Sem Fio, Balanceamento de Carga, Bioinspira-das, Algoritmo Genético.

(4)

BRAGA, Matheus Lorenzato. Application of Genetic Algorithm in the Parameter Configuration Techniques for Load Balancing WSN. 2018. 54 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Com-putação, Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2018.

In reactive Wireless Sensor Networks (WSNs) the necessary redundancy to cover the area of interest that the sensor configuration requires makes it possible for more than one sensor to detect the same event in a same area at the same time. This redundancy motivates the adoption of static and dynamic coordination techniques to achieve a balancing the processing of events by the nodes in order to increase the network lifetime. This work deals with the development of an automated parameter selection strategy in a load-balanced algorithm for bioinspired WSN, called Ant-based. A genetic algorithm was developed and an acceleration technique of this algorithm was implemented. The results showed that for networks in which the nodes are randomly distributed in the space of interest, it was possible to obtain more efficient parameters. The new algorithm configuration parameters obtained better performance than the original parameters for a strongly connected network of 7.4% and in a weakly connected network of 4.7%.

Keywords: Wireless Sensor Networks, Load Balancing, Bio-inspired, Genetic Algo-rithm.

(5)

Figura 1 Cadeira de bits representando um cromossomo A. . . 12

Figura 2 Operador de cruzamento de um ponto. . . 14

Figura 3 Operador de cruzamento de dois pontos. . . 14

Figura 4 Cromossomo de um indivíduo antes da mutação. . . 15

Figura 5 Cromossomo de um indivíduo depois da mutação. . . 15

Figura 6 Visão geral do hardware de um nodo sensor. (LOUREIRO et al., 2003) 18 Figura 7 Visão geral de uma RSSF. Adaptado de (AKYILDIZ; VURAN, 2010). 19 Figura 8 Redundância na disposição dos nodos em uma área de cobertura. 21 Figura 9 Probabilidade de execução de um evento em função do limiar de resposta (FERREIRA; BRISOLARA; INDRUSIAK, 2015). . . 25

Figura 10 Arquitetura proposta para implementação. . . 36

Figura 11 Diagrama de classes empregado. . . 39

Figura 12 Simulação de uma configuração em grid com 49 nodos. . . 43

Figura 13 Simulação de uma configuração em grid com 100 nodos. . . 44

Figura 14 Evolução individual dos parâmetros em grid para 49 nodos. . . 45

Figura 15 Simulação em uma configuração com nodos sensores muito conec-tados. . . 47

Figura 16 Comparativo de eventos sensoriados entre os diferentes nodos, em uma rede aleatória com nodos mais conectados. . . 48

Figura 17 Simulação em uma configuração com nodos sensores pouco conec-tados. . . 49

Figura 18 Comparativo de eventos sensoriados entre os diferentes nodos, em uma rede aleatória com nodos menos conectados. . . 50

(6)

Tabela 1 Descrição dos componentes de um sensor . . . 19 Tabela 2 Valores dos parâmetros definidos para o Ant-based . . . 25 Tabela 3 Descrição dos parâmetros do algoritmo Pheromone Signalling. . . . 28 Tabela 4 Valores iniciais dos Parâmetros do Algoritmo . . . 31 Tabela 5 Valores dos Parâmetros para o Algoritmo Genético . . . 37 Tabela 6 Valores dos Parâmetros encontrados pelo Algoritmo Genético para

uma rede aleatória com maior conectividade entre os nodos. . . 47 Tabela 7 Valores dos Parâmetros encontrados pelo Algoritmo Genético para

(7)

ABA Ant-Based Algorithms ACO Ant Colony Optimization

ACOA Ant Colony Optimization Algorithm AE Algoritmo Evolucionário

AG Algoritmo Genético AS Ant System

PCV Problema do Caixeiro Viajante PS Pheromone Signalling

QMP Queen Mandibular Pheromon RSSF Redes de Sensores Sem Fio SA Simulated Annealing

SBOA Swarm-Based Otimization Algorithm TS Têmpera Simulada

(8)

1 INTRODUÇÃO . . . . 9 2 FUNDAMENTAÇÃO TEÓRICA . . . . 11 2.1 Algoritmos Genéticos . . . . 11 2.1.1 Geração da População . . . 12 2.1.2 Avaliação . . . 12 2.1.3 Seleção . . . 12 2.1.4 Cruzamento (Crossover) . . . 13 2.1.5 Mutação . . . 14 2.1.6 O Algoritmo . . . 15

2.2 Estratégia para Aceleração do Algoritmo Genético . . . . 16

2.3 Redes de Sensores Sem Fio . . . . 17

2.3.1 Sensores . . . 18

2.3.2 Aplicações . . . 20

2.3.3 Redundância e Balanceamento de Carga . . . 20

3 TRABALHOS RELACIONADOS . . . . 22

3.1 Ant-based Load Balancing . . . . 22

3.1.1 Modelo proposto . . . 23

3.2 Pheromone Signalling . . . . 26

3.2.1 Ações por tempo . . . 28

3.2.2 Acões por eventos . . . 29

3.3 Search-Based Parameter Tuning on Application-Level Load Balan-cing For Distributed Embedded Systems . . . . 29

3.4 Energy-efficient routing for wireless sensor network using genetic algorithm and particle swarm optimisation techniques . . . . 32

3.4.1 Entrega garantida . . . 32

3.4.2 Otimização por colônia de formigas . . . 32

3.4.3 Algoritmos genéticos . . . 33

4 ABORDAGEM PROPOSTA . . . . 34

4.1 Descrição do Algoritmo Genético . . . . 34

4.2 Aceleração do Algoritmo Genético . . . . 37

4.3 Implementação no simulador . . . . 38

4.3.1 Classe Individuo.java . . . 39

4.3.2 Classe Populacao.java . . . 40

(9)

5.2 Diferentes Densidades da Rede . . . . 43

5.3 Diferentes Configurações da Rede . . . . 46

5.3.1 Rede aleatória: maior conexão entre os nodos . . . 46

5.3.2 Rede aleatória: menor conexão entre os nodos . . . 48

6 CONCLUSÕES . . . . 51

(10)

O progresso tecnológico tem possibilitado o desenvolvimento e manipulação de vários conjuntos de componentes direcionados às Redes de Sensores Sem Fio (RS-SFs), com aplicação em distintas áreas. Entre os diversos estudos relacionados ao tema, a maioria é submetida a processos de análise inteligente de controle e gerenci-amento. RSSFs consistem em nodos sensores com um curto raio de alcance, limitada quantidade de bateria e capacidade de processamento. Na prática, a aplicação de nodos em uma RSSF possibilita a redundância entre esses nodos em um ambiente a fim de cobrir toda a área de interesse. Assim, uma maneira para lidar com as limi-tações de energia e a capacidade de processamento é equilibrar a carga aplicada na rede, mapeando dinamicamente as tarefas para garantir a disponibilidade do serviço por mais tempo.

Na literatura, técnicas são encontradas para minimizar o problema de mapeamento de tarefas em sistemas distribuídos. Abordagens estáticas são limitadas pois não conseguem se adaptar às condições da rede. Por outro lado, alguns trabalhos como ZENG et al. (2008), JIN et al. (2010), PATHAK; PRASANNA (2010) e CALISKANELLI et al. (2013) têm abordado o mapeamento dinâmico para RSSFs, visto que a solução deve ser tomada em tempo de execução para determinar os recursos de comunicação e de detecção a serem utilizados.

A ideia de algoritmos distribuídos multiagentes vem sendo aplicada em vários pro-blemas de otimização de cadeias de telecomunicações, distribuição de tarefas e em problemas de otimização combinatória. Visto que um conjunto de agentes interagindo em um ambiente comum, muda a perspectiva de uma abordagem global para uma abordagem baseada em agentes (indivíduos) (ALVARES; SICHMAN, 1997). Dados e controles distribuídos, além de autonomia no desempenho tornam o processo adap-tável, tolerante a falhas e mais eficiente.

Algumas técnicas existentes utilizam Algoritmos Genéticos (AG) para a resolução de problemas específicos. Os algoritmos genéticos exploram propriedades da gené-tica e dos processos de seleção natural e evolução (DARWIN, 1859), que criam uma população de possíveis soluções para um problema a ser tratado e, em seguida, são

(11)

submetidos ao processo de evolução. Os indivíduos da população são combinados uns com os outros, produzem filhos que podem ou não sofrer alguma mutação gené-tica. As populações evoluem através de sucessivas gerações até encontrar a solução ótima para um problema. Estas técnicas possuem aplicabilidade em áreas científicas e resolvem, principalmente, problemas de otimização.

Estratégias bioinspiradas surgem como uma solução adaptável, em que retrata o comportamento coletivo de como as colônias de insetos sociais operam com a ideia da comunicação entre si em um ambiente (BONABEAU; DORIGO; THERAULAZ, 1999). Uma estratégia baseada no comportamento da divisão de trabalho em colônias de for-migas, assim como no processo de busca por alimento, auxiliam na resolução de di-ferentes problemas. Conhecida como técnica de Otimização por Colônia de Formiga, ela tem sido aplicada em vários problemas de otimização, pois apresenta a capaci-dade de gerar ótimas soluções. O algoritmo desenvolvido por DORIGO (1992) tem como inspiração biológica o comportamento das colônias de formigas, baseando-se principalmente na busca por fonte de alimentos pelas formigas.

Na proposta desenvolvida por FERREIRA; BRISOLARA; INDRUSIAK (2015) são utilizadas informações e mensagens dos nodos sensores para melhor distribuir a carga de trabalho na rede, melhorando o tempo de vida e a disponibilidade do serviço. Este trabalho experimental foi realizado para comparar com outras abordagens existentes na área, como o Pheromone Signalling (PS) (CALISKANELLI et al., 2012). Os resul-tados encontrados pelas experimentações mostram que a abordagem desenvolvida pode alcançar resultados próximos ao PS, além de se comportar melhor em densida-des mais baixas às quais apresentam menos sensores na configuração da rede.

Entretanto, os parâmetros de configuração necessários para a efetividade do pro-cesso na proposta foram escolhidos e ajustados arbitrariamente para cada cenário de disposição da rede.

Diante deste contexto, o objetivo deste trabalho é desenvolver uma ferramenta de seleção de parâmetros para facilitar a configuração de um algoritmo, denominado Ant-based e encontrar um conjunto de parâmetros que forneça o melhor desempenho possível da rede. Desta forma, fornecendo ao usuário-final uma melhor configuração e automatizando o processo de seleção desses parâmetros. Para isso, foi utilizado técnicas de inteligência artificial, em particular Algoritmos Genéticos.

Este trabalho está organizado da seguinte maneira. No capítulo 2 é apresentado o domínio de Algoritmos Genéticos, da Técnica de Aceleração ao AG e de RSSFs. No capítulo 3 uma revisão dos trabalhos relacionados ao tema. No capítulo 4, é apre-sentada a estratégia desenvolvida, além da aceleração implantada no algoritmo, deta-lhando sua fundamentação bem como a implementação. Os experimentos realizados são discutidos no capitulo 4 e as conclusões são apresentadas no capitulo 6.

(12)

2.1

Algoritmos Genéticos

As técnicas de busca e otimização promovem pequenas alterações em soluções para um problema até que a melhor solução seja encontrada. Métodos de busca tradicionais iniciam com um único indivíduo configurado com base em heurísticas as-sociadas ao problema a ser solucionado em cada iteração. Apesar de serem bastante robustas, estas heurísticas tornam a simulação em computadores uma tarefa muito complexa. Na prática, eles são utilizados em várias aplicações.

Entretanto, os métodos de Computação Evolucionária ou Algoritmos Evolucioná-rios (AE), caso dos Algoritmos Genéticos (AG), funcionam através de uma população de indivíduos que fazem a busca em diferentes áreas do ambiente da solução. Os Al-goritmos Genéticos (AG) são muito eficientes para busca de soluções. Estes foram es-tudados por John Holland (HOLLAND, 1975), com o objetivo de estudar os fenômenos da natureza relacionados à adaptação das espécies e da seleção natural (DARWIN, 1859). HOLLAND (1992) conseguiu incorporar características da evolução natural em um algoritmo, tornando possível a utilização em projetos de sistemas artificiais.

Os Algoritmos Genéticos utilizam métodos relacionados à seleção natural e recom-binação genética. O algoritmo funciona escolhendo soluções entre as existentes em uma população inicial de cromossomos e aplicando operações genéticas, criam uma nova população. Cada nova população é inserida em uma nova geração. Durante o processo de evolução, o algoritmo avalia a nova solução e cada cromossomo recebe uma nota, que representa a qualidade da solução. Geralmente, os cromossomos com maior nota são considerados aptos, enquanto os com menor nota são descartados (MITCHELL, 1996).

Os cromossomos aptos podem sofrer alterações genéticas em suas características através de operações, como Mutação e Cruzamento. Desta forma, busca explorar de forma evolutiva problemas de otimização, visto que têm a vantagem de realizar uma busca global. Além disso, utilizando heurísticas adaptativas para resolver um problema em questão, torna possível melhorar os resultados.

(13)

2.1.1 Geração da População

No processo inicial, o qual é gerada uma população, cada solução é representada por um conjunto de parâmetros (genes). Assim, os Algoritmos Genéticos realizam a busca considerando essa população P que é composta por um conjunto aleatório de indivíduos de possíveis soluções do problema. Esses indivíduos, que são manipulados durante a execução, são denominados cromossomos. A representação mais simples de um cromossomo foi usada por HOLLAND (1975), o qual codificou para o alfabeto binário. Um cromossomo é composto por uma sequência de bits (0 ou 1) e cada bit é conhecido como um gene. A figura 1 representa a distribuição de um cromossomo binário.

1 0 0 1 1 1 0 0 1 1 0 0

Figura 1: Cadeira de bits representando um cromossomo A.

Importante ressaltar que o número de indivíduos da população determina o seu tamanho, sendo este um parâmetro do AG.

2.1.2 Avaliação

A etapa de avaliação ou função de aptidão, do inglês Fitness Function, permite ao algoritmo genético determinar a proximidade em relação à solução do problema. Considerando um cromossomo, a função de aptidão é definida associando a ele um valor numérico de adaptação, que supõe a importância dele em solucionar o problema em questão.

Para KOZA (2003) a avaliação da população implica nos objetivos que se deseja em relação ao problema. Assim, ela é feita através de uma função que melhor repre-senta o problema e tem por objetivo oferecer uma medida de aptidão de cada indivíduo na população, que coordena o processo de busca. Sendo assim, quanto maior o valor de aptidão do indivíduo, maiores são as chances do indivíduo sobreviver ao ambi-ente e se reproduzir, passando parte do material genético para as próximas gerações (TANOMARU, 1995).

2.1.3 Seleção

O princípio básico do funcionamento dos AGs é através de um critério de seleção. O processo de seleção se baseia na teoria da evolução natural de DARWIN (1859), a qual os organismos mais bem adaptados têm maiores chances de sobrevivência do que os menos adaptados. Assim, deixam um número maior de descendentes, ou seja, aqueles considerados mais aptos a solucionar o problema em questão. Desta forma, tende ao desenvolvimento de soluções com indivíduos mais aptos, descartando os indivíduos menos aptos.

(14)

A seleção para a próxima geração é feita baseando-se em métodos de seleção de soluções de acordo com o valor de retorno da etapa de avaliação ou função de aptidão. Assim, a maioria dos métodos de seleção são definidos para escolher indivíduos com maiores valores de aptidão. Entretanto, a fim de manter a diversidade da população, alguns indivíduos com baixos valores de aptidão são selecionados.

Dentre outros métodos conhecidos, pode ser citado para seleção de novos indiví-duos a Seleção por Torneio (MITCHELL, 1996). De acordo com a definição do método, um grupo de n indivíduos são escolhidos aleatoriamente da população. Este grupo participa de um torneio o qual escolhe um indivíduo, que vence a competição. O in-divíduo com o melhor valor de aptidão são selecionados para o grupo de reprodução. Após definido o vencedor, apenas ele é inserido na próxima população e o processo é repetido enquanto faltarem indivíduos para compor a nova população. Desta forma, os indivíduos selecionados têm uma média maior do que a aptidão média da popula-ção. Esta diferença de aptidão impulsiona o AG a melhorar a aptidão de cada geração posterior.

2.1.4 Cruzamento (Crossover)

A ideia básica dos operadores genéticos é manipular a população para as próximas gerações, enquanto não alcança o objetivo do problema. Desta forma, tornando as gerações com características de aptidão de outras gerações e diversificadas.

O processo de cruzamento ou recombinação permite que as próximas gerações herdem as características dos pais durante a reprodução, recombinando os cromos-somos. Para isso, é utilizado com uma probabilidade definida pela taxa de cruzamento ou taxa de crossover. Essa deve ser maior que a taxa de mutação e tende a acontecer com maior frequência. Quanto maior a taxa de cruzamento, maior a probabilidade de obter novos indivíduos na população. Entretanto, se for muito alta, os indivíduos com boas aptidões serão retirados mais rapidamente.

Além disso, o processo de cruzamento pode ser utilizado de diversas maneiras. Dentre elas, as mais utilizadas são:

• Um ponto: nesse cruzamento é definido um ponto de marcação para os cro-mossomos pais. Assim, as informações genéticas entre os pais serão trocadas. As informações do primeiro pai são ligadas às informações na parte restante do segundo pai e vice-versa, como é mostrado no exemplo da figura abaixo:

(15)

Pai 1 1 0 0 1 1 1 0 0 1 1 0 0 Pai 2 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 1 Filho 1 1 0 0 1 1 1 0 1 1 0 1 1 Filho 2 1 1 0 0 1 0 0 0 1 1 0 0

Figura 2: Operador de cruzamento de um ponto.

• Multi pontos: nesse cruzamento é definido dois ou mais pontos de marcação nos cromossomos pais. Assim, é feita a troca de material genético através dos pontos. A figura a seguir mostra um exemplo com a marcação de dois pontos:

Pai 1 1 0 0 1 1 1 0 0 1 1 0 0 Pai 2 1 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 1 1 Filho 1 1 0 0 1 1 0 0 1 1 1 0 0 Filho 2 1 1 0 0 1 1 0 0 1 0 1 1

Figura 3: Operador de cruzamento de dois pontos. 2.1.5 Mutação

Para aumentar a diversidade genética da população um outro operador genético é utilizado: a mutação. Esse operador altera arbitrariamente um gene de determinada

(16)

estrutura, introduzindo novos indivíduos na população. Um exemplo do processo de mutação é apresentado a seguir, onde a alteração é feita em apenas um gene de um indivíduo.

1 1 1 1 0 1 1 0 1 0 0 1

Figura 4: Cromossomo de um indivíduo antes da mutação.

1 1 1 1 0 1 1 1 1 0 0 1

Figura 5: Cromossomo de um indivíduo depois da mutação.

O operador de mutação é aplicado aos indivíduos de acordo com uma taxa de mutação. Normalmente, essa taxa é um valor pequeno, visto que uma baixa taxa de mutação impede que uma dada posição fique estagnada em determinado valor. Além disso, torna possível chegar em qualquer lugar do espaço de busca. Entretanto, com uma alta taxa de mutação o processo se torna, na maior parte das vezes, aleatória. 2.1.6 O Algoritmo

O algoritmo a seguir, mostra os principais passos de um AG, baseando-se em MICHALEWICZ (1996), onde P é a população existente e t é geração atual :

Algoritmo 1: EXEMPLO GENÉRICO DE UMALGORITMO GENÉTICO

1 início 2 t ← 0 3 iniciar P (t) 4 avaliar P (t)

5 enquanto não atingir condição de parada faça 6 t ← t + 1 7 selecionar P (t) de P (t − 1) 8 aplicar cruzamento em P (t) 9 aplicar mutação em P (t) 10 avaliar P (t) 11 fim 12 retorna individuoMaisApto(P (t)) 13 fim

(17)

2.2

Estratégia para Aceleração do Algoritmo Genético

Uma das formas de tornar o processo de execução de um algoritmo genético ope-rar mais rápido é reduzir o número de vezes que sistema deve ser evoluído. Na solução proposta por SALAMI; HENDTLASS (2003) para conseguir isso é atribuir um valor de aptidão a um novo indivíduo em vez de avaliar a aptidão deste. No caso em que o valor da aptidão não é o resultado de um processo estocástico, a aptidão de um pai pode ser atribuída a um filho, o que pode antecipar algumas avaliações de aptidão. No entanto, se um filho é diferente de ambos os pais, o valor de aptidão do filho deve ser atribuído através da avaliação dele.

Como este valor de aptidão atribuído não é o valor da aptidão real, outro parâmetro é necessário para mostrar quão confiável é o valor atribuído. Somente quando essa confiabilidade cair abaixo de algum limiar o novo filho deve ser avaliado. Para os filhos que não são avaliados e são estimados, o valor é calculado a partir dos valores de aptidão dos pais.

Assim, cada indivíduo i tem um valor de aptidão fi e um valor de confiabilidade

(ri ∈ [0, 1]). Admitindo um valor de 1 para ri significa que um indivíduo i foi avaliado e

um valor menor que este quando um indivíduo é estimado. Quando esta confiabilidade de um indivíduo cai abaixo de um certo limiar, o indivíduo é avaliado e tem um novo valor de aptidão e sua confiabilidade volta para 1. Além disso, a configuração de um outro parâmetro pode forçar com que um percentual de indivíduos seja sempre avaliado a cada geração.

Sendo dois indivíduos a e b, pais de c e d. Para encontrar similaridade entre os filhos e seus pais, esta deve ser calculada através da Eq. 1. A diferença entre o filho c, com a seqüência genética consistindo nos valores binários c0 a cn−1e um pai a, com

a seqüência genética a0 a an−1. S = 1 − n−1 X i=0 abs(A[i] − C[i) n (1)

Na Eq. 1, cada termo da soma representa a diferença de valores entre os cro-mossomos. Essa diferença é representada por um valor absoluto, ou seja, o valor é o número sem o sinal. A média dessas diferenças nos dá um índice de divergência entre os dois cromossomos. A similaridade S entre os indivíduos é o complemento do índice de divergência e S ∈ [0, 1]. Se este valor for igual a 1 então, a e c são iguais e definidos fc = fa e rc = ra (o mesmo ocorre para o filho d). Caso contrário, os novos

indivíduos c e d a serem gerados têm seus valores de aptidão atribuídos através da Eq. 2 e a confiabilidade calculada pela Eq. 3.

fc=

faraSac+ fbrbSbc

raSac+ rbSbc

(18)

rc =

(raSac)2+ (rbSbc)2

raSac+ rbSbc

(3) Na equação 2, fcé a aptidão do filho c e considera a aptidão e a confiabilidade dos

pais e a similaridade entre o filho e os pais. Na equação 3, rc é a confiabilidade de c e

considera a confiabilidade dos pais e a similaridade entre o filho e os pais.

Se a aptidão estimada de um indivíduo i cair abaixo de um determinado limiar (τ ∈ [0, 1]), este indivíduo será avaliado e definido um valor real de aptidão. Além disso, a confiabilidade rié definida para 1. Importante ressaltar que, quando a aptidão

de um indivíduo é estimada, a sua aptidão encontra-se entre a aptidão dos pais e a confiabilidade é menor que a maior confiabilidade dos pais. Isto é importante pois, com sucessivas estimativas ao longo das gerações, a confiabilidade deve cair abaixo do limiar e em algum momento deve ocorrer uma avaliação real.

Este valor de limiar de confiabilidade (τ ) próximo de 1 resulta em muitas avaliações de aptidão, retardando o AG. Entretanto, um valor de τ próximo de 0 resulta em muitas estimativas de aptidão o que pode render valores que diferem muito da aptidão real dos indivíduos. Assim, τ é um parâmetro importante deste método de atribuição da aptidão. Além disso, para garantir que alguns indivíduos sejam avaliados ao invés de estimados em cada geração, é aplicada uma probabilidade de avaliação (probAv ∈ [0, 1]) a eles. Os indivíduos com confiabilidade acima do limiar (τ ) são avaliados com probabilidade probAv. Desta forma, impede que algumas gerações tenham todos os indivíduos com aptidão estimada. O algoritmo utilizado neste trabalho encontra-se na Seção 4.

2.3

Redes de Sensores Sem Fio

O avanço tecnológico crescente nas últimas décadas nas áreas de circuitos in-tegrados, comunicação sem fio e sistemas distribuídos, tem possibilitado um cres-cimento da área de Rede de Sensores Sem Fio (RSSFs). Este cenário pode ser aplicado em monitoramento, sensoriamento e processamento de dados para diversos ambientes. Com isso, torna possível sua utilização em diferentes ambientes e situa-ções de forma eficiente. Consequentemente, com a utilização de uma RSSF surgem novas perspectivas e outros desafios.

Os sistemas de redes de sensores são vistos por pesquisadores como uma tec-nologia importante que terá muitas implantações nos próximos anos para uma grande quantidade de aplicações. Uma RSSF é uma infraestrutura composta de sensores de medição com elementos de computação e comunicação que dispõe ao adminis-trador da rede o poder de controlar, observar e reagir a eventos e fenômenos em um ambiente específico (K. SOHRABY; ZNATI, 2007).

(19)

As redes homogêneas são definidas por todos os nodos sensores pertencentes à rede possuírem as mesmas configurações e funções (capacidade computacional, capaci-dade da bateria, alcance de transmissão). Por outro lado, as redes heterogêneas são caracterizadas por diversos tipos de nodos sensores, com diferentes características, capacidade de processamento e comunicação, nível de energia variados, etc.

2.3.1 Sensores

Uma RSSF é composta por um tamanho variado de sensores capazes de realizar sensoriamento de qualquer atividade ao redor, processar e transmitir a informação através de comunicação sem fio com os outros sensores da rede. A partir daí, os demais sensores atuam como comunicadores distribuídos até um ou mais pontos de saída da rede, onde são encontrados os nodos sorvedouros (do inglês sink node) para, então, processar e gerenciar as tarefas (DELICATO, 2005). Para isso, cada nodo da rede de sensores é composto de um microprocessador e um transceptor (dispositivo que combina um transmissor e um receptor) (K. SOHRABY; ZNATI, 2007). A figura 6 mostra a visão geral de um nodo.

Figura 6: Visão geral do hardware de um nodo sensor. (LOUREIRO et al., 2003) A principal característica desses sensores consiste em agir como geradores de dados. Através de microprocessadores no interior de cada sensor, eles podem ser programados para realizar tarefas complexas, em vez de transmitir apenas o que ob-servam. Além disso, o transceptor dispõe de uma conectividade para comunicar fenô-menos de interesse. Assim, a captura de dados de um evento ou fenômeno físico torna-se viável devido à grande quantidade de sensores disponíveis para integração em uma rede. A tabela 1 apresenta uma descrição de cada parte existente no equipa-mento.

(20)

Tabela 1: Descrição dos componentes de um sensor

Componente Descrição

transceptor parte responsável por enviar e receber os dados pela rede memória onde os dados coletados ficam armazenados para serem

enviados pela rede

processador considerado o “cérebro” do nodo sensor, pois é ele que faz processamento das informações

sensor caracterizado pelo tipo de dado que será coletado pela rede. Existem diferentes tipos de sensores, um para cada tipo de captação

bateria considerado o recurso mais crítico do nodo sensor, pois a capacidade de energia é um dos fatores determinantes para que o nodo sensor possa continuar ativo na rede

Os sensores são geralmente estacionários e são alimentados por baterias de capa-cidade limitada. O tempo de funcionamento total da rede é dado pelo instante em que nenhum dos nodos consegue enviar informações ao sorvedouro (sink ). Para tratar a área de cobertura a ser monitorada, a rede fica na dependência dos nodos com bate-ria suficiente para enviar as mensagens ao sink. Portanto, para uma rede eficiente, a qual as mensagens são geradas pelos nodos em funcionamento e encaminhadas ao nodo principal, o critério é influenciado pela carga de bateria em todos os sensores. A figura 7 mostra uma típica RSSF.

Figura 7: Visão geral de uma RSSF. Adaptado de (AKYILDIZ; VURAN, 2010). Embora a localização dos nodos na rede não mude, a topologia da rede muda dina-micamente de acordo com o gerenciamento de energia das atividades dos sensores. Neste ambiente dinâmico, o maior desafio é manter a conectividade da rede além da qualidade do serviço, enquanto minimiza o consumo de energia.

(21)

2.3.2 Aplicações

Com o advento do paradigma relacionado à RSSFs muitas pesquisas relaciona-das à área têm surgido e o termo se tornando notório. Implantação rápida, auto-organização e tolerância a falhas em redes de sensores são características que as tornam uma técnica de sensoriamento muito promissora. Dessa forma, considerando diferentes formas de abordagem, as redes de sensores podem ser parte integral em várias aplicações em potencial.

Como exemplos podem ser citados sensores de diferentes tipos: acústico, infraver-melho, localização, magnético, sísmico, térmico, e visual. Por conseguinte, possibili-tam a capacidade de monitorar várias condições ambientais, tais como: temperatura, umidade, pressão, velocidade, direção, movimento, luz, composição do solo, níveis de ruído, níveis de tensão mecânica sobre objetos, presença ou ausência de certos tipos de objetos (K. SOHRABY; ZNATI, 2007). Além disso, os sensores podem ser amplamente utilizados para detecção e identificação de eventos, informando o local de detecção (AKYILDIZ et al., 2002).

2.3.3 Redundância e Balanceamento de Carga

A partir das características de uma RSSF formada por sensores com poucos re-cursos (capacidade de processamento, pouca memória e bateria limitada) e ainda, em muitas aplicações, os sensores são colocados em áreas remotas, o que não permitirá um fácil acesso a esses elementos para manutenção, o tempo de vida da rede de-pende da quantidade de energia disponível em cada nodo sensor para a execução e tratamento dos eventos (WANG, 2011).

O gerenciamento de tarefas em uma RSSF é fundamental, pois equilibra a detec-ção em uma área específica. As RSSFs são formadas por sensores distribuídos de diversas formas, concentradas em uma área de cobertura de interesse. Nem todos os nodos sensores nessa área de interesse são necessários para processar os eventos detectados ao mesmo tempo. Segundo LOUREIRO et al. (2003), como muitos sen-sores não podem ser posicionados de forma que fiquem relativamente distintos um do outro e ao ambiente, uma boa estratégia é ter uma redundância de sensores para garantir a cobertura do espaço. A área de sensoriamente dos nodos da FIGURA 8 é um exemplo de redundância na cobertura do espaço.

Alguns nodos dispostos em uma área de interesse executam mais eventos do que outros, dependendo da sua carga de bateria (AKYILDIZ et al., 2002). Esses nodos devem equilibrar seus recursos com o objetivo de aumentar o tempo de vida da rede. Portanto, a preservação da energia é o aspecto de maior relevância a ser considerado em um projeto de RSSFs.

Neste cenário, o tempo de vida da rede depende da quantidade de bateria em cada nodo para garantir a disponibilidade da rede. Uma das maneiras para a descarga

(22)

Figura 8: Redundância na disposição dos nodos em uma área de cobertura. das baterias é através do sensoriamento. Assim, o monitoramento do ambiente pode ser feito através de duas maneiras: próativa e reativa (AKYILDIZ; VURAN, 2010). A abordagem que se sobressai é a reativa (orientada à eventos). Esta é mais apropriada, pois não precisa manter o processador do nodo em constante atividade à procura de um evento no ambiente. Quando uma rede reativa é utilizada, o processador se mantém inativo e consumindo baixa quantidade de energia e, será ativado, quando algum determinado evento for gerado no raio de cobertura do nodo.

Considerando as aplicações orientadas por evento, a carga com a computação também é definida pelos eventos detectados a partir do ambiente (FERREIRA; BRI-SOLARA; INDRUSIAK, 2015). Desta forma, o balanceamento de carga pode ser útil, uma vez que vários nodos podem ficar ativods por um mesmo evento, auxiliando no mapeamento dinamicamente das tarefas distribuídas na rede. A operação eficiente de energia em uma RSSF, no entanto, fornece significativamente vidas longas que supe-ram qualquer sistema que se baseia em baterias. A fim de tratar o consumo de energia dinamicamente, alguns autores têm estudado diferentes técnicas de balanceamento de carga para tentar resolver ou minimizar esse problema.

Neste trabalho, a técnica de balanceamento de carga explorada é denominada Ant-based e será discutida na Seção??. Esta técnica visa realizar o balanceamento da carga de trabalho em uma RSSF direcionada para aplicações acionados por evento.

(23)

Diferentes abordagens têm sido propostas para balanceamento de carga em RSSF, que difere essencialmente entre si a partir das heurísticas adotadas como bioinspira-dos e algoritmo genético. Técnicas bioinspiradas buscam compreender os padrões da natureza e aplicá-los na resolução de problemas. Por outro lado, técnicas basea-das em algoritmo genético buscam encontrar soluções aproximabasea-das em problemas de otimização e busca, utilizando técnicas inspiradas pela biologia evolutiva.

Este capítulo tem como objetivo descrever os trabalhos relacionados ao tema da dissertação, com enfoque na aplicabilidade para os resultados almejados na disserta-ção. No capítulo serão identificadas cada contribuição dos trabalhos, os quais serão referenciados ao longo do projeto.

3.1

Ant-based Load Balancing

Como dito, a disponibilidade do serviço ou o tempo de vida de uma RSSF depende, principalmente da descarga de baterias dos sensores. Como as soluções de RSSF in-cluem redundância para atingir área de cobertura desejada, mais de um nodo sensor pode sentir um mesmo evento, em uma mesma área, ao mesmo tempo. Esta redun-dância motiva a adoção de mecanismos de coordenação dinâmicos para alcançar o balanceamento de carga, o que pode melhorar o tempo de vida da rede e disponibili-dade do serviço.

Ao citar aplicações em RSSF acionadas por evento, o balanceamento de carga pode ser útil, uma vez que vários nodos podem ser acionados por um mesmo evento. Além disso, dada a natureza distribuída da RSSF, estratégias onde os nodos se orga-nizam estão sendo enfatizadas por pesquisadores (FERREIRA; BRISOLARA; INDRU-SIAK, 2015).

Tendo em vista o problema de mapeamento de tarefas em uma rede sensores, as abordagens existentes estão definidas para identificar e distribuir a responsabilidade do processamento de forma estática ou dinâmica na rede. Entretanto, por não conhe-cer a estrutura da rede e não conseguirem se adaptar de forma eficaz às condições

(24)

da rede, as técnicas estáticas se tornam mais incapazes de atingir um melhor objetivo. Logo, afim de ter um melhor controle sobre o processamento da rede, as técnicas di-nâmicas, sendo utilizadas em tempo de execução da rede, se tornam desejáveis em procedimentos de balanceamento de carga.

A base teórica da abordagem relatada no artigo emerge da diferente forma de modelagem da divisão do trabalho em colônias de insetos sociais, mais precisamente em uma colônia de formigas. Assim como a distribuição de feromônio no caminho percorrido pelas formigas entre o ninho e o alimento, esta modelagem emerge da interação entre os indivíduos em si e entre indivíduos e o ambiente, utilizando padrões de comunicação simples, sem qualquer organização de um ponto central. A alocação de tarefas por indivíduos em uma colônia deve ser de forma que assegura que as variações ambientais sejam absorvidas e a quantidade de energia gasta pela colônia seja a menor possível (FERREIRA; BRISOLARA; INDRUSIAK, 2015).

3.1.1 Modelo proposto

O objetivo da proposta é permitir que os nodos sensores de uma RSSF decidam individualmente qual evento devem ser processados de maneira simples, minimizando os gastos computacionais e de comunicação com o restante da rede, até o nodo sor-vedouro (sink ). Para isso, os sensores decidem probabilisticamente quais eventos serão processados através de um método de decisão inspirado no modelo teórico de limiar de resposta. Os eventos produzem um estímulo para os nodos que, utilizando os seus limiares de resposta internos, têm probabilidades diferentes para lidar com cada evento. Quando os sensores detectam eventos e de acordo com sua probabi-lidade específica, eles decidem qual sensor será encarregado de processá-lo. Para isso, a probabilidade é definida pela equação que segue:

Pi(j) = s2 j s2 j + θi2 (4) Assim, assumindo a existência de um total de J eventos para serem processados pela rede, cada evento tem um estímulo definido por sj associado a ele. Considerando

ainda, que i sensores diferentes podem realizá-las, em cada nodo é definido um limiar de resposta, dado por θi.

Os eventos apresentam um mesmo estímulo inicial s0. Em cada instante de tempo

t, os valores para os estímulos são dados pela equação: sj(t) = s0+ δ −

αNjact(t) Nj(t)

(5) Na forma de haver redundância para cobrir uma área pelos sensores, o número de sensores vizinhos, em uma mesma área de cobertura, que detectaram um mesmo

(25)

evento no tempo t é dado por Nacte N

j é o número máximo de sensores vizinhos que

poderiam ter sentido esse mesmo evento em questão. Logo, Nact

j é determinado por

uma comunicação; o envio de uma mensagem simples transmitida a todos os sen-sores vizinhos indicando que um evento foi detectado. Utilizando ainda este mesmo processo de comunicação, cada sensor pode estimar um Nj, de acordo com o número

máximo de mensagens que eles receberam simultaneamente até o instante atual de tempo t, ou seja, o número máximo de sensores que poderiam ter detectado o evento. Em BONABEAU; DORIGO; THERAULAZ (1999) foi proposta uma extensão ao mo-delo original relatado acima. De acordo com os autores, um indivíduo se torna mais sensível aos estímulos de uma determinada tarefa que será efetuada e menos sen-sível a outras. Desta forma, os limiares de resposta desta extensão são atualizados (para mais ou para menos) de acordo com dois coeficientes diferentes. Nesta técnica proposta de balanceamento de carga, os limiares são atualizados de formas opostas de modo que diminui se, um nodo sensor decide processar um evento e consequen-temente aumenta se, um sensor processa um evento.

Levando em consideração que os sensores apresentam o mesmo valor de limiar inicial θ0, essa atualização ocorre de acordo com as fórmulas seguintes:

θi = θi − ξ (6)

θi = θi+ ρ (7)

Onde θi é o limiar de resposta de um nodo i e é diminuído por ξ, cada vez que

o nodo decide processar um evento, como mostra a equação 6. Por outro lado, de acordo com a equação 7, o mesmo limiar de resposta de um nodo i é aumentado por ρcada vez que o nodo decide não processar um evento.

De acordo com esse esquema, o algoritmo funciona modificando a probabilidade de um nodo sensor para processar um evento considerando, basicamente, o número de nodos que sentiram o evento ao mesmo tempo e o número de vezes que este nodo foi envolvido em processamentos de eventos anteriormente. FERREIRA; BRI-SOLARA; INDRUSIAK (2015) utiliza um exemplo da variação de probabilidade de acordo com a possível mudança do limiar de resposta e assumindo uma configura-ção de RSSF a qual, no máximo, 4 sensores podem sentir o mesmo evento. A figura 9 mostra o gráfico de variação das probabilidades em função deste limiar. Nessa figura, todas as curvas foram representadas utilizando a Eq. 4 e Eq. 5, com os valores da tabela 2.

(26)

Tabela 2: Valores dos parâmetros definidos para o Ant-based Parâmetro Valor θ 1 α 1 s0 20 δ 20 ξ 0.0007 ρ 0.001

Figura 9: Probabilidade de execução de um evento em função do limiar de resposta (FERREIRA; BRISOLARA; INDRUSIAK, 2015).

Estatisticamente, as probabilidades estão sendo diminuídas individualmente quanto mais nodos estiverem envolvidos em um mesmo evento. Observando o gráfico 9, é possível perceber que, com um limiar de resposta em 5 (eixo do x), se apenas um nodo sensor detectar um determinado evento, a probabilidade de realizar este evento é maior que 90%. Entretanto, no momento o qual quatro nodos detectarem um evento, as probabilidades de realizarem este evento caem para menos de 40%. Cada um dos nodos envolvidos usa a mesma curva para tomar a decisão de realização de um evento, ao mesmo tempo. Como parâmetro ideal para minimizar o consumo global de energia da rede e tornar o balanceamento de carga efetivo, apenas um nodo deve processar cada evento.

Em FERREIRA; BRISOLARA; INDRUSIAK (2015) ambas abordagens Ant-based e PS são avaliadas e comparadas através do framework de simulação Eboracum (EBO-RACUM, 2014). Nestes experimentos, o número de eventos sensoriados pela rede são avaliados para cada uma das abordagens e apenas eventos que são transmitidos

(27)

ao sink são considerados aptos para avaliação. Importante ressaltar que, os experi-mentos também discutem o tempo de vida da rede, ao variar suas densidades.

3.2

Pheromone Signalling

Como dito, a disponibilidade do serviço ou o tempo de vida de uma RSSF depende, principalmente da descarga de baterias dos sensores. Como as soluções de RSSF in-cluem redundância para atingir área de cobertura desejada, mais de um nodo sensor pode sentir um mesmo evento, em uma mesma área, ao mesmo tempo. Esta redun-dância motiva a adoção de mecanismos de coordenação dinâmicos para alcançar o balanceamento de carga, o que pode melhorar o tempo de vida da rede e disponibili-dade do serviço.

Uma técnica recentemente proposta para gerenciar o balanceamento de carga e mapeamento de tarefas em RSSF é encontrado o Pheromone Signalling (PS), o qual é hoje, definido como o estado da arte é baseada no mecanismo de sinalização de feromônios com o intuito de tratar o principal problema de consumo de energia na RSSF. Além disso, é explorada as consequências de desempenho em diferentes con-figurações de cenários possíveis encontrados em uma RSSF.

De acordo com CALISKANELLI et al. (2013), alguns conceitos foram definidos para garantir a eficiência do processo. A disponibilidade do serviço é tratada como o nú-mero de serviços finalizados com sucesso levando em consideração o núnú-mero total de serviços solicitados em um período de tempo. Para isso, um serviço é composto por um número de tarefas que se comunicam entre si e este serviço só é finalizado se todas as tarefas forem executadas pelos sensores. Considerando que o mapeamento de tarefas se refere ao balanceamento da carga de trabalho sobre a rede de sensores, onde é decidido qual sensor deve executar as tarefas de cada serviço solicitado, um serviço não será finalizado se: uma tarefa não for mapeada para nenhum nodo sensor ou a tarefa foi mapeada para um sensor que está sem bateria para executá-la.

A técnica proposta no PS é inspirada pelo comportamento e processo de sinaliza-ção de feromônios encontrado em colônias de abelhas. Entre os insetos sociais, as abelhas desenvolveram um sistema hormonal especial para garantir que cada colméia tenha uma rainha, o que mantém a estabilidade da colônia sobre as outras abelhas.

Durante o tempo de vida de uma abelha rainha, as abelhas operárias percebem a presença da rainha, através da estimulação de um feromônio chamado de Feromônio Mandibular da Rainha, do inglês Queen Mandibular Pheromon (QMP). Logo, se não houver sinal de feromônio na colméia, então eles vão considerar que a rainha está morta. Nesse caso, as trabalhadoras selecionam uma larva das abelhas e alimentam com uma proteína real. Essa proteína induz a diferenciação das larvas das abelhas de em uma rainha. Sendo assim, se as abelhas operárias continuarem a receber o

(28)

feromônio, elas perceberão a existência de uma nova abelha rainha.

Analogamente a uma abelha rainha, foi definido que existe um nodo sensor na rede responsável por gerenciar a execução de todas as solicitações de serviço que recebe. Por outro lado, todos os outros nodos encontrados na rede foram definidos pelo autor como nodos trabalhadores (CALISKANELLI et al., 2013).

A definição do processo foi feita levando em consideração que somente nodos rainhas são capazes de detectar e reagir a eventos no ambiente ou uma solicitação de serviço. Por outro lado, ambos nodos rainhas e nodos trabalhadores, se comunicam entre si. Ainda, os nodos trabalhadores executam tarefas, somente se, tornam-se um nodo rainha ou os nodos rainhas mapeiam tarefas a eles. O algoritmo de sinalização feromônio visa permitir a diferenciação entre os nodos em uma escala que produz tantos nodos rainhas para tratar a exigência do ambiente, tanto para executar quanto para mapear as tarefas aos nodos trabalhadores disponíveis na rede. Além disso, o algoritmo deve evitar a redundância desnecessária onde vários nodos detectam, processam e notificam várias vezes o mesmo evento.

A estratégia básica do algoritmo baseia-se na transmissão periódica de feromônio pelo nodo rainha aos seus vizinhos. Entretanto, assim como o processo de busca por alimento pelas formigas, onde a quantidade de feromônio evapora do ambiente, o nível de feromônio em cada nodo decai com o tempo e com a distância em relação à fonte. Além disso, todos os nodos acumulam em si uma quantidade recebida de um nodo rainha.

Porém, se o nível de feromônio de um nodo estiver abaixo de um determinado limiar este nodo se torna um nodo rainha. Normalmente, isso acontece quando este nodo está muito longe de um nodo rainha ou quando um nodo trabalhador está sem receber feromônio por muito tempo. Para melhor entendimento, é importante definir os parâmetros utilizados no algoritmo as quais estão listadas na tabela 3.

(29)

Tabela 3: Descrição dos parâmetros do algoritmo Pheromone Signalling. Parâmetro Descrição

hi quantidade de feromônio em cada nodo sensor i

hd quantidade de feromônio transmitido pelo nodo rainha

thresholdQN limiar para diferenciação entre os nodos trabalhadores e nodos rainhas

thresholdhopcount limiar de distância para garantir a eficácia do feromônio transmitido pela

rainha

TQN unidade de tempo em que é feita a verificação de feromônio para

dife-renciação de nodos trabalhadores e nodos rainhas

TDECAY unidade de tempo em que é feita a atualização do feromônio de cada

nodo por um fator de decaimento

KT IM EDECAY fator de decaimento da quantidade de feromônio de cada nodo

KHOP DECAY fator de decaimento da quantidade de feromônio transmitido em

rela-ção à fonte de transmissão;

A seguir são apresentadas as partes principais do algoritmo e consiste em três partes que são executadas em cada nodo da rede.

3.2.1 Ações por tempo

O algoritmo trata de duas ações que devem ser realizadas por cada uma das uni-dades de tempo: TQN e TDECAY. Os procedimentos seguem descritos abaixo:

3.2.1.1 Ciclo de diferenciação

O processo de diferenciação entre nodos rainhas e nodos trabalhadores é defi-nido por um ciclo que é executado durante um período de tempo. Esse período foi denominado pelo parâmetro TQN. Este é considerado como uma unidade de tempo

que a cada ciclo verifica se a quantidade de feromônio (hi) é menor que um

parâme-tro limiar pré-definido (thresholdQN). Seesse critério não for satisfeito, o nodo sensor

i permanece como um nodo trabalhador. Caso contrário, será transformado em um nodo rainha o qual será responsável pelo tratamento dos eventos.

Além disso, sendo o nodo trabalhador transformado em nodo rainha, transmite através da comunicação da rede uma quantidade de feromônio aos nodos vizinhos da rede. A quantidade de feromônio (hd) é representado por um vetor de duas posições: a primeira posição informa a distância até o nodo rainha que transmitiu o feromônio e a segunda posição a quantidade de feromônio que será absorvida pelos vizinhos.

(30)

3.2.1.2 Decaimento de feromônio

Assim como ocorre em uma colônia de formigas, a redução do nível de feromônio de um caminho no decorrer do tempo, a evaporação de feromônio foi utilizada no algoritmo. Visto que cada nodo sensor toma a própria decisão de transformar-se em nodo rainha, baseado no ciclo de diferenciação, o nível de feromônio (hi) decai com

um parâmetro de tempo referenciado por TDECAY. A cada ciclo deste parâmetro a

quantidade de feromônio é multiplicada por um fator KT IM EDECAY ∈ (0, 1).

3.2.2 Acões por eventos

3.2.2.1 Propagação de feromônio recebido

A parte acionada por eventos trata com a propagação do feromônio liberado pelos nodos rainhas (como descrito anteriormente no ciclo de diferenciação) e recebimento pelos nodos vizinhos. O propósito da propagação é estender a influência de nodos rainhas aos nodos vizinhos na rede, diretamente conectados. Entretanto, a disse-minação de feromônio não é um processo cíclico e ocorre quando um nodo recebe alguma quantidade de feromônio.

Quando isso ocorre, o nodo sensor verifica se o nodo rainha que produziu o es-tímulo está suficientemente perto dele para garantir a eficácia da quantidade de fe-romônio. Então, o algoritmo compara o primeiro elemento do parâmetro hd com um parâmetro predefinido denominado thresholdhopcount. Se o elemento em hd for maior

que o limiar, o nodo descarta o estímulo de feromônio. Se não, ele adiciona ao seu nível de feromônio (hi) a quantidade recebida, atualiza os valores do parâmetro hd

e propaga o feromônio aos nodos vizinhos. A atualização dos valores de hd leva em consideração a distância entre a fonte de feromônio até o nodo em questão, para o pri-meiro valor do vetor. O segundo valor, o qual representa a decomposição de feromônio a partir da origem, é atualizado multiplicando a quantidade atual de feromônio por um fator de decaimento KHOP DECAY ∈ (0, 1).

3.3

Search-Based Parameter Tuning on Application-Level Load

Balancing For Distributed Embedded Systems

A técnica de balanceamento de carga, biologicamente inspirada, conhecida como Pheromone Signalling (PS) é baseada pelo processo de sinalização e estimulação de feromônios, essa que é responsável pela seleção de rainhas em colméias de abelhas. Apesar de ser uma técnica dinâmica e robusta apresenta meios de configuração que a torna menos suscetível de ser utilizada pelo usuário-final. Por isso, foi criada uma ferramenta de seleção de parâmetros a fim de encontrar o conjunto deles que for-nece o melhor desempenho possível da rede (a máxima disponibilidade de serviço e

(31)

consumo mínimo de energia). Além disso, o método de seleção desses parâmetros automatizados para o Pheromone Signalling se torna possível para qualquer configu-ração de rede, independentemente do tamanho, densidade, topologia ou a carga de trabalho aplicada.

Em CALISKANELLI; INDRUSIAK (2013), a proposta foi ilustrada os importantes efeitos da definição dos parâmetros para configuração do algoritmo, usando uma va-riedade de diferentes conjuntos de parâmetros. A seleção de parâmetro intuitivo (com base em tentativa e erro) alcançou um elevado nível da disponibilidade do serviço, minimizando o consumo de energia para um esquema de rede fixa.

A ferramenta de seleção de parâmetros aceita como entrada do processo, as figurações de rede (tamanho, densidade, topologia e carga de trabalho) e gera o con-junto de parâmetros que são posteriormente utilizados pelo algoritmo PS para a rede fornecida. Este procedimento aplica uma busca meta-heurística conhecido como Têm-pera Simulada (TS), do inglês Simulated Annealing (SA), afim de remover a complexi-dade e facilitar a utilização da técnica PS.

Algoritmos de busca meta-heurística são um conjunto de algoritmos genéricos que tendem a encontrar as melhores soluções para um problema dentro de um grande espaço de busca. O método TS é um procedimento probabilístico de otimização es-tocástica para a obtenção de soluções aproximadas para problemas de otimização de combinações (KIRKPATRICK; GELATT; VECCHI, 1983).

Este método utiliza o conceito de um procedimento físico chamado annealing no qual um material sólido que se encontra em alta temperatura é submetido a um res-friamento gradual, até atingir o equilíbrio de suas partículas internas. Desta forma, a principal característica do processo de busca TS é ser iterativo; a cada iteração, o sistema começa a reorganizar-se até que uma melhor configuração seja encontrada. Uma vez que a solução é encontrada, se torna o novo ponto de partida para os novos rearranjos. Isso continuará até que o sistema atinja um critério de parada, onde ne-nhuma outra solução possa ser encontrada. Esta ideia simples é muitas vezes usada para encontrar soluções viáveis que podem convergir para uma solução ótima. Além disso, foi utilizada com uma função de aptidão que considera a disponibilidade do ser-viço, bem como o tempo de vida da rede, a fim de medir a qualidade e eficiência dos parâmetros.

Contudo, a cada nova solução encontrada, elas são submetidas à avaliação de critérios a fim de garantir a eficácia. Visto que nem todas melhoram a função objetivo, essas são sempre aceitas, soluções inferiores tendem a serem aceitas dependendo do critério de Metropolis (KIRKPATRICK; GELATT; VECCHI, 1983). Este critério utiliza um parâmetro de temperatura T que define o que será aceito.

Segundo KIRKPATRICK; GELATT; VECCHI (1983), para controlar o funcionamento e flexibilidade do sistema com a técnica de TS é utilizado o parâmetro de temperatura

(32)

T. Por isso, quanto menor a temperatura T, menor será a probabilidade de aceitação de uma solução que piora a avaliação do objetivo do problema. Quando a temperatura T é alta, esta probabilidade se aproxima de um. Assim, é possível explorar melhor o espaço de busca, definindo temperaturas altas no início do processo. Ainda, como fator importante no processo, a taxa de resfriamento influencia no número de soluções a serem visitadas e varia de acordo com a aplicação. Sendo a taxa de resfriamento inversamente proporcional ao tempo de processamento da solução. Se for aumentada a taxa de resfriamento, o tempo de processamento será menor. Consequentemente, se o processo de redução for lento, mais soluções serão visitadas.

Para o desenvolvimento do algoritmo, os valores predefinidos são os seguintes: Tabela 4: Valores iniciais dos Parâmetros do Algoritmo

Parâmetro Valor

Temperatura Inicial T0 = 100

Critério de Parada Tk< 1

Taxa de Resfriamento* 0, 9

*Aplicada uma vez em cada vinte gerações

Cada nova solução no processo é um conjunto de atributos com os quatro parâmetros-chave, anteriormente apresentados na técnica PS (explicado no capítulo 4.1), em conjunto com a temperatura, que é representado como na tupla a seguir:

S = n TDECAY, TQN, thresholdQN, QNIN IT IAL, Tk

o

(8) Além disso, na definição da função de aptidão foi desenvolvida para avaliar seleção dos parâmetros. Na proposta apresentada, foram definidas duas métricas: disponibili-dade do serviço e consumo de energia total. Desta forma, a disponibilidisponibili-dade do serviço é definida pelo número de serviços que são concluídos com sucesso, dividido pelo nú-mero total de serviços solicitados em um período de tempo. E, ainda, o consumo de energia total foi definido como a soma de comunicação e consumo de energia por processamento em um período de tempo.

Como visto, um serviço é definido por um conjunto de tarefas e garantem êxito somente se todas as suas tarefas são executadas pelos sensores. Logo, a função de aptidão considera tanto a disponibilidade do serviço e quanto o número de nodos sensores ativos na rede.

(33)

3.4

Energy-efficient routing for wireless sensor network using

ge-netic algorithm and particle swarm optimisation techniques

No trabalho proposto por RANA; ZAVERI (2013) são analisadas três técnicas para roteamento em RSSF e compara a eficiência no consumo de energia entre elas. Para o roteamento os pacotes podem ser encaminhados por ou por vários caminhos. No roteamento por um único caminho o pacote sai de um nodo sensor até o destino; já o roteamento por vários caminhos um mesmo pacote é encaminhado por caminhos diferentes até chegar em um mesmo destino. Neste trabalho, o autor explica três métodos para garantir um roteamento eficiente: entrega garantida, otimização por colônia de formigas e algoritos genéticos. Sendo esta última a utilizada no trabalho. 3.4.1 Entrega garantida

É proposta uma abordagem em que a rede é reparada através de um caminho controlado por um nodo pivô local, que está localizado no ponto de falta de conexão e é responsável por buscar caminhos alternativos para os pacotes. Este nodo realiza uma busca local de nodos possíveis para seguir o caminho até o nodo sink. Se existirem caminhos alternativos, o encaminhamento de dados irá prosseguir pelo melhor deles, sem reiniciar o encaminhando a partir do nodo de origem.

Este caminho alternativo pode não ser o caminho ótimo, a partir da visão do nodo de origem. Mas a energia é conservada usando a rota já estabelecida anteriormente de transmissão da fonte até o nodo pivô. Em vez de notificar a fonte do pacote sobre a falha de comunicação, a origem novamente inicia o estabelecimento da rota (onde a energia é desnecessariamente desperdiçada), o caminho alternativo é definido lo-calmente pelo nodo pivô. Essa economia de energia compensa a energia adicional causada pelo uso de um caminho não ideal.

3.4.2 Otimização por colônia de formigas

Devido às mudanças frequentes na topologia da RSSF pela com a falha na trans-missão de dados na rede, e com inúmeros sensores e baixa quantidade de bateria, é importante utilizar um protocolo de roteamento que economize energia. O problema nos protocolos de roteamento existentes é que eles tentam descobrir um caminho ideal e usam esse caminho para cada comunicação, o que leva a uma rápida diminuição de energia dos nodos sensores no trajeto.

RANA; ZAVERI (2013) utiliza uma técnica de Otimização por Colônia de Formigas (ACO), com o objetivo de prolongar a vida útil da rede, bem como encontrar o melhor caminho do nodo de origem até o nodo sink. Na proposta, o algoritmo é composto por três fases: Descoberta do Vizinho, Roteamento e Transmissão dos dados e Manu-tenção da Rota. Assim, os pacotes são dinamicamente alocados para trasmissão da

(34)

origem até o destino. Devido à escolha da rota derivada destes parâmetros definidos dinamicamente, o protocolo de roteamento possui um bom desempenho adaptativo. Sendo assim, pode se adaptar automaticamente à energia de cada nodo da rede e com as mudanças de feromônio realiza a escolha do caminho para aumentar o tempo de vida da rede ao máximo.

3.4.3 Algoritmos genéticos

A transmissão de pacotes através dos nodos age transferindo informações até o nodo sink, passando por outros nodos transmissores. Esta transmissão precisa estar ativa o maior tempo possível para garantir a efetividade da rede. A diminuição da bateria de um nodo afeta severamente a funcionalidade da rede, já que os outros nodos não poderão enviar dados através da rede até o nodo sink.

Para a abordagem proposta, o autor considera que: a) cada nodo recebe dados de sensores pertencentes a um mesmo caminho e pode receber dados de qualquer outro nodo; b) cada nodo i transmite dados para um outro nodo j, de modo que esteja dentro área de comunicação entre eles e j seja o nodo sink ou j seja um nodo mais próximo do sink que o nodo i. c) o sink somente recebe os dados, não há transmissão para nenhum outro nodo.

Desta forma, um indivíduo no AG é representado como uma seqüência de nodos pertencentes a uma rede. O tamanho de cada indivíduo é sempre igual ao número de nodos existentes. Em cada nodo, é definido o valor do nodo mais próximo em direção ao sink. A função de aptidão é proposta como o tempo de vida da rede pelo número de buscas até o primeiro nodo ficar sem bateria. A partir daí, é feita a seleção, cruzamento e mutação para geração de novos indivíduos, até encontrar o melhor cromossomo.

(35)

A abordagem proposta se baseia na intenção de criar uma ferramenta de seleção de parâmetros automatizada, a fim de encontrar um conjunto de parâmetros, a qual fornece o melhor desempenho possível da rede (a máxima disponibilidade de serviço e consumo mínimo de energia), para a técnica de balanceamento de carga Ant-based, considerando diferentes configurações e densidades de rede e a carga de trabalho aplicada.

Para desenvolvimento da pesquisa foi utilizado um Algoritmo Genético, sendo que cada novo indivíduo é testado no ambiente de desenvolvimento Eboracum (EBORA-CUM, 2014) para posterior averiguação da efetividade. Entretanto, devido à quanti-dade de indivíduos a serem analisados e ao tempo de execução para os testes foi implementada ainda, uma técnica de aceleração ao AG. Esta técnica se baseia esti-mando as aptidões de alguns indivíduos, ao invés de avaliar cada um deles. Sendo assim, diminui o tempo de execução de toda a população envolvida. Ao final de todo o procedimento, o melhor indivíduo será encontrado.

Neste capítulo é detalhado o algoritmo genético desenvolvido (Seção 4.1), a acele-ração do algoritmo genético empregado (Seção 4.2) e, por fim, na Seção 4.3 é descrito como a abordagem proposta foi implementada.

4.1

Descrição do Algoritmo Genético

Algoritmos Geneticos (AG) são algoritmos de autoaprendizagem que utilizam mé-todos relacionados à seleção natural e recombinação genética. Desta forma, estuda os resultados anteriores para melhorar o desempenho do algoritmo, com base em critérios definidos. Assim, o algoritmo funciona escolhendo soluções entre indivíduos existentes na população inicial de cromossomos e então, aplicando operações gené-ticas, criam uma nova população a cada geração.

Neste sentido, um indivíduo é definido por um cromossomo binário representado por um conjunto de 30 genes que controlam o comportamento do Algoritmo Ant-based. Cada conjunto de genes foi dividido de forma que corresponda a um parâmetro

(36)

espe-cífico relacionado à execução. Sendo assim, o cromossomo ficou definido conforme: 00000 | {z } θ 00000 | {z } s0 00000 | {z } δ 0000 | {z } α 0000000 | {z } ξ 0000 | {z } ρ

Inicialmente, é definida a quantidade de gerações que devem ser percorridas para a execução. Estas gerações são caracterizadas por ser o critério de parada do algo-ritmo, visto que ao fim de todas as gerações, o algoritmo se encerra. Na população inicial, os indivíduos são gerados aleatoriamente em uma quantidade predefinida. A partir daí, estes indivíduos são avaliados um a um, sendo cada um deles utilizado na ferramenta de simulação e definidos seus valores de aptidão, ao final de cada execu-ção. A cada iteração das gerações, a nova população gerada se baseia na seleção de novos indivíduos para, assim, realizar as alterações genéticas. O algoritmo 2 exempli-fica o procedimento descrito, o qual foi utilizado neste trabalho.

Algoritmo 2: ALGORITMO GENÉTICO EMPREGADO NOAnt-based

1 início

2 para n ∈ [0...N ] faça

3 para todo i ∈ P (n) faça 4 fi ← avaliaIndividuo(i)

5 fim

6 P (n + 1) ← ∅

7 enquanto P (n + 1) < t faça 8 (a, b) ← selecionaP ais(P (n))

9 (c, d) = cruzamento_e_mutacao(a, b) 10 P (n + 1) ← P (n + 1) ∪ (c, d) 11 fim 12 fim 13 retorna melhorIndividuo(P ) 14 fim

Onde, N é o número de gerações, P (n) a população na geração atual, fi a aptidão

do indivíduo i, a e b os pais selecionados através do método de torneio e, por fim, c e dos dois novos indivíduos gerados para a próxima população.

Na nossa abordagem, a avaliação de um indivíduo é feita de acordo com o desem-penho deste na execução do algoritmo Ant-based no simulador. Durante a execução do AG, o procedimento avaliaIndividuo(), na linha 4, retorna o valor de aptidão de cada indivíduo. Assim, o simulador cria um arquivo de configuração e define os parâ-metros contidos no cromossomo do indivíduo a ser avaliado, a fim de realizar a exe-cução do algoritmo em uma RSSF. No final da exeexe-cução do algoritmo, cada indivíduo tem um valor de aptidão, atribuído de acordo com o desempenho. Logo, a avaliação da aptidão de cada indivíduo depende de toda a execução do algoritmo. A arquitetura implementada pode ser vista na figura 10.

(37)

Figura 10: Arquitetura proposta para implementação.

A função de aptidão foi definida como o número total de eventos detectados na rede para cada indivíduo. Como o elitismo é utilizado, o maior valor de aptidão é passado para a próxima geração. Na nova população, os outros indivíduos são gerados através dos operadores genéticos de cruzamento e mutação. Sendo assim, quanto maior número de eventos detectados, melhor é o indivíduo e, consequentemente, melhor a configuração de parâmetros para o Ant-based.

No procedimento selecionaP ais(), na linha 8, através do método de seleção por torneio, três indivíduos são escolhidos aleatoriamente da população. Destes três, os dois indivíduos com melhores valores de aptidão são selecionados. O procedimento cruzamento_e_mutacao(), na linha 9, recebe estes dois indivíduos e, de acordo com a probabilidade de cruzamento, realiza a modificação genética entre eles e, conforme a probabilidade de mutação, altera um gene de cada indivíduo e coloca os dois novos indivíduos na nova população.

Para executar o AG deve-se determinar os valores dos parâmetros a serem uti-lizados. Para a definição destes é fundamental a realização de um grande número de experimentos e testes, visto que cada parâmetro influencia no desempenho do al-goritmo para o problema em questão. Sendo assim, os experimentos apresentam a finalidade de auxiliar na identificação dos valores para os parâmetros em um algoritmo genético. Ainda, não existem melhores valores desses parâmetros para todas as apli-cações. Muitas delas usam valores definidos por outros trabalhos e outras definem os próprios valores baseado em experimentos (LOPES et al., 2004).

De acordo com DE PINHO; MONTEVECHI; MARINS (2009) a determinação do número de gerações varia de acordo com a complexidade do problema e deve ser definida de maneira experimental. Além disso, segundo REEVES (1993), a definição de uma população pequena pode provocar um risco de não obter cobertura do espaço de busca. Em contrapartida, uma população grande pode exigir um maior esforço computacional para a resolução do problema a ser solucionado.

(38)

faixa de 0,6 a 0,65. TANOMARU (1995) afirma que bons resultados geralmente são alcançados com alto valor da taxa de cruzamento (maior que 0,7). Para a probabili-dade de mutação os valores são na faixa de 0,01 a 0,5. O tamanho da população e o número de gerações dependem da complexidade do problema de otimização e devem ser determinados por experimentação. Porém, é importante ressaltar que o tamanho da população e o número de gerações definem diretamente o tamanho do espaço de busca. Os parâmetros definidos no AG para tamanho da população, número máximo de gerações, probabilidades de cruzamento e mutação são apresentados na tabela 5.

Tabela 5: Valores dos Parâmetros para o Algoritmo Genético

Parâmetro Valor

Quantidade de Gerações 30 Tamanho da População 30 Taxa de Cruzamento 0.7

Taxa de Mutação 0.1

De acordo com a tabela acima, os valores de quantidade de gerações e o tamanho da população foram definidos por experimentação. Assim, foi percebido que núme-ros maiores não geravam indivíduos diferentes ao longo das gerações e a população alcançava o ideal, sem quaisquer modificações. Sendo assim, através desses proce-dimentos, o AG busca explorar de forma evolutiva, utilizando heurísticas adaptativas e os parâmetros assim definidos, torna possível encontrar os melhores resultados.

4.2

Aceleração do Algoritmo Genético

Em nossa abordagem, a aptidão de cada indivíduo no AG é determinada pela quantidade de eventos detectados na rede, considerando o tempo total da execu-ção. Uma população consiste em vários indivíduos, sendo que o melhor indivíduo é utilizado para gerar o próxima população. A execução do algoritmo Ant-based no simulador, com a utilização do AG, é um processo que depende do resultado com os melhores indivíduos a serem encontrados. Tendo em vista que vários indivíduos devem ser avaliados, através de várias gerações com uma alta quantidade de indiví-duos na população, a avaliação da aptidão é uma tarefa que consome bastante tempo. Por isso, foi implementada uma técnica de aceleração ao AG afim de melhorar esse desempenho. O algoritmo 3 apresenta o método implementado para o Ant-based.

Referências

Documentos relacionados

Este dado diz respeito ao número total de contentores do sistema de resíduos urbanos indiferenciados, não sendo considerados os contentores de recolha

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do

insights into the effects of small obstacles on riverine habitat and fish community structure of two Iberian streams with different levels of impact from the

Faial, que parecia mesmo um lobo, abriu e fechou a boca várias vezes, mas não uivou (19).. No entanto, era evidente (20) que os cães também se

Na experiência em análise, os professores não tiveram formação para tal mudança e foram experimentando e construindo, a seu modo, uma escola de tempo