I have been playing with the Shelling Tipping Game Demo.
My first through is that there are lots of fun little permutations on this rule set...
* Add breeding. ( A happy agent can reproduce after a given period) This increases competition for the availible squares and grows neighbourhoods via numbers.
* Add renting/owning ( Moving to a new square is "renting", once happy, the agent can "buy" the square. But an unhappy renter can be pushed out by an agent who will be happier in that square.) This allows the neighbourhoods to displace nearby "unhappy" agents and push them out)
* Add attrition ( kinda sim city-esq) Where random squares are "vacated" no matter their happiness. (Simulate death, relocation etc)
* Add reputation - Certain squares and areas become "on the nose" and add misery to an agent who lands next to them. This simulates the perception of a bad neibourhood. This will only work where there is low population density that allows space to "avoid" the bad neighbourhood. ( Simulate the "problem tenant" in a block of flats. )
* Obstacles - The board already has edges which do serve the same purpose, but the rules have been constructed to be impervious to their effects in a way. But this still causes the corner blocks to be the prefereable location to build a neigbourhood around as its harder to be displaced from the corner.
The next idea is simply about the nature of the agents.
The agents are nice and simple and are only motivated to make a "move" decision and the following square selection when they are distubed by their happiness threshold.
Happiness Theshold trigger > Move Decision.
This makes for an elegantly simple model but a fairly predictable outcome. This is barely a step above conways game of life. From my reading of the rules of the game, the Agents State triggers the
move, and its then only an issue of making a move to another square.
Thats why we end up with agenst in high population densities who
ossciate between two equally poor squares.
The thought that occured to me is firstly that an agent with a number of triggers is going to be more complex but is still blindly reacting. I.e
Happiness Trigger |
Sadness Trigger | -> Move Decision
Hunger Trigger |
The next stage in complexity is to have a feedback loop between and the Agents Internal State and the Decision that it makes. This then should prevent moves to equal or worse positions. (Which may generate gridlock in congested worlds) but prevents the agents simply randomly fluttering. Keep in mind we are not trying to model grains of sand... we are trying to describe people in social environments.
So where you have multiple drivers, the decision made should be influenced by the state of all the drivers... This makes for a more complex simulation and explanation model.
The next extension is to use the activation/supression model to select among the drivers to see which one drives the decision making ( either that or a weight and filter model... both have similar outcomes) This level of complexity should be adequate to model a fairly large range of social processes. (My guess is that we could cook most social processes down to under half a dozen drivers for most practical purposes) (Must get around to testing this hypothesis at some point in all my free time....)
No comments:
Post a Comment