Schelling's
Segregation Model Tweaked
The
main focus of this simulation is on SPACE, consequently the AGENTS
have minimal individuality.
THE
CHALLENGE IS TWO-FOLD:
To PREDICT the pattern that will emerge from various initial condition
of agents and their rules, and
To RETRODICT the initial condition of agents and their rules from
the resultant pattern.
The
WORLD comprises an array of 200 by 200 cells and its state is displayed
as 400 by 400 pixels.
Cells in the array are of four types, represented by the colors
Cyan, Magenta, Yellow and Black.
Black is considered to be empty space. The colors represent three
agent types.
There are thousands of agents of each agent type, but agents of one type
are INDISTINGUISHABLE from one another.
This means that agents of one type DO NOT have individual memories
or individual rule-driven behaviors.
Agents who are highly individualized are best dealt with using another
type of simulation architecture.
The fixed cells, on the other hand, MAY have individual properties,
but by default, they don't.
(They could, for instance, retain some sort of memory of who occupied
them or how long they were vacant.)
Agents will move a "home" to a "destination"
location depending upon the makeup of the neighborhood.
The
INITIAL CONDITIONS are determined by the user:
"Fill World" populates the world with different proportions
of the three agent types.
The user's choice of "Rules" sets the criteria the agents use
to decide whether to move or not.
Different rules, invoked at different times in the history of the run,
result in different demographics.
When
you press "Run," the following ALGORITHM (procedure)
is repeated thousands of times:
One cell is randomly chosen to be the "home" cell. Another is
randomly chosen to be the "destination" cell.
If the "home" cell is not empty and the "destination"
cell is empty, we procede. If not we choose randomly again.
This provides one "opportunity" for the agent at "home"
to move to the new "destination."
Whether that agent decides to move or not depends upon the rules defined
for its type.
The
agent makes its decision based upon its KNOWLEDGE about the world,
as coded by the user:
It knows what type of agent it is.
It knows how many of each type of agent are in the neighborhood of the
"destination."
It can know how many of each type of agent are in the neighborhood of
its "home."
It can also know something about the "features" in the world
by consulting three additional BITMAPS (see below).
These classes of information are already encoded into the program. You
can add more if you wish.
The
following kinds of DECISIONS or "rules" are coded into
the simulation, each progressively more complex:
We use the "trackbar" to set the preference of the agent
for being near a certain number of agents LIKE itself.
We assign each agent type a different preference for being near a certain
number of agents LIKE itself.
We assign each agent type a different preference for being near a certain
number of agents UNLIKE itself.
We assign each agent type a different preference for being near a certain
COMBINATION of numbers agents UNLIKE itself.
We invoke information derived from the BITMAPS to be considered
in their decisions.
We invoke different definitions of NEIGHBORHOOD (Moore, Tong, VonNeumann)
in perceiving their world.
We invoke preferences for WHERE (diagonally, vertically or horizontally)
surrounding agents are in their neighborhood.
By default, agents only check their "destination"
neighborhoods, but we can have them check their "home"
neighborhoods as well.
By default, agents can move anywhere in the world, but we can restrict
their MOBILITY to 5, 50 or 100 units.
The
following VISUALIZATION tools are available:
Clearly, we can watch the patterns appear, change and disappear over time.
We monitor the ACTIVITY of each agent type both graphically and
numerically.
We can increase the SPEED of the simulation by NOT updating
the display with each agent's move.
***
MAPS
may be drawn in PhotoShop upon each of the three Red, Green and Blue CHANNELS
of a BITMAP image.
The image must be 200 by 200 pixels in order to correlate with the 200
by 200 world array.
That bitmap image may then be "imported" into the simulation
as red, green and blue arrays.
These arrays will have values of from 0 to 255 which may be used to represent,
among other things:
Rule preferences, attractions (shopping centers), obstacles (rivers),
property values, tenant turnover, etc.
|