Buscar

Algoritmos de Inteligência Coletiva

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE FEDERAL DO CEARÁ 
CAMPUS SOBRAL 
CURSO DE ENGENHARIA ELÉTRICA 
 
 
 
 Disciplina: Introdução à Engenharia Elétrica 
 
 
 
 
 
 
 
 
 
 
Algoritmos de Inteligência Coletiva 
 
 
 
EQUIPE: 
 
Carlos Henrique Sousa Alencar 
Carlos Vinicius Fiuza Olivindo 
João Lucas Gomes Carneiro 
Laiana Severiano Pereira 
Natanael de Sousa Neves 
Nilciany Oliveira de Souza 
 
SOBRAL 
2019 
 
 
LISTA DE FIGURAS 
Figura 1:Diagrama de início e fim ........................................................................................ 11 
Figura 2:Formigas a procura de alimento ............................................................................. 12 
Figura 3: Transformando o problema do caixeiro viajante em colônia de formigas ............... 13 
Figura 4: Fluxograma do algoritmo PSO .............................................................................. 27 
Figura 5:Resultados dos valores obtidos pelos dois algoritmos ............................................. 28 
Figura 6:Comportamento inicial das partículas no PSO ........................................................ 28 
 
 
 
 
 
LISTA DE GRÁFICOS 
Gráfico 1 – Resultados da função objetiva ............................................................................ 21 
Gráfico 2 – Resultados para a velocidade de inserção ........................................................... 22 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
LISTA DE SÍMBOLOS 
T- Interação em questão; 
Pxy- probabilidade da formiga ‘k’ saí de um ponto x e ir ao ponto y; 
α - parâmetro de influência do feromônio; 
β - parâmetro de influência da distância; 
Txy- valor do feromônio presente na rota x-y; 
ηxy- valor do inverso da distância nos pontos x-y = 1/d; 
Σ [Txy . ηxy] - representa somatório entre todos os produtos do feromônio e inverso da 
distância percorrida pela formiga ‘k’ de um ponto x e termina em todos os pontos y. 
ΔTkxy - feromônio depositado na rota x-y; 
Q - Constante fornecida; 
dk - distância total percorrida. 
Tkxy - representa o feromônio depositado entre os pontos x e y; 
σ = taxa de evaporação do feromônio 
Tkxy (t-1) - feromônio total da interação anterior entre os pontos x e y; 
Σ ΔTkxy- somatório do feromônio de todas as formigas que passaram pelos pontos x e y. 
𝑤 – Parâmetro de inércia que controla a influência do melhor bando e do melhor 
individual; 
𝑐1 – Ponderação Global (normalmente utiliza-se o valor 2); 
𝑐2 – Ponderação Individual (normalmente utiliza-se o valor 2); 
𝑃 – Melhor posição dentre as iterações; 
𝑟1 e 𝑟2 – números aleatórios entre [0, 1]. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
RESUMO 
A inteligência coletiva nada mais é do que a união de diversas informações providas 
de diferentes fontes, podendo ser elas humanas ou não, como por exemplo, a análise das 
colônias de formigas e revoada de pássaros. Desta forma, diversas maneiras de melhorar essa 
inteligência foram surgindo ao longo dos anos, técnicas como a meta-heurística que utiliza de 
probabilidades e sucessivas tentativas e erros para solucionar um problema, com isso a ideia 
dos algoritmos de inteligência coletiva tem sido constante desenvolvidas nestes últimos anos, 
contribuindo assim para a democratização do conhecimento em sua síntese. 
 
Palavras-Chave: Algoritmo, Inteligência coletiva, Abelhas, Formigas, Pássaros. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ABSTRACT 
Collective intelligence is nothing more than the Union of various information provided 
by different sources, which may be human or not, such as the analysis of ant colonies and the 
bird's flock. Thus, several ways to improve this intelligence have been emerging over the 
years, techniques such as meta-heuristic that uses probabilities and successive attempts and 
errors to solve a problem, with this the idea of the algorithms of Collective intelligence has 
been constantly developed in recent years, thus contributing to the democratization of 
knowledge in its synthesis. 
 
Key words: Algorithm, Collective intelligence, Bees, Ants, Birds. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SUMÁRIO 
1 INTRODUÇÃO ...................................................................................................... 5 
2 ABORDAGEM SOBRE INTELIGÊNCIA ARTIFICIAL .................................... 6 
3 DEFINIÇÃO DE INTELIGÊNCIA COLETIVA .................................................. 9 
3.1 Evolução ao longo dos anos .................................................................................. 10 
4 OTIMIZAÇÃO POR COLÔNIA DE FORMIGAS ............................................ 11 
4.1 Colônia De Formigas Aplicado Ao Problema Do Caixeiro Viajante: ................. 12 
4.2 Atualizações Do Algoritmo Para Aplicação Em Sistemas Cdma:....................... 14 
5 COLOLÔNIA DE ABELHAS ARTIFICIAIS (ARTIFICIAL BEE COLONY). 17 
5.1 O que é o Algoritmo? ............................................................................................ 17 
5.1.1 Como Funciona o Código. ...................................................................................... 18 
5.2 Uma Aplicação do ABC na Engenharia Elétrica ................................................. 22 
6 SHUFFLED FROG-LEAPING ........................................................................... 24 
6.1 Funcionamento da ideia ....................................................................................... 24 
6.2 Procedimento de SLF ........................................................................................... 24 
6.3 Aplicação do algoritmo SLF ................................................................................ 25 
6.3.1 Transportes de produtos em redes dutoviarias ........................................................ 25 
7 PARTICLE SWARM OPTIMIZATION – PSO .................................................. 26 
8 CONCLUSÃO ...................................................................................................... 29 
REFERÊNCIAS ................................................................................................................. 30 
 
5 
 
1 INTRODUÇÃO 
 
 No decorrer destes últimos séculos com a revolução digital e o constante 
crescimento da democratização do conhecimento, outro fenômeno também tem ocorrido em 
paralelo e este é o surgimento e aprimorando das chamadas inteligências coletivas ou 
inteligências multifacetárias, que nada mais são que a união de informações através de 
diversos canais, podendo eles serem pessoas ou não. 
 Porém além deste surgimento, ocorreu simultaneamente, o surgimento dos 
algoritmos de pesquisa e buscas que tem como objetivo facilitar e simplificar a vida do 
indivíduo no ciberespaço e com isso diferentes métodos vem sempre empregados para 
estabelecer esse equilíbrio, entre a constante busca por novas informações e as limitações dos 
algoritmos de busca e pesquisa que tendem a mantes um padrão social para que o usuário 
mantenha-se constantemente conectado. 
 No passar dos tempos, antes mesmo do surgimento das redes de comunicação, 
existia uma certa inclinação humana e até mesmo animal, a entender como funciona o 
universo ao seu redor e reunir todo o conhecimento possível durantes as etapas da vida para 
sobrevivências e manutenção da espécie. Os humanos como racionais foram os que 
conseguiram desenvolver ainda mais essa linha de pensamento e por isso conseguiram certo 
sucesso até determinado ponto, em que foram limitados pela degradação e perca de muitas 
obras através da história, porém a solução para este problema foi apresentada recentemente no 
século 19, em que começaram a surgir outras maneiras mais eficazes de armazenar o 
conhecimento através dos computadores e outros dispositivos. 
No decorrer deste, será observado como se comportam essas novasdescobertas 
tanto nos âmbitos das ciências como no da sociologia e filosofia, que foi quem deu início ao 
estudo dos comportamentos humanos ligado diretamente a fácil obtenção de informação 
durante a revolução digital. Assim como, como os atuais algoritmos se comportam e quais 
suas funções e seus princípios e quais as expectativas para seu uso no futuro, já que suas 
aplicações são praticamente infinitas e seu avanço é constante com significativas mudanças 
em pouco tempo, como por exemplo: sites para avaliações de produtos e até mesmo pesquisas 
cientificas. 
6 
 
2 ABORDAGEM SOBRE INTELIGÊNCIA ARTIFICIAL 
 
É notório que, há muitos anos, o ser humano alimenta o desejo de criação de 
máquinas que possam realizar o trabalho de agir e pensar como eles. Com isso, se fez 
necessário o surgimento da tecnologia e o seu aprimoramento para suprir tal desejo. Sendo 
assim, durante a segunda guerra mundial, deu-se início a muitos estudos em diversas áreas 
voltadas para o desenvolvimento da Inteligência Artificial (IA), que consiste em um sistema 
que cria máquinas inteligentes, capazes de se relacionar entre si. 
Entretanto observa-se que as ideias que se ligam à inteligência artificial, têm sua 
origem muito anterior ao surgimento da tecnologia que detém a capacidade mecânica de 
colocar em prática tais ideias. Somente em 1943, os pesquisadores Warren Mcculloch e 
Walter Pitts apresentaram o primeiro artigo a citar as redes neurais. Essas redes consistem em 
estruturas de raciocínio artificial em forma de modelos matemáticos que possuem a 
capacidade de imitar o sistema nervoso dos seres humanos. 
Após esse fato, alguns mecanismos foram desenvolvidos. De modo que, em 1950, 
Claude Shannon apresentou um artigo sobre como programar uma máquina que era capaz de 
jogar xadrez, através da utilização de cálculos de posição que sejam simples, porém 
eficientes. Ainda na década de 50, Alan Turing desenvolveu uma maneira de avaliar a 
capacidade que uma máquina possui de se passar por um humano através de uma conversa 
escrita que será lida por avaliadores, essa técnica recebeu o nome de Teste de Turing ou Teste 
da Imitação. 
Ademais, vale destacar que em 1951, Marvin Minsky, que foi aluno de Warren 
Mcculloch e Walter Pitts, desenvolveu a Snark, uma calculadora de operações matemáticas 
simulando as sinapses, que consistem nas ligações entre os neurônios. Já em 1952, Arthur 
Samuel, foi o inventor de um jogo de damas no IBM701, que possui a capacidade de se 
melhorar automaticamente e com isso, acaba se tornando um desafio a altura de jogadores 
amadores. 
Entretanto, o marco inicial da inteligência artificial só veio em 1956, durante a 
Conferência de Darthmouth, na qual se reuniram Nathan Rochester, Claude Shannon, Marvin 
Minsky, John McCarthy, entre outros. Nesta conferência o campo de pesquisa foi batizado de 
Inteligência Artificial por McCarthy e até a máxima do setor foi definida na ocasião. Tanto os 
participantes da conferência, quanto os simpatizantes das ideias, se uniram a fim de pôr em 
pratica as ideias da Inteligência Artificial. As perspectivas eram tão animadoras que a IA 
7 
 
contou com investimentos pesados de órgãos privados e governamentais na área. 
Dentre os avanços desse período, destacam-se o Perceptron, criado em 1957, que 
consiste em uma rede neural de uma camada, capaz de classificar resultados e que foi iniciada 
com uma máquina denominada Mark 1. Além disso, em 1958, houve o surgimento da 
linguagem de programação LISP, que na época virou padrão entre os sistemas de inteligência 
artificial. Atualmente essa serve de inspiração para uma família inteira de linguagens. 
Em 1959, o termo Machine Learning é utilizado pela primeira vez para descrever 
um sistema que concede aos computadores a capacidade de aprender alguma função sem que 
haja a necessidade de ser previamente programados para tal, ou seja, consiste na alimentação 
de um algoritmo com dados, a fim de que a máquina aprenda a executar determinada 
atividade de maneira automática. 
Posteriormente, em 1964, surgiu o primeiro chatbot, chamado Eliza, que era capaz 
de conversar de maneira automática, representando uma psicanalista, utilizando respostas que 
tinham como base palavras-chave e estrutura sintática. Já em 1969, desenvolveram o primeiro 
robô que unia mobilidade, fala e certa autonomia de ação, apesar de funcionar, apresentava 
certas falhas e era lento. 
O campo de processamento natural de linguagem se tratava de um dos mais 
promissores da época, por se tratar do setor da IA sobre a compreensão da fala humana e por 
possuir várias aplicações, como tradutores, geração de linguagem de texto, reconhecimento de 
fala, processamento de voz, entre outros. Entretanto, apesar da alta expectativa e do grande 
número de pesquisas acadêmicas na área, na prática era bem diferente, visto que os projetos 
não eram tão concretos e nem tão rápidos quanto se era esperado. 
Essa situação gerou o chamado Inverno da Inteligência Artificial, que ocorreu 
entre o final da década de 70 até meados da década de 80. E se tratava de um período de 
estagnação, no qual havia poucas novidades, corte de investimentos e baixa atenção ao setor. 
Para que a IA se reerguesse era necessária uma reinvenção da área. Com isso, um dos campos 
fundamentais para tal, foi o de sistemas especialistas, proposto por Edward Feigenbaum, no 
início da década de 80. Esses sistemas consistiam em softwares capazes de realizar atividades 
complexas e específicas de um campo, realizando o papel de humanos, porém com um 
raciocínio bem mais veloz e com uma base de conhecimento bem mais vasta. Esses sistemas 
aproximaram a IA do mercado corporativo, dando a ela visibilidade pelos outros setores e 
mostrando a utilidade de programas computacionais inteligentes e focados. 
O descontrole dos investimentos e a adoção de uma nova linguagem de 
programação, que não possuía muita adesão (PROLOG), por apresentar ideias maiores que a 
8 
 
capacidade das CPU's da época, acabaram ocasionando um segundo pequeno inverno da 
Inteligência artificial. Esse ocorreu entre a metade dos anos 90, mas foi superado 
rapidamente, tendo em vista a explosão da internet. Além disso, as redes aproveitaram a IA 
para o desenvolvimento de sistemas de navegação e também de indexação, gerando 
programas capazes de explorar a rede de maneira automática e posteriormente classificar os 
resultados. 
No ano de 1997, pela primeira vez uma máquina superou um humano em um jogo 
de xadrez, isso se deu, pois, essa máquina adotava um método de cálculo por meio de vias de 
força bruta que analisava as diversas possibilidades de movimentos e as possíveis respostas e 
indicava aquele movimento que considerava ser o melhor. 
Desde o início do século 20 até os dias atuais, muitas máquinas já foram 
desenvolvidas com o intuito de auxiliar a vida das pessoas, como por exemplo, a Roomba, 
que consiste em uma máquina capaz de realizar a limpeza de locais de maneira autônoma, 
combinando eficiência em uma especialização, pré-configurações e sensores de 
posicionamento. Ademais se observam inúmeras conquistas obtidas na área da inteligência 
artificial, como o chatboard Eugene Goostman que, em 2014, foi capaz de convencer os 
jurados de que era um humano, isso se deu por meio da vitória do Teste de Turing, durante um 
diálogo por escrito. 
Entretanto, mesmo com todos os avanços tecnológicos da Inteligência artificial, 
viu-se que, pra suprir as necessidades dos humanos em ter uma vida mais fácil através do 
auxílio de máquinas, seria necessário o desenvolvimento de novos mecanismos. Sendo assim, 
foram criados os algoritmos de inteligência coletiva, que surgiram com o objetivo de melhorar 
e aprimorar os avanços tecnológicos da Inteligência artificial. 
 
 
 
 
 
 
 
 
 
 
 
9 
 
3 DEFINIÇÃO DE INTELIGÊNCIA COLETIVA 
 
O conceito de inteligência coletiva é tão recente quanto o adventodas redes de 
comunicação em tempo real e por esta razão, seu estudo ainda precisa ser explorado tendo em 
vista que a humanidade está em constante evolução e significativa mudança, logo faz-se 
necessário repensar diariamente conceitos preestabelecidos ainda mais conceitos tão recentes 
como este. 
Um dos mais conhecidos pesquisadores e estudiosos do campo da inteligência 
coletiva foi Pierre Lévy, um filósofo e sociólogo, professor universitário e pesquisador no 
campo da ciência da informação que passou a observar como as novas tecnologias 
impactavam diretamente o cotidiano das sociedades modernas que estavam passando por uma 
fase de adaptação as novas possibilidades e mesmo neste curto período já demonstravam 
significativas mudanças comportamentais e isso gerou uma série de indagações nos 
sociólogos da época que por vezes não conseguiam notar o futuro incerto que essas inovações 
pairavam trazer. 
Para compreender melhor o pensamento de Levy acerca do avanço tecnológico no 
fim do século XX é preciso compreender que existia certa dualidade em seu pensamento, pois 
no mesmo passo em que considerava de suma importância a constante evolução em todos as 
áreas do interesse humano, também acreditava que era necessária certa ética nessa evolução 
ou os humanos voltariam a ser nômades assim como na pré-história, porém desta vez, 
nômades de conhecimento pois este, iria mudar constantemente até chegar a um ponto em que 
estaria em todos e em nenhum lugar ao mesmo tempo e por esta razão este é um dos primeiros 
capítulos de seu livro: A Inteligência coletiva: por uma antropologia do ciberespaço (1994) e 
teve como temática, “Os justos. Ética da inteligência coletiva”. Neste momento, ele usa de 
diversos artifícios para fazer com que o leitor entenda que os mecanismos para adquirir 
conhecimento estão e sempre estiveram em mudança, mas ressalta o quão importante é uma 
postura ética daqueles que irão compor, ou ao menos uma minoria destes, as redes de 
comunicação, pois esta será a ferramenta que guiará a humanidade a etapa da comunicação 
jamais antes vista, pois a transmissão de informações passava por um longo processo até 
chegar aos destinatários e assim torna-se de conhecimento geral, ou de conhecimento de um 
público significativo. Estes foram os princípios que levaram a construção do que hoje 
conhecemos como inteligência coletiva e compreende-los é de fundamental importância para 
entender como funciona atualmente e porque Levy é tão importante para este campo de 
10 
 
pesquisa e porque a leitura de seu livro é indispensável para todos aquele que querem 
entender o funcionamento e o surgimento do que temos hoje. 
 
“O problema da inteligência coletiva é descobrir ou inventar um além da escrita, um 
além da linguagem tal que o tratamento da informação seja distribuído e coordenado 
por toda parte, que não seja mais o apanágio de órgãos sociais separados, mas se 
integre naturalmente, pelo contrário, a todas as atividades humanas, volte às mãos de 
cada um.” (A Inteligência coletiva: por uma antropologia do ciberespaço (1994) p. 
17) 
 
3.1 Evolução ao longo dos anos 
 
Nas últimas décadas surgiram diferentes modelos de inteligência coletiva, com 
diferentes propósitos e funcionalidades, reunir informação é o ponto em comum em todos 
estes, porém a maneira como eles chegam a este ponto, que tipo de informação é coletada e a 
utilização desta são os aspectos que diferem os tipos de inteligência coletiva. O trabalho dos 
algoritmos é categorizar que conteúdo é útil para determinado proposito e por isso tem sido 
expansivamente utilizado atualmente. Desde que as sociedades se formaram a intenção de 
mantar um conhecimento preservado foi sempre uma meta, tanto que nas sociedades egípcias 
e mesopotâmicas foram desenvolvidas diferentes maneiras de registrar todas as experiências 
vividas e assim surgiu o primeiro conceito de escrita. No mundo moderno, no entanto, 
começou-se a categorizar esses registros em tópicos para que fosse possível acessa-los 
dependendo da necessidade de pesquisa ou intenção da busca, até que chega-se ao ponto em 
que algo precisa surgir para modificar o estado vigente novamente e foi isso que aconteceu 
com a revolução digital que trouxe um novo modelo social que está presente até os dias atuais 
com algoritmos controlando e mantendo todo tipo de informação em diversificadas 
categorias, otimizando assim todo o processo de obtenção de conhecimento e contribuindo 
para a chamada democratização do conhecimento e assim como Marx e Engels defendiam a 
respeito do materialismo dialético e constante transformação na obtenção de conhecimento: 
 
“Concebe todo o mundo da natureza, da história e do espírito como um processo, 
isto é, em constante movimento, mudança, transformação e desenvolvimento, 
intentando, além disso, pôr em relevo a conexão interna deste movimento de 
desenvolvimento” (apud Triviños, 1987:53) 
 
11 
 
4 OTIMIZAÇÃO POR COLÔNIA DE FORMIGAS 
 
Marco Dorigo, pesquisador italiano no ramo da inteligência artificial, ao observar o 
comportamento das formigas que sempre encontram o menor caminho da fonte de alimento 
até sua colônia, percebeu que poderia elaborar matematicamente este comportamento na 
busca de solucionar problemas rotineiros, como o problema do caixeiro viajante semelhante 
ao do roteamento de uma rede. A ideia surgiu quando Dorigo percebeu que durante o caminho 
entre a colônia e o alimento, as formigas produziam um feromônio, substância volátil que 
permite a comunicação entre as formigas e que era depositada ao longo do caminho em 
maiores quantidades quando se encontrava uma fonte potencial da alimento, mas que, 
evaporava em determinada taxa ao longo do tempo. 
Utilizando um problema de roteamento, enfatizado a partir de um gráfico em forma de 
grafos, percebe-se que existem diversos caminhos do início ao fim, compostos por nós que 
são representados pelos círculos e arestas que são as retas de comprimento variável que os 
ligam, ou seja, cada rota possível é um conjunto de nós e arestas que somam distâncias 
distintas, mas apenas uma apresenta menor distância entre os pontos escolhidos, chamada de 
rota ótima. Em diversas situações devido a quantidade de cálculos associadas ao custo de 
processamento e financeiro torna-se impossível encontrar a rota ótima, mas existem métodos 
para encontrar rotas viáveis, são chamados assim de métodos heurísticos, sendo o algoritmo 
de colonização de formigas um deles 
Figura 1:Diagrama de início e fim 
 
 Fonte: Autoria própria 
Para entender de forma simplificada o comportamento das formigas, imagina-se em que 
uma extremidade exista um formigueiro(inicio) e na outra uma fonte qualquer de 
alimento(fim), entre os dois pontos existem três caminhos com distâncias diferentes que 
podem ser percorridos pelas formigas, sendo considerado a rota mais rápida a B, daí suponha-
12 
 
se que três formigas saiam ao mesmo tempo do formigueiro em cada uma das rotas com 
velocidade iguais, percebe-se que a formiga dois que percorreu o caminho B é a primeira a 
encontrar os alimentos e voltar ao formigueiro, liberando feromônio e influenciando na 
escolha de outras formigas que saírem do ninho. 
Figura 2:Formigas a procura de alimento 
 
 Fonte: Autoria própria 
 A partir do momento em que as formigas saem do ninho, encontram alimento e 
retornam soltando feromônio as próximas não saíram de maneira aleatória e desordenada, pois 
existe influência do feromônio liberado. Naturalmente, à medida que o tempo passa, a rota 
mais curta(B) vai se fortalecendo em relação as demais, isso ocorre porque a concentração de 
feromônio aumenta de maneira gradativa até o ponto em que todas as formigas estarão 
fazendo este caminho. 
 
4.1 Colônia De Formigas Aplicado Ao Problema Do Caixeiro Viajante: 
 
Antigamente os vendedores ambulantes ou caixeiros viajantescomo eram conhecidos se 
deslocavam entre diversas cidades e vilarejos, no entanto os meios de transporte eram muito 
restritos, e eles deveriam encontrar rotas inteligentes devido a dificuldade que enfrentavam, o 
problema ficou estruturado como: Qual a melhor rota a fazer saindo de uma cidade inicial 
passando por todas as demais cidades e retornar à cidade de origem. 
 Apesar do problema ter origem antiga ele se aplica perfeitamente nos dias de hoje, como 
exemplo podemos imaginar uma transportadora que deve efetuar entregar no centro de uma 
grande cidade. Combinações de ruas pelas quais ela passa forma uma grande quantidade de 
rotas possíveis, para uma pequena quantidade de pontos de entrega, problemas desse tipo 
podem ser resolvidos com métodos exatos, porém a partir de uma certa quantidade de pontos 
13 
 
isso se torna inviável devido a infinidade de cálculos e o elevado tempo de processamento 
sendo impossível encontrar o caminho ótimo. 
Embora não se possa encontrar uma solução ótima, pode se encontrar um conjunto de 
soluções viáveis em tempo de processamento razoável utilizando métodos heurísticos, como 
no caso a otimização de colônia de formigas para o problema do caixeiro viajante. 
Utilizando um exemplo de 5 cidades, sendo que o caixeiro será análogo as formigas e as 
cidades as fontes, cada ponto possui uma formiga que sai em busca de alimento passando 
apenas uma vez por cada um dos pontos e retornando ao ponto inicial. 
Figura 3: Transformando o problema do caixeiro viajante em colônia de formigas 
 
 Fonte: Autoria própria 
 Os pontos A, B, C, D e E contém as formigas F1, F2, F3, F4 e F5 respectivamente a 
probabilidade de uma formiga escolher um caminho e determinado por dois fatores: a 
distância d entre os pontos e a quantidade de feromônio presente, quanto maior for a distância 
entre o ponto de partida e o próximo ponto de destino menor será a probabilidade da formiga 
escolher este caminho, visto que ela sempre busca o caminho mais curto o que representa uma 
relação inversa entre as duas grandezas. Em relação ao feromônio, quanto maior a quantidade 
presente em uma rota, maior a probabilidade da formiga escolher este caminho representando 
uma relação direta, isso pode ser representado através da seguinte formula: 
𝑃𝑥𝑦(𝑘) =
[𝑇𝑥𝑦(𝑡)]
𝛼∙[𝜂𝑥𝑦(𝑡)]
𝛽
∑[𝑇𝑥𝑦(𝑡)]
𝛼∙[𝜂𝑥𝑦(𝑡)]
𝛽 (1) 
• T= Interação em questão; 
• Pxy= probabilidade da formiga ‘k’ saí de um ponto x e ir ao ponto y; 
14 
 
• α = parâmetro de influência do feromônio; 
• β = parâmetro de influência da distância; 
• Txy= valor do feromônio presente na rota x-y; 
• ηxy= valor do inverso da distância nos pontos x-y = 1/d; 
• Σ [Txy . ηxy] = representa somatório entre todos os produtos do feromônio e inverso 
da distância percorrida pela formiga ‘k’ de um ponto x e termina em todos os 
pontos y. 
Agora para calcular o feromônio presente em cada rota utiliza-se a seguinte equação: 
△ 𝑇𝑥𝑦
𝑘 =
𝑄
𝑑𝑘
 (2) 
• ΔTkxy = feromônio depositado na rota x-y; 
• Q = constante fornecida; 
• dk = distância total percorrida. 
Após cada interação é necessária também a atualização do feromônio que é feito 
através de outra equação: 
𝑇𝑥𝑦
𝑘 (𝑡) = (1 − 𝜎). 𝑇𝑥𝑦
𝑘 (𝑡 − 1) + ∑ △ 𝑇𝑥𝑦
𝑘
 (3) 
• Tkxy = representa o feromônio depositado entre os pontos x e y; 
• σ = taxa de evaporação do feromônio 
• Tkxy (t-1) = feromônio total da interação anterior entre os pontos x e y; 
• Σ ΔTkxy= somatório do feromônio de todas as formigas que passaram pelos pontos x e 
y. 
 Os coeficientes e paramentos que necessitam de dados para inicio dos cálculos são 
alterados por via de regra de estudo estatístico do problema tratado. Lembrando, já que este sendo 
um método heurístico, ou seja, o algoritmo será rodado com as formulas e cada resultado será 
chamado de interação, a medida que mais interações sejam feitas mais próximo será um resultado 
viável. 
 
4.2 Atualizações Do Algoritmo Para Aplicação Em Sistemas CDMA: 
 
Marques e Angélico (2014) falam que o algoritmo ACO inicialmente foi usado para 
resolver problemas de otimização combinatória (caixeiro viajante, roteamento, etc.) só que 
mais a frente, os parâmetros foram otimizados para produzir resultados mais promissores e a 
15 
 
partir de geradores de números aleatórios com distribuição normal, o método ACO pode ser 
aplicado em sistemas CDMA (acesso múltiplo por divisão de código). 
Dado que as formigas procuram escolher pontos para o seu caminho de forma 
probabilística, levando em consideração a quantidade de feromônio na aresta, juntamente com 
a informação descoberta na reta, certo de um conjunto de pontos vizinhos a uma formiga em 
um ponto i qualquer, o conjunto probabilidades relativos a este ponto forma uma função 
distribuição discreta de probabilidade chamada a partir de agora de PMF. A ideia do algoritmo 
é transformar esta PMF em uma função contínua, ou seja, uma função de densidade de 
probabilidade chamada de PDF – probabilty density funcion. Deste modo ao invés da formiga 
mostrar um ponto i, irá amostrar um valor para a variável x1(SOCHA; DORIGO, 2008). A 
função mais utilizada neste exemplo é a integral Gaussiana. O algoritmo utiliza um conjunto 
de gaussianas unidimensionais para cada dimensão do problema. Cada conjunto é definido 
por (SOCHA; DORIGO, 2008): 
𝐺(𝑥)
𝑖 = ∑ 𝜔𝑙𝑔𝑙
𝑖(𝑥)
𝑘
𝑙=1
= ∑ 𝜔𝑙
1
𝜎𝑙
𝑖√2𝜋
ⅇ
−
(𝑥−𝜇𝑙
𝑖)
2
2𝜎𝑙
𝑖2
𝑘
𝑙=1
 (4) 
Com i = 1,...,n, sendo n o número de dimensões do problema; ωi é o vetor de pesos, µi é o 
vetor de médias e σi o vetor de desvio padrão, k é o quantidade de Gaussianas a ser definida 
no conjunto, sendo que os vetores possuem cardinalidade igual ao conjunto de integrais 
Gaussianas do conjunto em questão ou seja |ω|=|µ|=|σ|=k. No ACO as informações referentes 
ao tabelamento de dados de feromônios são feito a partir de um arquivo solução que será 
preenchido com cada interação, dado que existem infinitos pontos em um intervalo contínuo e 
infinitos caminhos a serem seguidos, neste mesmo arquivo de solução os vetores ω, µ e σ 
terão seus dados carregados para resolução do problema para formar o conjunto de 
Gaussianas, então para cada dimensão do problema é definido um conjunto diferente de (Gi) e 
para cada um deles um novo valor de i-ésima variável se tornam os elementos do vetor µi. 
O peso ω do conjunto s de soluções é dado por (MARQUES; ANGÉLICO; ABRÃO, 
2014, p.65): 
𝜔𝑙 =
1
𝑞𝑘√2𝜋
exp[− (
l−1
qk√2
)] (5) 
Com uma distribuição normal com média 1 e desvio padrão qk, onde o q é um 
parâmetro do algoritmo. Assim para valores baixos de q somente as melhores soluções serão 
16 
 
aceitas gerando menor diversidade, para valores altos ocorre a geração de maior diversidade 
pela uniformidade da probabilidade. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17 
 
5 COLÔNIA DE ABELHAS ARTIFICIAIS (ARTIFICIAL BEE COLONY). 
 
“Uma colônia de abelhas pode ser vista como um sistema dinâmico que se ajusta 
de acordo com suas necessidades ainda que seus agentes (abelhas), se observados de forma 
individual possuam capacidade e conhecimento limitados” (Duarte, Grasiele Regina). 
Enquanto observavam o comportamento de algumas colônias de abelhas, cientistas 
descobriram que quando uma abelha descobre uma nova fonte de alimentos, pouco tempo 
depois outras abelhas chegavam à mesma fonte. Este fato intrigou os cientistas, 
principalmente pelo fato de as abelhas não se locomoverem em cortiços (coletivo de abelhas). 
Para estudar melhor esse fenômeno, pesquisadores da universidade de Georgia Tech 
reproduziram os experimentos do etologista alemão Karl Von Frisch. O experimento consistia 
nos seguintes procedimentos: os pesquisadores posicionaram estrategicamente duas fontes de 
alimentação, em cada uma dessas fontes, os pesquisadores marcaram as abelhas visitantescom cores distintas, essa marcação possibilitou que fosse identificado a fonte que cada abelha 
visitou, eles perceberam, que ao retornar do alimentador, as abelhas começavam a realizar 
uma espécie de dança. No formato do número 8, antes de distribuir o pólen e o néctar que 
foram recolhidos. Os cientistas observaram também, que apesar de o formato de “8” fosse o 
mesmo para as todas as abelhas, aquelas que haviam comido em um mesmo alimentador, 
vibravam com uma orientação diferente daquelas que haviam se alimentado em outra fonte. 
Ao analisar os experimentos, os cientistas descobriram, que na realidade, aquela 
“dança” era uma espécie de comunicação entre as abelhas. O ângulo formado pelas abelhas, 
surpreendentemente era igual ao ângulo formado pelos alimentadores e a colmeia. Outra 
habilidade importante possuída pelas abelhas, é a capacidade de visualizar a luz polarizada e 
ultravioleta, isso faz com que elas consigam determinar com precisão a posição do sol. 
Observando essas fantásticas habilidades das abelhas, em 2005, Dervis Karaboga 
desenvolveu o algoritmo de abelhas artificiais (artificial bee colony), um algoritmo de 
inteligência coletiva que se baseia no comportamento para a obtenção de ótimos em soluções 
de problemas. Neste capítulo do trabalho iremos dar uma visão introdutória deste algoritmo. 
 
5.1 O que é o Algoritmo? 
 
Como já mencionado neste trabalho, o algoritmo baseia-se no comportamento das 
abelhas na busca por alimentação (forrageamento). Através da observação desse 
comportamento, o algoritmo utiliza-se de ferramentas de controle relativamente simples, 
18 
 
como por exemplo o tamanho da colônia de abelhas e a quantidade máxima de repetições 
possíveis. Sendo assim, o algoritmo nos proporciona um processo de busca populacional, ou 
seja, através do estudo realizado sobre a etapa da busca aleatória por alimentos. Quando as 
abelhas exploradoras localizam uma nova fonte de alimentos, a qual apresenta uma 
abundância maior com relação a atual, estas memorizam onde se localiza essa nova fonte e 
deixam de lado a antiga, de menor abundância. Com base nisso, o algoritmo combina 
métodos normais de procura, realizados pelas abelhas operárias e exploradoras, com métodos 
globais, realizados por cientistas e exploradores. 
 
5.1.1 Como Funciona o Código. 
 
Como já foram apresentados a história por trás do algoritmo e seus objetivos 
primários, já apresentamos ferramentas bastantes para um entendimento mesmo que 
introdutório do código utilizado no algoritmo. 
Primeiramente, deve-se inicializar a quantidade de indivíduos que integram a 
colmeia, o número de fontes de alimento como sendo igual a metade da quantidade de 
indivíduos na colmeia, uma fonte de alimentos que não pode ser aperfeiçoada deve ser 
abandonada pelas abelhas e uma quantidade de ciclos de forrageamento (será nosso critério de 
parada) 
Após realizada a inicialização dos parâmetros do ABC, deve-se inserir os 
parâmetros específicos do problema, como o número de parâmetros do problema a ser 
utilizado, o limite inferior dos parâmetros, o limite superior dos parâmetros. 
Após definidas todas essas informações iniciais, já se pode ir de fato à execução 
do código. 
Neste trabalho o código será apresentado na forma da linguagem C, quando 
necessário, serão informadas as utilidades de alguns comandos da linguagem, a fim de 
facilitar ao máximo o entendimento do algoritmo. 
Introduz-se vetores e matrizes do tipo double (Para números decimais) para 
expressar a quantidade de comida, qualidade da fonte de alimentos, soluções que não podem 
ser melhoradas, probabilidades de fontes a serem escolhidas, novas soluções, parâmetros para 
uma solução ótima, máximos e mínimos globais e um número aleatório pertencente ao 
intervalo [0,1). 
Por se tratar de um código deveras extenso, se tentássemos explicá-lo passo a 
passo de maneira escrita, acabaríamos por nos estender excessivamente e consequentemente 
19 
 
abrindo espaço para uma série de dificuldades na compreensão. Sendo assim, optaremos por 
explicar o que será feito no código, sem neste momento explicitar como funciona sua sintaxe. 
A partir da inicialização apresentada anteriormente, abre-se um if (estrutura 
utilizada para realizar um comando, se uma determinada condição for verdadeira). Neste caso, 
a ação será mudar de alimentador e a condição, é o novo alimentador possuir uma qualidade 
melhor que o anterior. 
Após isso, abre-se uma série de for’s (Estrutura que realiza uma determinada 
ação, enquanto uma condição é satisfeita) e if’s, para definir se um determinado alimentador é 
possui uma qualidade maior que o anterior. Sendo assim, o código pode ser descrito como 
uma série de comandos com o objetivo, de ao localizar uma nova fonte de alimentos, 
compará-la com as já conhecidas e caso seja melhor, memorizá-la para avisar aos demais 
integrantes da colmeia. 
 
1.1.1 O código da parte principal do algoritmo 
int main() 
{ 
int iter,run,j; 
double mean; 
mean=0; 
srand(time(NULL)); 
 
for(run=0;run<runtime;run++) 
{ 
 
initial(); 
MemorizeBestSource(); 
for (iter=0;iter<maxCycle;iter++) 
 { 
 SendEmployedBees(); 
 CalculateProbabilities(); 
 SendOnlookerBees(); 
 MemorizeBestSource(); 
 SendScoutBees(); 
 } 
20 
 
for(j=0;j<D;j++) 
 { 
 printf("GlobalParam[%d]: %f\n",j+1,GlobalParams[j]); 
 } 
printf("%d. run: %e \n",run+1,GlobalMin); 
GlobalMins[run]=GlobalMin; 
mean=mean+GlobalMin; 
} 
mean=mean/runtime; 
printf("Means of %d runs: %e\n",runtime,mean); 
getch(); 
} 
double sphere(double sol[D]) 
{ 
int j; 
double top=0; 
for(j=0;j<D;j++) 
{ 
top=top+sol[j]*sol[j]; 
} 
return top; 
} 
 
double Rosenbrock(double sol[D]) 
{ 
int j; 
double top=0; 
for(j=0;j<D-1;j++) 
{ 
top=top+100*pow((sol[j+1]-pow((sol[j]),(double)2)),(double)2)+pow((sol[j]-
1),(double)2); 
} 
return top; 
} 
21 
 
 
 double Griewank(double sol[D]) 
 { 
 int j; 
 double top1,top2,top; 
 top=0; 
 top1=0; 
 top2=1; 
 for(j=0;j<D;j++) 
 { 
 top1=top1+pow((sol[j]),(double)2); 
 top2=top2*cos((((sol[j])/sqrt((double)(j+1)))*M_PI)/180); 
 
 } 
 top=(1/(double)4000)*top1-top2+1; 
 return top; 
 } 
 
 double Rastrigin(double sol[D]) 
 { 
 int j; 
 double top=0; 
 
 for(j=0;j<D;j++) 
 { 
 top=top+(pow(sol[j],(double)2)-10*cos(2*M_PI*sol[j])+10); 
 } 
 return top; 
 } 
22 
 
5.2 Uma Aplicação do ABC na Engenharia Elétrica 
 
Neste capítulo, até agora vimos a história de criação, os objetivos primários, o 
funcionamento, e o código principal do algoritmo das abelhas artificiais, agora veremos uma 
das muitas possíveis aplicações deste algoritmo. 
A aplicação que iremos apresentar foi feita com base no artigo de 2011 “Using the 
bees algorithm to select the optmal speed parameters for Wind turbines generator” (Usando o 
Algoritmo das Abelhas para Selecionar a velocidade ótima para aerogeradores) de A.A Fahmy 
da Escola de Engenharia de Cardiff. 
“Devido às preocupações ambientais e aos custos econômicos associados à 
produção de energia a partir de combustíveis fósseis e nucleares, o uso de geradores elétricos 
movidos a vento tem crescido rapidamente nos últimos anos.” (Fahmy, A, A, 2011). 
A partir da análise das necessidades que se têm na geração da energia eólica, 
Fahmy fez uso do algoritmo das abelhas artificiais para selecionar parâmetros de velocidade 
ótimos para aerogeradores. Abaixo exibiremos alguns resultados de Fahmy, obtidos em 
algumas cidades egípcias, que compara a eficácia do ABC em comparação à outros 
algoritmos. 
Gráfico 1 
 
Adaptado pelo autor, de (Fahmy, A, A, 2011) 
 
Gráfico 2 
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
Sallum Sidi Barrani Dekhaila Alexandria
Resultados da Função Objetiva
PSO ABC TSI
23 
 
 
Adaptado pelo autor, de (Fahmy, A, A, 2011) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0
0,5
1
1,5
2
2,5
3
3,54
Sallum Sidi Barrani Dekhaila Alexandria
Resultados para a velocidade de inserção
PSO ABC TSI
24 
 
6 SHUFFLED FROG-LEAPING 
 
O algoritmo Shuffled Flog-leaping surgiu como uma alternativa de melhoria a 
sistemas de forma metheuristica usando funções heurísticas, como forma de solucionar um 
problema de otimização combinatorial. Esse sistema é um importante exemplo quando se 
aborda algoritmos memeticos, ou seja, onde indivíduos interativos realizam troca global de 
informação entre eles. 
Algoritmos memeticos foi abordado por Dawkins (1976), originado de meme, que 
é um padrão de informação contagioso que se propaga nas mentes de animais ou humanos, 
moldando seus comportamentos e a padronização de suas ações. Esse conceito de meme é 
análogo aos comportamentos dos genes, uma vez q o gene é uma característica genética que 
se propaga via reprodução sexual, os memes são ideias de comportamentos que se propagam 
via interação. 
 
6.1 Funcionamento da ideia 
 
O algoritmo SFL representa um grupo de sapos saltando em um pântano. O 
pântano, metaforicamente, representa o espaço de buscas, existe também um grupo de pedras 
de localização discreta, posição das possíveis soluções, nas quais os sapos (soluções) podem 
saltar e encontrar a pedra com a máxima quantidade de comida disponível. Aos sapos é 
permitido se comunicarem uns com os outros de forma que melhorem seu memes usando as 
informações uns dos outros. A melhoria se da no aumento do pulo do sapo. 
Assim o algoritmo é progride, transformando os sapos por meio de uma evolução 
memética. Além disso, no pântano há uma variedade de comunidade de sapos que são 
chamados de memeplexes. Os diferentes memeplexes são localizados em diferentes partes do 
pântano fazendo uma busca profunda em cada memeplexes. 
Após isso, as ideias são passadas entre as comunidades. Tal processo realça a 
melhor qualidade nos diferentes espaços do pântano. Depois de determinados passos os locais 
de melhor solução ficarão melhor definido. 
 
6.2 Procedimento de SLF 
 
O procedimento será divido para se obter uma melhor compreensão do processo: 
a) Determine o número de memeplexes (m) e o numero de sapos (n) em cada 
25 
 
memeplexes. O numero total de sapos é F 
b) Gere um número aleatório de população de sapos F e ordene por ordem 
decrescente de aptidão. 
c) Evolua cada memeplex de acordo com o procedimento que desejar. 
d) Embaralhe os memeplex evoluídos 
e) Ordene os F sapos em ordem decrescente do valor de aptidão e registre a posição 
do melhor 
f) Se o critério for satisfeito, termine. Caso a resposta não seja uma das esperadas, 
volte ao passo b. 
 
6.3 Aplicação do algoritmo SLF 
 
6.3.1 Transportes de produtos em redes dutoviarias 
 
O modal Dutoviário é muito usado no transporte de fluidos e cereais. Nesse viés, 
uma característica intrínseca a esse modal é a ramificação de seus trajetos se tornando em uma 
grande rede de sistema. 
Entretanto, essa rede afeta demasiadamente o tempo de chegada desses produtos e 
na aplicação de futuros concertos que por ventura possa haver no sistema. 
Nesse sentido, surge o algoritmo SLF na intenção de otimizar esse sistema 
complexo, encontrando formas de menor caminho e locação exata de haver a ramificação sem 
que haja grande prejuízo na tensão que move esse produto. 
 
 
 
 
 
 
 
 
 
 
 
 
26 
 
7 PARTICLE SWARM OPTIMIZATION – PSO 
 
Esse tipo de algoritmo bio-inspirado baseia-se no comportamento social de revoadas 
de pássaros. Foi observado que pássaros começavam o voo de forma desordenada e dentre de 
alguns instantes se ordenavam e continuavam voando juntos, até que o bando encontrasse um 
bom lugar para pouso. Baseado nesse comportamento em 1995 Kennedy e Eberhard 
desenvolveram uma técnica estocástica onde a ideia principal consiste na movimentação das 
partículas a fim de explanar grande parte do espaço de buscar e chegar a soluções mais 
próximas do ótimo. O algoritmo funciona a partir da geração aleatória de partículas que são 
responsáveis por percorrer o espaço, de modo que a movimentação de cada partícula é 
determinada por sua velocidade e posição, obedecendo as equações [1] e [2], mostradas a 
seguir: 
𝑉𝑖, 𝑗(𝑘 + 1) = 𝑤𝑉𝑖, 𝑗(𝑘) + 𝑐1𝑟1(𝑃𝑖, 𝑗 − 𝑋𝑖, 𝑗(𝑘)) + 𝑐2𝑟2(𝑃𝑔, 𝑗 − 𝑋𝑖, 𝑗(𝑘)) (6) 
𝑋𝑖, 𝑗(𝑘 + 1) = 𝑋𝑖, 𝑗 + 𝑉𝑖, 𝑗(𝑘 + 1) (7) 
Onde: 
𝑤 – Parâmetro de inércia que controla a influência do melhor bando e do 
melhor individual; 
𝑐1 – Ponderação Global (normalmente utiliza-se o valor 2); 
𝑐2 – Ponderação Individual (normalmente utiliza-se o valor 2); 
𝑃 – Melhor posição dentre as iterações; 
𝑟1 e 𝑟2 – números aleatórios entre [0, 1]. 
O fluxograma representado na figura 0 a seguir mostra os seguintes passos que 
são usados para o desenvolvimento dos algoritmos PSO: 
1. Geração aleatória das partículas que percorreram o espaço de busca; 
2. Cálculo da função-objetivo F(x) para cada partícula; 
3. Atualização da posição e da velocidade da partícula utilização por meio das equações citadas 
anteriormente; 
4. Avalias a função F(x) para todas as partículas; 
5. Atualizar Pi da k-ésima partícula em relação a melhor função-objetivo; 
6. Atualizar Pg quando uma solução global ótima for encontrada; 
7. Repetir o passo 3 até que a condição de parada seja satisfeita. 
 
 
 
27 
 
Figura 4: Fluxograma do algoritmo PSO 
 
Fonte: Algoritmos Genéticos e Particle Swarm Optimization e suas aplicações problemas de Guerra Eletrônica. 
CC (EN) Alexandre de Vasconcelos Siciliano – sicilian@ita.br, Tel +55-21-2104-5033 Diretoria de Sistemas de 
Armas da Marinha (DSAM) – Rua Primeiro de Março, 118 Centro – Rio de Janeiro, RJ - CEP 20010-000 
Uma das possíveis comparações entre o PSO e o AG (algoritmo genético) é vista 
claramente pelo número de operadores usados. Enquanto o PSO faz uso de apenas um 
operador na implementação, no AG usa três operadores, seleção, crossover e mutação. Além 
disso no PSO não há necessidade de troca de informações explicita, somente a influência na 
trajetória. Fazendo a comparação entre os dois algoritmos para encontrar o ponto máximo da 
função a seguir: 
𝑓(𝑥, 𝑦) = 
1
2
[cos(16𝜋𝑥) + cos(16𝜋𝑦)]ⅇ
−7
2
[(𝑥−
1
2
)
2
+(𝑦−
1
2
)
2
 ]
 (8) 
 
O AG foi implementado com seleção por roleta, taxa de crossover de 80%, taxa de 
mutação de 1% e com 20 indivíduos. Como a função é mais complexa, a quantidade de 
gerações (200) necessárias para se obter um resultado com erro da ordem de 10−3 foi muito 
maior. O PSO, foi implementado com 20 indivíduos, parâmetros de ponderação global e 
individual c1 e c2 iguais a 2, a inércia da partícula w variando entre 0,4 e 0,9. A figura 0 
apresenta os resultados obtidos [1]. 
 
 
 
28 
 
Figura 5:Resultados dos valores obtidos pelos dois algoritmos 
 
Fonte: Algoritmos Genéticos e Particle Swarm Optimization e suas aplicações problemas de Guerra Eletrônica. 
CC (EN) Alexandre de Vasconcelos Siciliano. 
O valor do ponto máximo da função (3) era (0.500, 0.500), assim foi possível 
observar que com poucas iterações o PSO chegou ao resultado esperado assim se mostrando 
mais eficiente que o AG. A figura 0 a seguir mostra a disposição inicial das partículas PSO. 
Figura 6:Comportamento inicial das partículas no PSO 
 
Fonte: Algoritmos Genéticos e Particle Swarm Optimization e suas aplicações problemas de 
Guerra Eletrônica. CC (EN) Alexandre de Vasconcelos Siciliano. 
 
 
 
 
 
 
 
 
29 
 
8 CONCLUSÃO 
 
Nesse trabalho, foi abordado definições básicas para um entendimento melhor de 
algoritmos e sua função de otimização. Nesse viés, a definição de metheuristica se aplica no 
conjunto de regras formadas para resolver determinado problema, sobre o qual se tem poucas 
informações. Além disso, a otimização é um conceito que se resume na escolha de uma 
solução entre diversas possíveis. 
Em síntese entende-se que osalgoritmos de inteligência coletiva como uma forma 
de se obter uma melhoria em algum algoritmo bioinspirado. Nesse sentido, a inteligência 
coletiva é uma maneira de adquirir conhecimento em que os códigos aprendem com a 
experiência uns dos outros, agregando informações. 
Uma forma didática de apresentar isso foi a exemplificação em quatro algoritmos 
de inteligência coletiva: colônia de formigas, PSO, ABC, SFL. 
Em primeiro, plano o código de colônia de formigas é uma maneira eficiente de 
resolver problemas simples de otimização. Para isso, ele busca encontrar a menor rota para 
uma solução, baseado na experiência dos códigos inseridos a ele. 
O PSO (Particle Swarm Optimization) é inspirado no comportamento social de 
pássaros, onde foi observado que os pássaros começavam o voo de forma desordenada e em 
poucos instantes passavam a voar de maneira ordenada. A partir desse comportamento foi 
desenvolvida uma técnica estocástica onde a ideia principal consiste na movimentação das 
partículas no espaço de busca. 
Posteriormente, ABC (Artifict Bee Colony) é um algoritmo pertencente a classe 
de otimização que visa encontrar a melhor saída para um problema através de um código 
desenvolvido a partir da observação das abelhas no seu comportamento de ferrojamento 
(busca por alimento), observado pelo etologista Karl Vonfricz e desenvolvido pelo Dervis 
Karabola. 
Em seguida, o SFL (Shuffled flog-leaping) se baseia no comportamento de sapos. 
Seu sistema se espelha em uma comunidade de pererecas que pulam em rochas buscando a 
melhor para se encontrar comida. Uma aplicação de grande importância é no sistema 
Dutoviário, no qual foi usado para se obter melhor funcionamento logístico. 
 
 
 
 
30 
 
REFERÊNCIAS 
 
LÉVY, Pierre. A Inteligência coletiva por uma antropologia do ciberespaço. Edições Loyola. 
2ª edição: fevereiro de 1999. 
BUZZO, André; "A inteligência coletiva"; disponível em < andrebuzzo.com.br/a-inteligencia-
coletiva >. Acesso em 27 de maio de 2019 
DUARTE, Grasiele Regina Um algoritmo inspirado em colônias de abelhas para 
otimização numérica com restrições. Programa de Pós-graduação em Modelagem 
Computacional, da Universidade Federal de Juiz de Fora, 2015. 
FAHMY, A,A Using the bees algorithm to select the optimal speed parameters for Wind 
turbine generators. Cardiff University, 2011. 
SEELEY, Thomas D The wisdom of the hive, the social physiology of honey bees colonies. 
Harvard College, 2015. 
SICILIANO, Alexandre de Vasconcelos Algoritmos Genéticos e Particle Swarm 
Optimization e suas aplicações problemas de Guerra Eletrônica. Instituto Tecnológico da 
Aeronáutica, 2017. 
DORIGO, M.; CARO, G. Ant colony optimization: A new meta – heuristic. Evolutionary 
Computation, v. 2, p.1470-1477, CEC 99, IEEE, 1999. 
MARQUES, Mateus de P.; ANGÉLICO, Bruno A.; ABRÃO, Taufik. Otimização 
Heurística por Colônia de formigas com Aplicações em Sistemas de 
Comunicações. Seminário: Ciências Exatas e Tecnológicas, Londrina, 2014. Trabalho 
apresentado no Seminário: Ciências Exatas e Tecnológicas, 2014, Londrina. 
 
 
 
31

Outros materiais