220 likes | 311 Views
Pedro Ribeiro de Andrade feb/09. Modelagem Baseada em Agentes no TerraME: estado atual. 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.
E N D
Pedro Ribeiro de Andrade feb/09 Modelagem Baseada em Agentes no TerraME: estado atual
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 fsdf fsdfsd sdfsdf Jfddfjh gfsdfgdfssf fsdf fsdfsd sdfsdf Jfddfjh gfsdfgdfssf fsdf fsdfsd sdfsdf
Scientific question How can geospatial data feed agent-based models? Entities Relations Jfddfjh gfsdfgdfssf fsdf fsdfsd sdfsdf Jfddfjh gfsdfgdfssf fsdf fsdfsd sdfsdf Jfddfjh gfsdfgdfssf fsdf fsdfsd sdfsdf
First Entity: Agent Citizens (points) Farmers (polygons)
Second Entity: Space Agents are computational systems placed in some environment. (Jennings et al., 98) • Discrete→cells • Dynamic
Relations From Cell Agent Agent Cell To 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?”
Agent→agent Agents can communicate, exchange goods, etc. Agents are situated in space.
GPM as a graph From a Cell Agent c a b b c Agent Cell To
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 BBA ABC 上海宋 BAB
Society createAgent = function(capital_) return { capital = capital_, -- ... } end data = {} data[1] = 100; data[2] = 50; data[3] = 25 mag = Society(createAgent, data) mag = Society(createAgent, 50) capital = 100 capital = 50 capital = 25
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
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
Pedro Ribeiro de Andrade feb/09 Modelagem Baseada em Agentes no TerraME: estado atual