Election Math
One cluster of reasons people sometimes give for not voting is that “none of the candidates represent my views, and I’m tired of voting for the lesser of two evils.”
(Another, of course, is plain old apathy. A coworker of mine is very straightforward about not caring about who gets elected. He knows he’ll catch shit from the rest of us if we catch him complaining about the government that he didn’t bother to help elect, and he doesn’t. For people like him but who aren’t quite out of the closet, here are some tips on pretending to give a shit about the election.)
Meanwhile, this is you, the interested voter trying to figure out which unappealing candidate to vote for:

Actually, this is you as a political entity, boiled down to just a vector of issues that’ll influence your decision. i0 might be abortion, or the war in Iraq, or education, or whatever it is that you care about.
Of course, not every issue is of equal weight to you. Maybe you think that space exploration and funding for the arts are important, but not as important as ending the war in Iraq. So here’s W, your issue weights matrix:

Multiplying one by the other gives your weighted issue vector:

It probably would’ve been easier to use a vector for the issue weights, but a) I don’t remember enough linear algebra to remember how to multiply one vector by another to get the weighted issue vector, and b) you can do some cool stuff with matrixes, so representing it that way probably allows you to do represent things like “I want a president who’ll introduce healthcare reform, fix the mortgage crisis, and lower taxes, but I’ll settle for two out of three, and he has to balance the budget as well.”
Now all you need to do is calculate the issues vector for each of the candidates, and do a dot product with your weighted issues vector to see how well that candidate’s views align with yours:

If you’re running for office, then the candidate whose views most closely align with yours is you, obviously. A candidate you mostly agree with will have a dot product close to the length of your vector. A candidate who campaigns only on issues that you care absolutely nothing about will be orthogonal to you, and have a dot product of zero. And a candidate you disagree with will have a negative dot product.
Note that the weights can be negative. That way, you can define yourself as being against something, without necessarily being for something else.
Also, the weights can be as large as you like, to the point of overwhelming everything else. Let’s say that you’re for increased military spending (w0 = 1.0), against the death penalty (w1 = -0.9), and for immediate troop withdrawal from Iraq (w2 = 2.5). One of the candidates agrees with you on all of these issues, but also wants to put all kittens in a blender. You’re strongly against blending kittens: that’s a deal breaker (w3 = -10,000,000). So that candidate still gets a negative dot product, and doesn’t get your vote.
Oh, and one of the red vectors is marked “fringe candidate”. This is the guy whose views are even more radical than yours; i.e., you’d agree with him if he were more moderate.
I include this one because in the last election, I was unhappy with my representative, and wanted to vote him out of office. But all of the other candidates were even worse than he was. Except for one guy whose policies I liked, except that he was too extreme even for me. Given these choices, I wound up voting for the incumbent, who is at least the devil I know.
I’ve been regretting that decision, for the simple reason that government has inertia: if the “fringe” candidate had been elected, he would have tried to pull the government in the direction I wanted, but would have been held back by others in Congress, and prevented from taking things too far.

