Skip to content

danielmessi13/PSO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sobre

Repositório para o desenvolvimento de um algoritmo líder-seguidor com PSO utilizando swarm intelligence para conclusão de curso.

Pré-requisitos

Para conseguir executar este projeto é necessário ter instalado:

(Caso esteja no Windows) Ao instalar o python lembre-se de marcar para adicionar Python ao Path

python_install

(Caso esteja no Windows) Ao instalar o python lembre-se de marcar para adicionar Anaconda ao Path

anaconda_install

Instalar bibliotecas pelo Anaconda:

  1. Abra o Anaconda Navigator
  2. Vá em Enviroments
  3. Clique em base(root)
  4. Pesquise por matplotlib (Caso não ache clique em Update Index)
  5. Pesquise por numpy (Caso não ache clique em Update Index)
  6. Instale os dois

Instalar pelo site:

Instalar Visual Studio Code no Anaconda:

  1. Abra o Anaconda Navigator
  2. Vá em Home
  3. Clique para instalar o Visual Studio Code

Instalar pelo site:

Visual Studio Code

Rodando o projeto

  1. Abra o terminal e dê um clone no repositório.
  2. Entre no Anaconda Navigator e dê launch no Visual Studio Code.
  3. Aperte F5 e aparecerá a opção de escolher quantas interações você deseja testar.
  4. Logo depois irá aparecer uma janela onde o mapa é apresentado e é atualizado a cada movimento do robô

Lógica

A ideia é simular um mapa, para isso eu uso uma matriz onde eu defini as seguintes regras:

  • Se posicão na matriz é igual a 0 = Campo vazio

  • Se posicão na matriz é igual a 1 = Campo ocupado por robô

  • Se posicão na matriz é igual a -1 = Alvo

  • PSO utilizado se resume em três passos:

  1. Primeiro passo: Mover particula no sentido da inercia;
  2. Segundo passo: Pegar posição do vizinho de cada particula como o pbest dela e ir em direção a ele;
  3. Terceiro passo: Pegar a média da posição do enxame como gbest de cada particula e ir em direção a ele.

PSO

Diferença

Visto que o PSO tende a aglomerar as particulas em um ponto em comum elas nunca iriam ir ao caminho do alvo, visto isso eu fiz uma modificação na qual, localizo o robô que está mais perto do alvo e logo transformo ele no GBEST de todo o enxame e digo que o movimento das minhas particulas têm como prioridade ir para onde está o GBEST (que é o líder), ou seja, seria um líder-seguidor com PSO, com isso faço a comparação com o líder-seguidor sem PSO vs líder-seguidor com PSO, fazendo vários testes, com robôs posicionados em lugares diferentes, com alvo posicionado em lugares diferentes, com diferentes quantidades de particulas e quantidade de interações diferentes.

Testes

As imagens no repósitorio se tratam dos testes realizados, o nome do arquivo foi escolhido para refletir qual teste se trata seguindo a seguinte lógica:

Numero de particulas, com/sem PSO, quantidade de interações, tamanho do mapa.png

Exemplo:

  • 5, sem, 1, 17x17.png
  • 5, com, 1, 17x17.png

Qualquer dúvida entre em contato com este email: danielmessi13@hotmail.com

Se divirta!

About

Aplicação do PSO - TCC

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages