The classic voter model is a simple agent based model where each agent has a binary "opinion" (say, e.g., love chocolate, or hate chocolate). Agents interact wtih each other, and during an interaction one agent adopts the opinion of the other (i.e., one conforms to the other). The model reaches an absorption state (where the entire population ends up holding the same opinion) at a rate proportional to the population size.
You can see this basic result with the default settings of the model shown here, but this implementation also includes some complicating factors - some of them idiosyncratic:
- Agents' opnions here aren't binary, but continuous - the opnions are represented by colours chosen from the hue spectrum, which is technically circular (the hue at 0 degrees looks the same as the hue at 360 degrees). This is mainly a choice I made because it looks pretty. I'm not sure if the math behind the voter model works the same in this case (full disclosure: I have not attempted the maths behind the voter model). Each agent is initialised with a random opinion (colour).
- The network of agents here is spatial - each agent is a cell in a grid that can only interact with it's neighboring cells (the one above, the one below, and each one directly to the right and left). This will place some limits on the spread of an absorbing state.
- You can change the makeup of the population so that some (or all) agents don't conform during an interaction, but act antagonistically - they choose a neighboring agent and then adopt a color that is the opposite of the one their neighbor has. The population is initialised as half conformist and half antagonist - conformists are circles and antagonists are squares (obviously).
- Change the value of the first slider to modify this randomly during the simulation (i.e., a conformist will keep their current opnion/colour, but will suddenly become an antagonist for future interactions. You can also click on a particular agent/cell to flip the agent type if you want to explore particular spatial dynamics.
- There are different kinds of conformists - flippers and compromisers. Flippers are the default, and the "classic" kind of conformist - they interact with another agent and "flip" their opinion to match that of their partner.
- Compromisers are a bit different, and only really make sense in the context of opinions which occur on a continuous scale. Compromiser agents consider their partner's opinion and then move towards it, but not all the way - i.e., they adopt an "opinion" (colour) between the one they already have and the one their partner has. Use the buttons to change this - with a small population you can see they quickly converge on a blue-ish colour.