StumbleUpon.com: Discover the Best of the WebPosted: September 4, 2009
Micronesians not caring what we think
A heuristic is a technique that works sometimes, without guarantees. We all use heuristics, because they are often simple to try (so they don’t cost much if they fail), and also because they are often all we have.
An algorithm is a technique that comes with a guarantee. The technique for rational function integration is an algorithm because it always produces the answer, without exception. Differentiation is an algorithm—given an elementary function, you can always find its derivative. The Euclidean algorithm always gives you the GCD. Algorithms can be fast or slow, but the important thing is the guarantee. In some sense, an algorithm is a `predictable heuristic’—you can’t tell if a heuristic will work, before you try it, but you know in advance what the output of an algorithm will be.