Anais do XX Congresso Brasileiro de Automática Belo Horizonte, MG, 20 a 24 de Setembro de 2014 LOCALIZAÇÃO DE ROBÔS UTILIZANDO INTELIGÊNCIA DE ENXAME Alan Oliveira de Sá∗, Nadia Nedjah†, Luiza de Macedo Mourelle‡, Leandro dos Santos Coelho§ ∗ Centro de Eletrônica, Comunicações e Tecnologia da Informação Centro de Instrução Almirante Wandenkolk, Marinha do Brasil † Departamento de Engenharia Eletrônica e Telecomunicações ‡ Departamento de Engenharia de Sistemas e Computação Faculdade de Engenharia, Universidade do Estado do Rio de Janeiro § Programa de Pós-Graduação em Engenharia de Produção e Sistemas (PPGEPS), Pontifı́cia Universidade Católica do Paraná Programa de Pós-Graduação em Engenharia Elétrica (PPGEE), Universidade Federal do Paraná Emails: [email protected], [email protected], [email protected], [email protected] Abstract— The localization problem arises from the need of the agents of a Wireless Sensor Network (WSN) in general, and of a swarm of robots in particular, to determine its position without the use of external references, such as the Global Positioning System (GPS). In this problem, the localization is computed based on distance measurements to anchor nodes, which have known positions. In the search for efficient and accurate algorithms to discover the location, some bio-inspired algorithms have been explored, such as Genetic Algorithm (GA) and Particle Swarm Optimization Algorithm (PSO). Accordingly, in order to obtain more accurate solutions to the localization problem, this paper presents and compares the results obtained with the PSO, with the Backtracking Search Optimization Algorithm (BSA) and with a new algorithm that combines characteristics of both, entitled Backtracking Cognitive Particle Swarm Optimization Algorithm (BC-PSO). The results show that the BSA is more robust with regard to changes in the nodes’ distribution, the PSO demands less processing time and the BC-PSO, under specific conditions, is the most accurate. Keywords— Particle Swarm Optimization (PSO), Backtracking Search Optimization Algorithm (BSA), swarm intelligence, swarm robotics, Wireless Sensor Network (WSN), localization. Resumo— O problema de localização surge da necessidade dos agentes de uma rede de sensores sem fio em geral, e de um enxame de robôs em particular, de determinar as suas posições sem o uso de referências externas, tal como o Sistema de Posicionamento Global ou GPS (Global Positioning System). Neste problema, a localização é realizada baseando-se em medidas de distância para nós de referência, os quais têm suas posições conhecidas. Na busca por algoritmos eficientes e precisos para descobrir a localização, alguns algoritmos bioinspirados vêm sendo explorados, tais como o Algoritmo Genético ou GA (Genetic Algorithm) e o algoritmo de Otimização por Enxame de Partı́culas ou PSO (Particle Swarm Optimization). Nesse sentido, visando soluções mais precisas para o problema de localização, este artigo apresenta e compara os resultados alcançados com o PSO, com o Algoritmo de Busca por Retrocesso ou BSA (Backtracking Search Optimization Algorithm) e com um novo algoritmo que combina caracterı́sticas de ambos, denominado algoritmo de Otimização por Enxame de Partı́culas com Retroação Cognitiva ou BC-PSO (Backtracking Cognitive Particle Swarm Optimization). Os resultados mostram que o BSA é mais robusto no que diz respeito às variações na distribuição dos nós, o PSO demanda menos tempo de processamento e o BC-PSO, em condições especı́ficas, é o mais preciso. Palavras-chave— Otimização por Enxame de Partı́culas, Algoritmo de Busca por Retrocesso, inteligência de enxame, robótica de enxame, Rede de Sensores sem fio, localização. 1 Introdução racterı́sticas comuns aos dispositivos, sejam eles robôs ou sensores. A solução mais evidente, que consiste em equipar cada elemento com um Sistema de Posicionamento Global ou GPS(Global Positioning System), torna-se muitas vezes inviável. Diversas das possı́veis aplicações de um enxame de robôs demandam que cada indivı́duo seja capaz de descobrir sua posição, seja ela absoluta, em função de um sistema de referência universal, ou relativa, em relação a outros indivı́duos, com base em um sistema de coordenadas local. Da mesma forma, as redes de sensores sem fio, cujas perspectivas de aplicação são amplas e têm atraı́do grande atenção da indústria, na maioria dos casos possuem pouca utilidade quando não é possı́vel dispor da posição de seus sensores (Sun, 2011). Em ambos os casos, o tamanho reduzido, a limitada fonte de energia e o baixo custo são ca- O problema de localização consiste em inferir a posição de um conjunto de robôs ou sensores em situações onde não é possı́vel utilizar referências externas, como o GPS. Muitos dos algoritmos de localização dependem da capacidade do nó (robô ou sensor) de medir sua distância para os nós de referência, cujas posições são conhecidas. Algumas das técnicas mais comuns para a medição de distância baseiam-se na potência do sinal rece- 9 Anais do XX Congresso Brasileiro de Automática Belo Horizonte, MG, 20 a 24 de Setembro de 2014 bido, no tempo de propagação de um sinal, e/ou na comparação do tempo de propagação de dois sinais com velocidades de propagação diferentes (Ekberg, 2009) (Mao et al., 2007) (Lymberopoulos et al., 2006). Uma vez que as técnicas de medição apresentadas dependem da propagação de sinais, há de se considerar uma distância limite para tais medições. Nos casos mais simples, onde todos os nós de referência estão dentro da distância limite de medição, as medidas são diretas e feitas em um único salto. Entretanto, nos casos em que um ou mais nós de referência estão fora da distância limite, as medidas são obtidas indiretamente em múltiplos saltos, por meio de algoritmos como Sum-dist ou DV-hop (Langendoen, 2005). Dependendo da topologia da rede, ou enxame, os casos de um e de múltiplos saltos podem coexistir. Em (Langendoen, 2005), os autores propõem três fases para a abordagem do problema com múltiplos saltos: na Seção 8, são apresentadas as conclusões, juntamente com algumas possibilidades de trabalhos futuros. 2 Trabalhos Relacionados A importância da informação de localização dos elementos de uma rede de sensores, ou enxame de robôs, e as limitações de hardware e energia, tı́picas destes dispositivos, têm motivado a busca por algoritmos de localização cada vez mais eficientes e precisos. Em (Sun, 2011), os autores reportam o uso de algoritmos genéticos para a solução do problema de localização em uma rede de sensores, sem obstáculos e sem ruı́do. Uma outra abordagem ao problema de localização é relatada em (Huanxiang et al., 2010), onde os autores propõem o uso de nós de referência móveis e um algoritmo baseado em algoritmos genéticos para estabelecer a localização de nós desconhecidos estáticos. Este método, entretanto, pode apresentar desvantagens em redes com grande área de cobertura, devido ao elevado gasto de energia na movimentação dos nós de referência. Em (Ekberg, 2009), o autor apresenta o algoritmo de localização por inteligência de enxame ou SIL (Swarm-Intelligent Localization), baseado no PSO, para a solução do problema de localização em uma rede de sensores estáticos, de duas ou três dimensões, com medidas de distância para os nós de referência feitas em múltiplos saltos. Em (Ekberg, 2011), é demonstrada a capacidade do SIL em resolver o problema de localização em redes de sensores móveis. Nesse contexto, este trabalho visa contribuir com a busca por algoritmos mais eficientes e mais precisos para o problema de localização, por meio da avaliação e da comparação do desempenho do PSO, BSA e de um algoritmo proposto, que combina as caracterı́sticas de ambos. 1. Estimar as distâncias de cada nó para os nós de referência. 2. Calcular a posição de cada nó a partir das distâncias medidas na fase 1. 3. Refinar a posição de cada nó a partir das informações de posição e distância dos nós vizinhos. A otimização por técnicas bio-inspiradas vem sendo aplicada ao problema de localização, tanto nos casos de um único salto, quanto nos casos de múltiplos saltos (Sun, 2011) (Ekberg, 2009). Este trabalho visa comparar o desempenho e a precisão do algoritmo de otimização por enxame de partı́culas ou PSO (Particle Swarm Optimization) (Engelbrecht, 2005), do algoritmo de busca por retrocesso ou BSA (Backtracking Search Optimization Algorithm) (Civicioglu, 2013a) e de um novo algoritmo que combina caracterı́sticas de ambos, denominado algoritmo de otimização por enxame de partı́culas com retroação cognitiva ou BC-PSO (Backtracking Cognitive Particle Swarm Optimization), na solução de problemas de localização. Nos três casos, as distâncias medidas são de um único salto. Para tal, o presente artigo é organizado da seguinte forma: Primeiramente, na Seção 2, são apresentados alguns trabalhos relacionados. Posteriormente, na Seção 3, é especificado o problema de localização. Nas Seções 4 e 5, são brevemente descritos os passos do PSO e BSA, respectivamente. Na Seção 6, é proposto o algoritmo BCPSO, que combina as caracterı́sticas do PSO com o BSA, visando obter maior precisão na solução do problema de localização. Em seguida, na Seção 7, são reportados os resultados obtidos. Finalmente, 3 Especificação do Problema A formulação dada ao problema de localização pode ser aplicada a problemas com duas ou três dimensões. Sendo assim, para simplificar a análise, adotou-se caso de duas dimensões. Como premissa, o problema é considerado como sendo de um único salto, ou seja, todos os nós desconhecidos são capazes de medir a distância para os nós de referência, de forma direta. Neste cenário não foram considerados erros nas medidas de distância. Para estabelecer a função de aptidão, é preciso considerar que, para um dado nó desconhecido, o quadrado do erro em distância para cada nó de referência é definido conforme (1), onde, dr e pr são a distância medida e posição do nó de referência 10 Anais do XX Congresso Brasileiro de Automática Belo Horizonte, MG, 20 a 24 de Setembro de 2014 Algoritmo 1: Algoritmo PSO inı́cio Inicia o enxame com x e v aleatórias; Avalia o enxame; Armazena mi e mg ; repita Atualiza velocidades, conforme (4) e (5); Atualiza posições, conforme (3); Avalia o enxame; Atualiza mi e mg , caso melhores posições tenham sido encontradas; até Condição de parada; retorna mg ; r, respectivamente, e xi é a posição estimada para o nó desconhecido i. g(xi , dr , pr ) = (dr − ||pr − xi ||)2 (1) Dessa forma, a função de aptidão para a posição de um nó desconhecido é obtida pela soma do quadrado dos erros de distância para cada nó de referência, conforme apresentado em (2), onde R é o número de nós de referência. f (xi , dr , pr ) = R X g(xi , dr , pr ) (2) r=1 Sendo assim, para encontrar a posição de um nó é preciso minimizar a função definida em (2). Neste cenário, onde não há erros de medida de distância, o valor mı́nimo de f (xi , dr , pr ) é 0. 4 fim 5 Otimização por Enxame de Partı́culas O BSA é um novo algoritmo evolucionário (Civicioglu, 2013a), que utiliza informações obtidas por gerações passadas para buscar soluções de melhor aptidão. A filosofia bio-inspirada do BSA é análoga a um grupo social de seres vivos que, em intervalos aleatórios, retornam às zonas de caça que foram previamente consideradas boas para a busca de alimentos. A estrutura geral do BSA é apresentada no Algoritmo 2. O PSO tem origem na simulação de modelos sociais simplificados, como, por exemplo, a movimentação de cardumes de peixes ou bandos de aves (Kennedy, 1995) (Shi, 1998), sendo o termo partı́cula utilizado para generalizar o indivı́duo. Nesta analogia, uma partı́cula representa uma possı́vel solução para um problema. O enxame, por sua vez, representa um conjunto de possı́veis soluções. A cada ciclo iterativo a posição de cada partı́cula é atualizada conforme (3), onde xi e vi são a posição e a velocidade da partı́cula i, respectivamente. xi (t + 1) = xi (t) + vi (t + 1) Algoritmo 2: BSA inı́cio Inicialização; repita Seleção-I; Gera nova população Mutação; Cruzamento; fim Seleção-II; até Condição de parada; fim (3) Após atualizar a posição das partı́culas, é feita a avaliação das suas aptidões. O vetor de velocidade vi de cada partı́cula é calculado pela soma de três componentes: uma componente de inércia do movimento, uma componente cognitiva, baseada na melhor solução obtida pela partı́cula, e uma componente social, baseada na melhor solução global encontrada pelo enxame. O cálculo de vi é feito conforme (4), onde w é uma constante que representa a inércia da partı́cula, ϕ1 e ϕ1 são constantes que atribuem pesos às componentes social e cognitiva, respectivamente, r1 e r2 são números aleatórios entre [0,1], mi é a melhor posição da partı́cula i e mg é a melhor posição do enxame. É estabelecido ainda um limite de velocidade para cada dimensão j, dado por (5), onde maxj e minj são os limites máximo e mı́nimo do espaço de busca na dimensão j, e δ ∈ [0, 1]. vi (t + 1) = wvi (t) + ϕ1 r1 (t)(mi − xi (t)) +ϕ2 r2 (t)(mg − xi (t)) 0 ≤ vij ≤ δ(maxj − minj ) Algoritmo de Busca por Retrocesso Na etapa de inicialização, o algoritmo gera e avalia a população inicial P0 e inicia uma população histórica Phist . A população histórica constitui a memória do BSA. Durante a Seleção-I, o algoritmo determina aleatoriamente, utilizando uma distribuição uniforme, se a população atual P será gravada como população histórica Phist e então embaralha indivı́duos de Phist . O operador de mutação cria Pmod (versão inicial da nova população Pnova ), de acordo com (6). Dessa forma, Pmod é o resultado do movimento dos indivı́duos de P nas direções estabelecidas por (Phist − P ). S representa a amplitude do deslocamento, que, neste algoritmo, é dada por (7). (4) (5) A estrutura geral do PSO é definida pelo Algoritmo 1. Pmod = P + S(Phist − P ) 11 (6) Anais do XX Congresso Brasileiro de Automática Belo Horizonte, MG, 20 a 24 de Setembro de 2014 S =k·Γ Cabe ressaltar que para formar a componente cognitiva, não é armazenado o histórico completo das posições já visitadas pelas partı́culas. A cada iteração, o algoritmo determina aleatoriamente, utilizando uma distribuição uniforme, se a posição atual das partı́culas será gravada na memória para compor a componente cognitiva. Uma vez determinada a gravação, tais posições sobrescrevem as posições gravadas anteriormente na memória. Dessa forma, a retroação cognitiva não aumenta os requisitos computacionais, em termos de memória, quando comparado ao PSO. No que tange ao cálculo da componente de inércia, o modelo utilizado é inspirado nos conceitos apresentados em (Shi, 1998), no qual é estabelecido que altos valores de coeficiente de inércia tendem a facilitar a busca global, enquanto baixos valores de coeficiente de inércia tendem a facilitar a busca local. A estrutura do BC-PSO é definida pelo Algoritmo 3, onde xhist é a população histórica selecionada aleatoriamente. (7) O valor de k é ajustado empiricamente via uma série de simulações, já Γ ∼ N(0, 1), onde N é a distribuição normal padrão. Para criar a versão final de Pnova , o operador de cruzamento combina aleatoriamente, utilizando uma distribuição uniforme, elementos de Pmod com elementos de P. Na etapa Seleção-II, o algoritmo seleciona os elementos de Pnova (indivı́duos obtidos após mutação e cruzamento) que tenham a aptidão melhor do que os de P (indivı́duos antes da mutação e do cruzamento) e os substitui em P. Dessa forma, P só incluirá novos indivı́duos que tenham evoluı́do. Após atendida a condição de parada, o algoritmo retorna a melhor solução encontrada. 6 Algoritmo de Otimização por Enxame de Partı́culas com Retroação Cognitiva O algoritmo BC-PSO, que combina caracterı́sticas do PSO com o BSA, é proposto com base na estrutura geral do PSO, porém, com modificações no que tange ao cálculo da velocidade das partı́culas. Neste algoritmo, a componente cognitiva de (4) foi modificada, inspirada no BSA, passando a ser computada não em função da melhor posição da partı́cula e sim em função de uma posição da mesma selecionada aleatoriamente no passado. A componente social foi mantida de forma idêntica àquela usada no PSO. Já a componente de inércia foi mantida apenas para os ciclos iniciais do algoritmo, a fim de prover uma melhor exploração do espaço de busca, sendo anulada quando o coeficiente de variação da população atinge um valor ajustado empiricamente, com o objetivo de melhorar a busca local no final do processo de otimização. Estas modificações resultam em (8), onde cv é o coeficiente de variação da população, xh é uma posição histórica da partı́cula, escolhida aleatoriamente utilizando uma distribuição uniforme, e λ é uma constante que representa o valor do coeficiente de variação a partir do qual a componente de inércia é anulada. Foi mantido um limite de velocidade, conforme definido em (5). Algoritmo 3: Algoritmo BC-PSO inı́cio Inicia xhist aleatoriamente; Inicia o enxame com x e v aleatórias; Avalia o enxame; Armazena mg ; repita Atualiza velocidades, conforme (8) e (5); Atualiza posições, conforme (3); Avalia o enxame; Atualiza mg , caso uma melhor posição tenha sido encontrada; Seja xhist = x , aleatoriamente; até Condição de parada; retorna mg ; fim 7 As simulações foram feitas numa área de 100 × 100 unidades de medida. Neste espaço de busca, foram distribuı́dos aleatoriamente 1000 nós, denominados nós desconhecidos pelo fato deles não conhecerem sua posição real. Ainda neste espaço de busca, foram alocados aleatoriamente 3, depois 4 e posteriormente 5 nós de referência, sendo 3 o número mı́nimo para um problema de duas dimensões (Ekberg, 2009). Para cada quantidade de nós de referência, foram gerados 10 cenários distintos. O grande número de nós desconhecidos foi adotado para dar confiabilidade aos resultados obtidos, tendo em vista o caráter estocástico dos algoritmos utilizados, e o fato de que cada nó desconhecido representa um problema de localização. Cumpre ressaltar que, apesar de gerados aleatoriamente, os mesmos cenários foram precisa- wvi (t) Se (cv < λ); +ϕ r (t)(x − x (t)) 1 1 h i +ϕ2 r2 (t)(mg − xi (t)) vi (t+1) = Se (cv ≥ λ). ϕ1 r1 (t)(xh − xi (t)) +ϕ2 r2 (t)(mg − xi (t)) (8) O coeficiente de variação da população cv é cálculado conforme (9), onde σ e µ são o desvio padrão e a média da população, respectivamente. cv = σ µ Resultados Obtidos (9) 12 Anais do XX Congresso Brasileiro de Automática Belo Horizonte, MG, 20 a 24 de Setembro de 2014 mente reproduzidos para ser submetidos aos três algoritmos, tornando justa a comparação de desempenho. Em todas as simulações realizadas foram empregadas populações de 100 indivı́duos. Para efeito de comparação entre os três algoritmos, foi calculada, a cada geração, a média do erro de posicionamento (MEP) de todos os nós desconhecidos, para todos os cenários gerados, conforme descrito em (10), onde g representa o número da geração, c o número do cenário, i o identificador do nó desconhecido, D é o número total de nós desconhecidos, xreal é a posição real do nó e xcalc é a posição calculada pelo algoritmo de otimização. P10 PD ||xreal (c, i) − xcalc (c, i)|| M EPg = c=1 i=1 10D (10) As simulações com o PSO, BSA e BC-PSO foram conduzidas em implementações feitas no MATLAB, sendo, no caso do BSA, utilizada a implementação disponı́vel em (Civicioglu, 2013b). Os parâmetros dos três algoritmos foram ajustados empiricamente por meio de uma série de simulações. Com o BSA, o melhor resultado foi obtido com k = 1. Para o PSO e para o BC-PSO, o melhor resultado foi obtido com os parâmetros apresentados na Tabela 1. ótimo em 100 gerações. 1 Média do Erro de Posicionamento (MEP) (log) 10 0 10 −1 10 −2 10 BSA PSO BC−PSO −3 10 0 10 20 30 40 50 Gerações 60 70 80 90 100 Figura 1: Curvas de MEP × geração, com 3 nós de referência 1 Média do Erro de Posicionamento (MEP) (log) 10 Tabela 1: Parâmeros do PSO e BC-PSO Parâmetro PSO BC-PSO λ – 0,31 w 0,7298 0,7298 ϕ1 2,05 1,05 ϕ2 2,05 2,05 δ 0,01 0,01 0 10 −1 10 −2 10 −3 10 BSA PSO BC−PSO −4 10 0 10 20 30 40 50 Gerações 60 70 80 90 100 Figura 2: Curvas de MEP × geração, com 4 nós de referência Os resultados da MEP por geração, obtidos com os três algoritmos, são apresentados nas Figuras 1, 2 e 3. Observando as Figuras 1 e 2, podese constatar que, para 3 e 4 nós de referência, o BSA apresenta a menor MEP. Na Figura 1, para 3 nós de referência, verifica-se que ao final de 100 gerações o BSA apresenta uma MEP da ordem de 10−3 enquanto que os outros algoritmos apresentam uma MEP da ordem de 1. Na Figura 2, para 4 nós de referência, o BSA apresenta uma MEP da ordem de 10−4 enquanto que os outros algoritmos apresentam uma MEP da ordem de 10−2 . Entretanto, comparando as Figuras 2 e 3, pode-se constatar uma melhora significativa no desempenho dos algoritmos PSO e BC-PSO, quando são adotados 5 nós de referência. Neste caso o algoritmo BC-PSO apresentou uma MEP da ordem de 10−6 , superando a MEP dos demais algoritmos em duas ordens de grandeza. Cabe ainda ressaltar que, com o algoritmo BC-PSO, para 5 nós de referência, 34,06% dos nós desconhecidos alcançaram o resultado ótimo (i.e. erro=0) ao final de 100 gerações. Com o BSA e PSO, nenhum dos nós desconhecidos alcançou o resultado 1 10 Média do Erro de Posicionamento (MEP) (log) 0 10 −1 10 −2 10 −3 10 −4 10 −5 BSA PSO BC−PSO 10 −6 10 0 10 20 30 40 50 Gerações 60 70 80 90 100 Figura 3: Curvas de MEP × geração, com 5 nós de referência A elevada MEP dos algoritmos PSO e BCPSO, para 3 e 4 nós de referência, ocorre em virtude destes algoritmos terem apresentado maior dificuldade para solucionar problemas em que os nós de referência se aproximam de formar uma linha reta. No caso extremo, quando os nós de 13 Anais do XX Congresso Brasileiro de Automática Belo Horizonte, MG, 20 a 24 de Setembro de 2014 0 100 referência são colineares, a função de aptidão é simétrica em relação a reta formada por estes nós e consequentemente o problema admite matematicamente duas soluções, sendo apenas uma válida (Langendoen, 2005). Nos casos onde os nós de referência não são colineares, mas se aproximam desta condição, a função de aptidão se aproxima de tal simetria apresentando dois mı́nimos (um local e um global) com valores de aptidão próximos. Nestas condições, os algoritmos PSO e BC-PSO convergem, em alguns casos, para o mı́nimo local que não corresponde à posição real (mı́nimo global). O BSA, por sua vez, não encontra dificuldades para convergir para o mı́nimo global, em condições idênticas. As Figuras 4, 5 e 6 exemplificam a diferença de resposta dos três algoritmos para nós de referência quase colineares. Nestas figuras, 3 nós de referência estão posicionados próximos à reta destacada. Nos mapas gerados para os algoritmos PSO e BC-PSO (Figuras 4 e 5, respectivamente), foram demarcadas regiões onde há grande incidência de nós cujas posições calculadas estão incorretamente do lado oposto da reta. A Figura 6 mostra a solução correta obtida pelo BSA para o mesmo problema. 0 100 20 40 60 80 50 40 30 20 10 0 Há uma melhora significativa nos resultados, com os três algoritmos, quando o número de nós de referência aumenta. Cabe ressaltar que a medida que o número de nós de referência aumenta, diminui a probabilidade destes nós se alinharem, o que também contribui para a melhora do desempenho dos algoritmos PSO e BC-PSO. Observa-se ainda que os algoritmos PSO e BC-PSO demoram mais a convergir para a solução do problema quando o nó desconhecido está próximo ao limite do espaço de busca. O BSA, por sua vez, converge para a solução com a mesma velocidade, independente da localização do nó desconhecido. O comportamento dos três algoritmos, sob este aspecto, é demonstrado no vı́deo disponibilizado em (Sá, A. O., 2014). No que diz respeito ao tempo de processamento, o PSO foi o algoritmo que teve o menor tempo médio, aproximadamente 14% menos do que o BC-PSO e 28% menos do que o BSA. O tempo de processamento não sofreu mudanças significativas com o aumento do número de nós de referência: entre 2,5% e 4,1% de aumento a cada nó de referência adicionado. A Figura 7, apresenta uma comparação entre o tempo de processamento requerido pelos três algoritmos, para 3, 4 e 5 nós de referência. Os tempos de processamento foram normalizados em relação ao maior tempo de processamento, que ocorre para o BSA com 5 nós de referência. 100 40 30 20 10 Posição calculada Posição real Nós de referência Figura 4: Exemplo de erro de simetria com o PSO 80 100 90 80 Tempo de Processamento, normalizado (%) 70 60 50 40 30 20 10 0 Posição calculada Posição real Nós de referência Figura 6: Exemplo de resposta sem erro de simetria, com o BSA 50 60 100 60 60 40 80 70 70 20 60 80 80 0 100 40 90 90 0 20 Posição calculada Posição real Nós de referência 100 80 82,6% 68,3% 64,4% 85,3% 71,4% 60 40 20 0 Figura 5: Exemplo de erro de simetria com o BCPSO 78,4% 100% 96,0% 93,5% PSO BC−PSO BSA 3 4 Nós de referência 5 Figura 7: Comparação dos tempos de processamento 14 Anais do XX Congresso Brasileiro de Automática Belo Horizonte, MG, 20 a 24 de Setembro de 2014 8 Conclusões networks with mobile nodes, Wireless Communications and Mobile Computing Conference (IWCMC), 7th International, IEEE, pp. 83–88. Com base nos resultados obtidos, conclui-se que, para o problema de localização, o BSA apresenta maior robustez que os demais algoritmos testados no que tange à disposição dos nós. No que diz respeito à posição dos nós desconhecidos, a velocidade de convergência foi a mesma tanto para os nós da periferia quanto para os nós posicionados em outras regiões do espaço de busca. No que diz respeito à posição relativa dos nós de referência, o BSA manteve a capacidade de convergir para o mı́nimo global, mesmo quando os nós de referência estão quase alinhados. Esta robustez, garantiu ao BSA menores erros que os demais algoritmos para 3 e 4 nós de referência. O algoritmo que apresentou a menor MEP foi o BC-PSO, para 5 nós de referência. Neste caso, o mesmo superou a MEP do BSA em aproximadamente duas ordens de grandeza, tendo 34,06% dos nós desconhecidos alcançado o resultado ótimo em menos de 100 gerações. Cabe ressaltar que este resultado foi obtido em um tempo de processamento 14% menor do que o consumido pelo BSA. Em contrapartida, este algoritmo se mostrou inadequado para problemas cujos nós de referência são colineares ou quase colineares. O PSO foi o algoritmo com menor consumo de tempo de processamento, o que pode ser vantajoso para problemas em que não existam nós de referência quase colineares. Para trabalhos futuros, propõe-se a investigação do desempenho destes algoritmos em problemas com múltiplos saltos e em problemas onde haja ruı́do nas medidas de distância. 9 Engelbrecht, A. P. (2005). Fundamentals of Computational Swarm Intelligence, Wiley. Huanxiang, J. et al. (2010). Localization algorithm for mobile anchor node based on genetic algorithm in wireless sensor network, Intelligent Computing and Integrated Systems (ICISS), International Conference on, IEEE, pp. 40–44. Kennedy, J. e Eberhart, R. (1995). Particle swarm optimization, Proceedings of 1995 IEEE International Conference on Neural Networks, pp. 1942–1948. Langendoen, K. e Reijers, N. (2005). Distributed localization algorithms, In: R. Zurawski (Eds.) Embedded Systems Handbook, CRC press, pp. 36.1–36.23. Lymberopoulos, D. et al. (2006). An empirical characterization of radio signal strength variability in 3-d ieee 802.15. 4 networks using monopole antennas, Wireless Sensor Networks, Springer, pp. 326–341. Mao, G. et al. (2007). Wireless sensor network localization techniques, Computer networks 51(10): 2529–2553. Sá, A. O. (2014). Comportamento dos algoritmos PSO, BC-PSO e BSA, aplicados ao problema de localização, http://youtu.be/d7xgjlKTXs. Agradecimentos Shi, Y. e Eberhart, R. (1998). A modified particle swarm optimizer, Evolutionary Computation Proceedings, 1998. IEEE World Congress on Computational Intelligence., The 1998 IEEE International Conference on, IEEE, pp. 69– 73. Agradecemos à Fundação Carlos Chagas Filho de Amparo à Pesquisa do Estado do Rio de Janeiro (FAPERJ, http://www.faperj.br), por financiar este estudo. Sun, W. e Su, X. (2011). Wireless sensor network node localization based on genetic algorithm, IEEE 3rd. Int. Conf. on Communication Software and Networks, 2011, pp. 316–319. Referências Civicioglu, P. (2013a). Backtracking search optimization algorithm for numerical optimization problems, Applied Mathematics and Computation 219(15): 8121–8144. Civicioglu, P. (2013b). BSA code for MATLAB, http://www.pinarcivicioglu.com/bsa.html. Ekberg, P. (2009). Swarm-intelligent localization, Master’s thesis, Uppsala Universitet, Uppsala, Sweden. Ekberg, P. e Ngai, E. (2011). A distributed swarm-intelligent localization for sensor 15