diff --git a/docs/modelo_simulacao_agentes.md b/docs/modelo_simulacao_agentes.md new file mode 100644 index 0000000..e2d8dc3 --- /dev/null +++ b/docs/modelo_simulacao_agentes.md @@ -0,0 +1,85 @@ +# Modelo de Simulação de Interações entre Agentes + +## Introdução Teórica + +Este modelo de simulação é inspirado na [Teoria dos Jogos](https://en.wikipedia.org/wiki/Game_theory), em particular no [Dilema do Prisioneiro](https://pt.wikipedia.org/wiki/Dilema_do_prisioneiro) e nas experiências de Robert Axelrod sobra a evolução da cooperação. +O objectivo é observar como diferentes comportamentos (estratégias) emergem, evoluem e se adaptam em populações de agentes autónomos que interagem de forma limitada e local. + +A Teoria dos Jogos estuda situações onde o resultado de cada participante depende não só das suas próprias decisões, mas também das decisões dos outros. +O Dilema do Prisioneiro clássico representa um caso paradigmático onde a escolha entre cooperar e desertar conduz a tensões entre benefício individual e colectivo. + +A introdução de simulações evolutivas permite observar como estratégias cooperativas podem surgir mesmo em ambientes competitivos, quando as Interações são repetidas e há herança de comportamento entre gerações. Neste contexto, o modelo aqui descrito procura capturar esses mecanismos fundamentais através de entidades que: + +- possuem atributos psicológicos representados pelos traços dos [Big Five](https://en.wikipedia.org/wiki/Big_Five_personality_traits); +- interagem com vizinhos num espaço limitado (grelha 2D); +- recebem recompensas segundo o Dilema do Prisioneiro; +- evoluem ao longo do tempo por mutação e seleção natural baseada em sucesso relativo. + +## Caracteristicas da Simulação + +### Entidades e atributos + +Cada entidade representa um agente autónomo com as seguintes propriedades: + +- **TtL (Time to Live)**: tempo de vida medida em ciclos. +- **Pontuação**: valor acumulado das interações com outras entidades. +- **Big Five**: vetor contínuo `[0..1]^5` representando traços psicológicos (O, C, E, A, N) +- **Histórico**: lista de interações (parceiro, resultado, timestamp) +- **Alcance Interação**: raio (em células) dentro do qual a entidade pode interagir (valor inicial: 1) + +A estratégia da entidade é derivada dinamicamente por uma função `estrategia = f(BigFive)`. + +### Espaço e interações + +As entidades estão dispostas numa grelha 2D fixa. Cada uma pode interagir apenas com as entidades dentro do seu 'Alcance Interação'. Após cada interação: + +- Ambas registam o resultado (razão + timestamp); +- Actualizam a sua pontuação total; +- Adquirem conhecmento indirecto sobre os parâmetros (Big Five) da entidade com quem interagiram. + +### Função recompensa + +A matriz de recompensas segue o paradigma do Dilema do Prisioneiro: + +|Entidade 1|Entidade 2|Pontuação E1|Pontuação E2| +|----------|----------|------------|------------| +|Coopera |Coopera |3 |3 | +|Coopera |Deserta |0 |5 | +|Deserta |Coopera |5 |0 | +|Deserta |Deserta |1 |1 | + +### Reprodução e Mutação + +Quando `TtL = 0`, a entidade calcula a média dos resultados obtidos e determina se se pode reproduzir. +A reprodução ocorre se obtiver pelo menos 50% da pontuação máxima. O numero de descendentes é o seguinte: + +- 1 descendente: 50% a 66% da pontuação máxima; +- 2 descendentes: 66% a 83% da pontuação máxima; +- 3 descendentes: mais de 83% da pontuação máxima. + +Os descendentes herdam os valores `Big Five` com mutação: + +`BigFive_descendente = BigFive_parente + α * (BigFive_adversario_mais_forte - BigFive_parente) + erro` + +onde `α` é um factor de convergência (ex: 0.05) e `erro` é ruido aleatório controlável. + +Caso a entidade tenho obtido uma pontuação abaixo dos 50%, essa entidade é eliminada da grelha, deixando vazio o espaço que ocupava. + +Caso a haja reprodução, o primeiro (ou único descendente) irá ocupara vaga deixada pelo seu parente, e o(s) restante(s) descendente(s) irão ocupar as vagas livres na vizinhança (considerando a propriedade 'Alcance Interação' do parente). No caso excepcional de não haver vagas para a nova entidade, é iniciado um ciclo de interações com as entidades vizinhas, e no final de interagir com todas entidades vizinhas, irá tomar o lugar da entidade com quem teve a vitória com melhor pontuação. Caso não obtenha mais de 50% de pontuação, esta nova entidade é eliminada. + +### Parâmetros Globais Configuráveis + +- **Tamanho da Grelha (NxM)**: define o número total de espaços a serem ocupados pelas entidades +- **Alcance Interação**: raio de vizinhança (padrão=1) +- **TtL Inicial**: número de ciclos de vida por entidade +- **Fator de Mutação α**: intensidade da convergência +- **Ruido/Erro**: grau de aleatoriedade nas mutações +- **Pontuação Máxima por Interação**: valor máximo de um resultado por interação (padrão=1) + +### Extensões Futuras + +- Interações em grupo e formação de coligações +- Adaptação contínua das estratégias durante o ciclo de vida +- Métricas de diversidade e fitness global +- Mobilidade na grelha (migração de entidades) +- Influência de fatores embientais e recursos limitados