Killing the Buddha with Genetic Algorithms

Some thoughts that were knocking around my head this morning as I rode in to work:

I’ve heard that there is a saying in Buddhism that if you should encounter the Buddha on the road, you should kill him. Apparently this is a parable meant to instruct the listener to actively reject authority or arguments based on a position of authority. You should listen to what the buddha says (if you are a buddhist) because he obviously knows a thing or two about life, but that does not mean that his answers are the only ones. Nor necessarily the correct ones.

Which, of course, leads us to genetic algorithms. An algorithm is a set of steps that you can follow to solve a particular problem. And there are a lot of really great mathematical algorithms out there, like procedures for finding square roots of numbers or of sorting lists of things. But there is not, to the best of my knowledge, a way to be sure that the algorithm you are using is the best one.

Best is relative. In computer science, it usually means either fastest or least resource-intensive, but sometimes you may have a different idea of what “best” is. It all depends on your situation. A genetic algorithm is one that you create by taking a known algorithm and randomly tweaking it just a little bit. If the third step in an algorithm is to divide x by 2, you might instead try dividing x by 3, just to see what happens.

The idea is that with a computer, you can take the instructions for an algorithm (or you could start with random garbage, for that matter) and you keep generating millions and billions of variations of those instructions to see how good the randomly-generated algorithms work for you.

You could probably do this without a computer, but man would that suck.

One of the interesting things about genetic algorithms is that they can find unexpected ways to solve problems. They are all about killing the buddha, because while they do inherit good ideas from their predecessors, they don’t seek to conform strictly to the established way of doing things.

All this got me to thinking about violins and knitting. To be honest, that doesn’t take much – a plate of scrambled eggs and bacon will get me to thinking about violins or knitting before too long. Anyway, I was thinking about how Stradivarius is still known as being one of the master craftsmen of violins and other stringed instruments. But just because his techniques produced some of the best-sounding instruments thus far does not mean that his techniques are the right ones. There may be another way of assembling a violin, or a different material that nobody’s thought of, that would produce an even better sound.

Same thing with knitting and sweater construction. You can work a sweater as a front and back panel, do the sleeves in the round and then sew everything together; you can work it from the bottom up as a yoke; you can work it from cuff to cuff; maybe you could start at the right shoulder and knit the whole thing down in once kind of diagonal piece? Would it look good? Who knows?

It may be worth trying.

No Responses to “Killing the Buddha with Genetic Algorithms”

  1. Orestes Says:

    You could probably do this without a computer, but man would that suck.

    I think that will have to be the opening quote for my PhD thesis. I hope I have your blessing to use it so, David.

  2. Raphael Says:

    In other contexts, familiarity with Big Os could be evolutionarily crucial.
    In the present context, I would assume spoonix refers to the symbol used for the order of magnitude of the aggregate number of operations in a computer algorithm.

  3. David Says:

    Michelle,
    Thanks. I appreciate it. No wittiness necessary.

    Spoon,
    “Big O”? I’m afraid I’m not familiar with that term.

  4. michelle Says:

    I wish I had something witty to say, but I don’t. I really liked this post.

  5. spoonix Says:

    Ok.

    Wait. I’m confused.

    Should I kill Buddha or not?

    And, for the record, Big O is how you’re supposed to evalute whether or not a given algorithm is best suited for a given situation (although you have to be mindful of the fact it’s assuming the upper limit is infinity… which it never is unless you’re count spams sent to an email address).

  6. Lisa in NJ Says:

    Very interesting entry; almost everything makes me think of cellos and knitting. It’s curious how *musical* complex knitting is. Thank you for blogging on knitting and algorithms and Buddha…some of my favorite topics.

    If you meet the Buddha, say hi from me!

  7. Kaetchen Says:

    Art Teacher, who knows more about religion than anyone I know, used to tell me that in Buddhism, neither going to services nor observing classic tenets of the faith mattered; what’s important is self-examination and independent decisions. Accepting the word of any boddhisatva or of the Buddha as a type of gospel was the surest way to delay nirvana and ensure another lifetime.

    In developmental psychology, the ability to tolerate uncertainty and moral relativism are considered signs of a higher level of maturation. Humans are blessed/cursed with the ability to choose: a blessing because we get to pick certain elements of our lives, a curse because we must then accept responsibility.

    Heavy stuff for a Monday morning.

  8. David Says:

    There’s a reason our sister is the theologist of the family. :-)

  9. Matt Roth Says:

    If Zen is finding the truth in yourself, and Buddah is truth, If you met yourself on the road, would suicide be the appropriate action?