We can build interesting models even when all agents are stationary. Such models are called cellular automata (CA).
The framework for most NetLogo CAs can be found in ca.nlogo.
Each patch has a state attribute:
patches-own [
state
]
State can be anything: temperature, honesty, political affiliation, cultural preferences, etc.
Pressing the INIT button invokes:
to init-model
ca ; clear all
random-seed new-seed ; randomly seed
random number generator
init-globals
ask patches [init-patch]
end
Pressing the UPDATE button iterates:
to update-model
if finished?
[
print "Simulation halted"
stop
]
tick ; increment the tick counter
update-globals
ask patches [update-patch]
end
In this customization of update-patch we use the conformity rule: let my state be the same as one of my popular neighbors:
to update-patch
let my-neighbors other patches with
[distance myself <= radius]
let nbhd-state [state] of my-neighbors
set state one-of modes nbhd-state
color-patch
end
The color-patch method maps the state space of the model into the NetLogo color space [0, 140).
Here's a screen shot after initialization:
Here's the screen after the update-model procedure has been iterated 54 times:
Notice how patches have merged into homogenous regions. There are many examples of this in sociology: cultural assimilation, dissemination of information, emergence of voting blocks, and segregation.
The economist Thomas Schelling first applied this idea to sociology when he speculated that people who lived in segregated neighborhoods weren't necessarily racists. In this case we might think of patches as homes. The state of a patch is the race of the occupant. The update-patch procedure can be interpreted to say that the occupant of a home simply wants the majority of his neighbors to be of the same race. In other words, the occupant will tolerate neighbors of different races. Never the less, when we randomly assign occupants to homes, then run the simulation, we notice that segregated neighborhoods develop.