Skip to content

IltonPfleger/NeuroBirds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neuro Birds

C LICENSE SDL

Uma aplicação de algoritmos genéticos que se utilizam de redes neurais para aprender a jogar o jogo Flappy Bird.

Sobre o Projeto

Objetivo: Criar um sistema que simule a evolução natural selecionando, mutando e cruzando os melhores indivíduos a cada geração de pássaros.

Todo o projeto é feito apenas com SDL/SDL2 e C puro.

Sobre a Rede

A rede neural aplicada a cada pássaro possui apenas uma entrada, 3 neurônios ocultos e uma saída.

  • A entrada da rede recebe apenas um valor que aponta a distância do pássaro ao centro da próxima passagem.

  • O objetivo da rede é minimizar a entrada uma vez que, se ela for zero, o passaro está entre os canos.

  • Para a saída, se ela for maior do que zero, o pássaro pula, caso contrário, não pula.

  • A função de ativação usada durante todo o processo é a ReLU.

Sobre o algoritmo genético

A seleção dos pássaros que passam para as próximas gerações é feita através de uma função de fitness que faz uma escolha aleatória levando em consideração o quão longe o pássaro foi, e usando isso como peso para probabilidade de que ele seja selecionado.

  • Após a seleção, os pássaros passam por algumas modificações para adicionar certa aleatoriamente ao sistema.

  • Existe uma probabilidade de 85% de somar um número aleatório em cada peso da rede daquele pássaro.

  • Existe uma probabilidade de 50% de dois pássaros trocarem pesos por um processo de Crossing Over.

  • Essas probabilidades podem ser alteradas no arquivo birds.h em suas respectivas funções.

Outras informações:

  • Pela simplicidade do jogo, é bastante comum que, dependendo do número de pássaros da geração, diversos indivíduos nasçam sabendo jogar o jogo.

  • Os parâmetros gerais do jogo podem ser alterados nas definições do arquivo main.c

  • Fique a vontade para mandar ideias, sugestões, dúvidas e requests.

About

Evolução Neural aplicada ao jogo Flappy Bird.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages