Geoscience Reference
In-Depth Information
investigate if the order of updating influences model output. You rarely know the temporal
details of agent behaviour and interactions so avoid making your model dependent on this
unknown.
Programming style 3 : Guarantee easy substitution of the GIS layers, including the abstract
and real-world versions.
Programming style 4 : Start with the natural (usually, very high) spatial and temporal
resolution of the model and make a full log of the model dynamics, that is, store every
move of every agent. Your initial decision on the model's aggregate outputs may be
inefficient and you can obtain better understanding of the model's dynamics by ana-
lysing this log and building additional aggregate outputs. After several attempts, you
could decide better which of the aggregate outputs should be directly built during the
simulation. Do not activate the log option when studying model sensitivity and other
computationally intensive issues, but reactivate it when you qualitatively change the
model and, especially, the behavioural rules of the agents. Do not forget that aggregate
output can mask qualitative features of system dynamics - bifurcations, catastrophes,
multi-stability, etc.
Programming style 5 : Guarantee easy recognition of the infrastructure objects and agents
at the boundary of the modelled area. Uncontrolled influence of the boundary can cause
artificial and fake effects.
Programming style 6 : Think about emerging patterns that you are interested in revealing
and therefore the necessary computational algorithms for recognising these patterns. Start
with implementing these algorithms and investigating their effectiveness outside of your
simulation. This is not often easy.
Agent behaviour 1 : There are numerous ways of formally representing agent behaviour, and
the more we investigate the model, the more variants come to mind. Prefer rules where the
parameters can be established once and forever. The maximum number of model param-
eters that can be investigated in depth is three.
Agent behaviour 2 : Try to formulate agents' behaviour in terms of behavioural science.
Carefully check whether your agents have perfect or bounded rationality. Intuitively, we
prefer bounded rational agents and fast and frugal behavioural heuristics. Connection to
behavioural theory will make your model experiments fundamentally better defined.
Agent behaviour 3 : It is easier to think of agent behaviour as a sequence of acts performed one
after the other, rather than one-time multi-parametric decisions, for example, according to
the logit model. The likelihood of agent decisions is important for understanding the dynam-
ics of the model and a sequence of elementary steps has evident advantages in this respect.
Agent behaviour 4 : Agents can be enabled to remember the past, to learn and even to foresee
the future. Any of these abilities essentially complicates the collective dynamics of the
system. If your agents have these high-level human-like abilities, investigate them one by
one and preserve the option of nullifying all of them.
9.6.3 w hen i inVeStigating y our M odel t heoretically
Enable stochastic variation of the model parameters : Consider the behavioural parameters
of the agents as stochastic. For example, for the Schelling model, assume that the threshold
fraction f of friends is not identical for all agents, but is normally distributed with an aver-
age f m and standard deviation f STD . Investigate the Schelling residential dynamics for zero,
low and high f STD . The case of f m = F crit and non-zero f STD is especially interesting in this
respect. For non-zero standard deviation of a model parameter, run the model 100 times
and check that you understand the distribution of the results.
Perform semantic debugging : Your code works and the simulation does not fail. Most prob-
ably, your simulation will still contain semantic bugs, that is, the code still wrongly
Search WWH ::




Custom Search