Requerimentos:
Integrantes do grupo:
- Caue Paiva Lira: https://github.com/caue-paiva
- Enzo Tonon Morente: https://github.com/EnzoTM
- João Pedro Alves Notari Godoy: https://github.com/joaopgodoy
- Letícia Barbosa Neves: https://github.com/LeticiaBN
- Ayrton da Costa Ganem Filho: https://github.com/A1RT0N
Professor:
- Simões: https://gitlab.com/simoesusp
O projeto é uma simulação de um ecossistema contendo predador, presa e grama. Nesse caso, o predador é carnívoro e a presa é herbívora, ou seja, o predador come apenas a presa e a presa come apenas a grama.
A tomada de decisões da presa e do predador é feita a partir de uma tabela verdade. A presa terá 3 inputs, sendo eles: se existe comida, aliado ou inimigo perto dela, sendo que ela irá se aproximar da comida e dos aliados e se afastar dos inimigos, podendo também andar aleatóriamente ou ficar parado. Já o predador vai receber apenas 2 inputs: se existe comida ou um aliado perto dele, e irá se aproximar da comida ou do aliado, além de poder andar aleatóriamente ou ficar parado. Assim, o trabalho do AG é descobrir qual ação cada individuo deve tomar com base nos inputs atuais para aumentar seu fitness e se tornar o melhor individuo.
O método de mutação escolhido foi a mutação variada, em que um locus é aleatoriamente escolhido e alterado.
O método de cruzamento para gerar a nova população consiste em matar a metade da população com o menor fitness e utilizar a melhor metade para cruzar. Dessa forma, cada individuo da melhor metade irá cruzar com o melhor de todos, gerando um gene em que cada locus tem 80% de chance de ser o do melhor de todos e 20% de ser do outro individuo.
Após criar o mapa 50x50 com as gramas (40% do mapa) e inserir as 40 presas e 40 predadores, todos tem 50 ações para realizar. O fitness e definido pelo sucesso na obtenção de comida e sobrevivência, sendo que quanto maior o fitness, maior a chance de ser o melhor de todos e passar os genes para a próxima geração.
- Fitness da presa: ela ganha 2 pontos por comer e perde 0,5 se não comer
- Fitness do predador: ele ganha 10 pontos por comer e perde 0,5 se não comer
Dessa forma, as presas e os predadores estão em constante evolução para conseguir aumentar seu fitness e aumentar a sobrevivência de sua população no ecossistema. Como é possível observar no gráfico gerado abaixo vemos que conforme o fitness da presa aumenta o do predador diminuiu e vice-versa. Também podemos ver essas "ondas", onde a presa está com um fitness baixo e encontra uma nova estratégia (evoluiu), aumentando o seu fitness e tornando o fitness dos predadrores baixo o que faz com que eles evoluam tornando o fitness da presa baixo e assim por diante.
Esse comportamento é esperado, pois na natureza se temos um predador que está comendo muito as presas as mesmas precisam de uma nova estratégia para poder escapar deles fazendo com que os predadores não comam mais resultando com que eles evoluam para poder comer a presa e assim se gera esse loop.
Explicação ecossistema: https://www.youtube.com/watch?v=ZxwAdgbncaU&ab_channel=EnzoMorente
Simulação ecossistema: https://www.youtube.com/watch?v=esm0yHCNemE&ab_channel=EnzoMorente
Visual ecossitema: https://www.youtube.com/watch?v=S0wD8kGTfjg&ab_channel=EnzoMorente
Rede Neural explicação: https://www.youtube.com/watch?v=QYNHVtSJmNc&ab_channel=EnzoMorente
Visual e simulação da rede neural: https://www.youtube.com/watch?v=1jycULDnOD0&ab_channel=EnzoMorente