NOTE: This was written back in 1996 with Java 1.0, which
unfortunately is no longer supported by all browsers. There should be
a big square field with dots and lines, a bar graph to its right, and
a few buttons and a text field below them. If only part of it
works... well, you can play with that. Sorry if it doesn't work for
Our traditional political model maps everyone's position on a line,
i.e. "right-wing" vs "left-wing". In reality, many people feel
"right-wing" on some issues and "left-wing" on others. A more realistic
model maps political positions into a plane, 3-space, or higher
("N-space"), where the number of dimensions is the number of separate
issues people care about.
This applet models an election with several candidates jockeying
for position to maximize their votes. It's greatly simplified from
reality, but demonstrates phenomena that really do happen.
This animated model is based on the following premises:
- Political positions of voters and politicians can be represented in
N-space (in this case, a plane).
- In an election, an educated voter will vote for the candidate that's
closest to them politically.
- A self-interested candidate will adjust his/her position to maximize
the votes gotten.
The big square represents the political positions of the voting
public, who are evenly distributed. The colored dots are the candidates.
The colored lines divide the square into each candidate's "territory";
they illustrate which voters are closest to which candidates. Bigger
territories mean more votes.
Things to do
- Drag the candidates around the field, and see how the voting
percentages change for different layouts. Try this with different
numbers of candidates.
- Run the simulation, and the candidates will move in directions to
maximize their territory. A pattern will usually stabilize.
Different numbers of candidates give rise to different stable patterns.
Things to notice:
- With two candidates, they end up with almost identical positions,
at the center of the field. Decide for yourself whether this
- With three candidates, no two get too close together, lest they
divide votes between them-- there is a constant balance between
being too close and too far. Any candidate that goes too close
to center loses votes to the other candidates-- verify this yourself
by manually moving the candidates around and watching the percentages.
Therefore, change happens more rapidly with three candidates than
with two (for better or worse).
Some differences between this and real life:
- We need many more than two dimensions to represent political
positions. Even then, the normal rules of distance may need
adjusting; maybe some kind of perturbed N-space would work.
- Real voters aren't evenly distributed over the square, nor do they
drop off to zero outside of the square. Different issues are often
related, so some parts of our N-space would be more voter-dense than
others. For example, voters who support education spending tend to
support daycare spending.
- Voters don't generally understand the candidates well enough to make
a fully educated vote. Part of the problem is that candidates
tend not to clarify their position; they're trying to appeal
to everybody, and adjust their position depending on who they're
- Each issue is modelled here as one dimension, where the two directions
oppose each other. In reality, the two directions are not as
mutually exclusive as we tend to see them. For example, everyone
would love to "save the environment and create jobs". No
one really wants to "destroy the environment" or "destroy jobs"; it's
just a matter of priorities. A single issue might be better
modelled as two separate dimensions, and a voter cares that a
candidate rates at least a certain amount on each.
- A candidate might have a platform that accommodates
seemingly opposing issues. This could be modelled better as
described in the preceding item.
- Some candidates might adopt a more sophisticated strategy, based on
this or another analysis.
- Some politicians are actually sincere, and don't adjust their
positions simply to get votes.
- This was my first Java applet, so there may be problems. The applet
may hog system resources, etc. Given that, I want to hear of any bugs
- It's slow. Huge numbers of calculations. Time varies with
the number of candidates to the fourth power, I think; I may be able
to drop that to three later. The program doesn't slow down for fast
- You can probably make it choke on bad input if you try.
- Here's the source code, to download or
view. Suggestions welcome.
|Last Modified: January 12, 2007