Agent-based models and
social simulation
Gilberto Câmara
Tiago Carneiro
Pedro Andrade
Licence: Creative Commons By Attribution Non Commercial Share Alike
http://creativecommons.org/licenses/by-nc-sa/2.5/
Where does this image come from?
Where does this image come from?
Map of the web (Barabasi)
(could be brain connections)
Information flows in Nature
Ant colonies live in a chemical world
Conections and flows are universal
Yeast proteins
(Barabasi and Boneabau,
SciAm, 2003)
Scientists in Silicon Valley
(Fleming and Marx, Calif Mngt
Rew, 2006)
Information flows in the brain
Neurons transmit electrical information, which generate conscience
and emotions
Information flows generate cooperation
Foto: National Cancer Institute, EUA
http://visualsonline.cancer.gov/
White cells attact a cancer cell (cooperative activity)
Information flows in planet Earth
Mass and energy transfer between points in the planet
Complex adaptative systems
How come that an ecosystem
with all its diverse species
functions and exhibits patterns of
regularity?
How come that a city with many
inhabitants functions and
exhibits patterns of regularity?
What are complex adaptive systems?
Systems composed of many interacting parts that
evolve and adapt over time.
Organized behavior emerges from the simultaneous
interactions of parts without any global plan.
What are complex adaptive systems?
Universal Computing
Computing studies information
flows in natural systems...
...and how to represent and
work with information flows in
artificial systems
Computational Modelling with Cell Spaces
Cell Spaces

Components

Cell Spaces

Generalizes Proximity Matriz – GPM

Hybrid Automata model

Nested enviroment
Cell Spaces
Cellular Automata: Humans as Ants
Cellular Automata:
Matrix,
Neighbourhood,
Set of discrete states,
Set of transition rules,
Discrete time.
“CAs contain enough complexity to simulate surprising
and novel change as reflected in emergent phenomena”
(Mike Batty)
2-Dimensional Automata
2-dimensional cellular automaton consists of an
infinite (or finite) grid of cells, each in one of a finite
number of states. Time is discrete and the state of a
cell at time t is a function of the states of its
neighbors at time t-1.
Cellular Automata
Neighbourhood
Rules
Space and Time
t
States
t1
Most important neighborhoods
Von Neumann
Neighborhood
Moore Neighborhood
Conway’s Game of Life
1.
2.
3.
4.
5.
At each step in time, the following effects occur:
Any live cell with fewer than two neighbors dies, as
if by loneliness.
Any live cell with more than three neighbors dies,
as if by overcrowding.
Any live cell with two or three neighbors lives,
unchanged, to the next generation.
Any dead cell with exactly three neighbors comes to
life.
Game of Life
Static Life
Oscillating Life
Migrating Life
Conway’s Game of Life

The universe of the Game of Life is an infinite twodimensional grid of cells, each of which is either alive or
dead. Cells interact with their eight neighbors.
Characteristics of CA models
Self-organising systems with emergent properties: locally
defined rules resulting in macroscopic ordered structures.
Massive amounts of individual actions result in the spatial
structures that we know and recognise;
Which Cellular Automata?
For realistic geographical models
the basic CA principles too constrained to be useful
Extending the basic CA paradigm
From binary (active/inactive) values to a set of
inhomogeneous local states
From discrete to continuous values (30% cultivated land, 40%
grassland and 30% forest)
Transition rules: diverse combinations
Neighborhood definitions from a stationary 8-cell to
generalized neighbourhood
From system closure to external events to external output
during transitions
Agents as basis for complex systems
An agent is any actor within an environment, any entity
that can affect itself, the environment and other agents.
Agent: flexible, interacting and autonomous
Agent-Based Modelling
Representations
Goal
Communication
Communication
Action
Perception
Environment
source: Nigel Gilbert
Agents: autonomy, flexibility, interaction
Synchronization of fireflies
Bird Flocking
No central authority: Each bird
reacts to its neighbour
Not possible to model the flock in a
global manner. Need to necessary
to simulate the INTERACTION
between the individuals
Why is it interesting?



Structure

structure is emergent from agent interaction

this can be directly modeled
Agency

agents have goals, beliefs and act

this can be directly modeled
Dynamics

things change, develop, evolve

agents move (in space and social location) and learn

these can be directly modeled
Source: (Gilbert, 2006)
Is it qualitative or quantitative?
Agent-based models can handle all types of data



quantitative attributes

age

size of organization
qualitative

ordinal or categorical (e.g. ethnicity),

relational (e.g. I am linked to him and her)
vague

A sends B a message about one time in three
Source: (Gilbert, 2006)
It has been used in different areas of science

economy

sociology

archaeology

ecology

linguistics

political sciences

...
Source: http://www.leggmason.com/thoughtleaderforum/2004/conference/transcripts/arthur_trans.asp
Agents changing the landscape
An individual, household, or institution that takes specific actions
according to its own decision rules which drive land-cover change.
Four types of agents
Artificial agents, artificial environment
Artificial agents, natural environment
Natural agents, artificial environment
Natural Agents, natural environment
fonte: Helen Couclelis (UCSB)
Four types of agents
e-science
Artificial agents, artificial environment
Behavioral
Experiments
Natural agents, artificial environment
Engineering Applications
Artificial agents, natural environment
Descriptive Model
Natural Agents, natural environment
fonte: Helen Couclelis (UCSB)
Is computer science universal?
Modelling information flows in nature is computer science
http://www.red3d.com/cwr/boids/
Bird Flocking (Reynolds)
Example of a computational model
1. No central autority
2. Each bird reacts to its neighbor
3. Model based on bottom up
interactions
http://www.red3d.com/cwr/boids/
Bird Flocking: Reynolds Model (1987)
Cohesion: steer to move toward the
average position of local flockmates
Separation: steer to avoid crowding
local flockmates
Alignment: steer towards the
average heading of local flockmates
www.red3d.com/cwr/boids/
Agents moving
Agents moving
Agents moving
Source:
http://www.leggmason.com/thoughtleaderforum/2004/conference/transcripts/arthur_trans.asp
ABM in TerraME:
Types and Functions
forEachRelative
forEachCell
Agent
forEachNeighbor
Cell
forEachAgent
forEachAgent
forEachCell
Society
CellularSpace
Group
Trajectory
DBMS
Society
CBB
CAC
CBA
CCB
ACA
CCC
AAC
BBC
ABC
AAA
上海宋
BBA
BAB
Society
createAgent = function(capital)
return Agent {
capital = capital,
-- ...
}
end
data = {}
data[1] = 100; data[2] = 50; data[3] = 25
mag = Society(createAgent, data)
capital = 100
capital = 50
capital = 25
mag = Society(createAgent, 50)
Group
CBB
CAC
CBA
CCB
ACA
CCC
AAC
BBC
AAA
BBA
ABC
BAB
Group
g = Group{mag,
function(agent)
return agent. capital > 40
end,
function(a1, a2)
return a1.capital > a2.capital
end
}
capital = 100
capital = 50
capital = 25
Traversing the Society
capital = 100
capital = 50
capital = 25
forEachAgent(mag, function(agent)
agent.capital = agent.capital + 100
end)
capital = 200
capital = 150
capital = 125
Agents within cells
agents = cell:getAgents()
if table.getn(agents) == 0 then -- empty
agent:leave(oldcell)
agent:enter(cell)
end
agents = cell:getAgents()
if table.getn(agents) == 0 then -- empty
agent:move(cell)
end
Schelling segregation
model
Segregation
Some studies show that most people prefer
to live in a non-segregated society.
Why there is so much segregation?
Segregation
Segregation is an outcome of individual choices
But high levels of segregation indicate mean that
people are prejudiced?
Schelling’s Model of Segregation
Micro-level rules of the game
Stay if at least a
third of neighbors
are “kin”
< 1/3
Move to random
location otherwise
Schelling’s Model of Segregation
Schelling (1971) demonstrates a theory to explain
the persistence of racial segregation in an
environment of growing tolerance
If individuals will tolerate racial diversity, but will
not tolerate being in a minority in their locality,
segregation will still be the equilibrium situation
Schelling Model for Segregation
Start with a CA with “white” and “black” cells (random)
The new cell state is the state of the majority of the
cell’s Moore neighbours
White cells change to black if there are X or more black
neighbours
Black cells change to white if there are X or more white
neighbours
How long will it take for a stable state to occur?
Schelling’s Model of Segregation
Tolerance values above 30%: formation of ghettos
The Modified Majority Model for Segregation
Include random individual variation
Some individuals are more susceptible to their
neighbours than others
In general, white cells with five neighbours change to
black, but:
 Some “white” cells change to black if there are only four
“black” neighbours
 Some “white” cells change to black only if there are six
“black” neighbours
Variation of individual difference
What happens in this case after 50 iterations and 500
iterations?
Urban Growth in Latin American cities:
exploring urban dynamics through
agent-based simulation
Joana Xavier Barros
As cidades Latino-americanas




Altas taxas de crescimento urbano (rápida urbanização)
Pobreza + assentamentos espontâneos (favelas)
Fraco controle das políticas públicas sobre o processo de
desenvolvimento urbano
Resultado espacial: tecido urbano fragmentado com padrões
morfológicos diferentes e desconectados, que evoluem e se
transformam ao longo do tempo.
Periferização
Processo pelo qual a cidade cresce através da adição de assentamentos de baixa
renda no anel periférico.
Estas áreas são lentamente incorporadas à cidade pela expansão urbana, muitas
vezes ocupadas por um grupo econômico mais alto, enquanto novos
assentamentos de baixa renda continuam emergindo na periferia.
São Paulo - Brasil
Caracas - Venezuela
Crescimento urbano
“Urban sprawl” nos
Estados Unidos
“Urban sprawl” na Europa
(Inglaterra)
Periferização na América
Latina (Brasil)
Questões e metodologia
Como esse processo acontece no espaço e no tempo?
DINÂMICA
modelagem e simulação



Como o espaço é moldado por decisões individuais?  Teoria da Complexidade
TEMPO + ESPAÇO modelos autômatos celulares
Questões sociais  simulação baseada no agente (agent-based simulation)
Simulador de Periferização



Reproduz o processo de expulsão e expansão simulando o processo de
localização residencial de 3 grupos econômicos distintos.
Assume que apesar das diferenças econômicas, todos os agentes tem as
mesmas preferências locacionais, ou seja, todos querem se localizar nas
melhores áreas da cidade, que nas cidades latino-americanas Latina são
as áreas de alta renda.
Todos os agentes tem as mesmas preferências mas restrições diferentes.
Módulo de Periferização
 Agente alta renda – pode se localizar em qualquer lugar
 Agente renda média – pode se localizar em qualquer lugar menos onde já
existem agentes de alta renda
 Agente renda baixa – só pode se localizar em lugares vazios
Um agente pode ocupar a célula de outro agente e quando um agente é expulso
ele procura outro lugar para se assentar.
Periferização – exercícios de simulação
Padrão espacial:
 não existe nada nas regras que
determine que o resultado espacial
do modelo seja um padrão
segregado ou que os agentes de
renda alta se localizem no centro,
rodeados por anéis de agentes de
renda média e baixa.
 o padrão se aproxima da estrutura
espacial de localização residencial
encontrada em cidades latinoamericanas.
 Sementes múltiplas como
condição inicial – produz padrão
com características de áreas
metropolitanas.
Comparação com a realidade
Mapas de distribuição de renda
- São Paulo
(Censo 2000)
Mapas A and B: quantile breaks (3
and 6 ranges)
Mapas C and D: natural breaks (3
and 6 ranges)
Observação:
Não trabalhamos com
nenhum tipo de definição de
grupos econômicos.
Periferização no TerraME
-- crie uma cidade (espaço celular)
cidade = CellularSpace {xdim = TAMANHO, ydim = TAMANHO}
-- define uma vizinhança 3x3 para o espaço celular
createMooreNeighborhood(cidade, "1", false)
-- preenche o espaço celular com celulas vazias
iniciar (cidade)
-- acha a celula central
centro = Coord { x = TAMANHO/2, y = TAMANHO/2}
celulaCentral = cidade:getCell(centro)
-- cria uma sociedade de agentes
populacao = Society(createAgent, POPULACAO)
-- acha um lugar para cada agente na cidade
forEachAgent(populacao,
function(agent)
acheLugar(agent)
end)
Periferização no TerraME
-- Parâmetros do modelo
TAMANHO = 60
POPULACAO = TAMANHO*TAMANHO/2
VAGO = 0
POBRE = 1
REMEDIADO = 2
RICO = 3
PROP_RICO = 0.1
PROP_REMEDIADO = 0.4
PROP_POBRE = 0.5
---- funcoes auxiliares
function iniciar (cidade)
forEachCell(cidade,
function(cell)
cell.ocupante = VAGO
end
)
end
Periferização no TerraME
function createAgent()
agent = Agent{
classe = geraClasse(),
celula = celulaCentral
}
return agent
End
-- gera uma classe social para o agente
function geraClasse()
valor = math.random()
if valor < PROP_POBRE then
return POBRE
elseif valor < PROP_POBRE + PROP_REMEDIADO then
return REMEDIADO
end
return RICO
end
Periferização no TerraME
function acheLugar(agent) -- acha um lugar para morar
achou_lugar = false
repeat
-- busca um lugar que gostaria de morar
lugar = random_walk (agent)
-- move o agente para o lugar que gostaria de morar
agent.celula = lugar
-- bate na porta e chama os moradores
moradores = lugar:getAgents()
-- verifica se tem alguem
if getsize(moradores) == 0 then
-- se nao tem ninguem, ocupa a celula
agent:enter(lugar)
lugar.ocupante = agent.classe
achou_lugar = true
else -- tem gente
dono = moradores[1]
achou_lugar = expulsa_morador (agent, dono, lugar)
end
until achou_lugar
-- procura local para morar até achar
end
Periferização no TerraME
function random_walk (agent)
-- ache um vizinho aleatorio numa vizinhança 3 x 3
vizinho = agent.celula:getNeighborhood():sample()
-- ache o vizinho do vizinho
vizinho2 = vizinho:getNeighborhood():sample()
return vizinho2
end
Periferização no TerraME
function expulsa_morador (agent, dono, lugar)
-- compara a classe social do agente e do dono
if (dono.classe == POBRE and
(agent.classe == RICO or agent.classe == REMEDIADO))
or (dono.classe == REMEDIADO and agent.classe == RICO)
then
-- o morador sai da celula
dono:leave(lugar)
-- o agente entra na celula
agent:enter(lugar)
-- o status da celula muda
lugar.ocupante = agent.classe
-- o morador expulso procura outro lugar
acheLugar(dono)
-- indica que o agente achou um lugar para morar
achou_lugar = true
else
achou_lugar = false -- nada feito
end
return achou_lugar
end
Download

cst317_2012_agents_simulation