https://github.com/josealprestes/axelrod_netlogo
NetLogo: Axelrod Cultural Dissemination — setup ‘textbook’ (F, Q, von Neumann, no torus), monitores (#regiões, tamanho médio) e go-fast.
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (1.8%) to scientific vocabulary
Repository
NetLogo: Axelrod Cultural Dissemination — setup ‘textbook’ (F, Q, von Neumann, no torus), monitores (#regiões, tamanho médio) e go-fast.
Basic Info
- Host: GitHub
- Owner: josealprestes
- License: mit
- Language: NetLogo
- Default Branch: main
- Size: 12.7 KB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Axelrod – Difusão Cultural (NetLogo)
Implementação didática do modelo de disseminação cultural de Axelrod (1997) em NetLogo — aderente ao capítulo “Disseminating Culture” do livro The Complexity of Cooperation.
Textbook mode: vizinhança de von Neumann (4), sem tórus, 1 agente por patch, probabilidade de interação = similaridade.
Guia “for dummies”
Idéia em 3 linhas
- Cada pessoa tem um “cartão” com F características.
- Cada característica pode assumir Q valores (traços).
- Quanto mais dois vizinhos se parecem, maior a chance de um copiar um traço do outro → pode dar consenso ou mosaicos de culturas.
Como rodar rapidinho
- Abra o arquivo
.nlogodo repositório (ex.:axelrod_netlogo.nlogo) no NetLogo 6.x. - Em Configuração… (Model Settings), use um mundo ~61×61 e desligue o tórus (sem wrap).
- Sliders: F = 5, Q = 15 (a probabilidade extra de interação é fixada em 1.0 no
setup). - Clique setup → go.
- (Opcional) Use go-fast se existir na interface para acelerar.
O que observar
- # Regiões culturais (clusters)
- Tamanho médio das regiões
Regras de bolso: ↑Q → mais fragmentação (↑ nº de regiões). ↑F → tende a reduzir o nº de regiões.
Descrição técnica
- Agente com vetor cultural
features = [f1, …, fF],fi ∈ {0,…,Q−1}. - Similaridade entre vizinhos
aeb:similaridade = overlap / F(ondeoverlap= nº de posições idênticas). - Regra de interação (Axelrod, 1997):
- Com probabilidade = similaridade, escolhe-se 1 índice onde diferem e copia-se o traço do vizinho.
- Com probabilidade = similaridade, escolhe-se 1 índice onde diferem e copia-se o traço do vizinho.
- Parada (estado absorvido): não existem pares vizinhos com
0 < overlap < F.
Aderência ao “textbook”
- F = nº de características; q (aqui Q) = nº de traços por característica.
- Probabilidade de interação = similaridade (o slider
interaction-probé travado em 1.0 nosetup). - Topologia: malha com bordas (sem tórus). Interiores têm 4 vizinhos; bordas 3; cantos 2.
Controles da interface
| Tipo | Nome (interface) | Função |
|-----------|----------------------------------|-------------------------------------------------------------------------|
| Slider | F | Nº de características (features) |
| Slider | Q | Nº de traços por característica |
| Slider | interaction-prob | Informativo; fica 1.0 no setup para aderir ao livro |
| Botão | setup | Inicializa (1 agente por patch, vetores aleatórios, checa tórus OFF) |
| Botão | go | Executa 1 interação por tick |
| Botão () | *go-fast** | Executa várias interações por tick visual (ex.: 50) para acelerar |
| Monitor | count-cultural-regions | Nº de regiões (clusters) |
| Monitor | mean-region-size | Tamanho médio das regiões |
| Plot | # Regiões | Série temporal de count-cultural-regions |
| Plot | Tamanho médio das regiões | Série temporal de mean-region-size |
(*) Se você incluiu o botão extra de aceleração no modelo.
Dica de performance: o código usa draw-every e metrics-every (intervalos de redesenho e de recomputar clusters). Aumente esses valores para rodar mais rápido em mundos grandes.
Passo-a-passo “textbook”
- Mundo: ~61×61, tórus DESLIGADO (desmarcar “Mundo sem limites” nas direções horizontal e vertical).
- Sliders:
F = 5,Q = 15. - setup → go até parar (estado absorvido).
- Observe a estabilização do nº de regiões e do tamanho médio.
Métricas implementadas
- Regiões culturais = componentes conexos (vizinhança 4) de agentes com vetores idênticos.
Implementação via BFS rotulandoregion-id. count-cultural-regions: número de rótulos distintos.mean-region-size: média do tamanho dos clusters.
As métricas/plots são atualizados periodicamente (não a cada tick) para manter o desempenho.
Solução de problemas
- Aviso de tórus no
setup: desligue o wrap em Configuração…. - Plots não atualizam / erro de nome: confirme que os plots se chamam exatamente
# RegiõeseTamanho médio das regiões. - Execução lenta:
- Aumente
draw-every/metrics-every; - Use go-fast;
- Diminua o tamanho do mundo;
- Reduza F e/ou Q.
- Aumente
Referência
- Axelrod, R. (1997). The Complexity of Cooperation: Agent-Based Models of Competition and Collaboration. Princeton University Press. Capítulo “Disseminating Culture”.
> Notação do livro: F (nº de características) e q (aqui Q) = nº de traços por característica.
Licença
Este projeto está sob MIT License (ver LICENSE).
Contribuindo
- Faça um fork.
- Crie uma branch (
feat/minha-ideia). - Commit com mensagens claras.
- Abra um Pull Request explicando motivação e mudanças.
Owner
- Login: josealprestes
- Kind: user
- Repositories: 1
- Profile: https://github.com/josealprestes
GitHub Events
Total
- Push event: 2
- Create event: 1
Last Year
- Push event: 2
- Create event: 1