# 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