| |
| Introduction to the Schelling
Segregation Model |
[top]
|
The Schelling Segregation Model (SSM), also referred to as the
"Schelling Tipping Model," was first developed by
Thomas C. Schelling (Micromotives and Macrobehavior, W. W. Norton
and Co., 1978, pp. 147-155). It represents one of the first constructive
models of a dynamical system capable of
self-organization.
Schelling placed pennies and dimes on a chess
board and moved them around according to various rules. He interpreted the
board as a city, with each square of the board representing a house or a
lot. He interpreted the pennies and dimes as agents representing any two
groups in society, such as two different races of people, boys and girls,
smokers and non-smokers, etc. The neighborhood of an agent occupying any
location on the board consisted of the squares adjacent to this location.
Thus, interior (non-edge) agents could have up to eight neighbors, non-corner edge agents
could have a maximum of five neighbors, and corner edge agents could have
a maximum of three neighbors.
Rules could be specified that determined whether
a particular agent was happy in its current location. If it was unhappy,
it would try to move to another location on the board, or possibly just
exit the board entirely.
As can be expected, Schelling found that
the board quickly evolved into a strongly segregated location pattern if
the agents' "happiness rules" were specified so that segregation was
heavily favored. Surprisingly, however, he also found that initially
integrated boards tipped into full segregation even if the agents'
happiness rules expressed only a mild preference for having neighbors of
their own type. |
|
| SSM Demo Description |
[top]
|
Software has been developed that implements a version of the
Schelling Segregation Model (SSM) as an interactive computer demo. The SSM
demo features a complete graphical interface so that the user can click
buttons to control the demo and actually see what the board looks like, as
opposed to typing commands at a prompt and receiving a text readout. The
demo also allows the user to customize several parameters, thus enabling
the user to perform a wide range of experiments. The customizable
parameters are:
- Starting Configuration of the Board: Users can select one of
several preset configurations or create their own that include up to
three distinct types of agents (red, blue, and green) together with vacant
squares.
- View Menu (Color Shadings): The View Menu permits users to select either
"black/white" or "indicate happiness." Under the first option, all board
visualizations are rendered in black/white for easier printing. Under the second
option, all board visualizations are in color. In particular, after the play of a run begins,
happy red, blue, and green agents are indicated by bright color shades and
unhappy red, blue, and green agents are indicated by darker color shades.
This use of bright/darker shadings permit users to immediately see the effects
on "previous neighbors" and "new neighbors" when an agent chooses to move to
a new location.
- Happiness Rules: The user can customize the rules defining
whether each agent is happy in its current location. Each distinct type of
agent (red/blue/green) has a distinct user-specified happiness rule. For each given
configuration of neighbors that an agent might have, the happiness rule
for this agent's type
specifies how many of these neighbors must be the same type as the agent
in order for the agent to be happy to stay put at its current location.
By specifying distinct happiness
rules for the three agent types, the
user can specify varying preferences for segregation among the
three agent types.
- Relocation Options: A location is referred to as suitable for
an agent if the agent is (or would be) happy at that location. The user can
enable or disable rules that
force unhappy agents to move to a closest suitable vacant location or that
allow an unhappy agent to exit the board entirely if no suitable vacant
locations are found.
You can view screen shots here for: the
starting configuration of the board, the
happiness rules setting screen, the
relocation options screen, and the output
data screen.
Other features of the SSM demo include:
- Contents Option on Help Menu: Describes the model in general as well as the
use of each of the provided controls.
- Full Animation: The user can select either to view the
transformation of the board at a controllable speed or to jump directly
to a view of the final configuration.
- Control of Random Variables: Pseudo-random numbers are used
at various places throughout the demo, and users can see which random
number seed the demo is using or they can give the demo a specified seed
so that the "randomness" can be duplicated exactly.
- Save/Load Demo Configurations: The user can save a
configuration of the SSM demo parameter settings, including the current
set-up of the board, the happiness rules, the random number seed, and
all other options. This saved configuration can be copied to a disk and
reloaded at a later time.
|
|
| SSM Demo Downloads
|
[top]
|
| Demo Installation Package |
Schelling
v1.1.zip |
Includes the setup files necessary to install this demo on your
computer. |
| .Net Framework Redistributable |
Microsoft.com |
The .Net framework must be installed any any computer that will
run this demo. It can be acquired via Windows Update on your
computer or at this website. For installation directions or to see
if you already have it, see the installation notes. |
| Installation Notes |
Schelling
Install Notes.html |
Provides information for installing the demo, determining if you
have the .Net Framework, and installing it if you do
not. | |
|
| SSM Demo Source Code and
Implementation Info |
[top]
|
IMPLEMENTATION:
I wrote this windows application in
C# using Microsoft's Visual Studio .Net. I chose .Net because it allows
for quick development of a GUI based windows application, and I used C# so
that less code will have to be changed to port the windows application to
an internet-based web application. (Coming soon, hopefully.)
You can download all the files necessary to load the application in a .Net IDE
here.
A synopsis of all the classes, variables, methods, etc. (automatically
created with Visual Studio .Net) can be viewed by clicking
here.
LOGICAL FLOW OF THE SSM DEMO:
Each experimental run of the SSM Demo proceeds as follows:
- When the user clicks the start button, the board configuration is
copied into an array and a location on the board is randomly selected
to be the first agent checked for happiness.
- If the selected agent is happy in its current location, it does not move. The number of iterations increases by one.
- If the selected agent is NOT happy in its current location, then it searches for
a better location to move to. This search process is conditional on whether the user has selected (or not)
each of the following search options: Option (1) -- unhappy agents try to move to a closest suitable vacant location; and Option (2) -- unhappy agents exit the board if no suitable vacant locations exist.
Recall from earlier discussion that a location is referred to as suitable for
an agent if the agent is (or would be) happy at that location.
- Suppose NO suitable vacant location exists. If Option (2) is in effect, the unhappy agent exits the board. Otherwise the unhappy agent randomly selects a location from among the collection of all unsuitable vacant locations (together with its current location) and moves to (or remains at) this selected location. (The inclusion of the unhappy agent's current location protects against the possibility that no vacant locations exist, suitable or not.) In either case the number of iterations increases by one.
- Suppose a suitable vacant location exists. If Option (1) is in effect, the unhappy agent moves to a closest suitable location (breaking ties with a "coin flip.") If Option (1) is not in effect, the unhappy agent randomly selects a location from among the collection of all unsuitable vacant locations (together with its current location) and moves to (or remains at) this selected location. In either case the number of iterations increases by one.
- After the selected agent has had a chance to stay put (if happy) or to move (if unhappy), the SSM demo moves on to the next agent. Control repeatedly flows from left to right and from top to bottom across the board.
- The experimental run ends when one of the following conditions is met:
- The designated number of iterations has been met.
- All agents left on the board are either happy or unable to move (i.e., the agent
location pattern is stable).
|
|
| Copyright
Information |
[top]
|
This SSM demo is licensed by the copyright holder (Chris Cook) as free open-source software under the
GNU Public
License. Anybody who is interested is
allowed to view, modify, and/or improve upon the code used to produce this
demo, but any software generated using all or part of this code must be
released as free open-source software as well. To view the software license in
its entirety, go here.
|
|
| Feedback |
[top]
|
| You may contact me at chrisdcook@gmail.com. I would
greatly appreciate your comments and suggestions.
|