Last week I attended the 2013 International System Dynamics Conference, in Cambridge, MA, just a few miles from my house. After the sessions on Tuesday, there was a banquet in the largest conference room, into which we all filed as we finished our individual events. We then mingled in the ballroom until we found our friends, before choosing a table and sitting down.

What was interesting was that at first, there weren't enough people in the room for many groups to form, and then when enough people had arrived, crowding made it harder to walk around and therefore encounter friends at all.

Having systems modeling on the brain, I couldn't help but put together a model, as you see below:

I model each member of the society as entering the hall at a random time, such that the flow into the hall follows an exponentially decaying curve, as below. I assume the size of the membership to be about 500 persons, and the space capable of comfortably holding the same number while standing. These members join the group of people milling around looking to form a dinner party:

As the size of the milling crowd increases, the congestion in the room increases, and slows the average rate of motion through the crowd. I modeled the average rate of speed for people walking around the room to drop off sharply as the room becomes more crowded, as the crowding all tends to happen in a bunch in the middle as people try to find each other:

Initially I set the desired group size to 7 people, but we'll play with that to see how it influences results.

Finally, equations for the other variables:

Congestion = Milling Around/Standing Space

Connection Rate = Encounter Rate*Friend Fraction/Desired Group Size

Encounter Rate = Walking Speed*Milling Around

Walking Speed = Normal Speed*Speed vs Congestion(Congestion)

And with all dynamic variables plot together:

To see how the model would respond to changes in the arrival rate, we perform a sensitivity analysis over the uniform interval from zero to one:

We see that the influence of the arrival rate is mostly significant when it is low, and that even extremely high levels of inflow seem able to get themselves seated eventually. When we vary party size from 1 to 10, (here shown with a longer timescale) we see that it takes a significantly longer time to get settled as party size increases.

Likely in this case there would also be a balancing feedback look encouraging people to adopt smaller parties, or join parties already seated. Another day...