Modelagem Baseada em
Agentes no TerraME:
estado atual
Pedro Ribeiro de Andrade
feb/09
How to model these phenomena?
Agent-based modelling (ABM)
Bottom-up approach for building complex
systems, through the dynamical interaction
of agents.



flexibility
natural approach
emergence
Scientific question
How can geospatial data feed
agent-based models?
Jfddfjh gfsdfgdfssf
Jfddfjh gfsdfgdfssf
Jfddfjh gfsdfgdfssf
fsdf fsdfsd
fsdf fsdfsd
fsdf fsdfsd
sdfsdf
sdfsdf
sdfsdf
?
Scientific question
How can geospatial data feed
agent-based models?
Entities
Jfddfjh gfsdfgdfssf
Jfddfjh gfsdfgdfssf
Jfddfjh gfsdfgdfssf
fsdf fsdfsd
fsdf fsdfsd
fsdf fsdfsd
sdfsdf
sdfsdf
sdfsdf
Relations
First Entity: Agent
Citizens (points)
Farmers (polygons)
Source: (Crooks, 2006); (Lim et al. 2002)
Second Entity: Space
Agents are computational systems placed in
some environment.
(Jennings et al., 98)
Discrete →
cells
 Dynamic

Relations
From
Agent
Agent
To
Cell
Cell
Sources: (Benenson and Torrens, 2005; Samuelson and Macau, 2006)
Cell→cell
Spatial neighbourhood between cells
Cell→agent
“Which agents belong to this cell?”
Agent→cell
“Which cells this agent controls, owns, targets?”
Source: Adapted from (Lim et al. 2002)
Agent→agent
Agents can communicate, exchange goods, etc.
Agents are situated in space.
GPM as a graph
From
a
Cell
Agent
c
Agent
To
Cell
a
b
b
c
ForEachNeighbor
ForEachNeighbor
ForEachCell
Agent
Cell
ForEachAgent
ForEachAgent
ForEachCell
Society
CellularSpace
Group
Trajectory
DBMS
ForEachNeighbor
ForEachCell
Agent
Cell
ForEachAgent
ForEachAgent
ForEachCell
Society
CellularSpace
Group
Trajectory
DBMS
Society
CBB
CAC
CBA
CCB
ACA
CCC
AAC
BBC
AAA
ABC
上海宋
BBA
BAB
Society
createAgent = function(capital_)
return {
capital = capital_,
-- ...
}
end
data = {}
data[1] = 100; data[2] = 50; data[3] = 25
mag = Society(createAgent, data)
capital = 100
capital = 50
mag = Society(createAgent, 50)
capital = 25
Group
CBB
CAC
CBA
CCB
ACA
CCC
AAC
BBC
AAA
ABC
BBA
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
Transversing 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
InitAgents(cs)
-- ...
agents = GetAgents(cell)
if table.getn(agents) == 0 then -- empty
RemoveAgent(oldcell, agent)
AddAgent(cell, agent)
end
Modelagem Baseada em
Agentes no TerraME:
estado atual
Pedro Ribeiro de Andrade
feb/09
Download

Conceitos TerraME