Thinking one-dimensionally about how individual preferences can affect larger neighborhoods

Group Members

// Put Group Members Here

Learning Goals (Why we're asking you to do this)

We want you to be able to:

  • Consider Thomas Schelling's 1974 research: a complex system where a slight bias in individual preference leads to a large-scale effect
  • Act out Schelling's rules in the form of a game
  • Express the game as a simulation algorithm in pictorial form, text, or pseudo-code
  • Think about when and how simulations terminate

Introduction

In 1974, economist Thomas Schelling published what would become a landmark paper called "Dynamic Models of Segregation." In it, Schelling tried to explore how, in a simple toy system, individuals segregate themselves even if they have an expressed preference for having neighbors different from themselves. In other words: Schelling explored how a seemingly sensible individual preference ("I'm OK with up to 50% of the people in my neighborhood being different from me") can lead to larger-scale social segregation, where 'like' people clump together.")

The sensitivity of race and historical artifacts

Now, Schelling wrote this paper in 1974, in a different cultural context. You'll find that,

  • He describes "race" in terms of "blacks" and "whites",
  • His pronouns are always masculine

Studying this model and the history involved means also accepting the baggage that surrounds them. These models offer us great insight into social systems, but they also have a history and implications that touch on tense social issues. So, as a class, let's:

  • Be aware that we come from many different backgrounds
  • Know that segregation can take many forms, not all of which are strictly based on race
  • Recognize that the model's function is to try to mimic a phenomenon, not to dictate how society is or should be

Schelling's 1-dimensional toy system

His first toy system looked like this: a one-dimensional set of typewriter characters to stand in for individuals who differed on some property ("stars and zeros"):

Schelling describes the figure thusly:

Suppose, now, that everybody wants at least half his neighbors to be like himself, and that everyone defines 'his neighborhood' to include the four nearest neighbors on either side of him. A star wants at least four of his eight nearest neighbors to be stars; a zero wants at least four of his eight nearest neighbors to be zeros. Including himself, this means that he wants a bare majority, five out of the nine. (For those near the end of the line the rule is that, of the four neighbors on the side toward the center plus the one, two or three outboard neighbors, half must be like oneself) I have put a dot over each individual whose neighborhood does not meet his demands.

Your Turn - Calculate an individual's preference assuming a neighborhood size of +/- 4

Let's look at the line again. We'll take two individual characters (two zeroes) as examples. The first zero doesn't want to move, because its neighborhood has a simple majority of zeroes like itself. But what about the zero that lives next door?

// Calculate the number of residents in the second zero's neighborhood to figure out if it wants to move.

The Assumptions of Schelling's model

The results of this section are experimental. They are crude and abstract but have the advantage that anyone can reproduce them using materials that are readily available.

I assume a population exhaustively divided into two groups; everyone's membership is permanent and recognizable. Everybody is assumed to care about the color of the people he lives among and able to observe the number of blacks and whites that occupy a piece of territory. Everybody has a particular location at any moment; and everybody is capable of moving if [they are] dissatisfied with the color mixture where [they are]. The numbers of blacks and whites, their color preferences, and the sizes of 'neighborhoods' will be manipulated....

There is some fascination in the process as it emerges in the linear model; furthermore, the linear experiment can be replicated by any reader in five minutes; variants can readily be devised, and any reader with a spare half hour can change the hypotheses to suit.

The rules of Schelling's model

Here's how Schelling sets up the rules for a 1-dimensional simulation:

Whether a resident wants to move

  • Everybody wants at least half his neighbors to be like himself
  • Everyone defines 'his neighborhood' to include the four nearest neighbors on either side of him
  • A star wants at least four of his eight nearest neighbors to be like stars
  • A zero wants at least four of his eight nearest neighbors to be zeros
  • For those near the end of the line the rule is that, of the four neighbors on the side toward the center plus the one, two or three outboard neighbors, half must be like oneself

How a resident moves

  • A dissatisfied resident moves to the nearest point that meets his minimum demand---the nearest point at which half his neighbors will be like himself when he arrives there
  • 'Nearest' means the point reached by passing the smallest number of neighbors on the way
  • A resident moves by shoving himself between any two other residents. (It's a bit like cutting in a line/queue: if you want to cut in, you just kind of insert yourself between two people already in line and the rest of the line adjusts around you)

The order of moves

As Schelling says, "We also need an order of moving.

  • Arbitrarily let the discontented members [those who have fewer than four neighbors like themselves] move in turn, counting from left to right.

Who gets to move, and when

  • Only discontented members are eligible to move
  • When people become happy, they don't want to move anymore. If an originally discontented member (when the game started) ends up content when their turn comes up, they stay put. (They used to be unhappy, they moved, and now they're content.)
  • Anyone who becomes discontent gets a turn after the originally unhappy people get to move. (This rule is a little tricky, so make sure you feel like you comfortably understand it.)
  • The definition of a neighborhood is the four nearest neighbors on either side at the moment one decides to move or stay; if someone moves inbetween a resident and their next-door neighbor, they push the fourth neighbor out of the neighborhood. (If a line is 100 people long, the theater only fits 100 people, and you cut somewhere in line, then whoever was last in line isn't getting into the theater. Womp womp.)

What residents know about other residents

  • The residents don't think ahead; if it's their turn to move, they base their decision only on the state of their neighborhood as they see it, on that turn. They don't plan ahead, and they don't try to figure out what the other neighbors might do.

Your Turn - Play Schelling's model

When Schelling did his original simulations in 1974, he wrote "what is reported here has all been done by hand and eye." If he could do it, so can we.

Grab nickels and pennies and find a partner. We're going to try this in stages.

Set up the game

  • Pick a number of residents who will be in your game, say between 40 and 60. You'll probably want to pick a number divisible by 2.
  • Create your line of residents, ensuring a 50/50 mix of nickels and pennies.
  • If you can, take a picture of how your line started.

Play one round of the game

Now that you're set up, play one round of the game.

  • Starting with the left-most discontent resident,
  • move them a distance until they're happy,
  • then move rightward on to the next unhappy resident and repeat

// When does/should the round stop? In other words, how would you describe how you know the round is over. Try and be as precise as you can in explaining.

// If you can, take a picture of what your board looks like after one round

Check in with an instructor after your first round

This gives you a chance to talk about whether anything problematic or unexpected happened.

Play more rounds until you feel like you have the hang of the game

Play a second round through. And third, and fourth if you want. Set up a new board and try again, configuring the board how you want.

// If you can, take a picture of what your board starts like, looks like after each round and ends like in each game.

Your Turn - Create Instructions that Implement Schelling's Model

You've played the game. You hopefully have a handle on it. Now, let's try to move closer toward describing the model in a way that a computer---not just you---could potentially play/run the game.

What you don't need to make

You don't need to make a working Python program. We're going to start much smaller and try to build up.

What we'd like you to make - A procedural Description

Whether through words, pictures, flowcharts, or some other medium, start precisely describing the game so a non-human agent could play it.

One strategy you can use is often called top-down design. You start at the highest level of what you're trying to do, then break each big piece down into smaller, more specific pieces. You can also write in a way that looks like code, but doesn't have to be strict python (or any other language). Just something akin to a program sketch: understandable as a well-defined series of steps, even if the punctuation and words might make the Python interpreter throw a tantrum.

Here's an example of top-down design where the objective might be to call my mom.

TO call my mom:
        Pick up the phone
        Dial Mom's number
        Prepare for a giant wave of guilt

That program describes a really loose level of detail of how I call my mom. But what if someone (a 4-year-old who recognizes numbers) didn't know how to pick up the phone, and they wanted more detail?

TO pick up the phone:
        Place your hand on the handset
        Lift it
        Turn it so it faces you

Aaand what if they needed more specifics on how to dial (and how to prepare for guilt)?

TO dial the phone:
        Read the first digit of mom's phone number
        Hit the corresponding digit on the phone
        Move to the next digit of mom's phone number
        Keep repeating this until there are no numbers left in mom's phone

When we write pseudo-code like this, we often start at the top, then keep breaking down each line until we feel like we hit bottom: we have taken anything that was still complex (and hid several steps) and gotten the steps down to the base level of whatever our language is.

It takes practice, and you may hit dead-ends. But when you're done, you ought to have a set of instructions that:

  • Tells an agent how to set up the board
  • Tells an agent how to play a round (and when it stops)
  • Tells an agent to keep playing until some condition is reached. (It could be "play 3 turns, then stop," or it could be some more complex condition, like "play until no one wants to move". Up to you.)

Submitting this assignment

Submit this assignment by uploading it to the course Desire2Learn web page. Go to the "In-Class-Activities" folder, find the dropbox link for Day 11, and upload it there.

Have a Great Day!


In [ ]: